simd

    14熱度

    1回答

    我正在運行一些使用System.Numerics.Vector<T>的C#代碼,但據我所知我沒有得到SIMD內在函數的全部好處。我在Update 1中使用Visual Studio Community 2015,而我的clrjit.dll是v4.6.1063.1。 我在實現AVX指令集擴展的Intel Core i5-3337U Processor上運行。因此,我認爲,我應該能夠在256位寄存器上

    2熱度

    3回答

    我正在使用AVX內在函數進行矢量化,我想將像1.0這樣的常量浮點數填充到矢量__m256中。所以,在一個註冊我有一個向量{1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0} 有誰知道如何做到這一點? 它類似於這個問題constant float with SIMD 但是我使用AVX不SSE

    4熱度

    1回答

    我想要使用OpenMP 4.0的simd功能矢量化嵌套循環,但恐怕我做錯了。我的循環看起來像這樣: do iy = iyfirst, iylast do ix = ixfirst, ixlast !$omp simd do iz = izfirst, izlast dudx(iz,ix,iy) = ax(1)*(u(iz,ix,iy) - u(i

    4熱度

    1回答

    我正在優化圖像上的高斯模糊算法,我想用__m256內在函數替換下面代碼中的浮點緩衝區[8]的用法變量。什麼系列的指令最適合這項任務? // unsigned char *new_image is loaded with data ... float buffer[8]; buffer[x ] = new_image[x]; buffer[x + 1] = ne

    4熱度

    2回答

    我需要比較大量小尺寸(高達200x200)的相似圖像。 所以我嘗試實現SSIM(結構相似性參見https://en.wikipedia.org/wiki/Structural_similarity)算法。 SSIM需要計算兩個8位灰度圖像的協方差。 一個簡單的實現看起來像: float SigmaXY(const uint8_t * x, const uint8_t * y, size_t siz

    3熱度

    1回答

    我不知道OpenMP 4是否支持此循環。有和沒有pragma的速度是相同的。 #pragma omp for simd for (size_t i = 0; i < col; i++) { C[i] += A[i]* B[i]; }

    1熱度

    2回答

    什麼是加載在x64 YMM寄存器在任何位置 i.e. i want to load for example 1, 6, 22, 43 均勻地隔開,即一組連續的雙打 0 1 2 3 4 5 6 7 8 9 10 .. 100 And i want to load for example 0, 10, 20, 30 4雙打 4雙打最有效的方式

    2熱度

    1回答

    我試圖移植一個SSE函數,它可以得到兩個8位無符號整數數組的絕對差值。 它看起來像: uint64_t AbsDiffSum(const uint8_t * a, const uint8_t * b, size_t size) { assert(size%16 == 0); __m128i _sum = _mm_setzero_si128(); for(size_t

    25熱度

    2回答

    TL; DR:爲什麼包裝System.Numerics.Vectors類型昂貴,有什麼我可以做的呢? 考慮下面的代碼: [MethodImpl(MethodImplOptions.NoInlining)] private static long GetIt(long a, long b) { var x = AddThem(a, b); return x; } pri

    0熱度

    1回答

    我有一個__m512d內在向量,我需要他的元素的總和。有沒有簡單的方法來做到這一點?我專注於計算性能,所以我需要快速執行此操作。我對內在的知識不足以自己去做,所以我需要你的幫助。 謝謝:)