Google開源了一個稱為cpu_features的函式庫,讓開發者可以在軟體執行期間(Runtime),即時查詢CPU提供的功能。
程式碼只寫一次,到處都可以執行(Write Once, Run Anywhere)是Java的保證,也是開發者的夢想,但現實並沒有想像中美好。Google指出,不少開發者開發的應用需要擠出電腦每一分效能,需要深度了解硬體所提供的功能,為不同的硬體調校程式碼。
Google編譯研究團隊Guillaume Chatelet表示,解碼器跟處理張量函式庫都是效能至關重要的應用,使用不同的指令都會造成戲劇性的效能變化,像是x86架構微處理器上的指令集積和熔加運算(Fused-Multiply-Add,FMA),或是SSE2與AVX都能大幅加快關鍵程式碼的執行速度。
Guillaume Chatelet說,但是沒有方法先知道CPU提供什麼指令集,查詢CPU製造商並不足夠,像是英特爾的Haswell架構處理器支援AVX2指令集,但是Sandy Bridge架構的處理器卻沒有。為此有些開發者採取最不得已的方法,像是讀取/proc/cpuinfo以辨識CPU,寫死程式碼以對應CPU的指令集。
而cpu_features是一個小型的開源函式庫,可以在執行期間(Runtime)回報CPU的功能,為了維持最大的可移植性以C89編寫,不使用記憶體且能在沙盒環境執行。現在這個函式庫支援x86、ARM/AArch64以及MIPS處理器,之後會依需求支援其他平臺。
from iThome 新聞 http://ift.tt/2G1eWaK
百家樂/線上投注 http://www.iwin9418.com
真人娛樂 |百家樂、德州撲克、麻將遊戲、21點、13支
六合彩球 | 香港六合彩、 大樂透、 威力彩、 今彩539
電子遊戲 | 水果盤 、 捕魚達人 千炮版 、 骰寶 、 輪盤
黃金期權 | 全新開放 、 股市 、 黃金 、 外幣
百鬼夜行 | 30線、4500倍、拉霸、五鬼運財
沒有留言:
張貼留言