SIMD math-Bibliotheken für die SSE-und AVX

Ich bin auf der Suche nach SIMD math-Bibliotheken (vorzugsweise open source) für die SSE-und AVX. Ich meine zum Beispiel wenn ich eine AVX-register v mit 8 float-Werte will ich sin(v), um die Sünde aller acht Werte auf einmal.

AMD hat eine propreitery Bibliothek LibM http://developer.amd.com/tools/cpu-development/libm/ die einige SIMD math-Funktionen, aber LibM nur nutzt AVX, wenn er erkennt, FMA4, die Intel CPUs nicht haben. Auch ich bin nicht sicher, dass es vollständig verwendet AVX-wie alle Funktionsnamen Ende in s4 (d2) und nicht s8 (d4). Es geben eine bessere Leistung als die standard-Mathematik-Bibliotheken, die auf Intel-CPUs, aber ist es nicht viel besser.

Intel hat die SVML als Teil der C++ - compiler, aber die compiler-suite ist sehr teuer auf Windows. Darüber hinaus werden Intel-Krüppel, die Bibliothek auf nicht-Intel-CPUs.

Fand ich die AVX-Bibliothek, http://software-lisc.fbk.eu/avx_mathfun/, unterstützt ein paar math-Funktionen (exp, log, sin, cos, und sincos). Es gibt sehr schnelle Ergebnisse für mich, schneller als SVML, aber ich habe nicht geprüft, die Richtigkeit. Es funktioniert nur auf eine einzige floating-point und funktioniert nicht in Visual Studio (obwohl, dass wäre einfach zu beheben). Es basiert auf einem anderen SSE-Bibliothek.

Hat jemand irgendwelche anderen Vorschläge?

Edit: ich fand SO ein thread, der hat viele Antworten zu diesem Thema
Vektorgrafik-Trig-Funktionen in C?

  • Obwohl es eine proprietäre Lösung, die Intel Math Kernel Library ist eine ziemlich umfassende option. Allerdings führt es am besten auf Intel-CPUs nur. Ich glaube, es wurde bekannt in der Vergangenheit abzulenken, nach einem nicht optimierten code-Pfad bei der Ausführung auf einem nicht-Intel-Prozessor. Ich bin mir nicht sicher, ob das der Fall ist, auf aktuelle Versionen, wenn.
  • Hier können Sie Logarithmen: stackoverflow.com/a/45898937/1915854
  • Agner Fog ' s Vector Class Library ist unter der GPL. Es ist mehr ein wrapper für die Intel-Interna manuelle Vektorisierung bequemer, aber es gibt einige math-library-Funktionen wie exp und log.
InformationsquelleAutor | 2013-03-30
Schreibe einen Kommentar