逆向工程發現蘋果M1 晶片未公開的祕密:矩陣協處理器

文章推薦指數: 80 %
投票人數:10人

如果你已經了解了M1 片上系統(SoC)中的神經網路處理引擎,可能會對蘋果又設計一個矩陣協處理器(AMX)感到困惑。

在這之前,我們先來了解一些基本概念。

GoTop作者:ErikEngheim機器之心編譯,編輯:陳萍國外開發者通過逆向工程,研究了蘋果公司M1矩陣協處理器的運行機制。

在Arm架構下,蘋果已經引入了自定義指令集。

近期,國外開發者DougallJohnson通過逆向工程,在蘋果M1處理器內發現了一個被稱為AMX的強大的未公開過的神祕協處理器:矩陣協處理器。

要弄清蘋果矩陣協處理器具體是做什麼的,我們需要了解什麼是協處理器、什麼是矩陣,以及為什麼還要關心這些?更重要的是,為什麼蘋果公司在發佈新機的keynote裡都沒有提到這個協處理器?為什麼它似乎是一個祕密?如果你已經了解了M1片上系統(SoC)中的神經網路處理引擎,可能會對蘋果又設計一個矩陣協處理器(AMX)感到困惑。

在這之前,我們先來了解一些基本概念。

首先,什麼是矩陣?矩陣(Matrix)是一個按照長方陣列排列的複數或實數集合,最早來自於方程組的係數及常數所構成的方陣,是高等代數中常見的工具。

如果你使用過MicrosoftExcel等電子表格,則矩陣就是與電子表格非常相似的東西。

關鍵的區別在於,在數學中,這樣的數字表有一個它們支持的操作列表和特定的行為。

正如在下圖中展示的,矩陣可以有不同的風格。

有這樣一行的矩陣,通常稱為行向量。

如果一個是列向量,我們稱之為列向量。

關於矩陣相關內容,相信每一個理工科專業的都應該非常了解,因此不做過多的贅述。

我們可以對矩陣進行加、減、縮放和乘積操作。

加法很簡單,只需分別添加每個元素,但乘法有點複雜。

這種形式在計算機任務處理中至關重要,矩陣的使用範圍主要包括:圖像處理;機器學習;語音和手寫識別;臉部辨識;壓縮;多媒體:音訊和視訊。

機器學習是這幾年中最熱門的方向。

僅僅在CPU上增加更多的核心並不能讓這個領域的任務速度足夠快,因為它的要求很高,這需要專門的硬體。

瀏覽網際網路、寫電子郵件、文書處理和電子表格等常規任務多年來一直運行得很快。

而機器學習,這是我們真正需要提高處理能力的特殊任務。

由於用上了5奈米制程,在任何給定的晶片上,蘋果公司都有最大數量的電晶體用於構建不同類型的硬體。

他們可以增加更多的CPU核心,但這實際上只是加快了常規任務的速度,而這些任務已經運行得足夠快了。

因此,人們經常選擇用部分電晶體制造專門的硬體來解決圖像處理、視訊解碼和機器學習。

這種專用硬體就是協處理器和加速器。

更多關於協處理器和加速器的討論請參閱:https://erik-engheim.medium.com/apple-m1-foreshadows-risc-v-dd63a62b2562蘋果的矩陣協處理器和神經網路引擎有何不同?如果你了解一些關於神經網路引擎的知識,你將會知道它會執行矩陣運算來幫助完成機器學習任務。

那麼我們為什麼還需要矩陣協處理器呢?它們是同一種東西嗎?下面我們來解釋一下蘋果的矩陣協處理器與神經引擎的區別,以及我們為什麼需要兩者。

CPU、協處理器和加速器通常可以在共享的資料總線上交換資料。

CPU通常控制記憶體訪問,而專用加速器(例如GPU)通常具有自己的專用記憶體(如視訊記憶體)。

協處理器和加速器並不相同。

英偉達顯示卡中的GPU和神經引擎都是加速器的一種。

在這兩種情況下,都有特殊的記憶體區域,在該區域CPU必須填充要處理的資料,而記憶體的另一部分則填充加速器應執行的指令列表。

CPU設置這種處理非常耗時。

需要進行大量協調,填寫資料,然後等待結果。

因此,這隻會在更大的任務中得到回報。

對於較小的任務,開銷太高。

與加速器不同,協處理器監視從記憶體讀取到主處理器的指令流。

相比之下,加速器不會遵守CPU從記憶體中提取的指令。

這就是協處理器優於加速器的地方。

協處理器會監視從記憶體(更具體地說,是快取)輸入CPU的機器程式碼指令流。

協處理器是用來對特定指令作出反應的。

與此同時,CPU通常會忽略這些指令,或者幫助協處理器處理這些指令。

我們從中得到的思路是,協處理器執行的指令可以放在常規程式碼中。

這與GPU不同。

如果你做過GPU程式設計,則應該知道著色器程序被放置在單獨的記憶體緩衝區中,並且你必須將這些著色器程序顯式傳輸到GPU。

你不能在常規程式碼中放置特定於GPU的指令。

因此,對於涉及矩陣處理的較小工作負載,AMX將優於神經引擎。

這樣你需要在微處理器的指令集架構(ISA)中實際定義新的特定的指令。

因此,與使用加速器相比,使用協處理器時需要與CPU緊密集成。

對ARM指令集體系架構(ISA)的創建者ARM公司來說,長期以來他們一直拒絕向ISA中添加自定義指令。

然而,由於客戶的壓力,ARM公司放寬了要求,並在2019年10月做出了讓步並宣佈將允許擴展。

參考:新指令與標準Arm指令交織在一起。

為了避免軟體碎片化並保持一致的軟體開發環境,Arm希望客戶在調用的庫函數中使用自定義指令。

這可能有助於解釋為什麼官方文件中沒有描述AMX指令。

ARM期望蘋果將此類指令保存在客戶提供的庫中。

矩陣協處理器與SIMD向量引擎有何不同?很容易把矩陣協處理器和SIMD向量引擎混淆起來,目前大多數現代處理器(包括ARM處理器)內都有SIMD向量引擎。

SIMD(SingleInstruction,MultipleData)即一條指令操作多個資料,是CPU基本指令集的擴展,主要用於小體量資料的並行化操作。

單指令單資料(SISD)VS單指令多資料(SIMD)當你需要對多個元素執行相同的操作時,SIMD是一種獲得更高性能的方法。

這與矩陣運算密切相關。

事實上,SIMD指令,如ARM的Neon指令或Intelx86SSE或AVX等通常用於加速矩陣乘法。

然而,SIMD向量引擎是微處理器核心的一部分。

就像ALU(算術邏輯單元)和FPU(浮點單元)是CPU的一部分。

在微處理器內部有一個指令解碼器,它將拆分一條指令並決定激活哪個功能單元(灰色框)。

在CPU內部,ALU、FPU以及SIMD向量引擎(未顯示)作為單獨的部分由指令解碼器激活。

協處理器是外部的。

相反,協處理器在微處理器核心的外部。

比如最早的協處理器晶片之一:英特爾8087,該晶片是一種物理上獨立的晶片,旨在加快浮點計算的速度。

英特爾8087,用於執行浮點運算的早期協處理器之一對於8087,你可能會很奇怪,為什麼有人會想通過擁有一個像這樣的單獨晶片來使CPU設計複雜化?該晶片必須嗅探從記憶體到CPU的資料流,以查看是否有任何浮點指令。

原因很簡單,第一代PC中的原始8086CPU包含29,000個電晶體。

相比之下,8087要複雜得多,有45,000個電晶體。

將這兩個晶片結合在一起會非常困難和昂貴。

但隨著製造技術的進步,將浮點計算單元(FPU)放在CPU內部並不是問題。

因此FPU取代了浮點協處理器。

我們還不清楚為什麼AMX不是M1上Firestorm核心的一部分。

不管怎樣,它們都在同一個矽晶片上。

作為協處理器,CPU繼續並行運行可能更容易。

蘋果可能也喜歡把非標準的ARM產品放在ARMCPU核心之外。

為什麼AMX是一個祕密?如果蘋果官方檔案中沒有描述AMX,你是怎麼知道的?這就多虧了開發人員DougallJohnson,他對M1進行了逆向工程,發現了這個協處理器。

這裡描述了他的努力。

對於矩陣相關的數學運算,蘋果有一些特殊的庫或框架,如Accelerate,它由以下部分組成:vImage:更高層次的圖像處理,如格式轉換、圖像處理等。

BLAS:線性代數的一種工業標準(我們稱之為處理矩陣和向量的數學)。

BNNS:用於運行神經網路和網路訓練。

vDSP:數字信號處理。

傅立葉變換,卷積。

這些是在圖像處理或真正包括音訊的任何信號中很重要的數學運算。

LAPACK:更高層次的線性代數函數,例如用於求解線性方程。

DougallJohnson知道這些庫將使用AMX協處理器來加快計算速度。

因此,他編寫了一些特殊程序來分析和觀察這些程序做了什麼,以發現未記錄的特殊AMX機器程式碼指令。

但是為什麼蘋果公司不記錄這些,讓我們直接使用這些指令呢?如前所述,這是ARM公司希望避免的。

如果自定義指令被廣泛使用,它可能會破壞ARM生態系統。

然而更重要的是,這對蘋果來說是一個優勢。

通過只允許他們的庫使用這些特殊的指令,蘋果保留了以後從根本上改變這個硬體工作方式的自由。

他們可以刪除或添加AMX指令。

或者他們可以讓神經引擎來完成這項工作。

無論哪種方式,它們都使開發人員的工作更容易。

開發人員只需要使用加速框架,就可以忽略蘋果具體如何加快矩陣計算的速度。

這是蘋果垂直整合的一大優勢。

通過控制硬體和軟體,他們可以利用這些技術。

蘋果的矩陣協處理器有什麼優勢?NodLabs是一家致力於機器互動、智慧和感知的公司,對快速矩陣運算非常感興趣。

其研究人員已經為AMX性能測試寫了高質量的技術性部落格。

部落格地址:https://nod.ai/comparing-apple-m1-with-amx2-m1-with-neon/他們所做的是比較使用AMX編寫類似程式碼和使用Neon指令編寫類似程式碼的性能,後者得到ARM的官方支持。

Neon是一種SIMD指令。

NodLabs發現,使用AMX,矩陣的運算性能比Neon指令快2倍。

這並不意味著AMX在所有方面都更好,但至少在機器學習和高效能運算(HPC)類型的工作中,我們可以預期AMX將在競爭中佔據優勢。

原文連結:https://medium.com/swlh/apples-m1-secret-coprocessor-6599492fc1e1分享到:相關文章在陸陸續續掰扯了一年之後,英偉達收購ARM的交易還是黃了。





今天下午,英偉達(NVIDIA)和ARM的母公司軟銀(Softbank)同時宣佈...編輯:小舟一直以來對收購Arm信心滿滿的老黃將不得不面對和接受這一現實。

英偉達收購Arm的行動終於要迎來大結局。

2020年9月13日,英...不知道各位網友還有沒有印象。

前陣子託尼評測M1晶片Mac的時候,因為考慮到很多軟體還沒有兼容,再加上它裝不了Windows系統,所以我在文末特別提醒...今天就把話撂這了,明年的8月份,高通將會製造出世界上性能最強、功耗最低的桌面處理器,從此設立Windows電腦性能的新標杆,拳打英特爾,腳踢蘋果M系...編輯:維度、陳萍在CPU架構領域,Arm架構和英特爾x86架構分別在移動端和桌面端佔據了絕大部分市場份額。

但是,Arm架構的收費授權模式和x86...對於全新的Armv9架構,ARM公司CEO西蒙·塞加斯(SimonSegars)表示,「v9架構將提升安全性和信任度,併為未來十年的計算機技術...英偉達(NVIDIA)的圖形處理器GPU是人工智慧晶片領域的「王者」。

但許多初創公司表示,這種局面應該變一變了。

圖片來源:Pixabay原作Nicol...蘋果在11月11日凌晨開了一場發佈會,發佈了搭載最新自研M1晶片的Macmini、MacBookAir和13寸的MacBookP...一直以來,機哥經常聽到網上流傳出,蘋果正在開展某某神祕計劃。

搞得人家心癢癢,很想知道蘋果又躲在“車庫”裡,搗騰出什麼新鮮玩意。

比如說,被蘋果內部稱作Sku...機器之心編輯部收購Arm還沒有定論,但英偉達的Arm架構CPU已經出現了。

英特爾現在可能正感受到不一樣的壓力。

「只需一張GeForce顯示卡...圖靈獎獲得者,計算機體系結構先驅DavidPatterson:「這真是太神奇了。

」開放開源的Risc-V架構一直被認為前途不可限量,最近一段時間也獲得...這應該是蘋果今年下半年開的第三場發佈會了。

昨天凌晨2點,趁著大夥兒都在雙十一買買買,蘋果在ApplePark發佈了自家AppleSilicon...機器之心編輯部2021年英特爾架構日上,英特爾發佈一系列重大技術架構的改變和創新:兩款全新的x86核心架構(能效核與性能核)、代號為AlderLak...自華為被美國劃拉進「實體清單」之後,已經過去快一年的時間了。

這一年時間裡,中美雙方各種battle,美商務部對華為的寬限也一續再續。

不過就在五月份的...選自NAE機器之心編譯編輯:張倩2022年度的「工程學界諾貝爾獎」——查爾斯·斯塔克·德拉普爾獎頒給了四位RISC架構的先驅。

其中,Davi...©2022vitomag.com|服務條款|隱私權|DMCA|關於我們



請為這篇文章評分?