• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    實現(xiàn)軟硬件解耦合的類腦計算硬件設(shè)計方法

    2021-06-17 14:01:10陳嘉杰張悠慧鄭緯民
    計算機(jī)研究與發(fā)展 2021年6期
    關(guān)鍵詞:類腦層次結(jié)構(gòu)圖靈

    渠 鵬 陳嘉杰 張悠慧 鄭緯民

    1(清華大學(xué)計算機(jī)科學(xué)與技術(shù)系,北京信息科學(xué)與技術(shù)國家研究中心 北京 100084)

    2(數(shù)學(xué)工程與先進(jìn)計算國家重點(diǎn)實驗室 江蘇無錫 214125)

    (shen_yhx@163.com)

    類腦計算通常用來指借鑒人腦信息處理模式和/或生物生理結(jié)構(gòu)的計算理論、體系結(jié)構(gòu)、硬件設(shè)計乃至模型和算法設(shè)計的總稱.目前,基于類腦計算的數(shù)值模擬方法已經(jīng)成為了繼實驗研究和理論研究之后,神經(jīng)科學(xué)最重要的研究方法之一[1].在人工智能領(lǐng)域,類腦計算也被認(rèn)為是實現(xiàn)下一代人工智能的重要技術(shù)路徑之一[2-8].受腦啟發(fā)的體系結(jié)構(gòu)設(shè)計則是后摩爾定律時代的計算機(jī)體系結(jié)構(gòu)主要發(fā)展方向之一[9].

    類腦計算也被稱為神經(jīng)形態(tài)計算[6,10],其目前采用的主要計算模型是脈沖神經(jīng)網(wǎng)絡(luò)(spiking neural network,SNN)[11].脈沖神經(jīng)網(wǎng)絡(luò)在傳統(tǒng)神經(jīng)網(wǎng)絡(luò)(深度神經(jīng)網(wǎng)絡(luò)等)的基礎(chǔ)上,引入了更高的生物真實性,具有實現(xiàn)更高計算能力和能效的潛力.這一特性吸引了眾多軟硬件相關(guān)的研究興趣[6,12-18],而充分利用脈沖神經(jīng)網(wǎng)絡(luò)特性的神經(jīng)形態(tài)芯片也逐漸成為類腦計算相關(guān)研究領(lǐng)域的重點(diǎn)之一[6,12-14].

    神經(jīng)形態(tài)芯片的設(shè)計方案根據(jù)設(shè)計目的、著眼角度的不同而差別較大,目前尚沒有統(tǒng)一、公認(rèn)的設(shè)計方案.但當(dāng)前的芯片設(shè)計方案,往往都采用了端到端的軟硬件協(xié)同設(shè)計方案[6,12-14],采用這樣的設(shè)計方案的芯片往往具有定制化的工具鏈、開發(fā)軟件乃至應(yīng)用模型[10,19-21],這就導(dǎo)致了類腦計算系統(tǒng)領(lǐng)域所面臨的一個重要問題——軟硬件緊耦合.

    部分工作[22-23]嘗試通過構(gòu)建連接軟硬件的領(lǐng)域?qū)S谜Z言或者開發(fā)框架來解決這一問題.但是,這些工作沒有觸及軟硬件緊耦合設(shè)計的核心問題——缺乏相應(yīng)的完備性概念來明確軟硬件系統(tǒng)計算能力的邊界,以及它們是否相互兼容.相關(guān)工作往往隱式地依賴圖靈完備性.由于類腦計算系統(tǒng)往往并不面向通用計算領(lǐng)域,因此它們是否需要是圖靈完備的,或者圖靈完備性是否是恰到好處的,仍然是一個開放性問題.

    針對這一情況,受圖靈完備性和傳統(tǒng)計算機(jī)層次結(jié)構(gòu)啟發(fā),近期工作[24]提出了更加適合類腦計算的完備性——神經(jīng)形態(tài)完備性(也稱類腦計算完備性),并在此基礎(chǔ)上設(shè)計了類腦計算層次結(jié)構(gòu).為實現(xiàn)類腦計算系統(tǒng)領(lǐng)域的軟硬件解耦合提供了理論支持,使得實現(xiàn)軟件硬件解耦合的類腦計算系統(tǒng)成為了可能.

    本文首先對神經(jīng)形態(tài)完備性和類腦計算層次結(jié)構(gòu)中的部分關(guān)鍵概念進(jìn)行了討論;之后,我們描述了層次結(jié)構(gòu)中抽象神經(jīng)形態(tài)架構(gòu)的設(shè)計與實現(xiàn),并介紹了其與軟件層間的接口——執(zhí)行原語圖的設(shè)計.在此基礎(chǔ)上,進(jìn)一步提出了基于該抽象架構(gòu)和原語圖實現(xiàn)軟硬件解耦合的類腦計算硬件的設(shè)計方法以及正在展開的相應(yīng)工作.

    本文的主要貢獻(xiàn)為:

    1)對神經(jīng)形態(tài)完備性和類腦計算層次結(jié)構(gòu)中的部分關(guān)鍵概念進(jìn)行了闡述與討論;

    2)詳細(xì)描述了抽象神經(jīng)形態(tài)架構(gòu)及其與軟件層的接口——執(zhí)行原語圖;

    3)提出了實現(xiàn)軟硬件解耦合的類腦計算硬件設(shè)計的一條有希望的技術(shù)路徑,并介紹正在進(jìn)行的工作.

    1 相關(guān)工作

    1.1 神經(jīng)形態(tài)芯片

    通過借鑒神經(jīng)系統(tǒng)信息處理模式以取得高性能和低功耗的神經(jīng)形態(tài)芯片是類腦計算領(lǐng)域的重要研究方向之一.現(xiàn)有神經(jīng)形態(tài)芯片可以分為2個類別:1)使用定制的硬件單元來對突觸和神經(jīng)元的工作模式進(jìn)行仿真;2)使用通用或定制處理器內(nèi)核以軟件形式來模擬神經(jīng)基元.兩者分別以TrueNorth[12]和SpiNNaker[25]為代表.

    TrueNorth[12]是由IBM公司設(shè)計的數(shù)字電路神經(jīng)形態(tài)芯片,單個芯片含有4 096個神經(jīng)突觸核心,核心之間通過2D-mesh結(jié)構(gòu)連接.TrueNorth采用了典型的緊耦合設(shè)計,通過使用定制化的編程范式Corelet[21]以及對應(yīng)的編譯工具和框架來進(jìn)行應(yīng)用的開發(fā)[19].很多其他的芯片設(shè)計方案,如Neurogrid[26],BrainScaleS[27]等,都采用了類似的緊耦合設(shè)計模式,盡管后兩者部分或者全部采用了模擬電路設(shè)計.

    SpiNNaker[25]項目與上述研究不同,其采用了片上多處理器(CMP)設(shè)計,基于ARM核心主要以軟件方式模擬神經(jīng)基元的工作方式,并通過定制化的片上網(wǎng)絡(luò)(NoC)實現(xiàn)核心間的高效脈沖信號通信.因為其采用了軟件模擬模式,可以直接支持現(xiàn)有的模型和網(wǎng)絡(luò),但相對的,性能和效率會受到影響.

    除此之外,部分工作[28-32]嘗試使用新型神經(jīng)形態(tài)器件(如憶阻器)輔助數(shù)字電路設(shè)計,部分工作[28]甚至直接使用憶阻器模擬神經(jīng)元和突觸計算,但此類研究尚處于原理驗證階段,缺乏成熟的軟硬件設(shè)計.

    1.2 類腦計算軟硬件解耦合

    隨著神經(jīng)形態(tài)芯片的發(fā)展與應(yīng)用,部分工作[23,33]開始嘗試探討設(shè)計面向更加通用的應(yīng)用的類腦計算開發(fā)框架.

    Fugu[23]嘗試建立一種高層次抽象并構(gòu)建硬件獨(dú)立的軟件開發(fā)方法,以使得類腦計算系統(tǒng)的配置、部署和開發(fā)更加便利.另一項類似的工作是STICK[33],其嘗試通過建立基于支持精確時間表示、突觸多樣性和時間延遲的類腦計算單元的計算框架,以推進(jìn)通用類腦計算機(jī)的構(gòu)建和探索.

    然而,上述工作往往停留在計算框架層次,并不考慮完備性或者隱式地依賴圖靈完備性.針對這一情況,文獻(xiàn)[24]的工作受傳統(tǒng)計算機(jī)層次結(jié)構(gòu)啟發(fā),提出了更加適合類腦計算的完備性——神經(jīng)形態(tài)完備性,并在此基礎(chǔ)上設(shè)計了類腦計算層次結(jié)構(gòu).為類腦計算軟硬件解耦合提供了理論基礎(chǔ)和參考架構(gòu)設(shè)計.但是,文獻(xiàn)[24]的相關(guān)實現(xiàn)以可行性驗證為主要目的,因此需要在此基礎(chǔ)上進(jìn)一步探討適用于復(fù)雜情況下的設(shè)計方法,特別是軟硬件解耦合的類腦計算硬件設(shè)計方法.

    2 神經(jīng)形態(tài)完備性和類腦計算層次結(jié)構(gòu)

    本節(jié)主要介紹了神經(jīng)形態(tài)完備性和類腦計算層次結(jié)構(gòu)的定義,并對部分關(guān)鍵概念進(jìn)行了討論.

    2.1 基本定義

    神經(jīng)形態(tài)完備性在傳統(tǒng)圖靈機(jī)依據(jù)給定算法對計算過程精確執(zhí)行的基礎(chǔ)上,兼容了源自神經(jīng)網(wǎng)絡(luò)這一計算形式的結(jié)果近似能力.其具體定義參見文獻(xiàn)[24].和圖靈完備性類似,神經(jīng)形態(tài)完備性僅適用于描述系統(tǒng)的計算能力,對系統(tǒng)的具體實現(xiàn)方法和設(shè)計思路沒有要求.而類腦計算層次結(jié)構(gòu)[24]作為軟硬件設(shè)計的參考模型,則可以作為實際軟硬件實現(xiàn)的指導(dǎo).

    類腦計算層次結(jié)構(gòu)包含3個層次:1)軟件層.統(tǒng)一軟件描述與執(zhí)行模型——編程原語圖(programming operator graph,POG),基于圖靈完備性實現(xiàn)對不同編程語言和計算框架的兼容性.2)硬件層.通過抽象神經(jīng)形態(tài)架構(gòu)(abstract neuromorphic architecture,ANA)及其和上層的接口——執(zhí)行原語圖(execution primitive graph,EPG),實現(xiàn)對硬件架構(gòu)設(shè)計的抽象以及面向硬件的計算描述.3)編譯層.作為兩者的中間層,實現(xiàn)將軟件程序轉(zhuǎn)換為硬件支持的神經(jīng)形態(tài)等價的描述.類腦計算層次結(jié)構(gòu)通過圖靈完備性和神經(jīng)形態(tài)完備性,保證了通用編程語言編寫的任何程序都可以轉(zhuǎn)換為任意類腦硬件上的“類腦等價”的執(zhí)行模型,這也意味著由軟件層、編譯層、硬件層組成的類腦計算層次結(jié)構(gòu)能夠確保應(yīng)用軟件、操作原語集合、硬件設(shè)計在獨(dú)立發(fā)展的同時相互兼容,從而實現(xiàn)軟硬件去耦合.

    2.2 一些關(guān)鍵問題的討論

    完備性本質(zhì)上是對系統(tǒng)計算能力的描述,因此其往往是脫離于系統(tǒng)的具體實現(xiàn)形式的.正如圖靈完備性能夠應(yīng)用于所有的通用計算領(lǐng)域而非僅僅是圖靈機(jī)模型一樣,神經(jīng)形態(tài)完備性同樣可以應(yīng)用于所有存在結(jié)果近似能力的計算系統(tǒng)①近似計算是實現(xiàn)類腦計算完備系統(tǒng)的一種方式,但類腦計算完備的系統(tǒng)不僅限于以近似計算的方式實現(xiàn)..此外,神經(jīng)形態(tài)完備性可以視為對硬件完備性要求的一種放松,其與圖靈完備性并不對立:簡單來說,在目前的定義下,圖靈完備的系統(tǒng)一定是神經(jīng)形態(tài)完備的.

    神經(jīng)形態(tài)完備性的核心是在圖靈完備性的基礎(chǔ)上,進(jìn)一步兼容了對計算結(jié)果的近似能力,從而放松了對計算過程和計算精度的要求,即放松了對硬件完備性的要求.這樣,一方面神經(jīng)形態(tài)完備性兼容了源自類腦計算領(lǐng)域典型計算范式——神經(jīng)網(wǎng)絡(luò)的結(jié)果近似能力,另一方面也能作為類腦計算軟硬件解耦合的完備性基礎(chǔ).

    需要注意的是,神經(jīng)形態(tài)完備性引入的近似概念是抽象的近似能力,而不是單純的數(shù)值近似方法.其可以有多種不同具體實現(xiàn)形式:1)直接通過神經(jīng)網(wǎng)絡(luò)或者查找表等直接近似最終計算結(jié)果;2)通過對一些具體的計算過程中的步驟進(jìn)行重組或者近似,實現(xiàn)結(jié)果近似和過程模擬的結(jié)合;3)數(shù)值算法中常用的數(shù)值近似;4)1)~3)所述常見方法之外的其他近似方法以及1)~3)中一種或者多種方法的結(jié)合.

    神經(jīng)形態(tài)完備性僅適用于描述計算系統(tǒng)的計算能力,如果一個計算系統(tǒng)是神經(jīng)形態(tài)完備的,則其可以執(zhí)行所有的神經(jīng)形態(tài)應(yīng)用.但是,神經(jīng)形態(tài)完備性不用于衡量系統(tǒng)的具體實現(xiàn),即一個神經(jīng)形態(tài)的系統(tǒng)并不一定必須是神經(jīng)形態(tài)完備的.當(dāng)然,類腦計算領(lǐng)域是一個不斷發(fā)展的交叉領(lǐng)域,類腦計算系統(tǒng)的實現(xiàn)方法也是不斷變化的,因此,在類腦計算層次結(jié)構(gòu)設(shè)計中,我們對實現(xiàn)細(xì)節(jié)并沒有具體的要求.由于不論是圖靈完備性或者神經(jīng)形態(tài)完備性,均不限制系統(tǒng)的具體實現(xiàn),因此,隨著類腦計算的發(fā)展,相關(guān)的研究人員可以添加更多神經(jīng)形態(tài)的特征到類腦計算層次結(jié)構(gòu)設(shè)計中,從而指導(dǎo)和影響類腦計算相關(guān)軟硬件的實現(xiàn)細(xì)節(jié).

    3 抽象神經(jīng)形態(tài)架構(gòu)和執(zhí)行原語圖

    本節(jié)介紹了抽象神經(jīng)形態(tài)架構(gòu)的設(shè)計以及其對軟件的接口——執(zhí)行原語圖.

    3.1 抽象神經(jīng)形態(tài)架構(gòu)

    如圖1所示,抽象神經(jīng)形態(tài)架構(gòu)包含4個部分:用于計算原語執(zhí)行的處理單元、用于控制流和調(diào)度的調(diào)度單元、用于儲存參數(shù)和中間數(shù)據(jù)的存儲單元,以及連接上述單元的連接網(wǎng)絡(luò).

    Fig.1 Abstract neuromorphic architecture圖1 抽象神經(jīng)形態(tài)架構(gòu)

    抽象神經(jīng)形態(tài)架構(gòu)是對具體硬件設(shè)計的抽象,具體到硬件設(shè)計階段,抽象神經(jīng)形態(tài)架構(gòu)可以對應(yīng)多種不同的硬件實現(xiàn).

    處理單元用于執(zhí)行具體的計算(表示為執(zhí)行原語),多個處理單元之間可以完全并行地執(zhí)行計算任務(wù),其具體實現(xiàn)方法沒有限制(同步/異步、數(shù)字電路/模擬電路、是否事件驅(qū)動等).考慮到存算一體是類腦計算的主要優(yōu)勢之一,在抽象神經(jīng)形態(tài)架構(gòu)中,處理單元具有自己私有的存儲單元,該存儲單元僅該處理單元可以訪問.即抽象神經(jīng)形態(tài)架構(gòu)傾向于采用存算一體的計算模式.另一方面,非存算一體硬件實現(xiàn)可以通過控制對存儲的訪問來模擬存算一體硬件實現(xiàn)(比如將數(shù)據(jù)訪問限制于私有的存儲單元),從而使抽象神經(jīng)形態(tài)架構(gòu)獲得更好的兼容性.

    調(diào)度單元則是一個可以通過多種方式實現(xiàn)的邏輯概念.例如,調(diào)度單元可以是負(fù)責(zé)給所有處理單元發(fā)送任務(wù)的中央調(diào)度器;也可以是負(fù)責(zé)一個或者數(shù)個處理單元的分布式調(diào)度器,每個調(diào)度器僅處理整體計算任務(wù)中的一部分.簡單情況下,調(diào)度策略可以通過靜態(tài)任務(wù)分配實現(xiàn).

    連接網(wǎng)絡(luò)是對處理單元、控制單元和存儲單元之間通信連接的抽象,其具體實現(xiàn)方式可以是總線、片上網(wǎng)絡(luò)、芯片間連接等.

    3.2 執(zhí)行原語圖

    如圖2所示,執(zhí)行原語圖是針對硬件設(shè)計的計算描述方法,執(zhí)行原語圖在體現(xiàn)硬件實現(xiàn)的基礎(chǔ)上保留了一定的抽象性,其可以視作硬件實現(xiàn)與軟件描述之間的接口或中間表示.在本節(jié)我們將具體描述執(zhí)行原語圖的設(shè)計.

    執(zhí)行原語圖的基本描述單元是執(zhí)行原語,執(zhí)行原語是與硬件計算對應(yīng)的基本計算原語,類似于傳統(tǒng)計算機(jī)中的指令.執(zhí)行原語圖進(jìn)一步通過雙層的圖結(jié)構(gòu)來表示執(zhí)行原語之間的關(guān)系.

    執(zhí)行原語圖的2層結(jié)構(gòu)分別為控制流圖和數(shù)據(jù)流圖,二者均為有向圖.控制流圖中的每個節(jié)點(diǎn)都是一張數(shù)據(jù)流圖,稱之為計算塊,而節(jié)點(diǎn)間的邊則表示計算塊之間的控制流轉(zhuǎn)換(跳轉(zhuǎn)等).每個計算塊執(zhí)行完后,會根據(jù)控制流選擇執(zhí)行后續(xù)的計算塊.

    數(shù)據(jù)流圖中每個節(jié)點(diǎn)都是一個執(zhí)行原語,每個計算原語可以有多個輸入、輸出、參數(shù)數(shù)據(jù),數(shù)據(jù)流圖中的邊表示執(zhí)行原語之間的數(shù)據(jù)傳輸,源節(jié)點(diǎn)的輸出會作為目的節(jié)點(diǎn)的輸入.執(zhí)行原語之間的數(shù)據(jù)傳輸采用廣播模式,即節(jié)點(diǎn)的所有后續(xù)節(jié)點(diǎn)都會接收到該節(jié)點(diǎn)的輸出.

    通常情況下,在執(zhí)行原語圖中,程序中的主要控制流與執(zhí)行順序由控制流圖決定,即一般情況下只有一個計算塊可以執(zhí)行.在執(zhí)行的計算塊中,取得了所有輸入數(shù)據(jù)的計算原語進(jìn)入可執(zhí)行的狀態(tài).如果有多個可執(zhí)行的計算原語,則其可以被并行地執(zhí)行.如果計算塊內(nèi)的所有執(zhí)行原語均執(zhí)行結(jié)束,則該計算塊執(zhí)行結(jié)束,控制流轉(zhuǎn)交給后續(xù)執(zhí)行塊.

    具體執(zhí)行過程如圖3所示,調(diào)度單元依據(jù)可執(zhí)行的計算塊和塊內(nèi)可執(zhí)行的計算原語的實際情況,將計算原語調(diào)度到對應(yīng)的執(zhí)行單元進(jìn)行執(zhí)行,計算原語間的數(shù)據(jù)傳輸則通過連接單元傳輸.

    Fig.2 A sample of the execution primitive graph for LIF model圖2 LIF模型的執(zhí)行原語圖示例

    Fig.3 The execution of EPG圖3 執(zhí)行原語圖的具體執(zhí)行過程

    4 實現(xiàn)軟硬件解耦合的類腦計算硬件設(shè)計

    本節(jié)提出了在神經(jīng)形態(tài)完備性的支撐下,基于執(zhí)行原語集合和抽象神經(jīng)形態(tài)架構(gòu)實現(xiàn)軟硬件解耦合的類腦計算硬件設(shè)計方法.

    4.1 軟硬件解耦合設(shè)計

    在類腦計算層次結(jié)構(gòu)設(shè)計中,統(tǒng)一軟件描述與執(zhí)行模型編程原語圖是圖靈完備的.因此圖靈可計算的類腦計算應(yīng)用和其他的通用計算應(yīng)用可以直接轉(zhuǎn)換為基于編程原語圖的表示.

    使用執(zhí)行原語圖作為計算描述接口,抽象神經(jīng)形態(tài)架構(gòu)可以通過神經(jīng)形態(tài)完備的原語集合實現(xiàn)神經(jīng)形態(tài)完備性.并在神經(jīng)形態(tài)完備性的支持下,將基于編程原語圖的表示轉(zhuǎn)換為神經(jīng)形態(tài)完備性“等價”的執(zhí)行原語描述.

    類腦計算層次結(jié)構(gòu)設(shè)計使得各個領(lǐng)域的研究人員可以專注于自己的專業(yè)領(lǐng)域.例如,神經(jīng)科學(xué)領(lǐng)域的人員可以專注于模型設(shè)計,硬件開發(fā)人員可以專注于設(shè)計高效的硬件,軟硬件之間的接口和轉(zhuǎn)換則由體系結(jié)構(gòu)和編譯器領(lǐng)域的研究人員負(fù)責(zé),從而實現(xiàn)軟硬件的解耦合,推動整個領(lǐng)域的協(xié)同發(fā)展.

    因此,通過設(shè)計合適的執(zhí)行原語集合,即可實現(xiàn)軟硬件設(shè)計的解耦合.文獻(xiàn)[24]提出了基礎(chǔ)執(zhí)行原語集——由加權(quán)求和與Re LU(rectified linear unit)兩個基礎(chǔ)執(zhí)行原語組成,并證明了其神經(jīng)形態(tài)完備性.但是,該設(shè)計主要用于證明類腦計算層次結(jié)構(gòu)的理論可行性與完備性,而實際硬件設(shè)計要考慮更多的問題(如實現(xiàn)代價、運(yùn)行效率等),因此需要進(jìn)一步探索軟硬解耦合的類腦計算硬件設(shè)計.

    4.2 執(zhí)行原語集合設(shè)計

    執(zhí)行原語集合是對硬件計算單元的抽象,其設(shè)計會在很大程度上影響后續(xù)的硬件設(shè)計與實現(xiàn)工作.因此,在設(shè)計早期對不同執(zhí)行原語集合進(jìn)行評估與比較,可以為后續(xù)設(shè)計與優(yōu)化提供方向與指導(dǎo).所以,在設(shè)計早期對不同執(zhí)行原語集合進(jìn)行評估,具有重要的意義.

    由于類腦計算是一個不斷變化發(fā)展的交叉領(lǐng)域,新的計算模型和算法不斷被提出,很難像已經(jīng)成熟的傳統(tǒng)領(lǐng)域一樣抽象出非常具有代表性的標(biāo)桿應(yīng)用.因此,無法直接應(yīng)用傳統(tǒng)計算機(jī)領(lǐng)域中基于基準(zhǔn)程序(benchmark)的共同設(shè)計(codesign)方法.此外,在設(shè)計早期,對應(yīng)的硬件實現(xiàn)往往并不存在,這意味著無法直接基于程序的執(zhí)行時間/效能進(jìn)行執(zhí)行原語集合評估.

    針對這一情況,我們認(rèn)為,可以通過分析類腦計算領(lǐng)域的典型計算范式(如SNN)和具有代表性的類腦計算系統(tǒng)設(shè)計,建立類腦計算執(zhí)行原語集合——盡管類腦計算領(lǐng)域中的模型和應(yīng)用仍在不斷發(fā)展和變化之中,可能尚不足以提出被廣為接受的基準(zhǔn)程序,但不同的設(shè)計模型之間仍然存在一些典型的計算范式,以廣泛使用的脈沖神經(jīng)網(wǎng)絡(luò)為例,其通常具備存算融合、事件驅(qū)動、稀疏性等特點(diǎn).因此,可以構(gòu)建基礎(chǔ)的類腦計算執(zhí)行原語集合——由基本數(shù)值計算算子、控制流(control flow)算子、學(xué)習(xí)/訓(xùn)練相關(guān)算子等構(gòu)成,而且具體算子設(shè)計要考慮3方面因素:1)執(zhí)行原語集合需要滿足神經(jīng)形態(tài)完備性;2)體現(xiàn)存算融合、事件驅(qū)動(例如,設(shè)計針對性的執(zhí)行原語、利用執(zhí)行原語圖中的數(shù)據(jù)流圖描述等)等特征;3)因為這一領(lǐng)域發(fā)展很快,算子需要具有可擴(kuò)展、可組合特性.

    通過調(diào)整不同類型原語的占比、原語的具體設(shè)計,并評估典型計算范式在上述原語集合中的計算復(fù)雜度,即可在設(shè)計早期對執(zhí)行原語集合進(jìn)行評估.需要注意的是,由于神經(jīng)形態(tài)完備性引入的近似能力,諸如步驟調(diào)整、數(shù)值近似等近似能力的影響也需要納入考慮,融合空間網(wǎng)絡(luò)(FSN)[24]是處理此類情況的一個初步嘗試.

    4.3 硬件實現(xiàn)方法設(shè)計

    執(zhí)行原語集合是對硬件計算單元的抽象,在完成計算原語集合設(shè)計之后,具體的硬件實現(xiàn)也具有復(fù)雜的設(shè)計空間,因此,需要進(jìn)一步進(jìn)行硬件設(shè)計評估.

    在具體硬件實現(xiàn)過程中,需要綜合考慮不同的設(shè)計實現(xiàn),如控制流/數(shù)據(jù)流設(shè)計、是否事件驅(qū)動、是否存算一體等.此外,由于神經(jīng)形態(tài)完備性引入的結(jié)果近似能力,在硬件設(shè)計的過程中,需要額外考慮如何利用類腦計算層次結(jié)構(gòu)引入新的優(yōu)化維度——近似粒度.盡管相關(guān)的轉(zhuǎn)換、重組等工作可以在編譯階段通過類似FSN等技術(shù)完成,但在硬件設(shè)計的過程中,也需要考慮諸如執(zhí)行單元的數(shù)目調(diào)整、硬件計算精度等設(shè)計選擇.

    這樣,在完成執(zhí)行原語集合設(shè)計后,需要進(jìn)一步測試不同設(shè)計實現(xiàn)對最終硬件設(shè)計的影響,可以利用FPGA的可重構(gòu)特性,設(shè)計實現(xiàn)可擴(kuò)展的、可靈活配置的仿真原型,對不同的硬件設(shè)計選項進(jìn)行測試與評估.

    由于執(zhí)行原語集合是神經(jīng)形態(tài)完備的,無需再考慮應(yīng)用的具體模型和算法,只需要通過執(zhí)行原語集合設(shè)計和硬件設(shè)計使得抽象計算范式集合在仿真原型上的效能最大化即可.

    5 硬件實現(xiàn)方法評估

    軟硬件解耦合的類腦計算硬件設(shè)計方法的具體流程如圖4所示.首先,設(shè)計執(zhí)行原語集合,并基于設(shè)計空間評估結(jié)果進(jìn)行迭代,直至獲得適合應(yīng)用需求的、滿足神經(jīng)形態(tài)完備性的執(zhí)行原語集合.其次,針對執(zhí)行原語集合,測試不同的硬件設(shè)計選項,并基于硬件評估平臺的結(jié)果進(jìn)行迭代修改,直至獲得最優(yōu)硬件設(shè)計選項.在這一方法流程中,執(zhí)行原語集合設(shè)計可以基于軟件或者模擬器評估結(jié)果進(jìn)行,其關(guān)鍵在于設(shè)計高效可配置的硬件評估平臺.本節(jié)以正在進(jìn)行的基于Meta ANA架構(gòu)的硬件評估平臺工作為例,展示如何利用FPGA的可重構(gòu)特性,評估不同硬件設(shè)計方法以及原語實現(xiàn)的性能數(shù)據(jù)和資源開銷.

    Fig.4 The workflow of software-hardware decoupled hardware design method for brain-inspired computing圖4 軟硬件解耦合的類腦計算硬件設(shè)計流程

    5.1 基于FPGA的評估平臺

    我們基于Xilinx VCU128實現(xiàn)了Meta ANA架構(gòu)作為硬件評估平臺.Meta ANA架構(gòu)如圖5所示,由3個部分構(gòu)成:1)原語單元,用于完成計算任務(wù),內(nèi)部有自己的存儲;2)控制單元,從內(nèi)存讀取配置,設(shè)置各個原語的控制寄存器;3)總線,把原語、控制單元和內(nèi)存連接在一起.

    Fig.5 Meta ANA design圖5 Meta ANA架構(gòu)圖

    Meta ANA架構(gòu)中,原語的數(shù)目、每個原語的種類和參數(shù)均可以自由配置.在實現(xiàn)過程中,允許屏蔽部分原語,使其不參與任何計算流程.例如,可以屏蔽Crossbar原語,通過組合ALU中的原語實現(xiàn);可以屏蔽Spike原語,通過FPU和ALU中原語實現(xiàn)等價功能;可以屏蔽ALU中部分原語實現(xiàn)和參數(shù)配置,通過數(shù)值計算算法近似等.通過調(diào)節(jié)MetaANA架構(gòu)中的原語數(shù)目和參數(shù),可以評估不同配置(不同計算單元比例、不同精度等)下的性能參數(shù),例如面積和最大頻率,同時屏蔽部分原語也有助于減少邏輯綜合的時間,加速測試迭代.

    本文中的Meta ANA實現(xiàn)采用Scala上的Spinal HDL庫編寫,具有可復(fù)用、可重構(gòu)的特點(diǎn).利用Scala的語言特性,可以通過相應(yīng)參數(shù)對各個原語進(jìn)行自定義,并且按需生成Verilog代碼用于綜合.此外,由于各個原語單元之間通過總線互聯(lián),故在編寫新的原語時,不需要改變其他原語單元,降低了擴(kuò)展新功能的成本.

    5.2 執(zhí)行原語集合

    本文采用的執(zhí)行原語集合目前主要由4類原語組成(可根據(jù)類腦計算硬件設(shè)計流程進(jìn)行擴(kuò)展),即Crossbar,ALU,FPU和Spike,如表1所示.Crossbar原語用于實現(xiàn)矩陣 向量乘法;ALU原語子集用于實現(xiàn)向量 向量整形運(yùn)算;FPU原語子集用于實現(xiàn)向量 向量浮點(diǎn)運(yùn)算;Spike原語子集則用于實現(xiàn)SNN專用的加速原語,其包含2條針對SNN計算特性設(shè)計的原語:索引選擇和稀疏累加,其中索引選擇原語用于依據(jù)神經(jīng)元動作電位值并行獲得所有滿足條件的神經(jīng)元編號;稀疏累加原語用于依據(jù)細(xì)粒度脈沖神經(jīng)網(wǎng)絡(luò)表示[18],實現(xiàn)高效率的脈沖傳輸.

    Table 1 Theprimitive Set表1 執(zhí)行原語集合

    如表2所示,每個計算原語都具有獨(dú)立的控制寄存器和輸入輸出緩存.其中,控制寄存器配置原語何時計算、如何計算、計算之后做什么操作,輸入輸出緩存用于緩存原語的輸入輸出.

    Table 2 Control Register表2 控制寄存器

    5.3 資源開銷

    為評估每個原語的具體資源開銷,我們評估了其在FPGA上的性能和面積.以xc7a200t為目標(biāo)設(shè)備單獨(dú)綜合模塊,并設(shè)置400 MHz的時鐘.在綜合結(jié)果中,取最大的時鐘slack計算出對應(yīng)的最大頻率;此時的占用面積為輸出信息中Slice LUTs和Slice Registers兩個數(shù)據(jù),結(jié)果如表3所示.以FPGA上的性能參數(shù)為基礎(chǔ),可以作為具體硬件設(shè)計實現(xiàn)過程中選擇每個原語對應(yīng)的器件的數(shù)目、參數(shù)、實現(xiàn)方法的參考與依據(jù).

    Table 3 Performance and Area表3 性能和面積開銷

    6 總結(jié)和未來計劃

    類腦計算作為一個不斷發(fā)展的交叉學(xué)科,在神經(jīng)科學(xué)、體系結(jié)構(gòu)和人工智能領(lǐng)域都具有重要的發(fā)展前景.在這一背景下,實現(xiàn)類腦計算系統(tǒng)的軟硬件解耦合可以使研究人員專注于自己的專業(yè)領(lǐng)域,從而降低領(lǐng)域內(nèi)的合作成本,提高研究效率,有利于促進(jìn)領(lǐng)域的協(xié)同發(fā)展.本文嘗試基于神經(jīng)形態(tài)完備性和類腦計算層次結(jié)構(gòu)實現(xiàn)軟硬件解耦合的類腦計算硬件設(shè)計方法,提出了其基本的設(shè)計流程并展示了初步進(jìn)展.

    在這一基礎(chǔ)框架下,仍然有許多工作可以進(jìn)一步展開.執(zhí)行原語集合設(shè)計和硬件方法設(shè)計需要多次迭代與選擇,如果每次迭代都需要實際測試,即使基于可配置、可重構(gòu)的評估平臺,其開銷仍然不可忽視,我們嘗試建立相應(yīng)設(shè)計空間與實際效能之間的性能模型,從而節(jié)約硬件設(shè)計的迭代開銷,加速設(shè)計效率.基于神經(jīng)形態(tài)完備性引入的近似能力,如何實現(xiàn)其高效利用,也是值得研究的方向.相應(yīng)地,我們計劃進(jìn)一步展開支持近似能力的編譯器與優(yōu)化方法的研究,構(gòu)建更為高效的軟硬件設(shè)計實現(xiàn).此外,基于FPGA的評估平臺工作尚處于初期,會進(jìn)一步完善,為軟硬件解耦合的類腦計算芯片設(shè)計打下硬件評估基礎(chǔ).

    致謝感謝清華大學(xué)未來芯片技術(shù)高精尖創(chuàng)新中心對本文執(zhí)行原語集合設(shè)計的幫助!

    猜你喜歡
    類腦層次結(jié)構(gòu)圖靈
    艾倫·圖靈: 數(shù)學(xué)與邏輯的奇才
    世界首款類腦互補(bǔ)視覺芯片研制成功
    基于級聯(lián)網(wǎng)絡(luò)和語義層次結(jié)構(gòu)的圖像自動標(biāo)注方法
    基于多尺度網(wǎng)格細(xì)胞模型的無人機(jī)類腦矢量導(dǎo)航方法
    新英鎊
    中國成立“類腦國家實驗室”“借鑒人腦”攻關(guān)人工智能
    論立法修辭功能的層次結(jié)構(gòu)
    法律方法(2017年2期)2017-04-18 09:00:37
    人工智能簡史
    商界·時尚(2016年5期)2016-07-15 21:37:17
    建構(gòu)利益相關(guān)者管理的三層次結(jié)構(gòu)分析
    語言與圖靈測試
    遂昌县| 响水县| 南木林县| 聊城市| 商都县| 宝丰县| 宜君县| 南通市| 鹤庆县| 普兰店市| 伊川县| 中阳县| 榕江县| 桓仁| 若羌县| 托克托县| 泗阳县| 恩平市| 缙云县| 鄄城县| 滨海县| 义马市| 宜阳县| 比如县| SHOW| 定州市| 时尚| 景宁| 额敏县| 龙井市| 象山县| 盱眙县| 韶关市| 富蕴县| 安乡县| 航空| 泌阳县| 龙井市| 五大连池市| 双流县| 南开区|