intrinsics

    3熱度

    1回答

    我需要使用16位值(正值),並提升他們到32位。 採用SIMD(我只限於SSE3),這裏是我想出了兩個選項: reg_xmm0 = _mm_loadu_si128((const __m128i *)(Src)); reg_xmm2 = _mm_loadu_si128((const __m128i *)(Src+8)); reg_xmm1 = _mm_unpackhi_epi16(reg_xm

    0熱度

    2回答

    基於我得到的結果和所提供的文檔,我總結出使用非平面鑽機的校準在OpenCV中不起作用(它們嚴重依賴於初始猜測)。根據它們的功能calibrateCamera 該算法執行以下步驟中的文檔: 計算初始固有參數(僅適用 爲平面校準模式的選項)或從讀取它們輸入 參數。除非某些CV_CALIB_FIX_K?失真係數全部設置爲0,否則初始化爲零。被指定。 估計最初的 攝像機姿態,好像內部參數已經知道。 這是使

    6熱度

    2回答

    我正在瀏覽AVX-512中的指令集,並注意到一組fixup指令。一些examples: _mm512_fixupimm_pd, _mm512_mask_fixupimm_pd, _mm512_maskz_fixupimm_pd _mm512_fixupimm_round_pd, _mm512_mask_fixupimm_round_pd, _mm512_maskz_fixupimm_r

    1熱度

    1回答

    我上運行64位Windows 7,與2015年VS向相反的文檔 https://msdn.microsoft.com/en-us/library/bb384809.aspx __lzcnt()將返回31 - (前導零計數)。 即 __lzcnt(2)= 1; 這是一個已知的錯誤嗎?或者我錯過了什麼?

    1熱度

    2回答

    我發現下面的SSE2代碼寫成乘以2x2矩陣。任何人都可以解釋我的代碼是如何執行的。當我通過代碼時,我感覺它只是將值添加到C(2x2)矩陣(C [0],C [3])的兩個位置中。「lda是大矩陣的大小,A,B和C是2×2矩陣」 static void simd_2x2(int lda, double* A, double* B, double* C) { __m128d a,b1,b2,

    1熱度

    1回答

    我正在使用AVX內在函數,但由於除了基於_mm256的內在函數以外的其他所有內容,MSVC都會生成非-vex指令,所以我需要使用/ arch:AVX編譯整個源代碼。項目的其餘部分使用/ arch:SSE2進行編譯,以便它可以在較舊的CPU上運行,並且我正在手動檢查AVX是否可用。 包含AVX代碼的源代碼(爲AVX編譯)包含一個巨大的模板庫和其他東西,只是爲了讓它們定義。是否有可能編譯器/鏈接器決定

    2熱度

    2回答

    我試圖優化兩種c型陣列的常量和小尺寸以及短型的點積。 我已經閱讀了關於SIMD內在函數的許多文檔以及許多關於使用這個intrisincs進行點產品優化的博客文章/文章。 但是,我不明白如何使用此內在函數短陣列上的點積可以給出正確的結果。在製作點積時,計算出的值可以是(並且總是,在我的情況下)大於SHORT_MAX,所以有和。因此,我將它們存儲在一個雙重類型的變量中。 正如我所理解的使用simd內在

    0熱度

    1回答

    我有一個在Xeon Phi上運行的C代碼,包含許多AVX-512內在函數。 代碼編譯好,直到下面幾行: #ifdef __MIC__ __m512i mm_idx = _mm512_set_epi32(0, 0, 0, 0, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0); __m512 mm_temp1 = _mm512_set1_ps(temp1); __m5

    0熱度

    2回答

    我目前做一個基於JVM的編程語言。我沒有使用運算符,而是選擇將符號作爲方法名稱,併爲原始數據類型創建編譯器引用類。這些註釋是以Bytecode指令作爲參數的所謂的@Intrinsic註釋。編譯器使用這些來在每次調用時生成字節碼,而不是INVOKE指令。 我現在想知道這個(公開)註釋是否可以用來做任何事情在JVM上的惡意,如果它應該由編譯器的限制,例如通過靜態分析。 (語言本身也支持字節碼錶達式)

    1熱度

    3回答

    我正在嘗試學習如何使用intrinsics。 所以,我的C代碼: void Vor( const int NbPoints, const int height, const int width, float * X, float * Y, int * V, int * const ouVor) { float Xd