特邀作者:金瑞祥上海交通大學(xué) 電子信息科學(xué)與電氣工程學(xué)院
為了緩解CMOS工藝達到極限而導(dǎo)致的可靠性問題,發(fā)展新計算架構(gòu)、新技術(shù)和促進編碼多樣化來提升集成電路性能成為熱點,人們逐漸由傳統(tǒng)的精確計算范式轉(zhuǎn)向隨機計算范式。
過去半個世紀以來,電子產(chǎn)品一直在穩(wěn)步地從模擬向數(shù)字邁進。計算引領(lǐng)著電話、音樂錄制和播放、攝像機以及無線電和電視廣播的發(fā)展,在20 世紀中葉基本實現(xiàn)了數(shù)字化。
然而,計算機和人類大腦處理的許多信號都是模擬信號。模擬信號具有一些固有優(yōu)點:即使包含一些小的錯誤,通常也并不重要。例如,沒人會在意錄制的交響樂中某個音符比實際上的更響亮或者更柔和,也不會有人介意圖像中某個區(qū)域比現(xiàn)實中的稍稍明亮。人類聽力和視力沒有敏感到能識別這些微小的差異。在許多情況下,電子電路不需要為了精確和可完全重復(fù)的處理方式而首先將這些模擬量轉(zhuǎn)換為二進制數(shù)。如果可以將這些從模擬到數(shù)字的轉(zhuǎn)換減到最少,那么就可以節(jié)省大量的能量。如果你能想出如何以節(jié)能的方式處理模擬信號,那么你就將先人一步。在電力稀缺的應(yīng)用中,此項能力尤其重要,例如用于恢復(fù)聽力或視力的生物醫(yī)學(xué)植入物。
而數(shù)字技術(shù)的好處多于模擬技術(shù)是不可否認的,這也是為什么通常使用數(shù)字計算機來處理信號,而且處理精度比實際需求高得多——所用能量亦是如此。一種有趣且不太常見的折中方法被稱為隨機計算,它通過數(shù)字電路來處理模擬概率。舉兩個我們已經(jīng)研究過的應(yīng)用,這種基本已被遺忘的技術(shù)可以顯著改進未來的視網(wǎng)膜植入物和機器學(xué)習(xí)電路,這就是我們認為隨機計算即將卷土重來的原因。
隨著數(shù)字化產(chǎn)業(yè)的發(fā)展,計算領(lǐng)域?qū)呻娐访娣e、功耗和穩(wěn)定性的需求日益增長。由于技術(shù)的進步,晶體管的尺寸不斷減小,從而可以在芯片上集成越來越多的晶體管。然而,晶體管尺寸的減小會增加泄漏電流,從而增加功耗和不可靠性。為了解決這些問題,要么晶體管必須被其他設(shè)備取代,要么經(jīng)典計算方式必須被其他計算技術(shù)所取代。而晶體管的材料一時難以突破,為了緩解CMOS工藝達到極限而導(dǎo)致的可靠性問題,發(fā)展新計算架構(gòu)、新技術(shù)和促進編碼多樣化來提升集成電路性能成為熱點,人們逐漸由傳統(tǒng)的精確計算范式轉(zhuǎn)向隨機計算范式。
隨機計算(stochastic computing)是一種通過隨機比特流(bit stream)進行計算的范式,通過對比特流的簡單位運算實現(xiàn)復(fù)雜的計算,是近似計算的一種。
隨機計算基本原理
在隨機計算中,實數(shù)由隨機二進制比特流表示,而數(shù)字本身被解釋為概率,即這串比特流中每一個比特為1的概率,而基于伯努利大數(shù)定律,概率可以用頻率來估計,即每一位比特為1的概率可以用這串比特流中的1的個數(shù)在比特流中的占比來表示,即PX=N1/N2,其中是X中出現(xiàn)的1的數(shù)量。例如比特流1100101110表示數(shù)字0.6。由于1的位置是沒有規(guī)定的,這也就意味著許多不同的比特流可以具有相同的值。下圖為二進制數(shù)轉(zhuǎn)換為隨機數(shù)的方式,由隨機數(shù)生成器(SNG)得到隨機二進制數(shù)R,其中,然后與B進行比較后采樣得到比特流X。因此一個的估計值可以簡單地通過計算X中的1來估算,估計的準確性取決于X中位數(shù)的隨機性及N的長度。此外隨機數(shù)生成器通常采用邏輯電路,而非真隨機源。
B. R. Gaines定義隨機數(shù)有單極格式(區(qū)間為[0,1])及雙極格式(區(qū)間為[-1,1])兩種。通過改變變量,可以得到隨機數(shù)的單極格式與出雙極格式之間的關(guān)系如下:P*=2P-1,其中為雙極格式下的隨機數(shù)值。
隨機計算的乘法
隨機計算從剛引入開始,其第一個吸引點則是可以通過基礎(chǔ)的邏輯門搭建一個成本低的具有計算功能的電路。在隨機計算中通過單個與門即可實現(xiàn)單極中的乘法,對于雙極格式的乘法也可以通過一個XNOR門輕松實現(xiàn)。其中需要注意的是,若要AND門利用隨機計算理論準確表示乘法運算,需要兩個輸入的比特流是不相關(guān)的或者獨立的。
隨機計算的加法
加法的目的是計算輸入的隨機比特流中1的總和。常見的加法硬件實現(xiàn)有兩種:基于多路復(fù)用器(MUX)的加法和基于近似并行計數(shù)器(APC)的加法。對于前一種結(jié)構(gòu),計算結(jié)果PZ=0.5(P1+P2)。
另一種方法是APC使用并行計數(shù)器對所有輸入比特流中的1進行計數(shù),并輸出一個二進制數(shù)?;贛UX的設(shè)計具有簡單的結(jié)構(gòu),適用于少量輸入的加法運算,但是當輸入數(shù)量變大時,會表現(xiàn)出不準確性。基于APC的設(shè)計非常精確,適合大量輸入,但電路結(jié)構(gòu)更加復(fù)雜。
隨機計算的發(fā)展
起源
隨機計算最早可以追溯到20世紀50年代馮•諾依曼關(guān)于隨機邏輯的開創(chuàng)性工作,但既沒有在理論上得到發(fā)展,也沒有在實踐中加以實施。
隨著電子及計算機技術(shù)的發(fā)展,在20世紀60年代期間,通過兩組研究人員分別獨立的研究,發(fā)展出隨機計算的基本概念。其中B.R. Gaines和J.H. Andrea主要從事機器學(xué)習(xí)領(lǐng)域的研究工作,在標準電信實驗室上發(fā)表文章Stochastic Computing;同期,德國的 Ted Popplebaum 在伊利諾伊大學(xué)厄本那分校工作期間研究圖像處理系統(tǒng),與 Afuso 和 Esch一起出版了書籍Stochastic computing elements and systems。通過兩個小組共同的努力隨機計算的概念得以完善。
在當時由于晶體管價格高昂,而隨機計算僅需要幾個晶體管或者簡單的邏輯門就可以實現(xiàn)復(fù)雜的數(shù)學(xué)函數(shù)的計算,因此深受工程師的喜愛。
低迷
到 20 世紀 70-90 年代,隨機計算的發(fā)展進展變得緩慢,隨著晶體管的成本與價格逐漸走低,隨機計算的優(yōu)勢逐漸被削弱。1978 年在法國圖盧茲舉行了一次有關(guān)隨機計算及其應(yīng)用的專門會議,20 世紀 90 年代,隨著 FPGA(現(xiàn)場可編程門陣列) 的出現(xiàn),人們對隨機計算的興趣也有了小規(guī)模的增長。
再次興起
在2005 年左右,新的錯誤檢測和錯誤糾正方案——低密度奇偶校驗(LDPC)—— 剛剛普及不久后,沒落的隨機計算迎來了一個小小的轉(zhuǎn)折。LDPC 編碼發(fā)明于20 世紀60 年代,如今廣泛用于各種通信系統(tǒng),包括Wi-Fi 網(wǎng)絡(luò)。但LDPC 解碼則是一件棘手的事情。不過由于解碼涉及概率算法,因此可以使用相對簡單的隨機計算電路來實現(xiàn)。隨機電路在上述應(yīng)用中的成功,以及控制功耗已成為芯片設(shè)計人員面臨的最大挑戰(zhàn)之一這樣一個事實,促使研究人員在重新審視隨機計算,觀察隨機計算在現(xiàn)代電子時代還能發(fā)揮什么作用。目前已通過隨機計算完成機器學(xué)習(xí)及控制中的特定任務(wù),此外隨機電路已成功用于圖像處理任務(wù),例如邊緣檢測、圖像閾值等方面。
隨機計算的優(yōu)點
漸進式精度。隨機計算無須修改硬件即可調(diào)整計算精度,這在其他計算系統(tǒng)中是無法實現(xiàn)的,能夠通過犧牲精確度實現(xiàn)以更低能耗完成復(fù)雜功能。隨機計算的運算精度與比特流的相關(guān),比特流越長則所產(chǎn)生的數(shù)值精度就越高,隨著對比特流的擴展,會越來越精確,能非常迅速地提供一個粗略的估計。
這就好比數(shù)字的最重要位在其最不重要位之前到達;與傳統(tǒng)的算術(shù)電路不同,最重要位通常最后到達。在一些迭代系統(tǒng)中,通過漸進式精度獲得的結(jié)果可以提供比傳統(tǒng)計算方法更快的反饋,從而帶來更快的收斂。
所需的邏輯資源非常小,如,兩數(shù)之間的乘法運算可簡單地用一個二輸入與門或XNOR運算來實現(xiàn),具體取決于所采用的隨機數(shù)格式;而加法器只需要一個多路復(fù)用器。這兩種操作都可以用比它們的普通二進制運算電路少得多的硬件來實現(xiàn)。
固有的容錯能力。由于采用隨機數(shù)作為運算數(shù)據(jù),其運算過程中的輸入噪聲或數(shù)據(jù)錯誤不會導(dǎo)致最終結(jié)果完全偏離。隨機數(shù)的每個比特具有相同的重要性,而二進制數(shù)中比特的重要性則有很大的不同。此屬性使隨機計算通??梢苑浅:玫乇苊?ldquo;軟錯誤”,因為比特翻轉(zhuǎn)只會導(dǎo)致隨機數(shù)數(shù)值的微小變化,不會對結(jié)果產(chǎn)生重大影響,而在普通二進制運算中,一個高有效位的比特翻轉(zhuǎn)會導(dǎo)致重大錯誤。
隨機計算存在的問題
計算精度的增長會導(dǎo)致比特流長度的指數(shù)速度增長。例如,若要求計算精度從4變成8,比特流長度需要從變成,從而也導(dǎo)致計算時間呈指數(shù)增長,使得處理時間變長。
高昂的隨機性需求。使用微小元件進行加法和乘法是隨機計算最明顯的優(yōu)勢。然而,加法必須縮放以保持其結(jié)果在單位間隔內(nèi),而乘法則需要輸入獨立不相關(guān)的比特流。為了計算的正確性,需要保證SNG產(chǎn)生的各個隨機流序列相互獨立或不相關(guān),因此SC電路計算核心電路需要多少個輸入,就需要多少個SNG。這意味著需要大量的由獨立隨機源驅(qū)動的SNG,也就意味著高昂的成本,其門電路的優(yōu)勢將會喪失。此外SNG 引入了初始轉(zhuǎn)換錯誤及不同比特流的數(shù)據(jù)相關(guān)性引起的計算誤差是隨機計算系統(tǒng)中的兩個主要誤差源,需要通過改進 SNG 的設(shè)計來減輕此問題,以提高準確性和高度不相關(guān)的隨機隨機序列生成。
技術(shù)應(yīng)用
隨著數(shù)字化產(chǎn)業(yè)的發(fā)展,計算領(lǐng)域?qū)呻娐访娣e、功耗和穩(wěn)定性的需求日益增長。而取代晶體管的材料一時難以突破,因此發(fā)展新計算架構(gòu)、新技術(shù)和促進編碼多樣化來提升集成電路性能成為熱點。隨機計算使用和加權(quán)二進制完全不同的數(shù)值表征系統(tǒng),它的數(shù)據(jù)是無權(quán)重的,可以使用非常簡單的邏輯電路來實現(xiàn)在加權(quán)二進制系統(tǒng)中非常復(fù)雜的運算,這有助于降低功耗和硬件復(fù)雜度,這使得隨機計算非常適合集成電路設(shè)計。
隨機計算仍在飛速發(fā)展中,有一些應(yīng)用正在進行中,如美國普渡大學(xué)的Minsuk Koo 等人提出了隨機計算在脈沖神經(jīng)網(wǎng)絡(luò)的應(yīng)用,實現(xiàn)了高效節(jié)能和內(nèi)存壓縮的神經(jīng)形態(tài)計算實現(xiàn)。在 90nm CMOS 工藝中制作了基于隨機計算的神經(jīng)元和突觸,從而實現(xiàn)高效的圖像識別任務(wù)的片上訓(xùn)練和推理。
也有研究人員直接在半導(dǎo)體器件級來實現(xiàn)隨機計算,這些方法建議利用底層電路結(jié)構(gòu)的固有概率行為,如最直觀的是利用熱噪聲影響下的二進制開關(guān)的概率行為?;谶@一原理,佐治亞州理工學(xué)院的Sureh Cheemalavagu等人提出了概率CMOS(Probabilistic CMOS,PCMOS)系列電路。
此外,由于應(yīng)用于隨機計算的熵源可靠性和自相關(guān)性問題,基于RRAM的隨機計算芯片相關(guān)的詳細研究較少。2021年中國科學(xué)院微電子重點實驗室科研人員首次在28nm HKMG CMOS平臺上制作了基于RRAM閃爍噪聲的128Kb SC芯片,通過使用該隨機計算芯片,測試的邊緣檢測應(yīng)用實現(xiàn)了極低的錯誤率(3.13%@128BSL)。
未來在芯片領(lǐng)域應(yīng)用的趨勢
隨著大數(shù)據(jù)發(fā)展,需要AI芯片處理的數(shù)據(jù)量正在呈指數(shù)級增長,芯片速度的提高正隨著摩爾定律可能的終結(jié)而漸趨緩慢。隨著越來越多的計算系統(tǒng)向嵌入式和移動設(shè)備發(fā)展,降低能耗成為AI芯片設(shè)計的頭等大事。隨機計算作為能夠有效提高芯片能效的方法之一,逐漸受到相關(guān)工作者的重視,在一些方面展現(xiàn)出了廣泛的應(yīng)用前景。
現(xiàn)場可編程門陣列(FPGA)與傳統(tǒng)的大規(guī)模集成電路相比,具有可重構(gòu)性好、并行性高的特點,成為了非線性系統(tǒng)在硬件實現(xiàn)的一種熱門選擇。但FPGA器件存在DSP資源昂貴的缺點,而大多數(shù)的非線性系統(tǒng)在硬件實現(xiàn)時,都需要相當數(shù)量的DSP資源。隨機計算是以概率的形式對數(shù)據(jù)轉(zhuǎn)化的比特流進行處理,可以用簡單的門電路來實現(xiàn)加減乘除和其他復(fù)雜運算,從而降低FPGA中的計算資源消耗,提高非線性系統(tǒng)在FPGA硬件實現(xiàn)時的效率。因此,開展基于隨機計算的非線性系統(tǒng)在 FPGA 的優(yōu)化與應(yīng)用研究具有重要意義。
此外類腦芯片作為AI芯片未來發(fā)展的方向之一,可以模擬人腦功能進行感知方式、行為方式和思維方式。而生物大腦的運作具備非常好的容錯機制,并不強調(diào)精確計算,因此生物大腦的能耗非常低。因此是否可以從邏輯電路、存儲器到算法,借助隨機計算優(yōu)勢,接受不精確的計算結(jié)果并代入容差功能,以實現(xiàn)效能的提高?隨機計算能夠提高系統(tǒng)各個層級的容錯性,這對器件來說也非常重要,因為半導(dǎo)體芯片工藝很容易出現(xiàn)各種缺陷,如果系統(tǒng)可以把這些缺陷忽略不計,那就能夠大大提高穩(wěn)定性與可靠性。