Szukam wysokiej wydajności sumy multiscan/multi prefix-sum (wiele wierszy w jednym wykonaniu jądra) dla mojego projektu w CUDA.Funkcja sumowania/skanowania prefiksu o wysokiej wydajności w CUDA, szukanie ciągu, zmiana biblioteki cuDPP
Próbowałem tej z biblioteki Thrust, ale jest zbyt powolny. Również zawiesza się po kompilacji flagami debugowania nvcc (-g-G).
Po moim niepowodzeniu z Thrust skupiłem się na bibliotece cuDPP, która kiedyś była częścią zestawu narzędzi CUDA. Wydajność cuDPP jest naprawdę dobra, ale biblioteka nie jest aktualna z najnowszą cuda 5.5 i są pewne globalne problemy z naruszeniem pamięci w funkcji cudppMultiScan() podczas debugowania za pomocą modułu sprawdzania pamięci. (cuda 5.5, nsight 3.1, visual studio 2010, gtx 260 cc 1.3)
Czy ktoś ma pojęcie, czego używać zamiast tych dwóch bibliotek?
R.
Czy obejrzałeś [ArrayFire] (http://accelereyes.com/arrayfire), nad którym pracujemy w AccelerEyes? – arrayfire
Nie, nie widziałem tego wcześniej, wygląda całkiem interesująco! dzięki! :) co z jego wydajnością? Czy jest to biblioteka bardziej wydajna lub zorientowana na wydajność? – user1946472
Jeśli chcesz użyć narzędzia Thrust do zeskanowania wierszy macierzy, nie wywołuj wielokrotnie frazy "inclusive_scan". Przypisanie każdego wiersza indeksu i użycie 'inclusive_scan_by_key'. Możesz dostosować ten [przykład] (https://github.com/thrust/thrust/blob/master/examples/sum_rows.cu). –