Als Titel finde ich eine Vektor / Matrix-Bibliothek in C, die für iPhone / iPod-Prozessoren optimiert ist. Oder einfach nur schnell.
--- (bearbeiten) ---
Es tut mir leid für eine unklare Frage. Ich bin auf der Suche nach schnellen lib für kommerzielle Spiele für iPhone / iPod. Also GPL lib kann nicht verwendet werden.
Ich werde jedoch aufhören, die schnellste lib zu finden, das ist vielleicht bedeutungslos.
Now (2010.06.26) Accelerate Framework auf iOS4, so dass vDSP / BLAS Funktionen verfügbar sind.
Dies verwendet Hardwarefunktionen (CPU oder SIMD), um Gleitkommaoperationen zu beschleunigen, so dass eine höhere Geschwindigkeit (2 ~ 4.5x Durchschnitt, 8x Maximum) und weniger Energie (0.25x Maximum) durch diese Verwendung erreicht werden kann.
Danke Leute für andere Antworten.
Hängt sehr von Ihren Bedürfnissen ab, wenn Sie gerade gerade Fließkomma-Mathematik verwenden, werden Sie wahrscheinlich feststellen, dass der Compiler die Fließkommazahl der Software verwendet, was sehr langsam ist. In Schritt eins wird also sichergestellt, dass Sie die Hardware-Gleitkommaeinheit verwenden, die im iPhone-Prozessor verfügbar ist.
Schritt zwei verwendet eine bereits gut etablierte Bibliothek, es gibt mehrere, Hassan hat Ihnen bereits einen Link zur GNU GSL zur Verfügung gestellt, was nett ist.
Der nächste Schritt wäre, die VFP SIMD-ähnlichen Fähigkeiten zu nutzen. Das VFP ist nicht wirklich SIMD, sondern stellt SIMD-ähnliche Anweisungen bereit, für die die einzelnen Operationen nacheinander ausgeführt werden. Der Vorteil der Verwendung dieser Anweisungen besteht darin, dass der Programmtext kürzer ist, sodass der Anweisungscache besser verwendet werden kann und weniger Probleme bei fehlenden Verzweigungsvorhersagen usw. auftreten. Ich bin mir jedoch nicht bewusst, dass eine Vektorbibliothek die Vorteile von VFP ausnutzt, Sie müssten eine gute Suche durchführen und Ihre eigenen schreiben, wenn sie nicht verfügbar ist.
Wenn Sie schließlich noch mehr Geschwindigkeit benötigen, sollten Sie die echte SIMD-Einheit im iPhone-Prozessor verwenden. Diese Einheit ist jedoch keine Gleitkommaeinheit, sondern eine Ganzzahleinheit. Also, vorausgesetzt, Sie wollen echte Zahlen, Sie werden mit Festpunkt stecken, es hängt von Ihrer Anwendung ab, ob Sie damit durchkommen können. Wieder ist mir keine Vektorbibliothek bekannt, die Festkommaarithmetik unter Verwendung der SIMD-Einheit des iPhone-Prozessors bietet, so dass Sie wiederum eine gründliche Suche benötigen und sich möglicherweise selbst die Hände schmutzig machen.