Vitalik探討:新型膠合與協處理器架構提升效率與安全性


以太坊創辦人Vitalik Buterin探討了現代運算中的膠水和協處理器架構,指出運算通常可分為低複雜度高通用性和高複雜度低通用性的兩大類。透過以太坊虛擬機器(EVM)和AI程式碼的範例,他強調如何將高效的專用模組與低效但通用的邏輯結合以提高運算效率。這種架構能同時優化效率、安全性和開放性,為密碼學等領域的發展提供了新的機遇,並降低了新參與者的進入門檻。整體來看,此趨勢推動了敏感運算的在地化能力與使用者友善的開發環境。

原文標題:膠水與協處理器架構

原文作者:Vitalik Buterin,以太坊創辦人

譯文:鄧通,金色財經

特別感謝Justin Drake、Georgios Konstantopoulos、Andrej Karpathy、Michael Gau、Tarun Chitra 和各種Flashbot 提供的回饋和評論。

如果您以中等程度的細節分析現代世界中發射的任何資源密集型計算,您會再次發現一個特點是,計算可以分為兩個部分:

· 複雜度相對較小但計算量不大的「業務邏輯」;

· 大量密集但高度構造的「昂貴工作」。

這兩種計算形式最好用不同的方式處理:首先,其架構可能效率較低,但需要具有非常高的通用性;其次,其架構可能具有較低的通用性,但需要具有非常高的效率。

實踐中這種不同方式的例子有哪些?

首先,讓我們來了解我最熟悉的環境:以太坊虛擬機器(EVM)。這是我最近進行的以太坊交易的geth調試跟踪:在ENS上更新我的部落格的IPFS硬碟。該交易總共消耗了46924氣,可以按以下方式分類:

· 基本成本:21,000

· 呼叫資料:1,556EVM

· 執行:24,368SLOAD

· 操作碼:6,400SSTORE

· 操作碼:10,100LOG

· 操作碼:2,149

· 其他:6,719

ENS 哈希更新的EVM 追蹤。倒數第二列是Gas 消耗。

這個故事的寓意是:大部分執行(如果只看EVM,則約為73%,如果包括前面計算的基本成本部分,則約為85%)在中心化極少數格式化的昂貴操作中:存儲讀寫入、日誌和加密貨幣(基本成本包括3000 個用於支付簽名驗證,EVM 還包括272 個用於支付哈希)。其餘執行是「業務邏輯」:換取calldata 的位元以獲取我嘗試設定的記錄的ID 和我將在代幣轉移中,這將包括增加和減肥,在更高級的應用程式中,這可能包括循環,等等。

在EVM 中,這兩種執行形式以不同的方式處理。高階業務邏輯用更高階的語言寫,通常是Solidity,它可以編譯到EVM。昂貴的工作仍然由EVM 操作碼(SLOAD 等)觸發,但以上99%的實際計算是直接在客戶端程式碼(甚至是庫)內部編寫的專用模組中完成的。

為了加強對這種模式的理解,讓我們在另一個背景下探索它:使用torch 用python 編寫的AI 程式碼。

變壓器模型的一塊前向輸送

我們在這裡看到了什麼?我們看到了用Python編寫的相對少量的“業務邏輯”,它描述了正在執行的操作的結構。在實際應用中,還會有另外一種類型的業務邏輯,它決定了諸如如何取得輸入以及對輸出執行的操作等細節。但是,如果我們單獨深入研究每個操作本身(self.norm、torch.cat、+、*、self.attn 內部的各個步驟…),我們會看到向量化計算:相同的操作玩具計算大量值。與第一個範例類似,部分計算用於業務邏輯,大部分計算用於執行大型成型矩陣和防護——事實上,大部分只是矩陣乘法。

就像在EVM 範例中一樣,這兩種類型的工作以兩種不同的方式處理。高階業務邏輯程式碼是用Python 編寫的,這是一種高度通用和靈活的語言,但也非常緩慢,我們只是接受低效率,因為它只涉及總計算成本的一小部分。同時,密集型操作是用高度最佳化的程式碼編寫的,通常是在GPU上運行的CUDA。我們甚至越來越多地開始看到程式碼LLM推理在ASIC上進行。

現代的即時密碼學,如SNARK,在兩個層面上都遵循類似的模式。首先,證明器可以用高階語言編寫,其中繁重的工作是透過向量化操作完成的,就像上面的AI範例一樣。我的圓形STARK代碼知道了這一點。其次,在密碼學內部執行的程序在這裡本身可以以一種在通用業務邏輯和高度格式化的昂貴工作之間進行劃分的方式編寫展示。

要了解其工作原理,我們可以看看STARK 證明的最新趨勢之一。為了通用且易於使用,團隊越來越多地為廣泛採用的最小虛擬機器(如RISC-V)建立STARK 證明器。證明執行情況的程式都可以編譯成RISC-V,然後證明者可以證明該程式碼的RISC-V執行情況。

來自RiscZero 文件的K線走勢圖

這非常方便:這意味著我們只需要編寫一次證明邏輯,從那時起,任何需要證明的程式都可以用任何「傳統」程式語言編寫(例如RiskZero 支援Rust)。但是,有一個問題:這種方法會產生很大的開銷。臨時加密貨幣已經非常昂貴;在RISC-V 解釋器中增加運行代碼的開銷太多了。因此,開發人員想出了一個竅門:確定構成大部分計算的昂貴的特定操作(通常是加密貨幣和簽名),然後創建專門的模組來非常有效地證明這些操作。然後,您只需將低效但通用的RISC-V 證明系統和高效但專業的證明系統結合在一起,就可以兩全其美。

除了ZK-SNARK 之外的臨時加密貨幣,例如多方計算(MPC)和完全同態加密貨幣(FHE),可能會使用類似的方法進行最佳化。

總的來說,現像是怎樣的?

現代運算越來越多地遵循我所說的核心和協處理器架構:你有一些中央「核心元件」,它具有高通用性但效率低,負責一個或多個協處理器元件之間傳送數據,這些協處理器組件具有通用性低但效率高的特性。

這是一種簡化:在實踐中,效率和通用性之間的權衡曲線幾乎總是有兩個以上的層次。 GPU等在業界通常被稱為「協處理器」的晶片不如CPU通用,但比ASIC 通用。專業化程度的權衡很複雜,這取決於對演算法的哪些部分在五年後仍將保持不變,哪些部分在六個月後會發生變化的預測和直覺。在ZK 證明架構中,我們經常看到類似的層級專業化。但對於廣泛的思考模型,考慮兩個層級就足夠了。在許多計算領域都有類似的情況:

從上面的例子來看,計算當然可以以這種方式分割,這似乎是一種自然法則。事實上,你可以找到幾十年來計算專業化的例子。然而,我認為這種分離正在增加。我認為這是有原因的:

我們最近才達到CPU時脈速度提升的極限,因此只有透過毛髮化才能獲得進一步的效益。但是,毛髮化很難推理,因此對於開發人員來說,繼續按順序推理並使毛髮化在發生頻繁實際上,並盤點在特定操作構建的專用模組中。

計算速度最近才變得如此之快,達到業務邏輯的計算成本已經變得真正可以忽略不計。在這個世界中,優化業務邏輯運作的VM以達到目標以外的運算效率也是有意義的:開發人員相似性、熟悉性、安全性和其他類似目標。同時,專用的「協處理器」模組可以繼續為效率而設計,並從它們與呼叫者相對簡單的「介面」中獲得其安全性和開發人員友善性。

這在密碼學中很明顯,其中最有可能使用哪些類型特定的昂貴操作:模數轟炸、橢圓形直線組合(又稱多標量乘法)、快速傅立葉變換等等。在人工智慧中,情況也變得越來越明顯,二十年來,大部分計算都是「主要是這種矩陣乘法」(儘管精度水平不同)。其他領域也出現了類似的趨勢。與20年前相比,(計算密集型)計算中的未知數較少。

好消息是什麼?

一個關鍵點是,膠合器(Glue)應該優化成為好的膠合器(Glue),而協處理器(協處理器)也應該優化成為好的協處理器(協處理器)。我們可以在幾個關鍵領域中探索這一點的意義。

以太坊虛擬機

區塊鏈虛擬機器(如EVM)不需要,只需要熟悉即可。只要有效率地加入正確的協處理器(又稱「預編譯」),低效率VM中的運算其實可以與本機VM中的運算相同。例如,EVM 的256 位元註冊所產生的開銷相對較小,而EVM 的熟悉度和現有開發者生態系統帶來的好處是巨大且持久的。優化EVM 的開發團隊甚至發現,缺乏玩具化通常不是可擴展性的主要障礙。

儲存改進EVM 的最佳方法可能只是(i) 添加更好的預編譯或專用操作碼,例如EVM-MAX 和SIMD 的某種組合可能是合理的,以及(ii) 改進佈局,例如Verkle 樹的更改的結果是,大大降低了存取相鄰端點的儲存槽的成本。

以太坊Verkle 樹提案中的儲存優化,將以太坊的儲存樹放在一起並以此反映點調整gas成本。像這樣的最佳化,加上更好的預編譯,可能比調整EVM本身更重要。

安全計算和開放硬體

在硬體層面上提高現代運算安全性的一大挑戰是其過度複雜和高速的性質:晶片設計為,這需要底層優化。後門很容易隱藏,側漏洞漏洞不斷被發現。

人們繼續從多個角度努力推動更開放、更安全的替代方案。一些考慮越來越多地在受信任的執行環境中完成,包括在用戶的手機上,這已經提高了用戶的安全性。更開源的消費硬體的行動仍在繼續,最近取得了一些勝利,例如運行Ubuntu 的RISC-V 筆記型電腦。

運行Debian 的RISC-V 筆記型電腦

然而,效率仍然是一個問題。上述連結文章的作者寫道:

RISC-V等較新的開源晶片設計不可能已存在,且經過多年改進的處理器技術相媲美。進步總有一個起點。

更偏執的想法,例如這種在FPGA 上建構RISC-V 電腦的設計,面臨更大的開銷。但是,如果膠合和協處理器架構意味著這種開銷實際上並不重要,那會怎麼樣?如果我們接受開放和安全晶片將比母晶片慢,如果甚至需要放棄推測執行和分支預測等常見優化,但嘗試透過添加(如果需要,母)ASIC模組來彌補這一點,這些模組用於最密集的特定類型的計算,那會怎樣?敏感運算可以在「主晶片」中完成,該晶片將針對安全性、開源設計和側欄阻力進行最佳化。更密集的計算(如ZK論證、AI)將在ASIC 模組中完成,這將了解有關正在執行的計算的較少資訊(可能,透過加密貨幣盲化,在某些情況下甚至可能為零資訊) 。

密碼學

另一個關鍵點是,這一切都對密碼學,尤其是即時密碼學成為主流非常樂觀。我們已經在SNARK、MPC 和其他設定中看到了一些特定的高度格式化計算的超優化實現:某些雜湊函數的開銷僅比直接運行計算貴幾倍,而且人工智慧(主要是矩陣乘法)的開銷也非常低。 GKR等進一步的改進可能會進一步降低這一水平。完全通用的VM執行,特別是在RISC-V 解釋器中執行時,可能會繼續產生大約一萬倍的開銷,但出於本文中描述的原因,這並不重要:只需使用高效的專用技術分別處理計算中最密集的部分,總開銷是負責任的。

矩陣乘法專用MPC 的簡化圖,是AI 模型推理中最大的組件。請參閱本文以了解更多詳細信息,包括如何保持模型和輸入的相關性。

「膠合層只需要熟悉,不需要高效」這個例外是延遲的,以及在較小的程式設計中的資料頻寬。如果計算涉及對相同數據進行結果次重複的繁重操作(就像密碼學和)人工智慧一樣),那麼由低效膠合層導致的任何延遲都可能成為運行時間的主要瓶頸。因此,膠合層也有效率要求,儘管這些要求更具體。

結論

總的來說,我認為上述趨勢從多個角度來看都是非常的發展。首先,這是在保持積極開發人員友好性的同時最大化計算效率的合理方法,能夠同時獲得更多的對每個個人都有好處。特別是,透過在客戶端實現專業化來提高效率,它提高了我們在用戶硬體本地運行敏感且性能要求高的計算(例如ZK證明、LLM推理)的能力。其次,它創造有了一個巨大的機會之,以確保對效率的追求不損害其他價值,最明顯的是安全性、開放性和簡單性:電腦硬體中窗的側通道安全性和開放性、降低ZK-SNARK中的電路複雜性以及降低虛擬機器中的複雜性。從歷史上看,對效率的追求導致這些關鍵退居次要。有了膠合和協處理器架構,它不再需要。機器的部分優化效率,另一部分優化通用性和其他價值,兩者協同工作。

這個趨勢對密碼學也非常有利,因為密碼學本身就是「昂貴的格式化計算」的一個主要例子,而這個趨勢加速了這個趨勢的發展。這為提高安全性又增加了一個機會。在區塊鏈世界中,安全性的提高也成為可能:我們可以少擔心虛擬機器的最佳化,而更專注於優化預編譯以及與虛擬機器共存的其他功能。

第三,這一趨勢為規模較小、較新的參與者提供了參與的機會。如果計算變得不那麼單一,而是更加標準化,這將大大降低投入。即使使用一種類型的計算的ASIC,也可能有所了解。正如在ZK 證明領域和EVM 優化中一樣。編寫具有近乎前沿水平效率的程式碼變得更加容易和易於存取。審計和形式化驗證此類程式碼變得更加容易和易於訪問最後,由於這些非常不同的計算領域正在追求一些共同的模式,因此它們之間有更多的協作和學習空間。

原文連結

歡迎加入律動BlockBeats官方社群:

Telegram 訂閱群:https://t.me/theblockbeats

Telegram交易所群:https://t.me/BlockBeats_App

Twitter 官方帳號:https://twitter.com/BlockBeatsAsia

資訊來源:0x資訊編譯自網際網路。版權所有,未經許可,不得轉載


Total
0
Shares
Related Posts