Es ist möglich, eine SIMD-basierte Vektorbibliothek in Haskell unter Verwendung von Ссылка Aber wird es einen Sinn ergeben? Ich bin auf einige Artikel gestoßen, die der automatischen SIMD-Optimierung in Haskell gewidmet sind, aber was ist der aktuelle Stand (2014)? Z.B. Wird Ссылка SIMD verwenden oder ist es besser, die optimierte Bibliothek manuell zu schreiben, indem Low-Level-SIMD-Primitive verwendet werden?
es gibt im Moment absolut keine automatische Vektorisierung mit SIMD in Ghc. keine
Die aktuellen simd-Primops lösen eine GHC-Panik aus, wenn sie mit dem nativen Code-Gen verwendet werden, obwohl sie mit dem Back-End -fllvm arbeiten.
diesen simd-Primopern fehlt es entscheidend an einem guten Datenmodell für das Datenmischen, das aktuelle Datenmodell wird eine ziemlich umfangreiche Überarbeitung benötigen, um simd shuffles richtig zu unterstützen.
Das llvm-Backend KÖNNEN bestimmte Auto-Vektorisierungsoptimierungen am Code vornehmen, aber ich würde im Allgemeinen die Auto-Vektorisierung als einen Bonus und nicht als eine Kernannahme dafür betrachten, wie Code optimiert wird, erfordert ein sorgfältiges Auditing validieren!
Erstens: Ich hatte keine Ahnung, dass GHC Primus für SIMD hatte. Netter Fund!
Übrigens, das ist mein Verständnis: