【導(dǎo)讀】機器人應(yīng)用,因其充滿變化的應(yīng)用場景與復(fù)雜的任務(wù)需求,其對定制化芯片的要求,一直是領(lǐng)域內(nèi)難以被攻克的一個難題。本文詳細闡述和討論了為機器人應(yīng)用定制芯片的困難所在、解決思路,并更進一步,介紹了可能給機器人產(chǎn)業(yè)帶來改觀的芯片自動生成問題。
本文精選自《新程序員 007:大模型時代的開發(fā)者》,完整專題可在小程序中立享閱讀。
作者 | 甘一鳴
責(zé)編 | 唐小引
出品 | 《新程序員》編輯部
在大模型以其超前的文本輸出、邏輯推理能力出現(xiàn)在人們面前時,“具身智能”這一概念又一次把通用人工智能的可能性推到了人們面前。一種以定位感知模塊為輸入,以大模型為“大腦”進行邏輯推理和規(guī)劃,以傳統(tǒng)控制模塊為“小腦”執(zhí)行大模型的決策的機器人算法框架使得可以執(zhí)行長序列復(fù)雜任務(wù)的機器人幾乎成為了現(xiàn)實。
圖源:Bing AI
當(dāng)然,這一美好想法并沒有那么容易實現(xiàn),而橫亙在理想和現(xiàn)實之間的主要問題之一,就是當(dāng)前機器人領(lǐng)域芯片算力嚴重不足,難以滿足日益增長的機器人應(yīng)用的算力需求,導(dǎo)致機器人操作的硬實時性很難被滿足。
我從 2018 年開始進入機器人這個領(lǐng)域,希望在這篇文章里提出一個目前還尚未被大量關(guān)注到的思路:一個合適的模版可以為多個機器人領(lǐng)域的算法和應(yīng)用提供硬件定制化的基礎(chǔ),甚至能加速芯片自動生成這一計算機體系結(jié)構(gòu)所有難題中的明珠問題的解決。
傳統(tǒng)的機器人算法框架通常包括了感知、定位、規(guī)劃、控制等幾個模塊。當(dāng)前除了感知模塊被深度學(xué)習(xí)網(wǎng)絡(luò)算法統(tǒng)治之外,其余的幾個模塊在不同場景下的機器人應(yīng)用中變化還是較大的。
根據(jù)傳感器數(shù)量、種類、機器人的應(yīng)用模式的變化,定位、規(guī)劃和控制模塊的算法變化也較大。以定位算法為例,可以使用的傳感器包括單目相機、雙目相機、激光雷達、GPS、IMU 等等??焖僮兓乃惴蚣芎托问揭彩沟脼闄C器人算法定制芯片變得困難。為某一個算法設(shè)計的硬件有時難以運行其余算法,極大地減少了硬件平臺的移植性,增加了成本。
因子圖:優(yōu)化類算法的理想硬件加速模版
以定位算法為例,常見的算法框架通??梢员环譃榍昂蠖藘蓚€部分,前端通常被用于提取特征點,計算描述子,尋找對應(yīng)關(guān)系并將特征信息傳遞給后端。后端通常負責(zé)根據(jù)前端的特征信息對機器人位姿進行優(yōu)化。前端特征提取利用傳統(tǒng)的 SIMD 硬件可以得到充分的加速,而后端的優(yōu)化算法則因為其不規(guī)則的運算更難被加速。
如此一來,后端的優(yōu)化算法會成為整個定位模塊的瓶頸。我們發(fā)現(xiàn),不僅是在定位算法中,在路徑規(guī)劃、控制等多個算法中,都存在類似的問題。
優(yōu)化算法,以牛頓高斯消元法為例,在傳統(tǒng)的加速器設(shè)計中一直是難以解決的一環(huán)。這一問題難以被加速主要原因在于兩點:
首先,優(yōu)化過程中涉及到大量的矩陣乘法、矩陣分解等矩陣操作。這些矩陣的規(guī)模較大,通常維度可以達到幾百行、幾百列,而且除了矩陣乘之外,其余操作很難并行化。如此大規(guī)模的不規(guī)則矩陣運算,除了堆積算力規(guī)模之外,并無其他更好的加速方法。
另外,盡管優(yōu)化過程中的矩陣并不稠密,常常只有百分之十以下的元素為非零元素,但這些矩陣的稀疏性并不規(guī)則,難以被利用。
我們提出使用因子圖為中間模版來對機器人應(yīng)用中的優(yōu)化算法[1][2]進行加速。因子圖是一種描述變量關(guān)系的二分圖,可以被應(yīng)用于優(yōu)化問題的描述中。因子圖中有兩種不同的節(jié)點——變量節(jié)點和因子節(jié)點。變量節(jié)點即一系列需要優(yōu)化的變量,而因子節(jié)點即為變量節(jié)點之間的連接和約束。在圖 1 中,我們展示了一個因子圖與定位算法優(yōu)化后端的關(guān)系。
圖 1? 定位算法因子圖示例
以高斯牛頓解法為例,后端優(yōu)化往往將整個過程轉(zhuǎn)換為解非線性方程組 Ax=b,將 x 解出后帶回到 x 的初始值中并判斷收斂條件是否滿足。我們發(fā)現(xiàn),求解 Ax=b 的過程則與因子圖可以直接聯(lián)系起來。具體來說,因子圖的每一個節(jié)點,無論是因子節(jié)點或變量節(jié)點,都對應(yīng)著矩陣 A 與向量 b 的某些位置。
在圖 1 這一例子中,變量節(jié)點 x1 到 x3 表示了機器人在三個時間節(jié)點的位姿,y1 和 y2 表示兩個物理世界中的標志,而 f1 到 f5 分別表示了不同傳感器中采集的數(shù)據(jù)。f1-f3 位相機觀測因子,f4、f5 位 IMU 觀測節(jié)點,f6 表示前序位姿。所有節(jié)點構(gòu)成了圖 1 左下方的因子圖,同時也構(gòu)成了矩陣 A 與向量 b 的結(jié)構(gòu),他們二者之間的關(guān)系如圖 1 中箭頭所示。
如前文所述,在絕大多數(shù)機器人應(yīng)用中,矩陣 A 的規(guī)模較大而稀疏度較高。直接求解 A 會帶來極高的延時與功耗負擔(dān),而希望利用到矩陣的稀疏性時,其稀疏度又不夠結(jié)構(gòu)化。絕大多數(shù)加速求解稀疏矩陣的方法也并不能帶來很好的加速比,導(dǎo)致在定位、規(guī)劃、控制等多個模塊中,優(yōu)化算法都成為了加速算法性能的阻礙。
利用因子圖可以很好地解決這一問題。因為因子圖的結(jié)構(gòu)對應(yīng)了稀疏矩陣中稠密的非零元素,依據(jù)因子圖展示的變量順序,完全可以將大的稀疏矩陣求解轉(zhuǎn)換成多個小的稠密矩陣求解。這么做第一可以減少硬件資源的消耗,不需要構(gòu)建大規(guī)模的矩陣操作單元,第二則可以提升硬件資源的利用率。圖 2 就展示了一個對圖 1 中所建立的因子圖的一個變量先進行局部消元的例子。
圖 2 逐步對因子圖中涉及到的變量進行消元
在這個例子中,由于原始矩陣維度過大且稀疏度較高,無論使用 CPU 或是 GPU 對其計算都難以達到實時性需求。而使用因子圖對其進行維度降低后,配合專用的矩陣加速單元,我們實現(xiàn)了對常見的桌面 Intel i7 處理器 9.3 倍的加速比,節(jié)約了超過 50 倍的能耗。對于常見的嵌入式 ARM 處理器,實現(xiàn)了 47.6 倍的加速比,節(jié)約了 16.8 倍的能耗。以因子圖為加速模版的定位算法加速器,可以實現(xiàn)接近 100fps 的定位算法運行速度,達到了機器人應(yīng)用中的實時性需求。
基于這一思想,我們又為規(guī)劃算法設(shè)計了一套以因子圖為模版的硬件加速單元。我們在設(shè)計中進一步發(fā)現(xiàn),在確定了完整的因子圖后,從哪個因子開始消元會帶來硬件資源的極大不同。
以圖 1 和圖 2 為例,對于完整的因子圖,我們選擇圖 2 從左上角的 y1 節(jié)點開始消元。其實從右邊的 y2 節(jié)點,或中間的 x2 節(jié)點,都可以完成對因子圖的消元并求解出對應(yīng)的變量節(jié)點。從不同的因子節(jié)點開始求解,將會帶來完全不同的矩陣運算維度、計算速度和硬件資源消耗。
直接估計每一種消元順序的消耗是很難的,因為如果有 N 個節(jié)點的話,會有 N 的階乘種消元順序,對每一種順序進行硬件資源的分析是極難的。我們創(chuàng)造性地提出使用軟件的方法來估計硬件資源的消耗,從而快速評估不同的消元順序?qū)τ布Y源的使用。我們使用了三種軟件上的指標,分別是消元過程中的最大矩陣維度、平均矩陣維度和平均矩陣密度。這三種軟件上的指標分別對應(yīng)了所需最大硬件資源、平均加速比和硬件利用率。對于特定的規(guī)劃算法,我們還專門提出了一種領(lǐng)域?qū)S玫碾p向消元方法。利用特定的雙向消元方法,相比于隨機選取消元起點,還可以繼續(xù)提升超過兩倍的性能。
機器人應(yīng)用硬件設(shè)計的自動化
當(dāng)使用了因子圖作為硬件設(shè)計模版之后,我們可以大幅提高機器人領(lǐng)域多種算法的運算性能,包括定位、路徑規(guī)劃、控制等算法。然而,即便是對因子圖和硬件設(shè)計最熟悉的研究人員,也需要長達數(shù)月對單一算法的專用加速器進行設(shè)計,而機器人領(lǐng)域存在著難以計數(shù)的不同種類算法。如果使用常見的 High Level Synthesis(HLS,高層次綜合)對硬件進行自動生成,則會因為缺乏定制化的能力而導(dǎo)致無法利用特殊的數(shù)據(jù)流[3],難以實現(xiàn)性能的大幅提升。
當(dāng)以因子圖為模版對機器人的多個算法進行加速之后,我們意識到,因子圖可以作為一個非常通用的模版,方便我們對機器人領(lǐng)域的硬件自動設(shè)計進行突破。直接將軟件映射到硬件電路的難度很高,而因子圖給我們提供了一個非常好的中間介質(zhì),我們可以分兩步進行硬件的自動化設(shè)計:首先將機器人算法映射到中間介質(zhì)上,再將中間介質(zhì)映射到硬件電路中去。
圖 3? 使用因子圖作為中間變量的硬件設(shè)計自動化
整體工作流程如圖 3 所示,我們針對機器人應(yīng)用,提供了一個完整的優(yōu)化算法的自動設(shè)計框架,使用者只需要依據(jù)我們的軟件框架對其所需要的軟件算法進行定義,編譯框架會將用戶的算法自動映射到因子圖的結(jié)構(gòu)上去。同時,依托因子圖的結(jié)構(gòu),編譯框架會進一步生成基礎(chǔ)的矩陣操作的指令。根據(jù)這些指令和其數(shù)據(jù)流,會依賴一些矩陣運算的模版電路,自動生成整體的機器人專用架構(gòu),實現(xiàn)硬件生成的自動化。
我們的工作整體上實現(xiàn)了三個大的貢獻。首先,提出了一個新的位姿表示,可以被應(yīng)用于多種機器人領(lǐng)域的應(yīng)用。通用的位姿表示可以方便不同的機器人應(yīng)用使用同樣的中間媒介(因子圖)。其次,我們提出了一套完整的編譯框架,對于開發(fā)者極其友好。開發(fā)者只需以構(gòu)建因子圖的形式進行編程,而無需關(guān)心背后的位姿表示、數(shù)學(xué)推導(dǎo)等等過程。最后,我們提出了端到端的硬件生成方式,對比傳統(tǒng)的 HLS 硬件生成方式,大幅提高了硬件對于機器人算法獨特的數(shù)據(jù)通路的應(yīng)用,實現(xiàn)性能提升。
機器人應(yīng)用的未來:硬件賦能具身智能
機器人領(lǐng)域的算法和應(yīng)用的變化是日新月異的,傳統(tǒng)的機器人 OODA 決策環(huán)在大模型涌現(xiàn)之后,出現(xiàn)了很多新的變化,大模型取代傳統(tǒng)的決策和規(guī)劃算法之后為機器人產(chǎn)業(yè)帶來了大量的新的機會。因為大模型涌現(xiàn)的決策和任務(wù)分解能力,機器人可以開始執(zhí)行長序列的復(fù)雜任務(wù),實現(xiàn)真正的智能化。
盡管這種愿景非常美好,但現(xiàn)實與愿景之間仍存在著很大的鴻溝。一個最重要的問題就是當(dāng)引入大模型進行決策之后,機器人控制的實時性問題。機器人的控制算法通常需要的頻率高達幾百赫茲,而以現(xiàn)有的運算能力進行大模型推理則遠難達到這一頻率。這也就導(dǎo)致了機器人控制難以實現(xiàn)實時性,還遠沒有達到可以投入實際使用的地步。
我們希望能通過硬件與系統(tǒng)上的創(chuàng)新來解決這一問題。系統(tǒng)層面,希望提出大小模型分層的機器人算法架構(gòu)。在任務(wù)理解及分解時,使用較大的模型但以較低的頻率參與工作,對機器人進行較長期的任務(wù)規(guī)劃。在執(zhí)行任務(wù)時,使用小規(guī)模的模型,保證分解任務(wù)正確執(zhí)行的同時提高實時性。采用端云分層的執(zhí)行思路,將小模型放在端側(cè)進行硬件加速。我們認為,系統(tǒng)和硬件的定制化才是真正賦能具身智能的最有力的武器。
總結(jié)
機器人的智能化一直是這一產(chǎn)業(yè)進化的核心目標,我們希望機器人能正確高效地執(zhí)行更復(fù)雜的任務(wù),為人類提供服務(wù)。隨著算法的不斷演進,機器人應(yīng)用對于算力的需求也日益增加。作為硬件架構(gòu)的研究者,面對日新月異的機器人應(yīng)用,這對我們來說既是機遇也是挑戰(zhàn)。尤其是在大模型逐漸占領(lǐng)機器人控制領(lǐng)域的今天,如何實現(xiàn)實時性地大模型控制、保證機器人正確高效地執(zhí)行任務(wù),期待我們和大家一起對這些問題給出自己的回答。
參考文獻
[1] Hao, Yuhui, et al. "Factor Graph Accelerator for LiDAR-Inertial Odometry." Proceedings of the 41st IEEE/ACM International Conference on Computer-Aided Design. 2022.?
[2] Hao, Yuhui, et al. “BLITZRANK: Factor Graph Accelerator for Motion Planning.” 60th Design Automation Conference (DAC), 2023.?
[3] Liu, Weizhuang, et al. "Archytas: A framework for synthesizing and dynamically optimizing accelerators for robotic localization." MICRO-54: 54th Annual IEEE/ACM International Symposium on Microarchitecture. 2021.文章來源:http://www.zghlxwxcb.cn/news/detail-829063.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-829063.html
到了這里,關(guān)于大模型時代下的機器人應(yīng)用:我們離具身智能還有多遠?| 新程序員的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!