c++ SSE SIMD framework
Kennt jemand ein open-source-C++ x86-SIMD-Interna-Bibliothek?
Intel liefert genau das, was ich in den integrated performance primitives-Bibliothek, aber kann ich nicht benutzen, weil die Urheber-und alle über dem Platz.
BEARBEITEN
Ich weiß schon, die systeminterne Funktionen, sofern vom Compiler. Was ich brauche, ist eine komfortable Schnittstelle, um Sie zu benutzen.
InformationsquelleAutor der Frage | 2011-02-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werfen Sie einen Blick auf libsimdpp header-nur C++ - SIMD-wrapper-Bibliothek.
Die Bibliothek unterstützt verschiedene sets von Anweisungen über eine einzige Schnittstelle: SSE2, SSE3, SSSE3, SSE4.1, AVX, AVX2, AVX512F, XOP, FMA3/4, NEON, NEONv2, Altivec. Alle von Clang, GCC, MSVC und ICC sind suported.
Unterschiede zwischen den Befehlssätzen behoben werden, durch die Umsetzung der fehlenden Anleitung, wie eine Kombination aus unterstützten. Als bonus, es ist möglich, kompilieren Sie den gleichen code für verschiedene Befehlssätze link die resultierenden Objekt-Dateien zu einer einzigen ausführbaren Datei, und verwenden Sie eine bequeme dynamic-dispatch-Mechanismus zum ausführen der Umsetzung die meisten zugeschnitten auf die aktuellen Prozessor.
InformationsquelleAutor der Antwort
Gibt es mehrere Bibliotheken, die in den letzten Jahren entstanden abstrakte explizite SIMD-Programmierung. Die wichtigsten:
Die wichtigste Sache zu suchen ist, um eine brauchbare Menge von Typen, die es richtig Abstrakt die besten verfügbaren SIMD-Register und Anweisungen für ein bestimmtes Ziel. Und, natürlich, die volle Portabilität auf Systeme ohne SIMD-Unterstützung.
InformationsquelleAutor der Antwort Vir
Schrieb ich eine GLSL-Stil-Bibliothek das konvertieren in nahezu perfekter Qualität ASM-code.
Eine sehr häufige operation - Kreuz Produkt:
umgewandelt werden würde, um diese assemly-code mithilfe von glsl-sse2:
Bitte beachten die Bibliothek ist nicht perfekt, noch nicht, und wahrscheinlich haben unfound Fehler, da es noch neu ist.
InformationsquelleAutor der Antwort LiraNuna
Haben Sie einen Blick auf AMD SSEPlus Projektkönnte das sein, was Ihr nach
InformationsquelleAutor der Antwort Necrolis
Microsoft hat soeben seine neuen "DirectXMath" Bibliothek. Es enthält Unterstützung für SSE2 und NEON-Interna. Die Dokumentation sieht anständig zu.
InformationsquelleAutor der Antwort Jarrod Smith
Vc ist ein weiterer C++ - Bibliothek, die Vektor-Klassen und ermöglicht das schreiben Vektorisierung, die unabhängig von der eigentlichen Befehlssatz verwendet wird.
InformationsquelleAutor der Antwort Robert Rüger
Vielleicht möchten Sie sich bei macstl - obwohl es ursprünglich entwickelt für den Mac (PowerPC) es funktioniert jetzt auch auf Linux-und x86 zu.
Auch, wenn Sie mit Bildern arbeiten, betrachten Sie dann OpenCV - dies hat die SSE-optimierte Routinen für viele gängige Bildverarbeitungs-Aufgaben und hat die C-und C++ - APIs.
InformationsquelleAutor der Antwort Paul R
Welcher compiler? Visual-Studio-C++ - compiler unterstützt eine Reihe von SIMD, SIMD2-und MMX-systeminterne Funktionen.
InformationsquelleAutor der Antwort selbie