simd
Pliki nagłówkowe dla x86 SIMD
Które pliki nagłówkowe zapewniają wewnętrzne elementy dla różnych rozszerzeń zestawów instrukcji x86 SIMD (MMX, SSE, AVX, ...)? Wydaje się niemożliwe, aby znaleźć taką listę w Internecie. Popraw mnie, jeśli się mylę.
Pierwsze kroki z instrukcjami Intel X86 SSE SIMD
Chcę dowiedzieć się więcej o używaniu SSE .
Czego można się nauczyć, poza oczywistym czytaniem podręczników programisty Architektur Intel® 64 i IA-32 ?
Głównie interesuje mnie praca z wbudowanymi funkcjami GCC X86.
SSE intrinsic functions reference [zamknięta]
Czy ktoś wie o referencji wymieniającej działanie funkcji wewnętrznych SSE dla gcc, czyli funkcji w pliki nagłówkowe?
Dzięki.
Jak określić, czy pamięć jest wyrównana?
Jestem nowy w optymalizacji kodu za pomocą instrukcji SSE/SSE2 i do tej pory nie zaszedłem zbyt daleko. Według mojej wiedzy p ... iepodpisanych pamięć do rejestrów SSE wydaje się być strasznie wolna (nawet wolniejsza niż zwykły kod C).
Z góry dziękuję...
Czego brakuje/nie jest optymalna w tej implementacji memcpy?
Zainteresowało mnie napisanie memcpy() jako ćwiczenie edukacyjne. Nie będę pisał całego Traktatu o tym, co zrobiłem i o czym ... e nie jest potrzebny do buforowania docelowej lokalizacji) powinny być przydatne do kopiowania większych buforów. (@Zboson)
Dlaczego wektoryzacja pętli nie ma poprawy wydajności
Badam wpływ wektoryzacji na wydajność programu. W związku z tym napisałem następujący kod:
#include <stdio.h>
#includ ... go cyklu, aby ukończyć iterację po skompilowaniu z -O2.
[18]}PS: mój komputer to MacBook Pro core i5 @2.5 GHz (dwurdzeniowy)
ARM Cortex-A8: Jaka jest różnica między VFP a neonem
W procesorze ARM Cortex-A8 rozumiem czym jest NEON, jest to współprocesor SIMD.
Ale czy jednostka VFP (Vector Floating Point ... IMD (Single Instruction Multiple Data)."
To tak nie do końca jasne w co wierzyć, czy ktoś może rozwinąć więcej na ten temat?
Dobra przenośna biblioteka SIMD [zamknięta]
Czy ktoś może polecić przenośną bibliotekę SIMD, która udostępnia API c / C++, działa na rozszerzeniach Intel i AMD oraz Visu ... kompilacją i linkowaniem ich biblioteki i ich fora są kompletnie martwe. Czy komuś udało się gdzieś użyć Framewave?
Dzięki.
Równoległe dla vs omp simd: kiedy używać każdego?
OpenMP 4.0 wprowadza nowy konstrukt o nazwie "omp simd". Jakie są korzyści z używania tej konstrukcji w stosunku do starego "parallel for"? Kiedy każdy byłby lepszym wyborem?
Edytuj:
Oto interesujący Artykuł związany z dyrektywą SIMD.
C++ SSE SIMD framework [zamknięty]
Czy ktoś zna otwartoźródłową bibliotekę C++ x86 SIMD?
Intel dostarcza dokładnie to, czego potrzebuję w ich zintegrowanej bi ... e.
EDIT
Znam już wewnętrzne elementy dostarczane przez kompilatory. Potrzebuję wygodnego interfejsu, by z nich korzystać.
Jak wektoryzować z gcc?
Seria V4 kompilatora gcc może automatycznie wektoryzować pętle za pomocą procesora SIMD na niektórych nowoczesnych procesorach, takich jak AMD Athlon lub Intel Pentium/Core. Jak to się robi?
Wydajność matematyczna Haskell na operacji multiply-add
Piszę grę w Haskell, a moja obecna przepustka w interfejsie wymaga dużo proceduralnego generowania geometrii. Obecnie koncent ... else putStrLn $ name ++ " did not compile"
main = do
mapM_ (uncurry runCCmd) $ permfold prepCmd cBase cOptions
Odejmowanie spakowanych 8-bitowych liczb całkowitych w 64-bitowej liczbie całkowitej przez 1 równolegle, SWAR bez sprzętowego SIMD
Jeśli mam 64-bitową liczbę całkowitą, którą interpretuję jako tablicę spakowanych 8-bitowych liczb całkowitych z 8 elementami ... dla rozwiązania w C lub C++, które jest dość przenośne lub tylko teoria za nim, więc mogę zaimplementować własne rozwiązanie.
Wspólne techniki SIMD
Gdzie mogę znaleźć informacje o popularnych sztuczkach SIMD? Mam zestaw instrukcji i wiem, jak napisać nietrudny kod SIMD, al ... hnik SIMD też są dobre:) ARMv6 jest najbardziej ciekawe dla mnie, ale x86 (SSE,...) / Neon (W ARMv7) / inne też są dobre.
SSE-copy, AVX-copy i std::wydajność kopiowania
Starałem się poprawić wydajność operacji kopiowania przez SSE i AVX:
#include <immintrin.h>
const int sz = 1 ... o jest przyczyną wspomnianego efektu spadku wydajności i czy jest to wskazane jest ręczne wektoryzowanie operacji kopiowania?
Jakieś rozszerzenia Lispu dla CUDA?
Właśnie zauważyłem, że jednym z pierwszych języków dla Connection-Machine W. D. Hillisa był * Lisp, rozszerzenie Common Lispu ... alna.
Jak na razie oprócz nVidia SDK dla C / C++, znalazłem tylko PyCUDA, środowisko Pythona. Czy ktoś słyszał coś o Lispie?
GCC nie optymalizuje aligned STD:: array like C array
Oto kod, którego GCC 6 i 7 nie optymalizują podczas używania std::array:
#include <array>
static constexpr size_t my ... ie występuje. Jeśli używasz Clang, problem nie występuje.
Możesz zobaczyć to na żywo tutaj: https://godbolt.org/g/IXIOst
Czy R wykorzystuje SIMD podczas wykonywania wektorowych obliczeń?
Dane takie jak w R:
+---+---+
| X | Y |
+---+---+
| 1 | 2 |
| 2 | 4 |
| 4 | 5 |
+---+---+
Jeśli wektoryzowana operacja je ... u optymalizacji wydajności? Wydaje się, że to idealny przypadek, ale nie mogę znaleźć niczego, co potwierdzi moje przeczucie.
Jak porównać dwa wektory za pomocą SIMD i uzyskać pojedynczy wynik logiczny?
Mam dwa wektory po 4 liczby całkowite każdy i chciałbym użyć polecenia SIMD, aby je porównać (powiedzmy wygenerować wektor wy ... tor wyniku do wektora 4 zer i tylko wtedy, gdy są równe zrobić coś.
Czy wiesz, jakich poleceń SIMD mogę użyć, aby to zrobić?
Jakie są najlepsze sekwencje instrukcji do generowania stałych wektorowych w locie?
"najlepsza" oznacza najmniejszą liczbę instrukcji (lub najmniejszą liczbę uops, jeśli jakakolwiek Instrukcja dekoduje się do ... rumieniu instrukcji, ale to zwykle nie jest sensowne (nie oszczędza miejsca i zajmuje dużo miejsca w pamięci podręcznej uop.)
- 1
- 2