CogSys: Efficient and Scalable NeurosymbolicCognition System via Algorithm-Hardware Co-Design
CogSys:通過算法-硬件協同設計實現高效且可擴展的神經符號認知系統
https://arxiv.org/pdf/2503.01162
摘要
神經符號人工智能(Neurosymbolic AI)是一種新興的組合范式,將神經學習與符號推理相結合,以增強人工智能的透明性、可解釋性和可信度。它還表現出更高的數據效率,使其在邊緣設備部署中具有廣闊的前景。然而,盡管算法層面充滿潛力并已展示出優異性能,當前硬件(CPU/GPU/TPU)在執行神經符號工作負載時仍面臨挑戰,主要由于更高的內存需求、更大的計算異構性以及訪問模式的不規則性,導致硬件利用率嚴重不足。本文提出了一種名為CogSys的表征與協同設計框架,專門用于加速神經符號AI系統,旨在同時提升推理效率和可擴展性。在算法層面,CogSys提出了一種高效的因式分解技術,以緩解計算和內存開銷。在硬件層面,CogSys提出了一種可擴展的神經符號架構,包含可重構的神經/符號處理單元(nsPE)和氣泡流(BS)數據流,結合時空(ST)映射實現高度并行且高效的神經符號計算。在系統層面,CogSys引入了自適應的工作負載感知調度器(adSCH),以協調異構內核并提高資源利用率。在認知任務上的評估表明,CogSys能夠為神經和符號內核提供可重構支持,并在僅增加<5%面積開銷的情況下,相比TPU類脈動陣列實現了>75倍的加速,相較于桌面和邊緣GPU則實現了4倍至96倍的加速。首次實現了實時溯因推理(abduction reasoning),每項推理任務僅需0.3秒,面積為4平方毫米,功耗為1.48瓦。
I. 引言
大型語言模型(LLMs)的巨大成功,加之對可解釋性和安全性的擔憂,催生了一種新興的“組合AI”范式,尤其是在機器人和醫療等安全關鍵領域。這類系統的目標是將黑箱神經網絡與基于推理/規則的AI方法相結合[38]、[43]、[44]、[49]、[61]、[87]、[91]、[98]。這種方法模仿了人類的認知過程,可分為低級感官處理(系統1“快速思考”)和高級認知功能如推理和演繹(系統2“慢速思考”)[12]、[17]。前者可以用神經網絡建模,后者則可以使用符號框架建模。
組合AI系統的有前景的例子之一是神經符號AI,它協同整合了神經網絡學習和符號推理。神經網絡擅長識別模式和處理感知任務,但缺乏透明性和邏輯推理能力。而符號模塊(例如編碼知識、規則)在推理和可解釋性方面表現優異,但在適應性和從原始數據中學習方面存在困難。神經符號AI通過結合兩者的優點填補了這一空白(圖1)。
神經符號AI在自然語言處理、機器人、醫療等多個領域展示了類似人類的推理和邏輯思維能力[26]、[29]、[33]、[35]、[57]、[59]、[76]、[87]、[93]、[96]。例如,IBM的神經向量符號系統[33]在時空推理任務中達到了98.8%的準確率[95],遠超人類(84.4%)、ResNet(53.4%)和GPT-4(89.0%);谷歌DeepMind的AlphaGeometry[83],另一個神經符號系統,在幾何問題解決上達到了人類奧林匹克金牌選手的水平,而GPT-4完全失敗。最近,還有大量聚焦于神經符號AI的研討會[1]-[8]。
盡管神經符號AI在分布式GPU集群上的過去研究中展示了令人印象深刻的認知能力,但近期的一項研究[86]指出,在邊緣設備上實現實時且高效的神經符號AI仍然是一個極具挑戰性的開放問題,這對許多推理和人機交互應用來說至關重要。例如,一個神經向量符號系統即使在TPU和桌面GPU上運行單個任務也需要>3分鐘[33]。這種低效性可能會長期威脅神經符號AI的部署。
為了進一步理解這一點,我們系統地分析了多種神經符號工作負載在不同設備上的運行時和內存行為,并確定了以下系統級挑戰:1. 大內存占用。神經符號AI系統通常依賴向量符號架構(VSA),利用向量操作表示符號知識。該系統生成一個中間代碼本,捕捉大量的對象組合以實現更高的推理能力(通常為數十到數百MB),使得在邊緣加速器中難以將其緩存到芯片上。2. 計算異構性。與當前神經硬件主要專注于加速的通用矩陣乘法(GEMMs)和卷積操作不同,神經符號工作負載通常包含大量全息向量操作(例如循環卷積),這些操作在GPU和神經引擎(如TPU)上運行效率低下,原因是數據重用率低、計算陣列利用率低以及并行性差。3. 順序處理。通常,符號推理計算依賴于神經感知模塊的輸出,增加了認知推理的關鍵路徑,并導致加速器的部分資源未被充分利用。
為了解決上述挑戰,我們開發了一種算法-硬件協同設計框架,稱為CogSys,據我們所知,這是首個實現認知神經符號系統實時效率和可擴展性的框架,使其更易于部署并促進神經符號AI的發展。在算法層面,CogSys提出了一種高效的因式分解方案以減少內存占用。這種技術通過在分解符號表示時快速交互地因子化向量,完全取代了大規模的符號知識代碼本。在硬件層面,CogSys提出了一種可擴展的架構,包含可重構的神經/符號處理單元(nsPE)和氣泡流(BS)數據流,結合時空(ST)映射,實現高度并行且節能的神經符號計算。該設計靈活支持跨向量維度的異構神經和循環卷積符號內核,從而減少運行時間。在系統層面,CogSys還引入了一種自適應的工作負載感知調度(adSCH)方案,通過多級并行協調神經和符號內核,提高硬件資源利用率,并實現針對不斷發展的神經符號AI的設計可擴展性。值得注意的是,CogSys僅在TPU類脈動陣列上增加了<5%的面積開銷,便實現了對神經和符號內核的可重構支持,并展示了>75倍的系統加速。
因此,本文做出了以下貢獻:
? 我們對各種神經符號工作負載在不同設備上的運行時和內存行為進行了全面分析,確定了效率低下的主要原因和優化機會,這也可以為未來的神經符號系統加速和創新提供指導(第III節)。
? 我們提出了一種算法-硬件協同設計框架,稱為CogSys,這是首個實現基于VSA的神經符號系統的實時、高效和可擴展性的框架,使其更易于部署并促進神經符號AI的發展。
? CogSys在算法層面提出了高效的符號因式分解策略(第IV節),在硬件層面設計了可重構的神經/符號架構和數據流(第V節),并在系統層面引入了調度器(第VI節),以減少內存占用,同時提高硬件利用率和整體神經符號處理效率。
? 在認知任務上的評估表明,CogSys能夠為神經和符號操作提供可重構支持,相比TPU類脈動陣列實現了75.9倍的加速,僅增加4.8%的面積開銷,相比GPU則實現了4倍至95倍的加速。CogSys以4平方毫米的面積和1.48瓦的功耗實現了高效的神經符號AI(第VII節)。
II. 神經符號人工智能背景與工作負載
本節介紹了神經符號AI的初步知識,包括其算法流程和關鍵操作,并描述了四個代表性的神經符號工作負載以供分析。
A. 神經網絡的挑戰
神經方法在從視覺和語言任務中提取復雜特征方面非常有效,并且在靈活性、可擴展性和處理不一致性方面表現出色[68]、[88]-[90]、[100]。然而,神經方法通常存在一些局限性,例如幻覺(hallucinations)和缺乏可解釋性,并且通常作為黑箱運行,其決策過程不易被人類理解。這在認知和安全關鍵應用中削弱了模型輸出的可信度[31]、[39]、[84]。
B. 神經符號AI算法流程
神經符號AI協同整合了神經網絡的學習能力和符號AI的推理能力,相較于深度神經網絡(DNN),在數據高效學習和透明且邏輯化的決策方面具有優勢。神經符號AI在廣泛的應用中表現出卓越性能,例如復雜問答[57]、[59]、抽象演繹[33]、[96]、決策制定[64]、[78]、邏輯推理[70]、[83]等任務,成為實現類人流動智能的一種有前景的范式。圖2提取了一個統一的神經符號流程,并展示了它們如何相互作用以執行復雜的認知任務:
1. 神經系統。過程從神經模塊處理感知任務開始,通過解釋感官數據生成有意義的場景和對象表示,這些表示對于后續的推理過程至關重要。然而,神經模塊本身可能受到疊加災難(superposition catastrophe)的影響,導致其無法提取對象的組成屬性[33]。
2. 符號系統。提取的特征被輸入到符號系統以完成推理任務。此步驟通過結合物理世界的已有模型(例如底層規則、編碼知識)增強了可解釋性,并減少了對大量訓練數據的依賴。在整個過程中,維護了一個知識代碼本,將神經網絡學到的知識與符號規則相結合,確保系統既能從新數據中學習,又能基于現有知識進行邏輯推理。符號推理過程的結果隨后被用于做出決策、生成響應或控制動作。
這種神經符號流程是一種建模人類分層推理過程的方式。類似于感知-推理-行動的認知循環可以通過多層框架進行計算建模[37]、[65],其中感知層融合感官輸入并將其映射到高層觀察,推理層通過應用符號規則和知識進行深思熟慮的、有意識的思考,行動層則促進可信且可靠的執行。這種組合方法使智能體能夠應對需要數據驅動學習和邏輯推理的復雜挑戰。
C. 基于VSA的符號操作
向量符號架構(VSA) 。在組合神經符號AI流程中,利用VSA與神經動力學相結合已成為一種強有力的方法[24]、[32]、[33]、[46]、[60]、[96]。具體來說,VSA提供了一種在低維或高維向量空間中表示符號信息的方式。通過將符號結構編碼為具有維度保持性質的代數運算向量,VSA實現了符號推理與神經網絡的結合,從而在一個統一系統中促進學習、記憶和推理等認知任務。圖3展示了一個簡單的例子,說明了神經網絡的綁定歧義性以及VSA結構的功能。
循環卷積 。VSA的一項關鍵操作是分塊循環卷積,它作為表示不同符號的向量的一種通用操作。循環卷積以一種保留兩者信息的方式組合兩個向量,因此非常適合用于表示復合符號。從數學上講,兩個向量A和B(每個維度為N)的循環卷積生成向量C,計算公式為:
其中,C的每個元素通過對A的元素與B的循環移位元素相乘并求和得到。此過程對每個元素n(從0到N-1)重復進行。循環卷積具有交換性和結合性,這使其在需要操作結構化信息的分層推理任務中特別有效。
符號知識代碼本 。符號知識通常被表示為一組感興趣的屬性代碼本(如圖3所示)。為了描述具有多種屬性的對象,可以通過循環卷積綁定知識代碼本來計算一個乘積向量。由于乘法綁定的特性,共同激活的VSA表示會產生最小的干擾,從而使每個對象都能被準確恢復。由神經網絡生成的查詢向量將與所有代碼本向量進行比較,以推導出進一步推理所需的屬性。代碼本通常在數十到數百MB的范圍內,對于復雜任務而言,將其緩存在邊緣加速器的片上內存中是不現實的。
D. 代表性的神經符號AI模型
遵循圖2中的流程,我們詳細分析了四個基于VSA的神經符號工作負載:用于時空推理的NVSA [33]、用于多輸入同時處理的MIMONet [60]、用于概率溯因的LVRF [32],以及用于抽象推理的PrAE [96]。這些工作負載實現了最先進的性能,并解鎖了高級推理能力。我們的目標是理解它們的系統和架構挑戰,以實現可擴展的神經符號部署,其中延遲和效率是關鍵因素。
表I列出了所選代表性工作負載的詳細信息:
1) 神經向量符號架構(NVSA): NVSA是一種推進時空溯因推理的神經符號系統[33]。其神經模塊負責視覺感知,而符號模塊使用基于VSA的操作進行概率推斷、符號規則推理和執行。NVSA繞過了疊加災難[67],并超越了純神經方法,在關鍵的流體智能推理測試中達到了人類水平的性能[95]。
2) 多輸入多輸出網絡(MIMONet): MIMONet是一種設計用于處理多輸入并降低每輸入計算成本的神經符號模型[60]。其神經模塊使用CNN/Transformer架構,而符號模塊采用VSA綁定/解綁操作進行編碼/解碼,從而實現疊加計算。與純神經方法相比,MIMONet在LRA基準測試中實現了2-4倍的加速,同時保持更高的準確性[82]。
3) 基于向量符號架構學習規則的概率溯因(LVRF): LVRF是一種用于視覺推理和處理分布外數據的神經符號架構[32]。其神經模塊負責視覺感知,而符號模塊使用VSA進行概率溯因推理。在未見過的推理任務中,LVRF的表現優于純神經方法[36],提供了更大的靈活性和可解釋性。
4) 概率溯因與執行(PrAE)學習器: PrAE是一種用于時空認知推理的神經符號學習器[96]。其神經模塊負責視覺感知并生成場景表示,而符號模塊進行概率推理并推導規則。PrAE提供了人類水平的泛化能力、透明性和可解釋性,這是經典神經網絡難以實現的。
III. 神經符號AI系統性能分析
基于先前的性能分析研究[87],本節對各種基于向量符號的神經符號模型的系統行為進行了表征(第III-A至III-D節),并為計算機架構師提供了工作負載的見解(第III-E節、III-F節)。
A. 性能分析設置
為了理解神經符號AI工作負載在實際設備上的效率,我們對四種代表性模型進行了性能分析,這些模型在第二節-D部分中已詳細闡述。分析內容包括運行時間、內存和計算操作,旨在解決四個設備上的認知推理問題。這四個設備分別是Coral邊緣TPU(4瓦)、Jetson TX2(15瓦)、Xavier NX(20瓦)和RTX 2080Ti(250瓦)。
B. 計算延遲分析
端到端延遲分解。圖4a和圖4b展示了四種神經符號工作負載的端到端延遲分解。我們可以觀察到以下幾點:
(1) 在所有四種設備上都無法滿足實時性能要求。即使有更多的計算資源可用于減少神經網絡(NN)運行時間,符號推理的顯著開銷仍然阻礙了實時執行。
(2) 符號操作始終主導運行時間。例如,在NVSA推理時間中,符號模塊占總時間的87%,而其浮點運算(FLOPS)僅占NVSA總浮點運算的19%。這表明符號操作可能無法在GPU/TPU上高效執行。
(3) 由于符號推理計算依賴于神經工作負載,因此它位于關鍵路徑上。
端到端延遲的可擴展性。圖4c表明,神經與符號運行時間的比例在不同任務和規模下保持相對穩定。例如,當瑞文漸進矩陣(Raven’s Progressive Matrices, RPM)[95]任務規模從2×2增加到3×3時,NVSA符號模塊的運行時間從91.6%變為87.4%,而總運行時間在14個測試場景中平均增加了5.02倍。這表明神經符號模型存在可擴展性瓶頸。
C. 內存與系統分析
內存占用。圖4d描述了神經符號工作負載的內存占用情況。我們可以觀察到以下幾點:
(1) 神經權重和符號代碼本通常會消耗大量存儲空間,因為神經感知使表達的對象組合數超過了向量空間維度,因此需要足夠大的代碼本來確保向量的準正交性。
(2) 符號模塊由于依賴中間結果的大量向量操作以及窮舉搜索而消耗大量內存。
系統屋頂線分析(System Roofline Analysis)。圖5使用RTX 2080Ti GPU版本的屋頂線模型來量化神經符號工作負載。我們觀察到,符號模塊受到內存限制,而神經模塊則受到計算限制。這主要是因為符號操作需要流式傳輸向量元素,增加了內存帶寬壓力,并導致硬件利用率不足(第III-D節)。
D. 符號操作與低效性分析
符號操作分析。受主導符號瓶頸的啟發,我們在圖6中詳細分析了其具體操作。我們觀察到,向量符號循環卷積和向量-向量乘法占符號模塊運行時間的80%。與共享的神經模塊不同,這些符號操作針對每個下游認知任務和底層規則依次單獨運行。這些操作通常源于高維分布式向量,在GPU/TPU上難以高效處理。因此,隨著認知任務和特征復雜性的進一步增長,加速這些向量符號計算的挑戰將變得越來越重要。
符號硬件低效性分析。為進一步量化硬件低效的原因,我們分析了代表性神經和符號內核的計算與內存單元行為,如表II所示。系統低效主要來自算術邏輯單元(ALU)利用率不足、緩存命中率低以及符號操作的大規模數據移動。符號數據傳輸占總延遲的一半,其中>80%來自主機到GPU的數據傳輸,而神經內核表現出高利用率。
E. 神經符號AI與機器學習工作負載的獨特特性
總結上述表征結果,神經符號AI與機器學習工作負載的主要區別體現在三個方面:
1. 計算內核。神經符號工作負載由異構的神經和符號內核組成。符號操作在CPU/GPU/TPU上運行效率低下,硬件利用率和緩存命中率較低,導致延遲瓶頸。
2. 內存。符號操作因向量符號操作中的大規模元素流式傳輸而受限于內存。符號代碼本通常占用較大的內存空間,并在計算過程中需要大規模的中間緩存。
3. 數據流與可擴展性。神經符號工作負載比CNN表現出更復雜的控制。符號模塊通常具有不規則的數據流、數據依賴性和順序處理,帶來低并行可擴展性和效率問題。
F. 神經符號優化的潛在機會
盡管神經符號AI前景廣闊,但解決其低效問題是實現實時、可擴展部署并確保長期發展的關鍵。為此,我們提出了CogSys,一種算法-硬件協同設計框架,旨在提高神經符號AI的推理能效和準確性(圖7)。
- 在算法層面,通過硬件友好的代碼本優化減少內存占用和延遲(第IV節)。
- 在硬件層面,架構和數據流必須對VSA操作高效且能夠靈活支持神經/符號內核(第V節)。
- 在系統層面,架構必須能夠高效且自適應地調度多樣化的神經符號工作負載(第VI節)。
CogSys在推理應用中始終表現出性能、效率和準確性的提升(第VII節)。
IV. COGSYS: 算法優化
本節介紹了我們提出的CogSys算法優化,以實現高效且可擴展的神經符號系統。我們提出了一種高效的向量符號因式分解策略,以減少大規模內存占用(第IV-A節),并探索了隨機性注入和低精度操作以加速神經符號系統(第IV-B節)。
A. 符號因式分解策略
整體流程。為了解決符號代碼本的大規模內存占用問題(第III-C節),我們提出了一種高效的因式分解策略。其核心思想是將符號知識代碼本中大量對象組合向量分解為少量基礎屬性向量,從而降低計算的時間和空間復雜度(圖8)。
具體來說,給定一個由神經模塊生成的糾纏查詢向量q(例如場景表示)以及一組符號代碼本(每個代碼本包含M種可能解,總共有F個代碼本),這會涉及MF個向量的組合搜索和存儲。我們的因式分解方法并非搜索所有可能的組合,而是通過疊加態迭代搜索,找到有效的x?i ∈ Xi,使得估計向量與輸入查詢q具有最高相似度。通過利用向量的準正交性,我們的因式分解模塊能夠快速在疊加態中搜索各種組合。具體方法是通過迭代地從乘積向量中解綁除一個因子外的所有其他因子,并將其投影到當前考慮因子的可能解空間中,用于后續推理過程。通過這種方式,我們可以取代原始的符號代碼本,并大幅減少其存儲需求。
詳細步驟。圖8展示了我們的符號知識代碼本因式分解策略,包括以下三個步驟:
步驟1:通過元素級乘法(?)進行因子解綁。對于給定的因子,解綁操作通過對乘積向量q解綁其他因子最新估計值的貢獻來完成:
步驟2:通過矩陣-向量乘法進行相似性搜索。
對每個解綁的估計值計算相似性向量:
步驟3:通過矩陣-向量乘法進行因子投影。
后續時間步的因子估計值通過對所有碼向量的線性組合給出,其中相似性向量作為權重:
重復步驟1至步驟3,直到收斂。
適用于多種神經符號工作負載。 我們提出的高效因式分解模塊可以應用于不同層次的概念結構,例如將動態場景的時間變化像素數據進行因式分解[9]、將句子結構分解為角色和填充詞[53],以及認知類比推理[33]。本質上,由于其在感知和認知推理中的廣泛應用性,我們預計它將成為未來大規模神經符號認知系統的核心組件。
B. 隨機性與低精度操作
通過隨機性優化因式分解。為減少因式分解所需的迭代次數,我們建議引入加性高斯噪聲。我們觀察到,在步驟2的相似性計算和步驟3的投影操作中注入隨機性有助于因式分解過程跳出極限環,從而探索更大的解空間并實現更快的收斂(表VIII)。
操作精度優化。為進一步減少內存占用,我們將量化技術應用于工作負載中。具體來說,我們在神經和符號計算中均采用8位浮點數和整數運算,并通過微調來保持推理精度(表IX)。
C. 算法優化討論
對準確性、延遲和內存的影響。 分解、隨機性和量化優化對準確性、延遲和內存需求的影響程度各不相同。如表III所示,分解可以提高準確性(因為能夠精確提取屬性,從而有助于下游的符號推理),隨機性優化也可以提高準確性(因為能夠改善收斂效果)。然而,量化會導致準確性下降,原因在于數據的不精確性。設計者可以通過調整分解的收斂閾值來平衡速度和準確性。
V. COGSYS:硬件架構
本節介紹了CogSys架構,這是首個能夠實現高效且可擴展的神經符號處理的硬件。
CogSys架構的主要特點包括:可重構的神經/符號處理單元(nsPE)(第V-B節)、氣泡流(Bubble Streaming, BS)數據流(第V-C節)、自適應時空(Spatial-Temporal, ST)映射(第V-D節),以及支持可擴展陣列架構(第V-E節)和定制的單指令多數據(SIMD)單元(第V-F節),用于神經符號處理。
A. 提出的CogSys架構概述
神經符號工作負載在計算內核方面的異質性遠大于深度神經網絡(DNN),這導致其與當前專注于矩陣乘法(GEMMs)和卷積運算的硬件之間的差距不斷擴大。如表IV所示,CogSys首次被提出用于支持神經符號工作負載,并實現符號操作的高效且可擴展的實現。
為了設計一個完整的神經符號加速系統,我們的設計包括動態隨機存取存儲器(DRAM)、主機系統芯片(SoC)以及由五個主要組件組成的CogSys加速器:可重構的神經/符號計算陣列、單指令多數據(SIMD)單元、雙緩沖靜態隨機存取存儲器(SRAM)、自適應調度器和存儲器控制器(見圖9)。在推理過程中,主機SoC輸入任務,隨后可重構陣列執行神經計算(例如矩陣乘法/卷積)和向量符號運算(例如循環卷積),而SIMD單元則通過多級并行和自適應工作負載調度來加速元素級和向量級運算。值得注意的是,單片式 systolic array(類似TPU的架構)對于符號工作負載極為低效(見第V-C節),而CogSys為神經和符號內核提供了可重構支持,并在僅增加不到5%的面積開銷的情況下,相比 systolic array 架構實現了超過75倍的速度提升。
B. 可重構的神經/符號處理單元
可重構的神經/符號處理單元(nsPE)。為了避免為神經運算和符號運算分別設置處理單元(PE)而導致的巨大面積開銷,我們提出了nsPE微架構,它為神經和符號運算都提供了可重構支持(見圖10)。每個nsPE包含四個寄存器(固定寄存器、傳遞寄存器、流式寄存器和部分和寄存器),并支持三種操作模式(加載模式、GEMM模式和循環卷積模式)。在加載模式下,輸入向量A(GEMM的權重)通過“頂部輸入A”鏈接被傳入固定寄存器。通過選擇輸入B是從“左側輸入”鏈接(GEMM模式)還是傳遞寄存器(循環卷積模式)來實現可重構性。在GEMM模式下,nsPE像TPU一樣運行,以高效地執行GEMM和卷積。輸入數據通過“左側輸入”鏈接從左向右流式傳輸。在循環卷積模式下,輸入向量B通過“頂部輸入B”鏈接從上到下流式傳輸,并通過傳遞寄存器產生一個氣泡(見第V-C節),這有助于流式輸入的時間重用,從而高效地執行向量符號循環卷積運算??芍貥嫷膎sPE還可以通過反轉固定向量A來支持高效的循環相關運算。在GEMM模式和循環卷積模式下,部分乘積通過“頂部輸入A”鏈接從上到下進行歸約。
C. 高效的氣泡流數據流
TPU類systolic array的低效性。TPU類systolic array(SA)在符號循環卷積運算中表現出高內存占用和低并行性。圖11a展示了一個包含三個循環卷積的場景。TPU類systolic cell將它們實現為一般的矩陣-向量(GEMV)乘法,其中矩陣包含循環移位的固定向量,矩陣的內存占用為O(d2)。此外,TPU類SA無法在一個systolic cell上并行處理多個GEMV,而需要依次處理它們。
氣泡流(BS)數據流 為了在 nsPE 陣列中高效支持符號操作,我們提出了氣泡流(BS)數據流來實現循環卷積(第 II-C 節)和循環相關(反向循環移位),這是向量-符號瓶頸。圖 11b 展示了一個 BS 數據流的例子,它在一個 3×1 的 nsPE 陣列上執行兩個向量 A 和 B(d=3)的循環卷積。在 BS 數據流中,向量 B 通過氣泡(傳遞寄存器)從一個 nsPE 流向另一個 nsPE,而向量 A 則保存在固定寄存器中。BS 數據流使傳遞寄存器能夠臨時存儲流輸入一個周期,然后將其移動到流寄存器中。該值在下一個周期被傳遞到下一個 nsPE 的傳遞寄存器。MAC 單元處理來自固定寄存器和流寄存器的數據,并將其添加到部分乘積中。這一過程重復進行,直到生成最終輸出。
改進的 BS 數據流算術強度 BS 數據流比 GPU/TPU 類似的脈動單元中的 GEMV 實現了更高的算術強度,這在屋頂線分析(圖 11c)中有所說明。這種效率主要來自于減少的內存占用和增加的并行性(表 IV)。
(1) 線性內存占用:氣泡實現了向量 B 的循環移位(O(d)),并減少了創建和獲取循環移位 B 的矩陣(O(d2))的開銷,如 TPU 類似的脈動單元那樣,從而將內存占用減少了 d 倍。
(2) 列級并行性 (CWP):BS 數據流使脈動單元的每一列都可以執行循環卷積,因此多個循環卷積可以在多列之間并行化,這在 TPU 類似的脈動單元中對 GEMV 是不可能的。低算術強度和內存受限的操作使得 GPU 在向量-符號循環卷積中效率低下。對于兩個 d 維向量的循環卷積,GPU 的算術強度為 d×(d+d?1)/(d×d+d×1 +d×1),而 CogSys 的算術強度為 d×(d+d?1)/(d×1+d×1+d×1)。如圖 11c 所示,CogSys 在完全利用時達到了峰值性能,而 GPU 則受到內存限制的影響。此外,GPU 還需要額外的計算來處理循環移位向量的索引計算。
BS 數據流的周期分析 假設 nsPE 陣列大小 M = 輸入向量大小 d 的情況下進行向量-符號循環卷積,流式傳輸固定輸入需要 d 個周期,隨后輸入向量需要 2d 個周期到達最后一個 nsPE。同時,部分和沿著陣列聚合以生成第一個輸出,接著剩余的 (d ? 1) 個輸出每個都以每周期生成一個的速度生成。因此,在 1-D nsPE 計算陣列中,兩個 d 維向量的向量-符號循環卷積的端到端延遲是 (4d?1) 個周期。在 d = M 的情況下,延遲 T 將為 (3M+d?1) 個周期,其中 M 用于加載固定向量,2M 用于流式向量到達最后一個 nsPE,以及 (d ? 1) 個周期用于生成剩余輸出。
D. 自適應時空映射策略
時空(ST)映射的靈活性。為了高效支持向量符號操作的各種維度,我們提出了具有空間映射模式和時間映射模式的ST映射(見圖12)。nsPE陣列可以輕松擴展到N個陣列??臻g映射通過將單個循環卷積并行化為多個折疊,與時間映射相比減少了內存讀取,尤其是在有多個折疊時。以N個陣列(每個陣列有M個PE)為例,空間映射在T個周期內需要次內存讀取用于d維向量,而時間映射在T個周期內需要加載個元素。鑒于神經符號工作負載通常有d>1000,通過空間映射,帶寬需求(每T個周期的內存讀取次數)減少了(N/2)×倍。另一方面,當d 個周期,而空間折疊需要 個周期。
為了高效處理符號操作并平衡帶寬和延遲,我們根據工作負載和CogSys配置,在空間映射和時間映射之間進行自適應搜索。例如,在NVSA(k=210)和LVRF(k=2575)工作負載中,對于N=32和d=1024的情況,CogSys選擇具有32個并行循環卷積的時間映射。
E. 自適應擴展與橫向擴展策略
擴展與橫向擴展的靈活性 為了提升設計利用率和可擴展性,CogSys 提出以擴展和橫向擴展的可重構陣列組合方式運行,支持體視單元并行(ScWP)和循環卷積的列式并行(CWP)。(N=32, M=512) 配置由 16 個 32×32 單元構成,通過配置多路選擇器在五種方案中選擇,即擴展 GEMM、橫向擴展 GEMM、擴展 Conv、橫向擴展 Conv 和橫向擴展 GEMM+Conv,由第六節 B 部分中的體視單元異構分區方案啟用。對于 GEMM,橫向擴展方案實現更高利用率和 ScWP。對于符號循環卷積,橫向擴展方案為低維向量啟用 ScWP 和 CWP。
設計空間探索 我們基于工作負載和 CogSys 配置搜索橫向擴展/擴展方案,以提高利用率和并行性。例如,16 個 32×32 橫向擴展單元實現 91.26% 的利用率,相比一個 128×128 擴展單元和四個 64×64 橫向擴展單元,分別在 NVSA 和 LVRF 神經模塊上獲得 10.71 倍和 7.83 倍的加速。對于向量符號操作,CogSys 為 NVSA 和 LVRF(高維向量處理,d=1024)選擇擴展方案,為 MIMONet(低維向量處理,d=64)選擇橫向擴展方案。
F. 雙緩沖存儲器和定制的 SIMD 單元
雙緩沖存儲器。CogSys陣列由三個雙緩沖SRAM支持(見圖9b)。雙緩沖存儲器在減少片外訪問以及由于加載和存儲導致的停頓方面非常有效,從而降低了延遲。SRAM A被所有單元共享,以利用權重的時間重用,而SRAM B則分布在各個單元中。通過設計空間探索,CogSys選擇了256KB用于SRAM A和4MB用于SRAM B。
定制的SIMD單元。CogSys采用了定制的SIMD單元來執行向量歸約和逐元素操作(見圖9a)。SIMD單元高效地處理CogSys陣列輸出和輸入SRAM之間的數據傳輸,使陣列能夠無縫訪問后續操作所需的數據。SIMD單元由多個處理單元組成,每個處理單元都設計有緊湊的邏輯電路(例如,加法、乘法/除法、指數/對數/雙曲正切、歸一化、softmax等),以對量化數據執行向量操作。自適應工作負載感知調度方案(第VI節)在CogSys陣列和SIMD單元之間調度工作負載,以平衡神經和符號操作的運行時間。
VI. COGSYS:調度策略
本節介紹了CogSys的自適應工作負載感知調度策略。我們首先識別了神經符號工作負載的系統級挑戰(第VI-A節),然后介紹了CogSys的調度方案(第VI-B節),并進一步討論了其對其他工作負載和任務的可擴展性(第VI-C節)。
A. 神經符號系統級挑戰
我們識別了兩個主要的神經符號系統級挑戰(見圖13a):首先,神經和符號組件的順序執行以及頻繁的交互導致了長延遲和低系統吞吐量。其次,異構的神經和符號內核導致計算陣列利用率低和機器學習加速器的效率低下。
B. 自適應工作負載感知調度(adSCH)策略
自適應調度(adSCH)策略。為了解決系統級挑戰,CogSys采用了adSCH方案,并顯著提高了硬件利用率和性能。
(1)神經/符號處理的交錯執行。盡管神經和符號任務之間存在依賴關系,但其他任務的符號操作可以通過可重構的神經/符號PE陣列在當前任務的神經層中交錯執行(見圖13b)。
(2)自適應神經/符號陣列分區策略。我們提出自適應地將CogSys單元分配給各種神經和符號內核(單元級分區),并將符號單元列分配給并行循環卷積操作(列級分區)(見圖13c)。這種分區策略在處理神經密集型和符號密集型工作負載方面非常有效,并且促進了并行性和硬件利用率。
調度實現。CogSys的工作負載感知調度由軟件離線執行。由于模型架構、大小和數據在執行之前是已知的,主機CPU預先計算操作的映射和陣列配置,然后將這些配置卸載到CogSys。這確保了最優或接近最優的調度,并且沒有運行時延遲。調度過程使用貪婪搜索算法:(1)根據操作類型、大小、依賴關系和迭代次數生成操作圖;(2)將已就緒的操作(未被依賴關系阻塞)分配給新可用的單元,并通過分析估算運行時間;(3)通過優先將大型單元塊分配給神經任務,將小型單元塊分配給符號任務,最大化利用率。由于搜索僅考慮16個陣列單元內的可用塊和已就緒的任務,因此每個時間步的搜索空間限制在小于O(103),從而導致最小的離線開銷和零運行時開銷。
自適應調度示例。圖13d展示了一個詳細的adSCH方案示例,其中包含NVSA片段[33]中的操作和周期數。CogSys的可重構陣列調度神經(卷積、GEMMs)和符號(循環卷積)操作,而逐元素操作則卸載到SIMD單元。為了緩解硬件利用率不足的問題,CogSys在當前批次的神經層中,在空閑的硬件部分上執行基于VSA的上一批次的碼本和符號內核,從而消除了符號瓶頸。特別是,采用了多級并行處理不同的符號規則和屬性,以進一步提高效率。
C. 可擴展性和多樣性支持
在神經符號工作負載和認知任務中具有可擴展性。adSCH技術使得CogSys能夠輕松地在(1)神經符號工作負載(例如,NVSA、MIMONets、LVRF等)和(2)認知任務(如過程生成矩陣(PGM)[11]、組合視覺推理(CVR)[94]、合成視覺推理測試(SVRT)[20],它們具有不同的屬性和規則(圖2,表1))之間重新配置。結合nsPE可重構陣列、BS數據流和ST映射,adSCH方案確保了符號操作與神經操作交錯進行,并具有高吞吐量,使得各種基于VSA的神經符號工作負載能夠在CogSys上高效且充分利用地執行,并適應不同的神經符號工作負載比例以及不可預測地變化的工作負載。
VII. 評估結果
本節首先介紹用于評估我們提出的CogSys框架的詳細設置(第VII-A節),然后對我們的CogSys算法優化(第VII-B節)和加速器(第VII-C節)進行基準測試,展示了高效且可擴展的神經符號系統的實用性。
A. 實驗設置
數據集:為了評估CogSys實現的認知推理能力,我們在常用的時空推理數據集RAVEN [95]、I-RAVEN [36]、PGM [11]、CVR [94]和SVRT [20]上進行實驗。任務性能通過概率性溯因推理的準確率來衡量。
算法設置:我們在三種最先進的基于VSA的神經符號工作負載上評估CogSys,即NVSA [33]、MIMONet [60]和LVRF [32]。按照文獻[32]、[33]、[60],我們根據驗證集上的端到端推理性能來確定訓練的超參數。
基線:我們考慮了幾種硬件基線,包括TX2、Xavier NX、RTX GPU、Xeon CPU和機器學習加速器(TPU、MTIA、Gemmini)。表VI列出了它們的配置。
硬件設置:為了評估CogSys加速器的能耗和面積,我們使用RTL實現了CogSys,使用Synopsys Design Compiler [79]在0.8 GHz下進行綜合,并基于TSMC 28nm工藝節點使用Cadence Innovus [13]進行布局布線。圖14展示了CogSys加速器的布局和規格。此外,我們開發了一個精確到時鐘周期的模擬器,用于估算CogSys加速器在不同推理任務上的性能。提出的CogSys加速器占用面積為4.0 mm2,平均功耗為1.48 W。與僅支持神經操作的傳統 systolic arrays 相比,CogSys僅增加了4.8%的面積開銷,就提供了對神經和符號操作的可重構支持。
B. CogSys算法優化性能
因式分解精度。為了評估我們的因式分解和隨機性方法的有效性,我們在14個測試用例中將CogSys與最先進的因式分解器[50]進行了比較(見表VII)。結果顯示,在對象組成屬性提取方面,CogSys的因式分解精度略有提高。
推理精度。為了評估CogSys算法優化(第IV節),我們在五個推理任務上對其進行了基準測試,以衡量其達到的精度(第VII-A節)。表VIII以NVSA為例,在RAVEN、I-RAVEN和PGM數據集上進行基準測試,我們觀察到CogSys通過因式分解和注入的隨機性實現了相當的推理精度。通過量化,CogSys在TSMC 28nm工藝節點下,實現了4.75倍的內存占用節省,以及7.71倍的面積節省和4.02倍的功耗節?。ū鞩X)。在CVR和SVRT數據集下的MIMONet和LVRF工作負載中,我們也得到了一致的觀察結果。
C. CogSys加速器性能
性能提升:我們在五個不同難度級別的推理任務上,對CogSys加速器與RTX GPU、Xeon CPU以及邊緣SoC(Jetson TX2、Xavier NX)進行了基準測試,以加速神經符號算法(圖15)。對于GPU基線,對于神經內核,我們使用了利用CUDA和cuBLAS/cuDNN庫的PyTorch包;對于符號內核,我們實現了針對向量符號操作優化的自定義內核。工作負載由PyTorch中的CuDNN根據適合GPU內存的塊大小進行分塊。我們觀察到CogSys在各個數據集上均展現出一致的加速效果,例如,與TX2和NX相比,分別實現了90.82×和56.76×的加速,這表明了其高效率和可擴展性。此外,CogSys在解決邏輯推理任務時實現了實時性能(<0.3秒)[33],表明CogSys是首個實現具有卓越推理和泛化能力的實時神經符號系統的解決方案,為未來的認知應用提供了有希望的解決方案。
能效提升:我們在五個推理任務上對CogSys加速器的能耗和能效進行了基準測試(圖16)。我們觀察到CogSys加速器的能效比RTX GPU、Xeon CPU、TX2和NX高出兩個數量級,這表明其在資源受限的神經符號系統中的高效性和適用性。為了進一步評估CogSys在長期部署中的能效,我們使用混合工作負載對CogSys進行了連續測試,其中既包括高需求時期,也包括低活動時期,并且在不同場景之間有10秒的空閑間隔。平均而言,CogSys的能效比RTX GPU高出730×。此外,與V100和A100 GPU相比,CogSys分別實現了4.43×和1.43×的加速,以及748×和241×的能效。
與TPU/GPU的比較:我們在不同向量維度和操作數量下,對符號循環卷積在類似TPU的SA(具有相同數量的PE)和GPU上的性能進行了基準測試(圖17)。我們觀察到CogSys可重構陣列在低維度和高維度向量符號操作中均表現出色,分別比類似TPU的SA和GPU快75.96×和18.90×。
與機器學習加速器的比較:我們在不同的神經符號模型和任務上,對神經和符號操作在TPU [41]、Gemmini [28]和類似MTIA [19]的架構上的運行時間進行了基準測試(圖18)。為了公平比較,我們保持所有硬件配置具有相同數量的PE。與當前的機器學習加速器相比,我們觀察到CogSys在神經操作中實現了類似的性能,而在符號操作效率方面表現出色,從而在神經符號系統中實現了端到端的加速。此外,我們還在不同模型和任務上將CogSys與高維計算加速器 [37]進行了比較,觀察到平均速度提升了7.2×。這一改進主要是由于高維計算架構缺乏高效的神經和符號支持以及循環卷積處理。
對提出硬件技術的消融研究:如第V節和第VI節所述,CogSys具有可重構的神經/符號PE,采用氣泡流數據流和時空映射、可擴展的陣列架構以及自適應調度策略,以減少神經和符號內核的計算延遲和內存占用。為了驗證我們提出的方法的有效性,我們在圖19中總結了CogSys在沒有調度、可擴展架構和可重構PE的情況下的運行時間。特別是,提出的調度策略平均可以將運行時間減少28%。此外,通過提出的可擴展陣列和可重構PE,運行時間的減少比例可以進一步擴大到61%和71%,這表明這兩種技術對于CogSys加速器實現所需的高效和可擴展推理能力是必要的。
對協同設計必要性的消融研究:據我們所知,我們提出的CogSys作為一個算法-硬件協同設計框架,是首個實現高效且可擴展的基于設備的神經符號系統的解決方案。為了驗證這種協同設計策略的必要性,我們在表X中總結了CogSys在沒有提出的算法優化或硬件技術的情況下的運行時間。具體而言,與在相同Xavier NX硬件和RAVEN任務上的NVSA [33]相比,我們的CogSys算法優化可以將運行時間縮短到89.5%。此外,同時采用我們提出的CogSys算法優化和加速器,運行時間可以減少到1.76%,這表明CogSys框架的協同設計策略是必要的。
VIII. 相關工作
神經符號人工智能:神經符號人工智能在提升下一代認知應用的可信度、推理能力和魯棒性方面具有巨大潛力,其中智能體能夠以可解釋的方式做出決策,并且智能被廣泛嵌入到人機交互中[10]、[18]、[33]、[34]、[56]、[66]、[92]、[93]、[97]。目前的神經符號研究大多集中在算法上;然而,對現成硬件上效率低下的問題缺乏關注,可能在長期內阻礙神經符號人工智能的發展。因此,CogSys邁出了第一步,以了解神經符號的架構和系統特性,并提出了一個協同設計框架,使其更高效且能夠大規模部署。
新興應用的加速器:隨著技術縮放的放緩,定制架構是一種務實的方法,可以確保性能和效率的同步提升。除了深度神經網絡(DNNs)[21]、[40]、[69]、[71]、[77]、[80]、[81]、[99]之外,硬件加速在基因測序[22]、[23]、圖處理[25]、[75]、移動視覺[54]、[55]、[85]、無人機[14]、[47]、[48]、機器人技術[30]、[51]、[52]、[58]、[63]、隱私與安全[27]、[62]、[73]、[74]等新興應用中也被證明是有效的。盡管存在這些加速器,CogSys是第一個為神經和符號內核提供可重構支持的提議,從而促進高效且可擴展的神經符號系統的發展。
IX. 結論
為了實現面向實時認知應用的高效且可擴展的神經符號人工智能,我們提出了CogSys,這是第一個專門用于加速神經符號人工智能的算法-硬件協同設計框架。CogSys識別了神經符號加速的獨特機會,包括高效的因式分解、可重構的神經/符號處理單元(PE)、氣泡流數據流和自適應調度器,利用這些機會,我們開發了算法優化和專用加速器。我們相信CogSys可以為大規模高效且可擴展的認知推理系統開辟一個令人興奮的新視角。
原文鏈接:https://arxiv.org/pdf/2503.01162
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.