Najnowsze artykuły
- ArtykułyCzytasz książki? To na pewno…, czyli najgorsze stereotypy o czytelnikach i czytaniuEwa Cieślik234
- ArtykułyPodróże, sekrety i refleksje – książki idealne na relaks, czyli majówka z literaturąMarcin Waincetel11
- ArtykułyPisarze patronami nazw ulic. Polscy pisarze i poeci na początekRemigiusz Koziński40
- ArtykułyOgromny dom pełen książek wystawiony na sprzedaż w Anglii. Trzeba za niego zapłacić fortunęAnna Sierant13
Popularne wyszukiwania
Polecamy
Jason Sanders
1
7,6/10
Pisze książki: informatyka, matematyka
Ten autor nie ma jeszcze opisu. Jeżeli chcesz wysłać nam informacje o autorze - napisz na: admin@lubimyczytac.pl
7,6/10średnia ocena książek autora
6 przeczytało książki autora
2 chce przeczytać książki autora
0fanów autora
Zostań fanem autoraKsiążki i czasopisma
- Wszystkie
- Książki
- Czasopisma
CUDA w przykładach. Wprowadzenie do ogólnego programowania procesorów GPU
Jason Sanders, Edward Kandrot
7,6 z 5 ocen
9 czytelników 2 opinie
2012
Najnowsze opinie o książkach autora
CUDA w przykładach. Wprowadzenie do ogólnego programowania procesorów GPU Jason Sanders
7,6
Najlepsze obecnie procesory 4-rdzeniowe osiągają moc obliczeniową rzędu 12Gflops (floating point operations per second). NVIDIA swoimi układami GPU w architekturze CUDA (Compute Unified Device Architecture, czytamy [niestety] z rosyjska "kuda") bije tę wydajność na głowę. Nowa stacja Tesla K40, którą mamy teraz w pracy z pomocą 2688 rdzeni osiąga 5Tflops, a więc około 500 razy więcej... Nie jest to jeszcze moc superkomputera (mierzona w peta-flopsach),ale z drugiej strony Cray ostatnio buduje swoje superkomputery... na kartach NVIDII (Cray Titan)!
Mając pod nosem taką moc obliczeniową i biorąc pod uwagę, że muszę często czekać tygodniami na wynik obliczeń na zwykłej stacji roboczej, musiałem się tym bliżej zainteresować. I pierwszy program mam już napisany, z grubsza rozumiem na czym to polega. Książka się sprawdziła. Nauczyłem się uruchamiać procedury GPU równolegle w blokach i wątkach, nauczyłem się kopiować do nich dane z pamięci CPU, synchronizować w elementarny sposób ich pracę i poznałem bardzo ciekawy sposób buforowania danych poprzez interfejs pamięci tekstur. Książka omawia też bardziej zaawansowane techniki, jak obsługę strumieni (umożliwiającą zakładkowe wykonywanie obliczeń na GPU i transfery do pamięci przez DMA),pamięci dzielonej (w obrębie bloków) czy obsługę większej ilości urządzeń GPU.
Jedyne czego zabrakło to szczegółów architektury pamięci na pokładzie GPU--np. żeby świadomie sterować dostępem do pamięci tych tysięcy rdzeni aby nie musiały nawzajem czekać na siebie. Jest też jeden kiepski rozdział o współpracy z bibliotekami graficznymi, gdzie autorzy omawiają klasy dedykowane do animacji, a omawiając je zamiast podać interfejs zachowują się jakby te klasy sami tworzyli. Ciężko się w tym było połapać--co jest przeciążoną metodą interfejsu, co jest własnym wynalazkiem.
Można się też poprzyczepiać do paru drobiazgów: np. na s. 92 autorzy liczą pierwiastek z... r^2. Nie powiem, żeby to dobrze świadczyło o dbałości o szybkość działania kodu:) (wiadomo, że wynik to r).
Na s. 115 dodają dodatkową instrukcję warunkową (dstOut),która niepotrzebnie zmienia schemat programu więcej niż wymagane z uwagi na wprowadzenie pamięci tekstur. To może mylić.
W rozdziale o pamięci tekstur nie podano o ile wzrosła wydajność po zastosowaniu interfejsu tekstur.
Str. 131, 193, itd. "inicjacja" (seksualna?) zamiast inicjalizacji.
Str. 181 - brak cytowanej funkcji cudaThreadSynchronize()
Str. 196 - autorzy twierdzą, że są takimi mistrzami, że nigdy nie napisali kodu, który zawiesiłby komputer i nie potrzebują debuggera... Hmmm, biorąc pod uwagę, że potrafią wyciągać pierwiastek z r^2 (podobna niefrasobliwość, jak niedopilnowanie wskaźnika na granicy tablicy) nie bardzo w to wierzę, źle to świadczy o piszących takie słowa.
Str. 198 - opisują profiler, mierzący czas wywoływania poszczególnych funkcji programu. Po co zatem wcześniej "ręcznie" mierzyli czasy wywołań funkcji programu za pomocą zdarzeń CUDA?