全新芯片設計:通過模擬存儲器實現(xiàn)高精度計算

機器學習和深度學習已成為我們生活中不可或缺的部分。利用自然語言處理(NLP)、圖像分類和物體檢測實現(xiàn)的人工智能(AI)應用已深度嵌入到我們使用的眾多設備中。大多數(shù)AI應用通過云引擎即可出色地滿足其用途,例如在Gmail中回復電子郵件時可以獲得詞匯預測。

640 (1).png

本文來自微信公眾號“半導縱橫”,由半導縱橫綜合整理。

我們的世界是模擬的。使用模擬器件進行模擬計算是處理世界最自然、最有效的方式,但存在準確性問題。數(shù)字設備更精確,但它們需要大量能量來完成工作。事實上,如此多的能源消耗,考慮到為未來提供動力所需的數(shù)據(jù)量,它是不可持續(xù)的。那么,解決方案是什么?

美國南加州大學謝明與計算機工程系Arthur B.Freeman講座教授J.Joshua Yang及其團隊在開發(fā)一種電路架構方面處于領先地位,該架構使低精度模擬設備能夠執(zhí)行高精度計算任務。

“與數(shù)字方法相比,這具有更高的效率和相似的精度,”Yang說。

該研究結果于本周四發(fā)表在《科學》雜志上,該雜志由Yang的學生(Wenhao Song等人)和南加州大學的同事(Mike Chen和Peter Beerel),以及來自Tetramem Inc.(Glenn Ge,胡苗等人),麻省大學阿默斯特分校(Qiangfei Xia)和空軍研究實驗室(Mark Barnell和Qing Wu)的合作者共同撰寫。

提高精度的關鍵,加上保持效率水平,是Yang和團隊多年來一直在努力做的事情:共同設計新興的存儲器件、架構和算法。他們使用電阻隨機存取存儲器(RRAM)來演示他們的新想法,它適用于任何基于電阻的存儲設備,包括相變存儲器(PCM)、鐵電RAM(FeRAM)和磁RAM(MRAM)。這種模擬存儲器件允許計算機以高能效和高吞吐量處理存儲器中的大量信息。新設計的秘訣在于“使用多個器件的加權和來表示一個數(shù)字,其中隨后的編程器件用于補償先前的編程錯誤,”該論文指出。通過憶阻器片上系統(tǒng),通過實驗展示了用于多種科學計算任務的高精度解決方案,同時保持了與傳統(tǒng)數(shù)字方法相比的巨大功率效率優(yōu)勢。

正如Yang所指出的,使用更多的憶阻器來表示一個數(shù)字不可避免地會增加所需的憶阻器數(shù)量,幸運的是,考慮到憶阻器固有的高可擴展性,這是負擔得起的。畢竟,“天下沒有免費的午餐,”他說:“關鍵是,原則上,使用我們的方法,即使是模擬計算,您也可以獲得所需的高精度。”

這項研究進一步鞏固了Yang和他的團隊利用Tetramem制造的芯片取得的成果,Tetramem是一家由Yang和他的一些合著者(胡苗,夏強飛和Glenn Ge)共同創(chuàng)立的初創(chuàng)公司,旨在將人工智能加速技術商業(yè)化。根據(jù)Yang的說法,神經(jīng)處理單元(NPU)芯片在迄今為止所有類型的已知存儲技術中具有最高的器件精度,即11位/器件。2023年3月發(fā)表在《自然》雜志上的一篇論文中描述了使用該芯片觀察到的技術飛躍。器件級的這種進步為神經(jīng)網(wǎng)絡和機器學習推理中的應用帶來了巨大的希望。然而,它們仍然無法滿足科學計算和人工智能訓練等任務的精度要求。為了彌合這一差距,電路和架構層面的創(chuàng)新勢在必行,這正是這篇科學論文所展示的。

此外,這一發(fā)展的獨特之處在于它不僅在學術環(huán)境中,而且在尖端的片上系統(tǒng)(SoC)設計中都得到了實際實施。這些SoC芯片集成了多個基于憶阻器的NPU,這是Tetramem實現(xiàn)的一項壯舉,并通過在標準商業(yè)代工廠制造來實現(xiàn)。這一成就標志著一個重要的里程碑,也就是高效率和高精度的模擬計算解決方案的廣泛商業(yè)化潛力。

多級存儲器與模擬內存內計算的融合

機器學習和深度學習已成為我們生活中不可或缺的部分。利用自然語言處理(NLP)、圖像分類和物體檢測實現(xiàn)的人工智能(AI)應用已深度嵌入到我們使用的眾多設備中。大多數(shù)AI應用通過云引擎即可出色地滿足其用途,例如在Gmail中回復電子郵件時可以獲得詞匯預測。

雖然我們可以享受到這些AI應用帶來的益處,但這種方法導致隱私、功耗、延時和成本等諸多因素面臨挑戰(zhàn)。如果有一個能夠在數(shù)據(jù)來源處執(zhí)行部分或全部計算的本地處理引擎,那么這些問題即可迎刃而解。傳統(tǒng)數(shù)字神經(jīng)網(wǎng)絡的存儲器功耗存在瓶頸,難以實現(xiàn)這一目標。為了解決這一問題,可以將多級存儲器與模擬內存內計算方法結合使用,使處理引擎滿足更低的毫瓦級(mW)到微瓦級(μW)功率要求,從而在網(wǎng)絡邊緣執(zhí)行AI推斷。

如果通過云引擎為AI應用提供服務,用戶必須將一些數(shù)據(jù)以主動或被動方式上傳到云,計算引擎在云中處理數(shù)據(jù)并提供預測,然后將預測結果發(fā)送給下游用戶使用。

要使用本地處理引擎解決這些挑戰(zhàn),必須首先針對目標用例利用指定數(shù)據(jù)集對執(zhí)行推斷運算的神經(jīng)網(wǎng)絡進行訓練。這通常需要高性能計算(和存儲器)資源以及浮點算數(shù)運算。因此,機器學習解決方案的訓練部分仍需在公共或私有云(或本地GPU、CPU和FPGA Farm)上實現(xiàn),同時結合數(shù)據(jù)集來生成最佳神經(jīng)網(wǎng)絡模型。神經(jīng)網(wǎng)絡模型的推斷運算不需要反向傳播,因此在該模型準備就緒之后,可利用小型計算引擎針對本地硬件進行深度優(yōu)化。推斷引擎通常需要大量乘-累加(MAC)引擎,隨后是激活層(例如修正線性單元(ReLU)、Sigmoid函數(shù)或雙曲正切函數(shù),具體取決于神經(jīng)網(wǎng)絡模型復雜度)以及各層之間的池化層。

大多數(shù)神經(jīng)網(wǎng)絡模型需要大量MAC運算。例如,即使是相對較小的“1.0 MobileNet-224”模型,也有420萬個參數(shù)(權重),執(zhí)行一次推斷需要多達5.69億次的MAC運算。此類模型中的大多數(shù)都由MAC運算主導,因此這里的重點是機器學習計算的運算部分,同時還要尋找機會來創(chuàng)建更好的解決方案。

在數(shù)字神經(jīng)網(wǎng)絡中,權重和輸入數(shù)據(jù)存儲在DRAM/SRAM中。權重和輸入數(shù)據(jù)需要移至某個MAC引擎旁以進行推斷。采用這種方法后,大部分功耗都來源于獲取模型參數(shù)以及將數(shù)據(jù)輸入到實際發(fā)生MAC運算的ALU。從能量角度來看,使用數(shù)字邏輯門的典型MAC運算消耗約250 fJ的能量,但在數(shù)據(jù)傳輸期間消耗的能量超過計算本身兩個數(shù)量級,達到50皮焦(pJ)到100 pJ的范圍。公平地說,很多設計技巧可以最大程度減少存儲器到ALU的數(shù)據(jù)傳輸,但整個數(shù)字方案仍受馮·諾依曼架構的限制。這就意味著,有大量的機會可以減少功率浪費。如果執(zhí)行MAC運算的能耗可以從約100 pJ減少到若干分之幾pJ,將會怎樣呢?

如果存儲器本身可用來消除之前的存儲器瓶頸,則在邊緣執(zhí)行推斷相關的運算就成為可行方案。使用內存內計算方法可以最大程度地減少必須移動的數(shù)據(jù)量。這反過來也會消除數(shù)據(jù)傳輸期間浪費的能源。閃存單元運行時產(chǎn)生的有功功率消耗較低,在待機模式下幾乎不消耗能量,因此可以進一步降低能耗。

THEEND

最新評論(評論僅代表用戶觀點)

更多
暫無評論