Ich versuche, einige der Intel Intrinsics zu testen, um zu sehen, wie sie funktionieren. So habe ich eine Funktion, die für mich zu tun, und das ist der Code:Problem mit __m256 Art von Intel intrinsics
void test_intel_256()
{
__m256 res,vec1,vec2;
__M256_MM_SET_PS(vec1, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0);
__M256_MM_SET_PS(vec1, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0);
__M256_MM_ADD_PS(res,vec1,vec2);
if (res[0] ==9 && res[1] ==9 && res[2] ==9 && res[3] ==9
&& res[4] ==9 && res[5] ==9 && res[6] ==9 && res[7] ==9)
printf("Addition : OK!\n");
else
printf("Addition : FAILED!\n");
}
Aber dann diese Fehler ich erhalte:
error: unknown type name ‘__m256’
error: subscripted value is neither array nor pointer nor vector
error: subscripted value is neither array nor pointer nor vector
error: subscripted value is neither array nor pointer nor vector
error: subscripted value is neither array nor pointer nor vector
error: subscripted value is neither array nor pointer nor vector
error: subscripted value is neither array nor pointer nor vector
error: subscripted value is neither array nor pointer nor vector
error: subscripted value is neither array nor pointer nor vector
error: subscripted value is neither array nor pointer nor vector
Was bedeutet, dass der Compiler nicht die __m256 Typ erkennt und infolgedessen kann er die Res nicht als ein Array von Schwimmern sehen. Ich bin auch diese Bibliotheken mmintrin.h, emmintrin.h, xmmintrin.h und ich bin mit Eclipse Mars
So will ich wissen, was ist, ob das Problem vom Compiler oder die Hardware oder etwas anderes? und wie kann ich es lösen? Vielen Dank!
Sind Sie sicher, dass Ihre CPU AVX unterstützt? Welche CPU verwendest du? –
@DanielMargosian: Selbst wenn ihre CPU AVX nicht unterstützt, sollte der Compiler sie trotzdem kompilieren können. (Kreuzkompilierung existiert). – zindorsky
Meine CPU ist ** Intel® Core ™ i7-4700MQ CPU @ 2,40 GHz × 8 ** und es unterstützt ** SSE4.1/4.2, AVX 2.0 ** –