99精品在线观看-99精品在线免费观看-99精品在线视频观看-99精品这里只有精品高清视频-99九九精品国产高清自在线

x

蘋果M1使用了Arm自定義指令集?開發者逆向驚奇發現:?蘋果M1未公開的秘密--矩陣協處理器

2021-01-18 13:33:55 EETOP
點擊關注->創芯網公眾號,后臺告知EETOP論壇用戶名,獎勵200信元
近期,國外開發者Dougall Johnson通過逆向工程,在蘋果M1處理器內發現了一個被稱為AMX的強大的未公開過的秘密協處理器--矩陣協處理器

要弄清Apple矩陣協處理器具體是做什么的,需要弄清楚幾個基本知識,例如什么是協處理器?什么是矩陣?為什么還要關心這些?

更重要的是,為什么蘋果公司的幻燈片都沒有提到這個協處理器?為什么它似乎是一個秘密?如果你已經了解了M1片上系統(SoC)中的神經引擎,您可能會對Apple的矩陣協處理器(AMX)與眾不同的原因感到困惑。

在闡述這個大問題之前,我先說說基本概念,比如什么是矩陣?什么是協處理器
矩陣基本上只是一個數字表。如果您使用過Microsoft Excel等電子表格,則基本上可以使用與矩陣非常相似的東西。關鍵的區別在于,在數學中,這樣的數字表有一個它們支持的操作列表和特定的行為。正如您在這里看到的,矩陣可以有不同的風格。有這樣一行的矩陣,通常稱為行向量。如果一個是列向量,我們稱之為列向量。關于矩陣相關內容,相信每一個理工科專業的都應該非常了解,因此在此也不做過多的贅述了。
矩陣之所以重要,是因為它們在以下方面被廣泛應用:
  • 圖像處理

  • 機器學習

  • 語音和手寫識別

  •  人臉識別

  • 壓縮

  • 多媒體:音頻和視頻

尤其是這幾年很火的機器學習。僅僅在CPU上增加更多的核心并不能讓這個運行速度足夠快,因為它的要求真的很高,這需要專門的硬件。常規任務如瀏覽互聯網、寫郵件、文字處理和電子表格已經運行了多年,速度已經足夠快。而機器學習,這是我們真正需要提高處理能力的特殊任務。本文由EETOP編譯整理

在任何給定的芯片上,蘋果公司都有一個最大的晶體管數量來構建不同類型的硬件。他們可以增加更多的CPU核心,但這實際上只是加快常規任務的速度,而常規任務的運行速度已經足夠快。因此,他們選擇花晶體管來制造專門的硬件來解決圖像處理、視頻解碼和機器學習。這個專用硬件就是協處理器和加速器。
如果你了解一些關于神經引擎的知識,你將會知道它還會執行矩陣運算以幫助完成機器學習任務。那么我們為什么需要矩陣協處理器呢?還是說它們其實只是同一種東西?這里大家是不是被搞糊涂了?

接下來就澄清一下蘋果的Matrix協處理器和神經引擎有什么不同,以及為什么在M1處理器中這兩者都需要。

處理器CPU)、協處理器和加速器通常可以通過共享數據總線交換數據。CPU通常控制內存訪問,而加速器(例如GPU)通常具有自己的專用內存。
Nvidia圖形卡中的GPU和神經引擎都是加速器的一種。

在這兩種情況下,都有特殊的內存區域,CPU必須填充要處理的數據,而內存的另一部分則填充加速器應執行的指令列表。CPU設置此類處理非常耗時。需要進行大量協調,填寫數據,然后等待獲得結果。

因此,對應更大的任務來說,這個會帶來回報,但是對于較小的任務,開銷將太高。
與加速器不同,協處理器監視從內存讀取到主處理器的指令流。相比之下,加速器不會遵守CPU從內存中提取的指令。

這就是協處理器優于加速器的地方。協處理器會監視從內存(更具體地說,是緩存)輸入CPU的機器代碼指令流。協處理器是用來對特定指令作出反應的。與此同時,CPU通常會忽略這些指令,或者幫助協處理器處理這些指令。

我們從中得到的好處是,協處理器執行的指令可以放在你的常規代碼中。這與GPU不同。如果你做過GPU編程,則知道著色器程序已放置在單獨的內存緩沖區中,并且你必須將這些著色器程序顯式傳輸到GPU。你不能將GPU特定的指令放在常規代碼中。因此,對于涉及矩陣處理的較小工作量,AMX將比神經引擎更加有效。

這樣你需要在你的微處理器的指令集架構(ISA)中實際定義新的特定的指令。因此,與使用加速器相比,使用協處理器時需要與CPU緊密集成。
對于ARM指令集體系結構(ISA)的創建者ARM公司來說,長期以來一直拒絕向其ISA添加自定義指令。而可擴展自有指令,這個是RISC-V的優點之一。

但是,由于客戶的壓力,ARM在2019年10月做出了讓步并宣布將允許擴展。參考:Arm推出自定義指令集功能

這可能有助于解釋為什么官方文檔中沒有描述AMX指令。ARM期望Apple將此類指令保存在客戶提供的庫中。
很容易將矩陣協處理器與SIMD向量引擎混淆,目前大多數現代處理器(包括ARM處理器)內都有SIMD向量引擎。SIMD是單指令多數據的縮寫。

單指令單數據(SISD)與單指令多數據(SIMD)

當你需要對多個元素執行相同的操作時,SIMD是一種獲得更高性能的方法。這與矩陣運算密切相關。實際上,SIMD指令(例如ARM的Neon指令或Intel x86SSE或AVX)通常用于加速矩陣乘法。
然而SIMD向量引擎是微處理器內核的一部分。就像ALU(算術邏輯單元)和FPU(浮點單元)是CPU的一部分。在微處理器內部有一個指令解碼器,它將對一條指令進行拆分,并決定激活什么功能單元。
CPU內部,會有ALU、FPU以及SIMD向量引擎,作為獨立的部分,由指令解碼器激活。而協處理器則是外置在微處理器內核上的。比如英特爾8087,這是最早的協處理器芯片之一,它是一種物理上獨立的芯片,旨在加快浮點計算的速度。
對于8087,你可能會很奇怪,為什么有人會想通過擁有一個像這樣的單獨芯片來使CPU設計復雜化?該芯片必須嗅探從內存到CPU的數據流,以查看是否有任何浮點指令。

原因很簡單,第一批PC中的原始8086 CPU包含29,000個晶體管。相比之下,8087要復雜得多,有45,000個晶體管。將這兩個芯片結合在一起會非常困難和昂貴。
但是隨著制造技術的改進,將浮點單元(FPU)放置在CPU內早已不是問題。因此,因此FPU取代了浮點協處理器

回到現在,我們還不清楚為什么AMX不是M1上Firestorm核心的一部分。不過無論如何,它們都集成在同一個硅芯片上。在此我們只能提供一些推測,通過成為協處理器CPU繼續并行運行可能會更容易、蘋果可能還喜歡將非標準的ARM產品保留在其ARM CPU內核之外等。

如果官方文檔中沒有描述AMX,我們是怎么發現的呢?這個要感謝開發人員Dougall Johnson,他出色地完成了M1的逆向工程,以發現該協處理器。這里
https://gist.github.com/dougallj/7a75a3be1ec69ca550e7c36dc75e0d6f
描述了他所作的努力。對于與矩陣有關的數學運算,Apple具有特殊的庫或框架,例如Accelerate,其組成如下:
  • vImage-更高級別的圖像處理,例如格式之間的轉換,圖像處理。

  • BLAS —一種線性代數的行業標準(我們稱其為處理矩陣和向量的數學方法)。

  • BNNS —用于運行神經網絡和訓練。

  • vDSP — 數字信號處理。傅立葉變換,卷積。這些是在圖像處理或真正包括音頻的任何信號中很重要的數學運算。

  • LAPACK -更高的水平線性代數函數,例如,用于求解線性方程組。

Dougall Johnson知道這些庫將使用AMX協處理器來加快計算速度。因此,他編寫了一些特殊程序來分析和觀察這些程序做了什么,以發現未記錄的特殊AMX機器代碼指令。

但為什么蘋果公司不記錄下來,讓我們直接使用這些指令呢?如前所述,這是ARM公司希望避免的事情。如果自定義指令被廣泛使用,可能會使ARM生態系統碎片化。
然而更重要的是,這對蘋果來說是一個優勢。通過僅允許他們的庫使用這些特殊指令,蘋果保留了以后從根本上改變這個硬件工作方式的自由。他們可以刪除或添加AMX指令。或者他們可以讓神經引擎來完成這項工作。無論哪種方式,他們都會讓開發者的工作變得更容易。開發者只需要使用Accelerate框架,就可以忽略蘋果如何專門加快矩陣計算的速度。

這是蘋果通過垂直整合獲得的最大優勢之一。通過控制硬件和軟件,他們可以利用這些技巧。那么下一個問題是這有多大的意義?就性能和功能而言,這對蘋果有什么好處?
NodLabs是一家從事機器交互,智能和感知的公司。快速矩陣運算自然是他們的興趣所在。他們寫了一篇有關AMX性能測試的技術性很強的博客文章:比較Apple的M1 matmul性能-AMX2 vs NEON。https://nod.ai/comparing-apple-m1-with-amx2-m1-with-neon/
他們要做的是比較用AMX做類似代碼的性能和用ARM官方支持的Neon指令做的性能。Neon是SIMD指令的一種。

Nod實驗室發現,通過使用AMX,他們能夠獲得Neon指令兩倍的矩陣運算性能。這并不意味著AMX對所有事情都更好,但至少對于機器學習和高性能計算(HPC)類型的工作,我們可以期待AMX給競爭者帶來優勢。
蘋果矩陣協處理器看起來是一些相當令人印象深刻的硬件,讓蘋果的ARM處理器在機器學習和HPC相關的工作中占據優勢。

關鍵詞: ?蘋果 M1 矩陣協處理器

  • EETOP 官方微信

  • 創芯大講堂 在線教育

  • 半導體創芯網 快訊

全部評論

主站蜘蛛池模板: 一级美国片免费看| 亚洲欧美日韩一区超高清| 丝袜美腿秘书ol在线播放| 欧美黑人性大免费高清视频| 狠狠婷婷| 18欧美乱大交hd88av| 国模精品一区二区三区| 色视频免费网站| 亚洲色图综合在线| 一级做a爰片| 日本的黄色录像| 亚洲高清在线观看视频| 免费观看很黄很色的大片| 国产三级a三级三级午夜| 狠狠色丁香久久婷婷综| 婷婷色吧| 成年人视频网站免费| 国产亚洲精彩视频| 免费a一毛片| 婷婷综合激情| 国产不卡一区二区视频免费| 久久久久久久免费视频| 日本三级带日本三级带黄国产| 亚洲午夜片| 综合色吧| 91福利视频合集| www.色婷婷.com| 九九免费精品视频| 久操视频网站| 日韩中文字幕免费观看| 亚洲日本黄色| 亚洲自拍色| 亚洲最新| 在线欧洲成人免费视频| 全免费a级毛片免费看不卡| 免费视频网站在线观看黄| 欧美黄色性视频| 欧美欧美aaaaa一级毛片| 国内精品免费视频| 欧美黄色一级视频| 欧美最新的精品videoss|