為了提高處理器的浮點運算性能,Intel不斷拓寬處理器的後端執行單元,從128-bit進化到了今天的512-bit,同時引入新的指令集來讓程式利用好硬體特性,但這也對開發者造成了相當的不便。近日Linux之父 Linus Torvalds 就向 Intel 的AVX -512 開砲了:
我希望AVX512死的痛苦點,這樣Intel就能面對現實的問題,而不是通過創造魔法指令集讓他們在基準測試中看上去很厲害。
我希望Intel回歸基礎:讓他們的流程重新轉起來,更關注常規的代碼,而不是HPC或是其他什麼沒有意義的特殊情況。
我以前已經說過了,我現在再說一次:在x86的全盛時期,當Intel一路笑到銀行,並殺死他們所有的競爭對手的時候,其他所有人在浮點負載上都絕對要比Intel做的好。Intel的浮點性能很差勁(相對而言),它也並不重要。
因為絕對沒有人會在乎基準測試之外的東西。
AVX512現在——以及未來也大體如此。是的,你可以找到你需要的東西。但那些東西對賣機器的大局來說沒有用。
另外AVX512有真正的缺點。我寧願看到晶體管被用在其他更為相關的東西上。就算仍然是浮點性能(用在GPU上都比AVX512強)。或者就像AMD那樣給我更多的核心(有良好的單執行緒性能,但沒有AVX512這樣的垃圾)。
我希望常規的整數代碼能夠利用完我的功耗限制,而不是什麼奪走最高頻率的AVX512功耗病毒(因為人們最後總是用它來做memcpy!),還奪走了核心數量(因為那些無用的垃圾單元占據了空間)。
是的,是的,我帶有偏見。我絕對討厭浮點的基準測試,我也知道其他人對此很關注。我只是覺得AVX512是絕對錯誤的東西。它是讓我特別討厭的東西。這是一個典型的用來證明Intel做錯了的例子,部分原因來自於Intel增加了市場的碎片化(fragmentation of the market)。
停止使用特殊情況的垃圾,讓所有人都關注的那些核心的共同東西盡其所能地運行。然後在旁邊做一個基本夠用的FPU,人們就很開心了。AVX2已經夠用了。
是的,我脾氣暴躁。
Linus
Intel在Skylake -Server架構中首次引入了AVX-512特性,但它並沒有像之前引入AVX和AVX2那樣順利,因為在使用過程中,用戶發現在AVX-512負載下,核心頻率會有較大幅度的下降,讓性能不升反降,Cloudflare的運維人員在兩年前就已經對此做過詳細的分析了。
正如Linus所說的,這些“魔法指令集”也讓x86 CPU變得更為碎片化,程式優化變得越來越困難。而AVX-512在不少場景中是為了AI相關的應用所服務的,對傳統應用的作用較小,Linus說的“AVX2夠用”確實是目前的情況,更多的浮點運算交給對這方面更拿手的GPU去做才是正確的選擇。
消息/圖片來源:Expreview、ZDNet
|