Wie Berechne Vektor-Skalarprodukt SSE Verwenden Intrinsische Funktionen in C

Ich versuche multiplizieren von zwei Vektoren zusammen, wo jedes element des einen Vektors multipliziert mit dem element in der gleichen index auf den anderen Vektor. Dann möchte ich die Summe aller Elemente des resultierenden Vektors zu erhalten, eine Zahl. Zum Beispiel, die Berechnung Aussehen würde, wie dies für die Vektoren {1,2,3,4} und {5,6,7,8}:

1*5+2*6+3*7+4*8

Im wesentlichen, ich nehme das Skalarprodukt der beiden Vektoren. Ich weiß, es ist eine SSE-Befehl, um dies zu tun, aber der Befehl nicht über eine systeminterne Funktion zugeordnet. An dieser Stelle möchte ich nicht zu schreiben, inline-Montage in meinem C-code, so möchte ich nur systeminterne Funktionen. Dies scheint eine gemeinsame Berechnung, so bin ich überrascht von mir selbst, dass ich konnte nicht finden, die Antwort auf Google.

Hinweis: ich bin die Optimierung für eine spezielle micro-Architektur, die unterstützt bis zu SSE 4.2.

Vielen Dank für Ihre Hilfe.

InformationsquelleAutor Sam | 2010-11-08
Schreibe einen Kommentar