Reduzierung der vorzeichenlosen Bytes ohne Überlauf mithilfe von SSE2 auf Intel

Ich versuche auf einem Intel i3 Prozessor eine Summenreduktion von 32 Elementen (jeweils 1 Byte Daten) zu finden. Ich tat dies:

s=0; 
for (i=0; i<32; i++)
{
    s = s + a[i];
}  

Es nimmt jedoch mehr Zeit in Anspruch, da meine Bewerbung eine Echtzeit-Bewerbung ist, die viel weniger Zeit benötigt.Bitte beachten Sie, dass die Endsumme mehr als 255 betragen kann.

Gibt es eine Möglichkeit, dies mithilfe von SIMD SSE2-Anweisungen auf niedriger Ebene zu implementieren? Leider habe ich noch nie SSE verwendet. Ich habe versucht, für diesen Zweck nach der Funktion sse2 zu suchen, aber sie ist auch nicht verfügbar. Ist es (sse) garantiert, die Rechenzeit für solch kleine Probleme zu reduzieren?

Irgendwelche Vorschläge??

Hinweis: Ich habe ähnliche Algorithmen mit OpenCL und CUDA implementiert und das hat sehr gut funktioniert, aber nur, wenn das Problem sehr groß war. Bei kleinen Problemen waren die Overhead-Kosten höher. Nicht sicher, wie es auf SSE funktioniert

Antworten auf die Frage(2)

Ihre Antwort auf die Frage