Nie mogę znaleźć ich w Intel Intrinsic Guide v2.7. Czy wiesz, czy zestawy instrukcji AVX lub AVX2 je obsługują?Inteligencja rozproszenia w AVX
Odpowiedz
Nie ma rozrzut lub zebrać instrukcje w oryginalnej instrukcji AVX zestawu.
AVX2 dodaje zbieranie, ale nie rozrzuca instrukcji.
AVX512F zawiera instrukcje dotyczące rozpraszania i zbierania.
AVX512PF dodatkowo zapewnia warianty pobierania i rozrzucania z wyprzedzeniem.
AVX512CD dostarcza instrukcje wykrywania konfliktów w adresach rozproszonych.
Intel MIC (inaczej Xeon Phi, Knights Corner) zawiera instrukcje zbierania i rozpraszania, ale jest oddzielnym koprocesorem i nie może normalnie pracować z kodem x86-64.
Jaki kod x86_64 nie działa w KNC? – Jeff
@Jeff No it does not! KNC ma nawet osobny typ maszyny ELF: –
@Jeff: KNL (Knight's Landing) powinien uruchomić kod maszynowy x86_64, prawda? Będzie nawet dostępny jako procesor hosta, a nie tylko koprocesor. –
Jak wskazano w innej odpowiedzi, na razie nie można zaimplementować rozproszenia, nawet w przypadku AVX2. Jednak podręcznik do optymalizacji Intel dostarcza nam ręcznie napisaną wersję operacji rozproszonej. Jest na stronie 11-17 z podręcznika do optymalizacji Intela 2013. Zasadniczo robią to, że czytają indeks za każdym razem i zapisują go w rejestrze ogólnego przeznaczenia, powiedzmy, rax, a następnie przesyłają poprawną liczbę do rejestru xmm przy użyciu rzeczy takich jak vpalignr. Następnie przechowujemy wynik w pamięci za pomocą polecenia vmovss --- przenieś pojedynczy skalar do pamięci. Wydaje mi się, że będzie to miało niską wydajność, ale sądzę, że jest to jedyny sposób na rozproszenie rozproszenia danych w architekturze procesora X86. Na Xeon Phi rzeczy są piękne, zapewniają natywne wsparcie dla operacji rozpraszania, a pierwszym opiem jest oczywiście lokalizacja pamięci. Więc wierzę, że jeśli twój kod wymaga dużo zebrania i rozproszenia, przejście na Xeon Phi będzie dobrym wyborem. Proszę odpowiedzieć, aby powiedzieć mi, czy coś jest nie tak w mojej odpowiedzi.
Powodzenia!
xiangpisaiMM
Dzięki za twój wgląd, moja nadzieja jest bardziej w AVX3 (ponieważ prawdopodobnie przyniesie rozproszenie natywne dzięki unifikacji instrukcji simd Core i MIC). – Stringer
przesuń, a następnie przechowuj dźwięki wolniej niż za pomocą 'extractps', ponieważ element do wyodrębnienia jest stałą czasu kompilacji. A może ta sama prędkość, ale mniejszy rozmiar kodu, ponieważ wciąż musi korzystać z portu przetasowania. –
@xian, Czy istnieje sposób, aby się z Tobą skontaktować? – Royi
- 1. Jak wykryć dostępność SSE/SSE2/AVX/AVX2/AVX-512/AVX-128-FMA/KCVI podczas kompilacji?
- 2. SIMD (AVX) porównaj
- 3. Tworzenie gier i sztuczna inteligencja z PHP
- 4. Kolory zagubione w Matplotlib 3D wykres rozproszenia
- 5. Jak wybrać porównania predykatów AVX
- 6. Jak inkrementować wektor w AVX/AVX2?
- 7. AVX 256-bitowy odpowiednikiem _mm_load1_ps
- 8. Zmodyfikowany widżet rozproszenia kivy nie aktualizuje transformacji
- 9. Działka rozproszenia Matplotlib z nieznanym błędem
- 10. Różnica pomiędzy AVX instrukcji vxorpd i vpxor
- 11. Używanie AVX z GCC - brak avxintrin.h
- 12. Biblioteki matematyczne SIMD dla SSE i AVX
- 13. SSE działa wolno po użyciu AVX
- 14. .NET Framework 4.5 zapewnia obsługę SSE4/AVX?
- 15. Mieszanie powierzchni i wykresu rozproszenia w pojedynczej działce 3D
- 16. Punkty rozproszenia w kolorze R na podstawie wartości
- 17. Jak znaleźć poziomą wartość maksymalną w 256-bitowym wektorze AVX
- 18. Odpowiednik SSE unpacklo_ps/unpackhi_ps w AVX (dla podwójna)
- 19. Wyświetl wartości wykresu po najechaniu myszą. - Wykryj punkty rozproszenia
- 20. d3.js: Jak dodać etykiety do rozproszenia punktów na wykresie
- 21. Szybki produkt z kropką za pomocą intrisics SSE/AVX
- 22. Najszybszy sposób na zrobienie sumy wektorowej z instrukcjami AVX
- 23. Jak skonfigurować projekt WebStorm/PhpStorm, aby inteligencja kodu JS działała dobrze dla projektów Node.js?
- 24. Linux: Kiedy użyciu rozproszenia/zebrania IO (readv, writev) w porównaniu do dużej buforze fread
- 25. Instrukcje dotyczące kodu złożonego/instrukcji AVX dla mnożenia liczb zespolonych. (Montaż inline w GCC)
- 26. mają różne optymalizacje (zwykły, SSE, AVX) W tym samym wykonywalny z C/C++
- 27. Intel AVX: Dlaczego w przypadku zmiennoprzecinkowej zmiennoprzecinkowej nie ma wersji 256-bitowej produktu dot?
- 28. Highcharts: Oś X i Y krzyżują się na zero na wykresie rozproszenia
- 29. Sterowanie wartością alfa na wykresie rozproszenia 3D za pomocą Pythona i matplotlib
- 30. wykresy rozproszenia matplotlib nie wyświetlają się, gdy są wypełnione przy użyciu pętli
Zgromadzone ładunki: http://software.intel.com/sites/products/documentation/studio/composer/en-us/2011Update/compiler_c/intref_cls/common/intref_bk_avx2_masked_gather.htm - I don” t widzimy rozproszonego sklepu instrinsics choć –
From RWT: _ [AVX2 nie zawiera instrukcji rozproszonych (tj. adresowanych sklepów wektorowych), z powodu komplikacji z modelem zamawiania pamięci x86 i buforami ładowania/przechowywania.] (http: // www .realworldtech.com/haswell-cpu/2 /) _ – Stringer