in einem schnellen attampt, habe ich versucht, AVX2-Daten (Typ __m256i) in einem Vektor zu speichern:store __m256i in std :: vector Erträgen Zugriffsverletzung nur im Release-Modus
__m256i values= _mm256_set_epi32(2, 4, 6, 8, 10, 12, 14, 16);
std::vector<__m256i> vecValues;
for (int k = 0; k < static_cast<int>(100); k++)
{
vecValues.push_back(values);
}
Mit VS2012, diesen Werken im Debug-Modus, aber geben Sie eine "Unhandled Ausnahme/Zugriffsverletzung" bei der Ausführung im Freigabemodus.
Kann jemand erklären, warum und wie die Daten korrekt speichern?
Vielleicht ist Ihre Variable nicht richtig ausgerichtet? –
Und selbst wenn Sie das tun könnten, macht das keinen Sinn. – harold
@harold Ich mache diese Art von Sache sehr viel (als rohe Arrays, nicht std :: vector) in Routinen, die komplett um den SIMD-Typ herum entwickelt sind. – Mysticial