Ich habe mich in letzter Zeit gefragt, wie GPUs Sinus und Cosinus berechnen, und Google hat mir nicht geholfen, eine genaue Antwort zu finden.
Anfangs dachte ich, dass die GPU eine Art Nachschlagetabelle verwenden würde, um die Berechnungen so schnell wie möglich durchzuführen. Aber dann wurde mir klar, dass das Speichern aller Sündenwerte in einer Tabelle im Bereich von Doppelwerten zwischen [0, 2 * pi] eine massive und daher keine gültige Option wäre.
Die Tabelle könnte möglicherweise in der Auflösung verkleinert werden, und die fehlenden Werte für eine Suche können dann lerped werden. Dies führt jedoch zu einem möglichen Fehler, der sich bei mehrmaliger Durchführung der Berechnung zu größeren und nicht akzeptablen Fehlern ausbreiten kann.
Meine letzte Idee ist dann, dass sie eine Taylor-Näherung verwenden könnten, aber das würde einige Arithmetik beinhalten, die für eine GPU möglicherweise zu langsam ist. Die Frage ist also, was verwenden GPUs, um die Sinuswerte zu berechnen? Sind es Nachschlagetabellen, Näherungswerte oder eine Mischung aus beiden? Und möglicherweise verwenden sie dieselbe Methode für andere Berechnungen wie sqrt ()?