日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SIMD学习笔记整理(索引贴)

發布時間:2025/7/25 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SIMD学习笔记整理(索引贴) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
說明】:本系列筆記主要轉載自網上的資源,版權歸網上的各路牛人,本人只是在牛人的基礎上結合自己的實踐對一些筆記進行整理,添加自己的心得和一些代碼。感謝網上未曾謀面的大牛們! 【轉載】:SIMD函數整理:00 索引貼?(作者:zyl910
關于SIMD(MMX、SSE、AVX)編程的資料一直很零散,于是我試圖進行收集整理,便于隨時翻閱學習。而且很多代碼是直接用匯編寫的,易讀性差、難以重用,于是我決定將其統一改寫為Intrinsics函數版。

一、Instructions函數對照表

  在使用Instructions函數時,很多時候會發現?MSDN?說的不詳細,這時只有去翻閱IntelAMD文檔了。但IntelAMD文檔都是按照匯編指令名排序的,查起來不太方便。而且?SIMD?指令大多很復雜,文字描述難以詳細的解釋其功能,唯有偽代碼才能精確的解釋其功能。但IntelAMD文檔上的偽代碼大多很長,不適合隨時翻閱。

  于是我希望能有一份這樣的表格?

? ? ? 1?按照?Intrinsics?頭文件中的順序排序;

? ? ? 2)有函數名、匯編指令、功能描述、偽代碼?這四列,便于對照。

? ? ? 3)偽代碼只有一行,并盡可能簡短,便于表格化。

為簡化偽代碼,我借用C語言語法,可以寫循環和大括號語句塊,將?mm / xmm / ymm?寄存器看做聯合體、轉型等。

【例如】?PADDSB(飽和加法.8位)指令的偽代碼為?—— ?for (i=0; i<8; ++i) { r.uB[i] = SU(m1.uB[i] + m1.uB[i]); }

【解釋】?r??返回值。?r.uB[i]表示,將r這個64位寄存器?看做?“無符號8位整數的數組。

? ? m1m2:輸入參數1與輸入參數2。 同理 "uB[i]"?也是指將其看做?“無符號8位整數的數組。

? ? SU:無符號飽和處理。當運算超過上界或下界時數值會飽和到邊界,而不發生環繞。這對圖像處理等領域非常有用。


? uB等類型縮寫見《SIMD(MMX/SSE/AVX)變量命名規范心得?

?SU等函數的說明?——

SIMD?Instructions函數對照表1 : ?mmintrin.h與MMX指令集 SIMD?Instructions函數對照表2 : ?xmmintrin.h與SSE指令集 SIMD?Instructions函數對照表3 : ?pmmintrin.h和tmmintrin.h與SSE3和SSSE3指令集?或?SSE3和SSSE3 Intrinsics各函數介紹

二、SSE命令示例代碼 ? ? ?為了更好的理解SSE的各種命令代碼,編寫了一些示例代碼,參見: ? ? ? 1. ?SSE命令示例代碼(算術、邏輯、比較) ? ? ? 2. ?SSE命令示例代碼(轉換、加載、置位、存儲) ? ? ? 3.??SSE命令示例代碼(整型、讀寫控制寄存器、混雜、矩陣變換)?

總結

以上是生活随笔為你收集整理的SIMD学习笔记整理(索引贴)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。