Re: [閒聊] AVX指令集實際應用是甚麼功能?

看板PC_Shopping作者 (yehveh)時間3年前 (2020/07/16 16:27), 編輯推噓62(620142)
留言204則, 54人參與, 3年前最新討論串3/3 (看更多)
※ 引述《superRKO (挖洗RKO)》之銘言: : 小弟菜雞 : 最近看INTEL的AVX512被嘴爆了,I皇QQ : 又看了某幾集極客灣他們介紹說烤機烤AVX,I家的U會變很燙,而A的反而不會 : 然後這幾年有聽到AVX有實際在遊戲上應用的就刺客教條-奧德賽 : 但還是想問一下這AVX指令集的實際應用到底是甚麼? AVX 是做什麼用的? 簡單一句:向量資料計算    仔細一點:INT8x32/16x16/32x8/64x4 加減乘飽和比較 FP32x8/64x4 四則運算﹑根號﹑逼近倒數... FP32/64 <-> INT32 其他還有 bitwise ops, permute, mask, broadcast... 給 GPU shader 算會:          花太多步驟在交換資料  或是計算流程太複雜的 都可以給 AVX 算 而 對用 AVX 的人來說,說 AVX 這東西沒用實際上是: 『不是它沒用,是你沒 用』     ^在 Intel x86 有一長串 SIMD 指令集擴充歷史 每次都是為了擴充處理資料能力的價值(Intel Inside)加的 1. 將近三十年前的 Pentium 時代 Intel 為了要讓 x86 有 DSP 處理整數域向量資料的功能 所以加了 64bit INT8x8/16x4/32x2/64x1 MMX 指令集,造就 PentiumMMX 那時候如果沒 MMX 而用整數指令做 filter 或 converter 譬如做色域轉換 效率最差可能剩下不到一成 在這之前,TI 爽爽賺賣很貴的 DSP, Creative Labs 也在賺賣很貴的 SB... 2. 二十幾年前的 Pentium!!! 時代 一堆初階 3D 顯示卡出現,只有算整數域像素顏色卻沒有計算浮點向量的 GPU 要是沒有 FP32x4 的 SSE 而用 x87 處理頂點向量,你只會得到少了 3/4 以上 多邊形的 3D 畫面 3. 二十年前第一個有 ucode cache 的 x86 Pentium4 是該把 MMX & x87 移給有"正常"通用暫存器的 SSE 做了,所以有了 SSE2 SSE2 包山包海 FP32/64, INT8/16/32/64 都有,只是不包超越函數還有那 FP80 x87 也開始慢慢淡出浮點數處理的功能 4. 過沒多久更燙的 Prescott Pentium4 Intel 開始加了一些可以直接處理同個暫存器內相鄰浮點數對加減的指令集 SSE3 SSSE3 則是把相同功能又做到了處理整數資料上 這時候的 GPU programmable shader 還不是個咖小 @.@ 5. 十幾年前大賣的 Core2 Intel 把向量的分量遮罩選擇功能做進了 SSE4.1 ,也補了整數的最大最小值指令 好不容易這時候 GPU 終於開始出頭了 6. 第一代 Core 處理器出了 GPU 開始標榜各式各樣的 shader Intel 把腦筋動到字串比對&糾錯碼上,所以又做了 SSE4.2 7. 十年前第一代 Core 處理器改製程 想想處理加解密用一般指令計算還是要很久,所以 Intel 把加解密的 AES & GF 用到的無進位長整數乘法加進來 要 GPU 加這種功能?吃x比較快... 8. 128bit SSE1/2/3/4.1 這些處理 FP32x4 是可以,但是對 FP64x4 卻只剩下一半效能 也不能指望那時連 FP64 都不知道是啥的 GPU 於是 Intel 在第二代的 Core i7 把 AVX 做上去了 終於...終於... 多了一倍數量&寬度的暫存器 目的暫存器也不需要再跟其中一個來源暫存器共用了 但這兩倍寬只局限於處理浮點數 9. 為什麼 GPU 都喜歡偷精確度用 FP16 ??? 這樣跟 CPU 交換資料很麻煩咧... 所以 Intel 加了 FP16 在第三代 Core 處理器,做 FP16<->FP32 轉換 10.馬的8.啦 為什麼 AVX 256bit 暫存器只能用在浮點數,那整數域的咧??? 所以 Intel AVX2 就把整數的部分也補上了,在第四代 Core 處理器上 --------------------------------------------------------------------- 然後... 然後就沒有了...新 SIMD 指令集一段時間 --------------------------------------------------------------------- 11.做過超長寬度的 SIMD 處理器 Larrabee & Xeon Phi 的 Intel 在第六代 Core 的 Xeon 版上做了 AVX512 (不是全套,只是部分類別) 這東西比之前的至少好用在 a.多了獨立的 64bit 遮罩暫存器八個 (以往要遮罩結果,得拿完整的 SSE/AVX 暫存器來用) 可以決定對目的暫存器各分量是否要寫入運算結果或是清除 b.暫存器數量跟寬度也多 AVX2 一倍 譬如 AVX2 要實作 SHA3 得要額外記憶體放常數表或中間值 AVX512 可以全塞進暫存器裡 所以!!! 如果要說 AVX512 沒必要 要嘛是額外加價買自己用不到的 要嘛像第十代 Core 處理器,只做了一組 512bit FP pipe 給 AVX512 FP 指令用 搞得 AVX512 FP peak performance 跟 AVX2 一樣 要是用得到AVX512 這東西比現在標榜 10+TFlops 但是只有 FP16/32 的 GPU 用途更多 GPU 廠商會說 GPU 浮點運算超強,但也只強在 FP16/FP32 一旦是其他精確度,衰減的幅度就比有 AVX 的 CPU 要大很多 不像 CPU 是對半砍,而是對半砍"五次" 如 FP64 2nd gen Xeon scalable 8280 的 AVX512 比 RTX2080 Titan 前者 peak 超過 2TFlops, 後者只有前者 1/4 不到 CPU 自始至終追求的都是通用度 所以在某個 coprocessor 還沒有必要被獨立特化出專門用途之前 我們就只得拿 CPU 來做 換句話說至少我們還有個啥都行但不是最快的貨色能擋 如果現在出了一個便宜的 x86 CPU ,但代價是把所有 SIMD 指令砍掉 (只留 x87) 各位還會想買單嗎? 至於 PPC 的 Altivec 跟 ARM 的 Neon 嗯...指令集都固定長度了是能加多少新的??? 萬年標配 FP32x4... 所以我們該感謝 Intel 訂 x86 是可變長的指令集 lol 讓我們不知道啥時才能擺脫它... -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.194.35 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/PC_Shopping/M.1594888051.A.745.html

07/16 16:36, 3年前 , 1F
專業推
07/16 16:36, 1F

07/16 16:41, 3年前 , 2F
所以都用V100的話就沒有問題了是嗎?
07/16 16:41, 2F

07/16 16:51, 3年前 , 3F
這篇有歷史性 推一下
07/16 16:51, 3F

07/16 16:53, 3年前 , 4F
推整理
07/16 16:53, 4F

07/16 16:54, 3年前 , 5F
專業文必推
07/16 16:54, 5F

07/16 16:55, 3年前 , 6F
清楚 推
07/16 16:55, 6F

07/16 16:57, 3年前 , 7F
專業
07/16 16:57, 7F

07/16 16:57, 3年前 , 8F
對只打遊戲的根本雞肋 頂多模擬器有用
07/16 16:57, 8F

07/16 17:01, 3年前 , 9F
專業
07/16 17:01, 9F

07/16 17:04, 3年前 , 10F
好像很厲害 快推
07/16 17:04, 10F

07/16 17:07, 3年前 , 11F
i9-7900x開始就有兩組AVX512 pipe。可以看到很明顯
07/16 17:07, 11F

07/16 17:09, 3年前 , 12F
推這篇的歷史 以前的確MMX/SSE就夠嚇人了
07/16 17:09, 12F

07/16 17:09, 3年前 , 13F
的效能提昇。Icelake才有avx512,cometlake是沒有的
07/16 17:09, 13F

07/16 17:11, 3年前 , 14F
普通USER要碰AVX512現在只能用筆電的Icelake
07/16 17:11, 14F

07/16 17:12, 3年前 , 15F
因為Intel太喜歡區隔市場,很多人只碰低階Xeon Gold
07/16 17:12, 15F

07/16 17:13, 3年前 , 16F
那只有一組AVX512 pipe。所以才會誤會AVX512對比AVX
07/16 17:13, 16F

07/16 17:15, 3年前 , 17F
沒有性能提昇。但AVX512比avx2好用太多了,光是
07/16 17:15, 17F

07/16 17:15, 3年前 , 18F
很不幸的全世界使用普通cpu會用到這個指令的可能比
07/16 17:15, 18F

07/16 17:15, 3年前 , 19F
你想的還少
07/16 17:15, 19F

07/16 17:16, 3年前 , 20F
gather/scatter就讓寫程式容易許多。說AVX512不好的
07/16 17:16, 20F

07/16 17:16, 3年前 , 21F
是真的沒寫過vector的程式。
07/16 17:16, 21F

07/16 17:20, 3年前 , 22F
這幾篇都寫了不少有意思的AVX的知識
07/16 17:20, 22F

07/16 17:21, 3年前 , 23F
但其實大家想知道的是:那些應用AVX的幫助大?
07/16 17:21, 23F

07/16 17:21, 3年前 , 24F
這些應用我們有在用嗎?
07/16 17:21, 24F

07/16 17:21, 3年前 , 25F
還有ARM現在有SVE,SVE2。所以還是有在增加指令集
07/16 17:21, 25F

07/16 17:22, 3年前 , 26F
不是懷疑你沒用。是怕我家風扇不夠用。
07/16 17:22, 26F

07/16 17:25, 3年前 , 27F
ffmpeg,常見的轉檔程式就支援avx512。
07/16 17:25, 27F

07/16 17:25, 3年前 , 28F
07/16 17:25, 28F

07/16 17:26, 3年前 , 29F
是,影片轉檔確實是AVX最常見的運用之一
07/16 17:26, 29F

07/16 17:27, 3年前 , 30F
但這塊不就是有人在質疑GPU會取代的部分?
07/16 17:27, 30F

07/16 17:28, 3年前 , 31F
CPU能靠2PASS提升畫質,GPU不行啊畢竟不能未卜先知
07/16 17:28, 31F

07/16 17:29, 3年前 , 32F
看不懂但推
07/16 17:29, 32F

07/16 17:29, 3年前 , 33F
那AMD的SSE4a是拿來幹嘛的?
07/16 17:29, 33F

07/16 17:29, 3年前 , 34F
轉檔部分其實爭議點在 低碼率 表現
07/16 17:29, 34F

07/16 17:29, 3年前 , 35F
以前h264的時候,GPU要相當高碼率才會有不錯的水準
07/16 17:29, 35F

07/16 17:30, 3年前 , 36F
但近期我所看到的RTX系列的轉檔表現也比以前強超多
07/16 17:30, 36F

07/16 17:30, 3年前 , 37F
其實你不用自己用 某os會幫你調用 從mmx sse 乃至後
07/16 17:30, 37F

07/16 17:30, 3年前 , 38F
來avx 你不做 他們就在某耗電規格或者反應時間卡你
07/16 17:30, 38F

07/16 17:30, 3年前 , 39F
讓你拿不到他們認證 除非他們有特殊目的才放行
07/16 17:30, 39F
還有 125 則推文
07/17 00:25, 3年前 , 165F
64才對
07/17 00:25, 165F

07/17 00:25, 3年前 , 166F
然後往上往下 再做變化啊~
07/17 00:25, 166F

07/17 00:26, 3年前 , 167F
純64的我到是不知道 最近沒去看他們的 arch了
07/17 00:26, 167F

07/17 00:29, 3年前 , 168F
不過老黃現在滿腦子AI 雙精度根本賺不到錢 誰管你
07/17 00:29, 168F

07/17 00:29, 3年前 , 169F
現在是tf32的時代了
07/17 00:29, 169F

07/17 00:31, 3年前 , 170F
答對哦~~~~AI好撈啊 看看那個精美的DGX A100
07/17 00:31, 170F

07/17 00:31, 3年前 , 171F
好香
07/17 00:31, 171F

07/17 00:32, 3年前 , 172F
不過tf32真的蠻有創意的 真的AI魔人耶
07/17 00:32, 172F

07/17 00:34, 3年前 , 173F
還可以啦 等那天不用GD他就可以收攤了啊
07/17 00:34, 173F

07/17 00:36, 3年前 , 174F
老黃現在除了硬體以外 軟體社群也深耕的夠好就是
07/17 00:36, 174F

07/17 00:36, 3年前 , 175F
要抽離也是很痛 其實蠻類似牙膏王在做的事情
07/17 00:36, 175F

07/17 00:42, 3年前 , 176F
老黃九命怪貓 他只要還在NV就是厲害
07/17 00:42, 176F

07/17 00:42, 3年前 , 177F
不過他肯定會被三星坑 (聰明反被聰明誤)
07/17 00:42, 177F

07/17 00:43, 3年前 , 178F
XDXD 各位等著看 XD
07/17 00:43, 178F

07/17 00:46, 3年前 , 179F
人家真正重中之重還是乖乖跪舔GG啊 A100那種怪物
07/17 00:46, 179F

07/17 00:46, 3年前 , 180F
三星在過個十年可能都做不出來(?
07/17 00:46, 180F

07/17 02:53, 3年前 , 181F
linus不爽的只有AVX512,超吃晶片面積一般用戶卻幾
07/17 02:53, 181F

07/17 02:53, 3年前 , 182F
乎用不到
07/17 02:53, 182F

07/17 02:54, 3年前 , 183F
AVX指令集還是有必要,高性能處理器和指令集也脫不
07/17 02:54, 183F

07/17 02:54, 3年前 , 184F
了關係
07/17 02:54, 184F

07/17 06:03, 3年前 , 185F
真正讓它賭爛是AVX512太耗電會降頻
07/17 06:03, 185F

07/17 06:04, 3年前 , 186F
為了1種指令能高性能,其他全部低性能
07/17 06:04, 186F

07/17 06:04, 3年前 , 187F
導致不見得比較快
07/17 06:04, 187F

07/17 07:44, 3年前 , 188F
降頻降不小外 還有另外啟動時間 算下去cost不低
07/17 07:44, 188F

07/17 07:44, 3年前 , 189F
AVX反到是還好 綜合性下去性能有提升
07/17 07:44, 189F

07/17 07:45, 3年前 , 190F
之前其實有蠻多文章講到底會降多少 點個十顆左右
07/17 07:45, 190F

07/17 07:45, 3年前 , 191F
頻率剩下一半 = ="
07/17 07:45, 191F

07/17 10:19, 3年前 , 192F
他又沒反對 AVX2...是反對 AVX512, 覺得賺的不夠賠
07/17 10:19, 192F

07/17 11:32, 3年前 , 193F
07/17 11:32, 193F

07/17 13:52, 3年前 , 194F
雖然看不太懂但專業推
07/17 13:52, 194F

07/17 22:27, 3年前 , 195F
什麼是你沒用它是有點錯誤
07/17 22:27, 195F

07/17 22:28, 3年前 , 196F
因為它有降頻問題,你軟體除非跑分
07/17 22:28, 196F

07/17 22:28, 3年前 , 197F
否則不可能永遠一直跑AVX512
07/17 22:28, 197F

07/17 22:28, 3年前 , 198F
其實指令因為降頻全部變慢了
07/17 22:28, 198F

07/17 22:29, 3年前 , 199F
其他指令
07/17 22:29, 199F

07/17 22:29, 3年前 , 200F
所以你可能努力用它結果賠的比賺得多
07/17 22:29, 200F

07/17 23:28, 3年前 , 201F
GPU砍FP64主要還是商業考量
07/17 23:28, 201F

07/17 23:28, 3年前 , 202F
而且從老黃maxwell以後一去不回頭
07/17 23:28, 202F

07/17 23:30, 3年前 , 203F
然後牙膏又差不多獨佔x86很多年 即使現在也是寡佔
07/17 23:30, 203F

07/17 23:30, 3年前 , 204F
大家應該是看不太到擺脫這些東西的一天
07/17 23:30, 204F
文章代碼(AID): #1V40zpT5 (PC_Shopping)
文章代碼(AID): #1V40zpT5 (PC_Shopping)