Zgodnie z CUDA math APi, wiele funkcji matematycznych, takich jak sinus i cosinus, jest zaimplementowanych zarówno w oprogramowaniu (funkcje), jak iw sprzęcie (wewnętrzne). Te elementy wewnętrzne prawdopodobnie wykorzystują specjalne jednostki funkcji GPU, więc jaki jest sens wdrożenia oprogramowania? Czy nie jest to wolniejsze od implementacji sprzętowej?CUDA matematyka API: różnica między funkcjami a samoistnością
Odpowiedz
Lepszym pytaniem, które należy zadać, jest "jaki jest sens samoistności?".
Odpowiedź znajduje się w przewodniku programowania Appendix D. Wewnętrzne właściwości funkcji transcendentalnych, trygonometrycznych i specjalnych są szybsze, ale mają więcej ograniczeń domenowych i ogólnie mniejszą dokładność niż ich odpowiedniki w oprogramowaniu. Dla podstawowego celu sprzętu (tj. Grafiki), posiadanie szybkich przybliżonych funkcji dla grzechu, cos, pierwiastka kwadratowego, odwrotności itp. Pozwala na lepszą wydajność cieniowania, gdy ostateczna matematyczna dokładność nie jest krytyczna. W przypadku niektórych zadań obliczeniowych mniej dokładne wersje są również w porządku. W przypadku innych aplikacji samoistne może nie być wystarczające.
Posiadanie obu pozwala poinformowanemu programiście mieć wybór: prędkość lub dokładność.