背景技術(shù):
1、深度神經(jīng)網(wǎng)絡(luò)(“dnn”)是根據(jù)生物神經(jīng)系統(tǒng)(諸如人類大腦)中的信息處理和通信模式而被粗略地建模的。dnn可以用于解決復(fù)雜的分類問題,諸如但不限于對象檢測、語義標(biāo)記和特征提取。因此,dnn形成許多智能(“ai”)應(yīng)用的基礎(chǔ),諸如計(jì)算機(jī)視覺、語音識別和機(jī)器翻譯。在許多這些領(lǐng)域中,dnn可以匹配或超過人類準(zhǔn)確性。
2、dnn的高水平性能源于它們在大數(shù)據(jù)集之上使用統(tǒng)計(jì)學(xué)習(xí)以獲取輸入空間的有效表示之后從輸入數(shù)據(jù)提取高水平特征的能力。然而,dnn的優(yōu)越性能的代價(jià)是高計(jì)算復(fù)雜度。高性能通用處理器,諸如圖形處理單元(“gpu”),通常用于提供許多dnn應(yīng)用所需的高水平的計(jì)算性能。
3、雖然通用處理器(如gpu)可以為實(shí)現(xiàn)dnn提供高水平的計(jì)算性能,但是這些類型的處理器通常不適合用于在低功耗至關(guān)重要的計(jì)算設(shè)備中執(zhí)行長時(shí)間的dnn操作。例如,通用處理器,諸如gpu,可能不適合用于在電池供電的便攜式設(shè)備(如智能手機(jī)或替代/虛擬現(xiàn)實(shí)(“ar/vr”)設(shè)備)中執(zhí)行長時(shí)間運(yùn)行的dnn任務(wù),其中需要降低功耗以延長電池壽命。
4、例如,當(dāng)執(zhí)行持續(xù)的dnn任務(wù)(諸如檢測人類運(yùn)動)時(shí),降低功耗對非電池供電的設(shè)備(諸如以太網(wǎng)供電(“poe”)安全攝像頭)也可能是重要的。在該具體示例中,poe交換機(jī)只能提供有限的電力;降低poe設(shè)備(如安全攝像頭)的功耗,允許使用提供更少電力的poe交換機(jī)。
5、已經(jīng)開發(fā)了專用集成電路(“asic”),可以提供高性能的dnn處理,同時(shí)與通用處理器相比降低了功耗。然而,盡管在這一領(lǐng)域取得了進(jìn)步,但是仍然需要對執(zhí)行dnn處理的asic改進(jìn)性能和降低功耗,特別是用于低功耗至關(guān)重要的計(jì)算設(shè)備。
6、本文中所提出的本公開是關(guān)于這些和其他技術(shù)挑戰(zhàn)而被提出的。
技術(shù)實(shí)現(xiàn)思路
1、在本文中公開了一種神經(jīng)處理元件,能夠進(jìn)行提高了精度的計(jì)算。本文中所公開的神經(jīng)處理元件的架構(gòu)在處理某些類型的dnn層所生成的操作數(shù)時(shí)實(shí)現(xiàn)更高的精度。例如,但不限于,實(shí)現(xiàn)所公開的技術(shù)的神經(jīng)處理元件可以采取具有n位的有符號的或無符號的操作數(shù)作為輸入。在某些情況下,神經(jīng)處理元件可以使用n+1位對操作數(shù)執(zhí)行操作,從而與神經(jīng)處理元件會只使用n位執(zhí)行其內(nèi)部計(jì)算的架構(gòu)相比,提供了提高的精度。本文中未被具體提及的其他技術(shù)優(yōu)勢也可以通過所公開的主題的實(shí)現(xiàn)來實(shí)現(xiàn)。
2、為了實(shí)現(xiàn)上面簡要提及的技術(shù)優(yōu)勢,公開了一種包括神經(jīng)處理元件的dnn處理器。該神經(jīng)處理元件可以采取具有n位的有符號的或無符號的操作數(shù)作為輸入。在一個(gè)特定實(shí)現(xiàn)中,操作數(shù)是有符號的或無符號的8位二進(jìn)制數(shù)。在其他實(shí)現(xiàn)中,操作數(shù)可以利用不同數(shù)目的位。
3、神經(jīng)處理元件還包括電路系統(tǒng),該電路系統(tǒng)用于對某些類型的操作數(shù)執(zhí)行提高了精度的計(jì)算。例如,神經(jīng)處理元件可以對限于正數(shù)的操作數(shù)(諸如由dnn的校正線性單元(“relu”)層產(chǎn)生的操作數(shù))執(zhí)行擴(kuò)展精度計(jì)算。通常,relu層所輸出的有符號的n位值只使用n-1位(表示-127到+128的值),因?yàn)闉榉柋A袅艘晃弧H欢褂盟_的技術(shù),神經(jīng)處理元件可以在其內(nèi)部計(jì)算中利用由relu層產(chǎn)生的操作數(shù)的所有n位(表示0至255的值)。
4、為了提供提高的精度,神經(jīng)處理元件被配置有硬件與(and)門。該硬件與門被配置為執(zhí)行二進(jìn)制信號(在本文中可能被稱為“符號擴(kuò)展信號”)與操作數(shù)的最高有效位(“msb”)之間的邏輯與操作。在操作數(shù)是8位二進(jìn)制數(shù)的示例中,msb是操作數(shù)的第7位。
5、符號擴(kuò)展信號的狀態(tài)可以是基于先前由dnn處理器處理的dnn的層的類型。具體地,如果操作數(shù)是無符號的(諸如當(dāng)操作數(shù)由dnn的relu層產(chǎn)生時(shí)),則符號擴(kuò)展信號可以被設(shè)置為邏輯假(false)。在這種情況下,操作數(shù)的符號沒有被擴(kuò)展,而是在操作數(shù)前面加了零位,使其成為9位有符號的數(shù)。
6、如果符號擴(kuò)展信號是邏輯真(true)(即當(dāng)輸入是有符號的(諸如tanh層的輸出)時(shí)),則對操作數(shù)執(zhí)行符號擴(kuò)展。為了執(zhí)行符號擴(kuò)展操作,神經(jīng)處理元件還包括聯(lián)接(concatenation)電路(“聯(lián)接器”),該聯(lián)接電路被配置為聯(lián)接兩個(gè)二進(jìn)制值。具體地,聯(lián)接器聯(lián)接硬件與門的輸出和操作數(shù),從而將操作數(shù)從n位無符號的值擴(kuò)展到n+1位有符號的值。在操作數(shù)是8位二進(jìn)制數(shù)的配置中,例如,聯(lián)接器的輸出是9位有符號的二進(jìn)制數(shù)。
7、神經(jīng)處理元件還可以包括用于以上述方式處理另一操作數(shù)的另一硬件與門和另一聯(lián)接器。在該示例中,針對兩個(gè)操作數(shù)的聯(lián)接器的輸出都被提供給硬件二進(jìn)制乘法器。在操作數(shù)是8位二進(jìn)制數(shù)的配置中,硬件二進(jìn)制乘法器的輸出是18位有符號的二進(jìn)制數(shù)。神經(jīng)處理元件可以繼續(xù)處理硬件二進(jìn)制乘法器的輸出。
8、應(yīng)當(dāng)認(rèn)識到,上述主題可以被實(shí)現(xiàn)為計(jì)算機(jī)控制的裝置、計(jì)算機(jī)實(shí)現(xiàn)的方法、計(jì)算設(shè)備或制品,諸如計(jì)算機(jī)可讀介質(zhì)。通過閱讀下面的具體實(shí)施方式和審查相關(guān)聯(lián)的圖,這些和各種其他特征將變得顯而易見。
9、提供本
技術(shù)實(shí)現(xiàn)要素:
是為了以簡化的形式介紹所公開的技術(shù)的一些方面的簡要描述,這些技術(shù)還將在下面的具體實(shí)施方式中進(jìn)行描述。本發(fā)明內(nèi)容既不旨在標(biāo)識所要求保護(hù)的主題的關(guān)鍵特征或必要特征,本發(fā)明內(nèi)容也不旨在用于限制所要求保護(hù)的主題的范圍。此外,所要求保護(hù)的主題并不限于解決本公開的任何部分中所提到的任何或全部缺點(diǎn)的實(shí)現(xiàn)。
1.?一種神經(jīng)處理元件,包括:
2.根據(jù)權(quán)利要求1所述的神經(jīng)處理元件,其中所述操作數(shù)包括8位有符號的二進(jìn)制數(shù)或無符號的二進(jìn)制數(shù)。
3.根據(jù)權(quán)利要求1所述的神經(jīng)處理元件,其中由所述聯(lián)接器生成的所述第二輸出包括9位有符號的二進(jìn)制數(shù)。
4.根據(jù)權(quán)利要求1所述的神經(jīng)處理元件,其中所述硬件二進(jìn)制乘法器的第三輸出包括18位有符號的二進(jìn)制數(shù)。
5.根據(jù)權(quán)利要求1所述的神經(jīng)處理元件,其中所述操作數(shù)的所述msb包括8位有符號的或無符號的二進(jìn)制數(shù)的第7位。
6.根據(jù)權(quán)利要求1所述的神經(jīng)處理元件,其中產(chǎn)生所述操作數(shù)的所述dnn的所述層包括整流線性單元relu層。
7.根據(jù)權(quán)利要求1所述的神經(jīng)處理元件,其中所述dnn的所述層的所述類型是用戶指定的。
8.一種計(jì)算機(jī)實(shí)現(xiàn)的方法,包括:
9.根據(jù)權(quán)利要求8所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述操作數(shù)包括8位有符號的二進(jìn)制數(shù)或無符號的二進(jìn)制數(shù)。
10.根據(jù)權(quán)利要求8所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述第二輸出包括9位有符號的二進(jìn)制數(shù)。
11.根據(jù)權(quán)利要求8所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述硬件二進(jìn)制乘法器的第三輸出包括18位有符號的二進(jìn)制數(shù)。
12.根據(jù)權(quán)利要求8所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述操作數(shù)的所述msb包括8位有符號的或無符號的二進(jìn)制數(shù)的第7位。
13.根據(jù)權(quán)利要求8所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中產(chǎn)生所述操作數(shù)的所述dnn的所述層包括整流線性單元relu層。
14.根據(jù)權(quán)利要求8所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述dnn的所述層的所述類型是用戶指定的。
15.?一種深度神經(jīng)網(wǎng)絡(luò)dnn處理器,包括多個(gè)神經(jīng)處理元件,所述多個(gè)神經(jīng)處理元件中的每個(gè)神經(jīng)處理元件包括:
16.根據(jù)權(quán)利要求15所述的dnn處理器,其中所述操作數(shù)包括8位有符號的二進(jìn)制數(shù)或無符號的二進(jìn)制數(shù),并且其中提供給所述硬件二進(jìn)制乘法器的所述第二輸出包括9位有符號的二進(jìn)制數(shù)。
17.根據(jù)權(quán)利要求15所述的dnn處理器,其中所述硬件二進(jìn)制乘法器的第三輸出包括18位有符號的二進(jìn)制數(shù)。
18.根據(jù)權(quán)利要求15所述的dnn處理器,其中所述操作數(shù)的所述msb包括8位有符號的或無符號的二進(jìn)制數(shù)的第7位。
19.根據(jù)權(quán)利要求15所述的dnn處理器,其中產(chǎn)生所述操作數(shù)的所述dnn的所述層包括relu層。
20.根據(jù)權(quán)利要求15所述的dnn處理器,其中所述dnn的所述層的所述類型是用戶指定的。