看板 PC_Shopping 關於我們 聯絡資訊
※ 引述《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
MrDisgrace : 專業推 07/16 16:36
mikapauli : 所以都用V100的話就沒有問題了是嗎? 07/16 16:41
ccbbaa : 這篇有歷史性 推一下 07/16 16:51
randeon5566 : 推整理 07/16 16:53
yymeow : 專業文必推 07/16 16:54
a58524andy : 清楚 推 07/16 16:55
hankower : 專業 07/16 16:57
blackwindy : 對只打遊戲的根本雞肋 頂多模擬器有用 07/16 16:57
palapalanhu : 專業 07/16 17:01
waiter337 : 好像很厲害 快推 07/16 17:04
oopFoo : i9-7900x開始就有兩組AVX512 pipe。可以看到很明顯 07/16 17:07
Severine : 推這篇的歷史 以前的確MMX/SSE就夠嚇人了 07/16 17:09
oopFoo : 的效能提昇。Icelake才有avx512,cometlake是沒有的 07/16 17:09
oopFoo : 普通USER要碰AVX512現在只能用筆電的Icelake 07/16 17:11
oopFoo : 因為Intel太喜歡區隔市場,很多人只碰低階Xeon Gold 07/16 17:12
oopFoo : 那只有一組AVX512 pipe。所以才會誤會AVX512對比AVX 07/16 17:13
oopFoo : 沒有性能提昇。但AVX512比avx2好用太多了,光是 07/16 17:15
tonyian : 很不幸的全世界使用普通cpu會用到這個指令的可能比 07/16 17:15
tonyian : 你想的還少 07/16 17:15
oopFoo : gather/scatter就讓寫程式容易許多。說AVX512不好的 07/16 17:16
oopFoo : 是真的沒寫過vector的程式。 07/16 17:16
arrenwu : 這幾篇都寫了不少有意思的AVX的知識 07/16 17:20
arrenwu : 但其實大家想知道的是:那些應用AVX的幫助大? 07/16 17:21
arrenwu : 這些應用我們有在用嗎? 07/16 17:21
oopFoo : 還有ARM現在有SVE,SVE2。所以還是有在增加指令集 07/16 17:21
ggirls : 不是懷疑你沒用。是怕我家風扇不夠用。 07/16 17:22
oopFoo : ffmpeg,常見的轉檔程式就支援avx512。 07/16 17:25
oopFoo : https://bit.ly/30dcQjy 07/16 17:25
arrenwu : 是,影片轉檔確實是AVX最常見的運用之一 07/16 17:26
arrenwu : 但這塊不就是有人在質疑GPU會取代的部分? 07/16 17:27
JoyRex : CPU能靠2PASS提升畫質,GPU不行啊畢竟不能未卜先知 07/16 17:28
dxzy : 看不懂但推 07/16 17:29
hn9480412 : 那AMD的SSE4a是拿來幹嘛的? 07/16 17:29
arrenwu : 轉檔部分其實爭議點在 低碼率 表現 07/16 17:29
arrenwu : 以前h264的時候,GPU要相當高碼率才會有不錯的水準 07/16 17:29
arrenwu : 但近期我所看到的RTX系列的轉檔表現也比以前強超多 07/16 17:30
bubunana : 其實你不用自己用 某os會幫你調用 從mmx sse 乃至後 07/16 17:30
bubunana : 來avx 你不做 他們就在某耗電規格或者反應時間卡你 07/16 17:30
bubunana : 讓你拿不到他們認證 除非他們有特殊目的才放行 07/16 17:30
oopFoo : https://github.com/postgrespro/vops 07/16 17:30
oopFoo : vectorized columnar olap database 07/16 17:31
arrenwu : 我現在比較想得到的是數值分析軟體,這個AVX的優點 07/16 17:34
bubunana : 拿Q8400跑跑win7以後OS 那種延遲感是非常顯而易見的 07/16 17:34
arrenwu : 就很大 07/16 17:34
oopFoo : 用在"富岳",全世界最快的超級電腦,完全不用GPU 07/16 17:35
friedpig : 好奇os拿來幹嘛 07/16 18:04
KotoriCute : 專業推 07/16 18:13
BlackCoal : 看不懂還是推 07/16 18:27
BlackCoal : 借問一下,以前聽過3DNow!好像很屌,後來怎麼都沒聽 07/16 18:28
BlackCoal : 到了 07/16 18:28
a27417332 : 推 這篇講的比上一篇好太多了 07/16 18:30
gohow : 我好像又多懂一點點了 07/16 18:31
doom3 : 有懶人包有推 07/16 18:39
bubunana : 上面兩位問題本身關鍵字就有 wiki跟GOOGL得到答案 07/16 18:40
bubunana : 甚至有完整文件說明 怕陷入引戰 就這樣 07/16 18:40
andy5656 : 推 07/16 18:42
JoyRex : 3DNow!的3000+打的噴火龍3G吱吱叫 07/16 18:56
JoyRex : 那時候拿3000+配6600GT玩全民公敵正夯 07/16 18:57
superRKO : 太專業了 但我要去消化一下 07/16 18:58
AKSN74 : 專業推一個,也順便幫我複習了一些指令集演進 07/16 19:07
wres666 : 在用matlab的時候感覺很明顯啦,真十代icelake比起 07/16 19:12
wres666 : 同學的牙膏十代快多了 07/16 19:12
Jmoe : 專業推 07/16 19:24
Shauter : 上一篇比這篇好很多吧....這篇..... 07/16 19:32
aegis43210 : 上一篇講未來,這篇講古 07/16 19:37
MK47 : 其實都是很好的分享 不需要去分高下 人家願意分享就 07/16 19:52
MK47 : 不錯了 07/16 19:52
k078787878 : 嗯聽不懂 07/16 19:53
os653 : 根本不是在講同一件事,哪有啥好比? 07/16 19:54
os653 : 是說如果AVX512真的這麼好,編譯器要聰明到自動調用 07/16 19:55
os653 : 用起來自然就會讓使用者有感,現在就是大多使用者無 07/16 19:55
os653 : 感,才會讓人質疑它的價值 07/16 19:56
pig : AVX512被嫌棄的地方在於降速求控球會拖累其他人 07/16 20:16
Shauter : 這篇問題很大阿 什麼每次都是為了擴充處理資料能力 07/16 20:19
Shauter : 是不是連AMD的指令集都不認識? 而且AES還是AMD強項 07/16 20:19
goldie : 專業推 07/16 20:20
netburst : 3dnow都被sse幹掉了還在打噴火龍?? 07/16 20:24
jasonkey123 : k6-3內建3dnow跑3d遊戲還是被低階celeron打趴... 07/16 20:29
ILike58 : 買這些指令集的好處不就是有intel花錢去幫你弄compi 07/16 20:39
ILike58 : ler這髒活?不然要自己優化嗎? 07/16 20:39
a1234567289 : 這篇很好 我在上篇留言想打的這裡都解釋的很清楚 07/16 20:41
JoyRex : 不知道哩,3000+跑全民公敵比噴火龍3G還要順 07/16 20:49
JoyRex : 不過燒光碟還是乖乖拿有HT的噴火龍比較安全 07/16 20:50
Winux : 推這篇 07/16 21:03
Winux : AMD比較成功的指令集就x86-64而已 07/16 21:04
Winux : 其他都是跟著Intel走 07/16 21:05
Winux : 以前AMD也有想弄自己的SSE5 intel直接放話不會去支 07/16 21:06
Winux : 援AMD SSE5 弄自己的AVX最後也真的沒人理AMD的SSE5 07/16 21:07
Winux : 後來AMD處理器一樣要去相容intel AVX 07/16 21:08
Winux : 上面說的AES也是intel提出的指令集 07/16 21:09
phoenix5097 : 專業推 07/16 21:25
a58524andy : 市佔夠高就是任性 07/16 21:28
aegis43210 : 以前i皇市佔高沒人理A家,但再牙膏下去,可能以後也 07/16 21:31
aegis43210 : 換他沒人理… 07/16 21:31
KotoriCute : AVX512是大客戶有需求intel才放進去的 07/16 21:33
cory8249 : 專業推 07/16 21:38
twosheep0603: 簡單來說追求通用計算的話就會繼續留著這堆電晶體 07/16 21:39
hn9480412 : 所以FMA是AMD這邊提出來的SIMD? 07/16 21:45
ltyintw : 因該是說fma是從sse5拆出來的 而sse5是amd提出的 07/16 21:59
kimisawa : 轉檔喔 現在的i被amd單純用核心按著摩擦 07/16 22:23
kimisawa : Amd想推指令集大多不太成功因為基數太小 07/16 22:24
mmonkeyboyy : 都有推自己的MKL 07/16 23:44
mmonkeyboyy : AMD就是菜雞市場小 別人說什麼就聽話啊 07/16 23:45
mmonkeyboyy : 尤其大量的運算上 AMD沒有吃下份額 出這種接近專 07/16 23:46
mmonkeyboyy : 用指令集 別說硬體不見得跟得上 軟體都趴了先 07/16 23:46
mmonkeyboyy : 降速求控球 都如球球是好球也不錯 07/16 23:47
mmonkeyboyy : 你可以想著種花聯盟來就還是一堆壞球 07/16 23:47
mmonkeyboyy : Maddux來你很快就早安午安晚安 07/16 23:48
protoss : 所以簡單說是一般人看不到整個市場的需求?所以無法 07/16 23:48
protoss : 了解intel的決策...如果一味追求通用就會變成GPU界 07/16 23:49
protoss : 的AMD? 07/16 23:49
arrenwu : AMD GPU的問題跟追求通用沒啥關係 07/17 00:02
arrenwu : NV CUDA本身就是往通用方向邁進的設計 07/17 00:02
mmonkeyboyy : 這東西還是要算使用率的 對一般民眾日常來用 07/17 00:04
mmonkeyboyy : 最常見的就是OS 轉檔 會用到 07/17 00:04
friedpig : AMD菜到連聽話的機會都沒有吧 只能事後看人家的東 07/17 00:04
friedpig : 西乖乖做了 07/17 00:04
KotoriCute : 當初x86-64有機會成功,也是因為intel內部在路線之 07/17 00:06
KotoriCute : 爭的內鬥 07/17 00:06
mmonkeyboyy : 而且早期板本 多開幾個 那速度根本對半 07/17 00:07
protoss : 不過CPU二十年前歷經一波多頭...大概一些common的部 07/17 00:07
KotoriCute : Intel當時決定押寶IA64 ,放棄了他們自己64位元方案 07/17 00:07
protoss : 份也做到差不多了...是時候去服務其他的20%這樣? 07/17 00:07
mmonkeyboyy : 理論上 在HPC應用上 會快60X 07/17 00:09
friedpig : 其實這件事情就是最大謬誤阿 人家又不是做一堆ASIC 07/17 00:09
friedpig : 原本的就沒優化 到底為啥以為都只能做一件事情 人 07/17 00:09
friedpig : 家人多的是 07/17 00:09
mmonkeyboyy : 實際上HPC 上 我還真沒看過這麼高的 07/17 00:09
arrenwu : 我覺得Intel比較大的麻煩是他們的AVX比AMD熱很多XD 07/17 00:09
arrenwu : 我自己算是常常使用數值分析軟體的人,樂見AVX進展 07/17 00:10
mmonkeyboyy : 大家都想搶HPC市場啦 07/17 00:10
friedpig : 只是牙膏王爽太久 架構發現不太行的時間比AMD晚 07/17 00:11
friedpig : 設計完的新產品本來就好幾年 又遇到製程大烙塞才看 07/17 00:11
friedpig : 起來好像只能吹這些舊世代最後的feature 07/17 00:11
mmonkeyboyy : 我的工作算有點廣 做點 cpu 設計 做點底層 做數值 07/17 00:11
arrenwu : 我是很想幫AMD吹AVX,但一般人用到的還真的沒那麼多 07/17 00:12
mmonkeyboyy : 分析的軟體 偶爾跑 hpc 07/17 00:12
friedpig : 新架構的東西也不是都沒產品 只是烙塞到還沒辦法大 07/17 00:12
friedpig : 量商業化而已 07/17 00:12
mmonkeyboyy : 自己結論就是 專業是事還是batch交給專業單元 07/17 00:12
arrenwu : 只是AVX目前的應用都還算滿穩的 07/17 00:13
mmonkeyboyy : 現在的GPU就能做到雙精度了 (雖然目前最大宗的是 16 07/17 00:13
arrenwu : 一般軟體裡面使用GPU加速的機能都滿鳥的 07/17 00:13
mmonkeyboyy : 其實512的不太穩 .... 他造成了蠻多其他單元的問題 07/17 00:14
protoss : 現在這麼多YTer...這類指令集在工作處理上有幫助吧? 07/17 00:14
mmonkeyboyy : 要轉yter 你買台 ipad pro比較快.... 07/17 00:14
arrenwu : @protoss 這就要看GPU轉檔現在怎樣了 07/17 00:14
arrenwu : 不過剪輯應該還是會吃到AVX 07/17 00:15
arrenwu : 至少我看Adobe Cloud那些應用,AVX仍有很大幫助 07/17 00:15
protoss : 我以為剪輯預覽會吃到GPU...匯出則CPU/GPU都可以選? 07/17 00:16
arrenwu : 真要我說的話...我當下看到Linus狂噴AVX挺意外的 07/17 00:16
mmonkeyboyy : 我說 ipad pro 比較CP值高 逗逼就不說了 那個雲 07/17 00:16
friedpig : GPU雙精度要錢要電晶體啊 老黃精美的運算卡價格hen 07/17 00:17
friedpig : 刺激 07/17 00:17
mmonkeyboyy : 我不是很清楚他到底是那裡被陰到了 07/17 00:17
mmonkeyboyy : 不過我自己被陰過 至今還無法解 (應該) 07/17 00:18
friedpig : 就不喜歡特規吧 而且可能linux kernal沒那麼大需求 07/17 00:18
friedpig : ms玩比較多怪招吧 07/17 00:18
mmonkeyboyy : 老黃那個是單精搞雙精吧 (如果我沒有記錯 ) 07/17 00:21
mmonkeyboyy : 老黃最厲害的是對市場反應快 很會recycle 07/17 00:22
friedpig : 運算卡好像真的有花錢砸fp32吧 所以也反應在成本上 07/17 00:23
friedpig : 了 價差這麼大 07/17 00:23
mmonkeyboyy : fp32單精啊~~ 他現在本來就單精 07/17 00:25
friedpig : 64才對 07/17 00:25
mmonkeyboyy : 然後往上往下 再做變化啊~ 07/17 00:25
mmonkeyboyy : 純64的我到是不知道 最近沒去看他們的 arch了 07/17 00:26
friedpig : 不過老黃現在滿腦子AI 雙精度根本賺不到錢 誰管你 07/17 00:29
friedpig : 現在是tf32的時代了 07/17 00:29
mmonkeyboyy : 答對哦~~~~AI好撈啊 看看那個精美的DGX A100 07/17 00:31
mmonkeyboyy : 好香 07/17 00:31
friedpig : 不過tf32真的蠻有創意的 真的AI魔人耶 07/17 00:32
mmonkeyboyy : 還可以啦 等那天不用GD他就可以收攤了啊 07/17 00:34
friedpig : 老黃現在除了硬體以外 軟體社群也深耕的夠好就是 07/17 00:36
friedpig : 要抽離也是很痛 其實蠻類似牙膏王在做的事情 07/17 00:36
mmonkeyboyy : 老黃九命怪貓 他只要還在NV就是厲害 07/17 00:42
mmonkeyboyy : 不過他肯定會被三星坑 (聰明反被聰明誤) 07/17 00:42
mmonkeyboyy : XDXD 各位等著看 XD 07/17 00:43
friedpig : 人家真正重中之重還是乖乖跪舔GG啊 A100那種怪物 07/17 00:46
friedpig : 三星在過個十年可能都做不出來(? 07/17 00:46
KotoriCute : linus不爽的只有AVX512,超吃晶片面積一般用戶卻幾 07/17 02:53
KotoriCute : 乎用不到 07/17 02:53
KotoriCute : AVX指令集還是有必要,高性能處理器和指令集也脫不 07/17 02:54
KotoriCute : 了關係 07/17 02:54
kuma660224 : 真正讓它賭爛是AVX512太耗電會降頻 07/17 06:03
kuma660224 : 為了1種指令能高性能,其他全部低性能 07/17 06:04
kuma660224 : 導致不見得比較快 07/17 06:04
mmonkeyboyy : 降頻降不小外 還有另外啟動時間 算下去cost不低 07/17 07:44
mmonkeyboyy : AVX反到是還好 綜合性下去性能有提升 07/17 07:44
mmonkeyboyy : 之前其實有蠻多文章講到底會降多少 點個十顆左右 07/17 07:45
mmonkeyboyy : 頻率剩下一半 = =" 07/17 07:45
birdy590 : 他又沒反對 AVX2...是反對 AVX512, 覺得賺的不夠賠 07/17 10:19
iorittn : 推 07/17 11:32
NoobCV : 雖然看不太懂但專業推 07/17 13:52
kuma660224 : 什麼是你沒用它是有點錯誤 07/17 22:27
kuma660224 : 因為它有降頻問題,你軟體除非跑分 07/17 22:28
kuma660224 : 否則不可能永遠一直跑AVX512 07/17 22:28
kuma660224 : 其實指令因為降頻全部變慢了 07/17 22:28
kuma660224 : 其他指令 07/17 22:29
kuma660224 : 所以你可能努力用它結果賠的比賺得多 07/17 22:29
a000000000 : GPU砍FP64主要還是商業考量 07/17 23:28
a000000000 : 而且從老黃maxwell以後一去不回頭 07/17 23:28
a000000000 : 然後牙膏又差不多獨佔x86很多年 即使現在也是寡佔 07/17 23:30
a000000000 : 大家應該是看不太到擺脫這些東西的一天 07/17 23:30
kqalea : 五年前說GPU交換資料太慢我可能信 07/23 17:46
kqalea : 現在2020 pcie gen4 要DDR4 4000才餵的飽 07/23 17:51
kqalea : AVX512就是雞肋~食之無味棄之可惜 07/23 17:52
kqalea : 而且你拿一顆40幾萬的CPU比2080會不會太看得起老黃 07/23 18:06
kqalea : V100 一張30萬 DP 是7TFLOPS 足足是8280三倍有找 07/23 18:09