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