2014-06-06 11 views
6

Gemäß der CUDA math APi sind viele mathematische Funktionen, wie Sinus und Kosinus, sowohl in Software (Funktionen) als auch in Hardware (intrinsisch) implementiert. Diese intrinsischen Elemente verwenden wahrscheinlich die speziellen Funktionseinheiten der GPU. Worauf kommt es bei der Software-Implementierung an? Ist das nicht langsamer als die Hardware-Implementierung?CUDA math API: Unterschied zwischen Funktionen und Eigen- schaften

Antwort

12

Die bessere Frage zu stellen ist "was ist der Sinn der intrinsics?".

Die Antwort liegt in Appendix D der Programmieranleitung. Die intrinsischen Funktionen für die transzendentalen, trigonometrischen und speziellen Funktionen sind schneller, haben jedoch mehr Domänenrestriktionen und eine im Allgemeinen geringere Genauigkeit als ihre Software-Gegenstücke. Für den primären Zweck der Hardware (dh Grafik) ermöglicht das Vorhandensein schneller Näherungsfunktionen für sin, cos, Quadratwurzel, reziprok usw. eine verbesserte Shader-Leistung, wenn die letztendliche mathematische Genauigkeit nicht kritisch ist. Für einige Rechenaufgaben sind auch die weniger genauen Versionen in Ordnung. Für andere Anwendungen sind die intrinsischen Eigenschaften möglicherweise nicht ausreichend.

Mit beiden kann der informierte Programmierer die Wahl haben: Geschwindigkeit oder Genauigkeit.

Verwandte Themen