2013-04-29 150 views
0

我想使用AVX優化一些整數(_int64)操作。但是,我甚至無法簡單地添加操作。它不斷告訴我非法指令。請問我可以糾正我做錯了什麼?謝謝執行AVX整數運算

for (int i = 0; i < 1; i+=4) 
{ 
    __m256i rA, rB, rC; 
    __m256i *iu, *ju, *ku; 

    iu = (__m256i *)(MatrixAiB1 + i); 
    ju = (__m256i *)(MatrixAjB1+ i); 
    ku = (__m256i *) (store+ i); 

    rA=_mm256_load_si256(iu); 
    rB=_mm256_load_si256(ju); 
    rC=_mm256_add_epi16(rA,rB); 
    _mm256_store_si256(ku,rC); 

} 
+0

看看cpuid:[here](http://msdn.microsoft.com/en-us/library/hskdteyh(v = vs.100).aspx)或[here](http:// en .wikipedia.org/wiki/CPUID) – neagoegab 2013-04-29 18:35:21

回答

5

您正在使用尚未得到廣泛支持的AVX 2指令集中的指令。非法指令異常表示您在不支持這些指令的機器上運行代碼。

這些指令今年首次在Haswell處理器中推出 - 所以「未得到廣泛支持」意味着「不受任何公共處理器支持」。

+0

Thiks很多。需要確認 – FrancFine 2013-04-29 17:54:23