Witajcie. Pisze właśnie benchmarka, w którym implelentuję równoległą wersję algorytmu z wykorzystaniem instrukcji intrinsic oraz OpenMP. Problem pojawia się, kiedy chcę zapisać dane z wektora do pamięci - _mm512_store_pd(). Odczyt danych nie stanowi problemu. W przypadku zapisu wydajność algorytmow spada blisko 7 krotnie. W czym może leżeć problem? Jak rozwiązać ten problem?
Masz Xeona Phi? o_O
Tu gość ma podobny problem: http://stackoverflow.com/questions/23757939/is-intel-xeon-phi-used-intrinsics-get-good-performance-than-auto-vectorization
Wlascicielem nie jestem, ale mam możliwość korzystania :) Czytalem ten temat na stackoverflow. Zwykly algorytm równoległy bez wektoryzacji osiaga przyspieszenie ponad 230 krotnie (przy 240 wątkach). Od kilku dni szukam rozwiązania, ale nic. Dlatego zgłosiłem się o pomoc. :)
A nie robisz tych samych błędów? Np load_ps a później store_pd, albo zapis pod niewyrównane adresy.
Nie nie nie ma takiej możliwości. Dopasowanie adresów też zadabałem. Wydaje mi się, ze zapis do pamięci jest problemem, kiedy 4 wątki z jednego rdzenia probują zapisać dane i sie robi problem, ale do konca nie jestem pewien.