Niedawno inżynier elektryk ostrzegł mnie przed używaniem procesorów graficznych do obliczeń naukowych (na przykład, gdy dokładność ma znaczenie), ponieważ nie ma żadnych zabezpieczeń sprzętowych, takich jak procesor. Czy to prawda, a jeśli tak, jak powszechny/istotny jest problem w typowym sprzęcie?Dokładność GPU do obliczeń naukowych
Odpowiedz
W rzeczywistości, nowoczesne procesory graficzne doskonale nadają się do obliczeń naukowych, a wiele aplikacji HPC jest co najmniej częściowo przenoszonych na procesory graficzne, ze względu na wydajność i efektywność energetyczną. W przeciwieństwie do starszych procesorów graficznych, nowoczesne (na przykład architektury NVIDIA Fermi lub Kepler) zapewniają w pełni wystandaryzowane formaty IEEE-754, zarówno z pojedynczą, jak i podwójną precyzją, więc powinieneś być w stanie używać ich tak samo, jak w nowoczesnych procesorach .
Znalazłem kilka (starszych) artykułów na ten temat, ale wygląda na to, że problem został naprawiony w kartach o pojemności obliczeniowej> = 2,0.
Obecne procesory graficzne nie obsługują podwójnej precyzji obliczeń i ich pojedynczej precyzji wsparcie pomija istotnych aspektach zmiennoprzecinkowej standardzie IEEE-754 [1], tak jako poprawnie zaokrąglone wyniki i prawidłowe zamknięcie systemu liczbowego. ... ... Nasze wyniki pokazują, że istnieją poważne błędy w wynikach procesorów graficznych w niektórych przypadkach brzegowych, w dodatku do niewłaściwej obsługi zdenormalizowanych liczb .
Karl E. Hillesland Anselmo Lastra "graficzny zmiennoprzecinkową Paranoia". In Proc. GP2, sierpień 2004.
Guillaume Da Graca i David Defour, "Implementacja operatorów pływak obrocie na grafice sprzętowych." In Proc. 7. Konferencja na liczbach rzeczywistych i komputery, lipiec 2006.
podwójnej precyzji (zdolność obliczeniowa CUDA 1.3 i wyżej) [14] odbiegają ze standardem IEEE 754: round-do -nearest-even jest jedynym obsługiwanym trybem zaokrąglania dla odwrotności, podziału i pierwiastka kwadratowego na . W jednostkach pojedyncza precyzja, denormały i sygnalizacyjne węzły NaN nie są obsługiwane; obsługiwane są tylko dwa tryby zaokrąglania IEEE (równe i od zera do nawet ), a są one określane według instrukcji, a nie w słowie kontrolnym; a dokładność podziału/pierwiastka kwadratowego jest nieznacznie niższa niż pojedyncza precyzja.
kalkulacja Właściwie najbardziej naukowe na ogół nie muszą być tak dokładne, ponieważ błędy pomiarowe i takie w dużej mierze przytłacza błędy wprowadzone przez zmiennoprzecinkowej zaokrąglenia (z wyjątkiem, być może w zdegenerowanych przypadkach, jak zsumowanie tablicę pływaków w zamówienie vs w odwrotnej kolejności, ale dostaniesz tego rodzaju problemy nawet w CPU i nic nie będzie ostrzegać, jak również, ponieważ działa tak, jak zostało to zaprojektowane).W informatyce ogólnej wystarczające jest przedstawienie wyniku w granicach określonego marginesu błędu i wykazanie, że margines błędu nie spowoduje problemów praktycznych.
Pływające punkty są szybkie, niekoniecznie dokładne, nawet w procesorze, dlatego uczono nas zawsze porównywania zmiennoprzecinkowych z epsilonem.
OTOH, obliczenia, które rzeczywiście wymagają precyzyjnych reguł zaokrąglania do ostatnich cyfr, takich jak teorie rachunkowe lub liczbowe, powinny uwzględniać arytmetykę ze stałym punktem (np. Moduł dziesiętny), która pozwala dokładnie określić zasady zaokrąglania.
NVIDIA opublikowała oficjalny dokument, który obejmuje szczegóły pracy z zmiennoprzecinkowych w ogóle, a na GPU w szczególności:
http://developer.download.nvidia.com/assets/cuda/files/NVIDIA-CUDA-Floating-Point.pdf
tak ... to prawda ... wszystkie te masywne klastry obliczeniowe zbudowane z Procesory graficzne są zupełnie bezużytecznymi i generalnie tylko generatorami liczb losowych. Cały sprzęt podlega przypadkowym błędom - pojedynczy foton o wysokiej energii emitowany przez zdarzenie rozpadu radioaktywnego w pakiecie ceramicznym może odwracać bity gdzieś wewnątrz procesora i całkowicie zabijać system ... lub może nie. –
@MarcB Nie jestem teoretykiem spisku! Zobacz linki w mojej odpowiedzi poniżej dla zilustrowania przeszłych problemów. Zasadniczo chcę wiedzieć, czy zostały one odpowiednio poprawione na nowszym sprzęcie. –