avx

    3熱度

    2回答

    C++標準區分內置類型和struct或class類型。對於後者,允許超載運算符,例如+,*=或&,但不適用於內置類型,當適當的運算符由語言提供時。 AFAIK,標準中沒有提到SSE/AVX類型(但請糾正我),所以應該能夠聲明這些運營商。海灣合作委員會不允許,但國際刑事法院。哪一個是正確的? 我真的想要按位操作(如&=),但是,令人煩惱的是,GCC不提供它們(對於__m128),也不允許我聲明它們。

    4熱度

    3回答

    我已經找到了SSE移位指令可以相同數額上的所有元素只轉移: _mm_sll_epi32() _mm_slli_epi32() These shift all elements, but by the same shift amount. 是否有應用不同的方式轉移到不同的元素?類似這樣的: __m128i a, __m128i b; r0:= a0 << b0; r1:= a1 << b1;

    25熱度

    4回答

    是否有任何優秀的C/C++教程或示例用於學習英特爾SSE和AVX指令? 我發現一些關於微軟MSDN和Intel的網站,但它會是巨大的,從最基礎的理解..

    3熱度

    2回答

    我有AVX C++這樣的代碼,即Visual Studio 2010的下編譯罰款:然而, #include <immintrin.h> #include <iostream> int main() { float data[] = {0, 1, 2, 3, 4, 5, 6, 7}; __m256 ymm0 = _mm256_loadu_ps(data); //

    6熱度

    1回答

    在SSE,如果我有一個包含4個浮點即 A = a b c d ('a','b','c','d' are floats and 'A' is a 128-bit SSE register) 和 B = e f g h 然後如果我想一個128位寄存器 C = a e b f 我可以簡單地做: C = _mm_unpacklo_ps(A,B); 同樣的,如果我想 D = c g d h

    1熱度

    1回答

    當編譯爲支持AVX擴展的處理器(比如說-m64 -march=corei7-avx -mtune=corei7-avx是適用的)時,是否有意義同時使用-mfpmath=both -mavx鍵?是不是它導致編譯器同時使用三組指令(i87,SSE,AVX)?或者只是i87的標量(從某種意義上)而AVX僅適用於矢量?

    0熱度

    1回答

    是否-march=corei7-avx -mtune=corei7-avx或-march=corei7 -mtune=corei7 -mavx命令行選項來MinGW的與-mfpmath=sse命令行選項(或甚至-mfpmath=both)允許使用爲數學例程AVX指令的?請注意,來自here的--with-fpmath=avx不起作用(對於MinGW最近的版本,這是「無法識別的選項」)。

    4熱度

    2回答

    如何高效地訪問256位向量的元素?例如我計算點積與 c = _mm256_dp_ps(a, b, 0xff); 如何訪問c中的值呢?我需要同時獲得高的部分和低的部分,做我理解正確的話,我首先需要提取這樣的128個部分: r0 = _mm256_extractf128_ps(c,0); r1 = _mm256_extractf128_ps(c,1); ,然後才提取浮動: _MM_EXTRA

    3熱度

    2回答

    陣列我能有這樣的 union eight_floats_t { __m256 a; __m128 b[2]; }; eight_floats_t eight_floats; 工會不得不註冊一個256位的兩個128位部分的即時訪問? 編輯:我打算了解這種方法對性能的影響。

    2熱度

    1回答

    我使用Xcode 4.5.2和「Apple LLVM Compiler 4.1」(Clang)。 我試圖編譯一個代碼,嚴重依賴SSX內在函數啓用AVX(沒有_mm256 *函數和沒有__m256變量),並獲得較慢的代碼,然後我得到時,只有SSE 4.2啓用。 對此有任何合理的解釋嗎?