avx2

    2熱度

    2回答

    我正在優化一個函數,我想擺脫慢循環。我正在尋找一種更快的方法來將矩陣的每一行乘以一個向量。 我不是在尋找一種'古典'的乘法。 例如,我有一個矩陣,有1024列,20行,矢量長度爲1024.結果,我想有矩陣1024 x 20,每行乘以矢量。 我現在在做什麼我在for循環遍歷矩陣行並使用mkl v?Mul執行當前矩陣行和向量的元素乘法。任何想法如何改善這一點? 的問題是,複製Multiply rows

    4熱度

    1回答

    比方說,例如,我有2個變量__m256i叫rows和cols,在他們裏面的值是:現在 rows: 0, 2, 7, 5, 7, 2, 3, 0 cols: 1, 2, 7, 5, 7, 2, 2, 6 ,這些值表示爲8個點的x和y位置,從而,在這種情況下,我將有以下幾點: p0: [0, 1], p1: [2, 2], p2: [7, 7], p3: [5, 5] p4: [7, 7],

    3熱度

    1回答

    在AVX/AVX2中,我只能找到_mm256_stream_load_si256(),這是__m256i。有沒有辦法流式加載__m256d,爲什麼? (我想加載它沒有污染CPU緩存) 是否有任何障礙做下列(積極鑄造)? __m256d *pDest = /* ... */; __m256d *pSrc = /* ... */; /* ... */ const __m256i iWeigh

    0熱度

    2回答

    您能給出AVX2中的條件指令列表嗎? 到目前爲止,我已經找到了以下內容: _mm256_blendv_ *從a和b選擇基於面具c 是否有類似條件乘法和條件增加,等等? 此外,如果指令採取imm8計數(如_mm256_blend_ *),您可以解釋如何在矢量比較後獲得imm8?

    5熱度

    1回答

    是否有將AVX寄存器的64位組件的高/低32位組件重新打包到SSE寄存器的內在或另一種有效方法?使用AVX2的解決方案是可以的。 到目前爲止我用下面的代碼,但探查說,這是對Ryzen 1800X慢: // Global constant const __m256i gHigh32Permute = _mm256_set_epi32(0, 0, 0, 0, 7, 5, 3, 1); // ..

    5熱度

    1回答

    我想從一個由8個整數組成的另一個__mm256i offset指定的8個位置從一個寄存器變量__mm256i src中提取8個比特。 例如:如果offset是[1,3,5,21,100,200,201,202],我想從src獲得第1,3,5,10,100,121,202位,並將它們打包到int8。 這個問題類似於Extracting bits using bit manipulation,但我想用

    2熱度

    3回答

    _mm256_blendv_pd()查看位置63,127,191和255中的位。是否有有效的方法將uint8_t的4個低位分散到AVX寄存器的這些位置? 或者,是否有一種有效的方式來廣播這些位,這樣就像_mm256_cmp_pd()的結果一樣,在AVX寄存器的相應64位組件中重複每個位? 指令集是AVX2(Ryzen CPU,如果需要其他功能的話)。

    0熱度

    1回答

    我目前正在處理一個處理圖像的項目。爲了加速這個過程(並增加我的知識),我決定使用SIMD指令編寫一些基本功能。 使用for循環的代碼是 int idx; uint16_t* A, B, C; float gAlpha = 0.8; float alpha = 0.2; for (size_t rw = 0; rw < height; rw++) { for (size_t cl

    8熱度

    1回答

    高效方式如何設置到1有效地與AVX2 第一N位 最後N位 的__m256i,其餘設置爲0? 這些是2個單獨的操作,用於位範圍的尾部和頭部,當範圍可以在__m256i值的中間開始和結束時。範圍中佔據完整__m256i值的部分用全部 - 0或全部1掩碼進行處理。

    0熱度

    1回答

    英特爾工程師寫道,我們應該使用VZEROUPPER/VZEROALL以避免在所有處理器上昂貴的過渡到非VEX狀態,包括未來的至強處理器,但不是在至強融核:https://software.intel.com/pt-br/node/704023 人們還測量並發現VZEROUPPER和VZEROALL是昂貴的上騎士降落: 36在64位模式(30個時鐘在32位模式)兩者接收指令的時鐘週期。 查看上面的鏈