国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于利用三角輸入掩碼對(duì)數(shù)據(jù)進(jìn)行掩碼和歸一化的硬件加速的系統(tǒng)和方法與流程

      文檔序號(hào):40401720發(fā)布日期:2024-12-20 12:25閱讀:4來(lái)源:國(guó)知局
      用于利用三角輸入掩碼對(duì)數(shù)據(jù)進(jìn)行掩碼和歸一化的硬件加速的系統(tǒng)和方法與流程


      背景技術(shù):

      1、現(xiàn)場(chǎng)可編程門(mén)陣列(fpga)是包括邏輯塊陣列和這些邏輯塊之間的可重配置互連的硬件設(shè)備。在(或以前的)產(chǎn)品中,這些邏輯塊可以被稱為自適應(yīng)邏輯模塊(alm),而在產(chǎn)品中,這些邏輯塊可以被稱為可配置邏輯塊(clb)。每個(gè)邏輯塊可以包括可編程邏輯,諸如用于執(zhí)行從輸入到輸出的可配置邏輯映射的一個(gè)或多個(gè)查找表(lut)、用于添加輸入值的加法器、用于臨時(shí)保持?jǐn)?shù)據(jù)的寄存器等。利用配置文件對(duì)fpga進(jìn)行編程或配置設(shè)置互連(或互連“結(jié)構(gòu)”)以將不同的邏輯塊接線在一起,從而配置fpga以執(zhí)行由配置文件(有時(shí)被稱為“位文件”)指定的特定功能。

      2、與由通用處理器執(zhí)行的軟件實(shí)現(xiàn)方式相比,fpga帶來(lái)了在低層級(jí)(例如電路層級(jí))處實(shí)現(xiàn)計(jì)算的更高性能和更低功耗的益處。這類(lèi)似于使用專(zhuān)用集成電路(asic)的益處,專(zhuān)用集成電路(asic)諸如為專(zhuān)用協(xié)處理器(諸如圖形處理單元(gpu)或神經(jīng)加速器),它們分別用于加速特定于計(jì)算機(jī)圖形和人工神經(jīng)網(wǎng)絡(luò)的操作。然而,asic的設(shè)計(jì)和制造是具有高前期固定成本的漫長(zhǎng)而昂貴的過(guò)程。

      3、因此,fpga的一些應(yīng)用包括例如為最終可能在asic中實(shí)現(xiàn)的硬件設(shè)計(jì)進(jìn)行原型設(shè)計(jì)以及在(例如,由于低數(shù)量或高度專(zhuān)門(mén)化的計(jì)算)設(shè)計(jì)和制造asic可能不合理的情況下對(duì)計(jì)算的硬件加速。另外,fpga還提供了對(duì)底層硬件(在“現(xiàn)場(chǎng)”中)的重新配置的靈活性,而不會(huì)像在asic的情況下那樣被鎖定到固定硬件配置中,其中邏輯在制造時(shí)直接在電路的布局中實(shí)現(xiàn),并且因此幾乎沒(méi)有可重新配置性。一些云計(jì)算提供商提供對(duì)包括連接的fpga的硬件實(shí)例(例如,服務(wù)器)的訪問(wèn),從而允許用戶自定義fpga以執(zhí)行對(duì)計(jì)算操作的硬件加速。

      4、正是關(guān)于這些和其他考慮因素,已經(jīng)做出了示例。另外,盡管已經(jīng)討論了相對(duì)具體的問(wèn)題,但是應(yīng)該理解,示例不應(yīng)該僅限于解決背景中確定的具體問(wèn)題。


      技術(shù)實(shí)現(xiàn)思路

      1、本
      技術(shù)實(shí)現(xiàn)要素:
      被提供從而以簡(jiǎn)化形式介紹下面在具體實(shí)施方式部分中進(jìn)一步描述的一系列概念。本發(fā)明內(nèi)容不旨在識(shí)別所要求保護(hù)的主題的關(guān)鍵特征或基本特征,其也不旨在幫助確定所要求保護(hù)的主題的范圍。

      2、本技術(shù)的方面涉及對(duì)數(shù)據(jù)掩碼(mask)的硬件加速和對(duì)掩碼的數(shù)據(jù)計(jì)算softmax函數(shù),其是機(jī)器學(xué)習(xí)的領(lǐng)域中常見(jiàn)的操作。作為一個(gè)示例,經(jīng)常應(yīng)用于自然語(yǔ)言處理的機(jī)器學(xué)習(xí)模型中的自回歸變換器模型將掩碼應(yīng)用于輸入數(shù)據(jù),以便確保變換器模型學(xué)習(xí)僅基于詞元序列中較早出現(xiàn)的詞元而不是基于該序列中較晚出現(xiàn)的詞元對(duì)該序列中的給定詞元進(jìn)行預(yù)測(cè)。將掩碼應(yīng)用于數(shù)據(jù)以通過(guò)隱藏(例如,歸零)在訓(xùn)練過(guò)程期間不應(yīng)該考慮的值來(lái)強(qiáng)制執(zhí)行此自回歸約束。考慮布置在n×n矩陣或陣列中的輸入數(shù)據(jù)值的情況,其中每行對(duì)應(yīng)于從左到右排序的不同詞元序列,則掩碼可能會(huì)遮擋通常位于每行的右側(cè)的高數(shù)據(jù)值。

      3、softmax函數(shù)(也稱為softargmax或歸一化(normalized)指數(shù)函數(shù))經(jīng)常用作神經(jīng)網(wǎng)絡(luò)或其他機(jī)器學(xué)習(xí)模型的最后一個(gè)激活函數(shù),以將由機(jī)器學(xué)習(xí)模型生成的輸出(例如分?jǐn)?shù))歸一化到受約束的范圍(例如,從在(-∞,+∞)的范圍內(nèi)的不受約束的輸出到在[0,1]的范圍內(nèi)的受約束的或歸一化的輸出)。對(duì)于k個(gè)元素的匯集或向量z中的第i個(gè)元素zi,softmax函數(shù)σ的一個(gè)典型表達(dá)式被表示為:

      4、

      5、更詳細(xì)地,應(yīng)用于數(shù)據(jù)以強(qiáng)制執(zhí)行自回歸約束的掩碼當(dāng)應(yīng)用于n×n輸入數(shù)據(jù)矩陣時(shí)經(jīng)常采取上三角掩碼或塊上三角掩碼的形式,其中較早的行(例如,靠近輸入數(shù)據(jù)矩陣的頂部)具有較多被屏蔽(masked?out)的數(shù)據(jù)值,而較晚的行(例如,靠近輸入數(shù)據(jù)矩陣的底部)具有較少被屏蔽的數(shù)據(jù)值(或沒(méi)有被屏蔽的數(shù)據(jù)值)。這通常可以被表示為其中第k行(行從0到n-1編號(hào))具有k+1個(gè)未掩碼的數(shù)據(jù)值,后面是n-k-1個(gè)被掩碼屏蔽的數(shù)據(jù)值。在這樣的上三角掩碼中,輸入數(shù)據(jù)矩陣的大約一半的值被屏蔽。

      6、因此,本技術(shù)的一些方面涉及將來(lái)自兩個(gè)不同行的未掩碼的數(shù)據(jù)值組合成長(zhǎng)度為n(或長(zhǎng)度不大于n或小于或等于n)的單個(gè)行,并對(duì)組合的未掩碼的數(shù)據(jù)值的行的個(gè)體數(shù)據(jù)值執(zhí)行操作(例如,應(yīng)用函數(shù)),而不對(duì)掩碼的數(shù)據(jù)值執(zhí)行計(jì)算(因?yàn)檫@些掩碼的數(shù)據(jù)值與期望的最終輸出無(wú)關(guān))。在屏蔽輸入數(shù)據(jù)值的大約一半的三角掩碼的情況下,這具有幾乎使硬件加速器的計(jì)算吞吐量翻倍的效果,因?yàn)橛?jì)算資源不會(huì)浪費(fèi)在對(duì)對(duì)計(jì)算的最終結(jié)果沒(méi)有影響的掩碼的數(shù)據(jù)值執(zhí)行計(jì)算上。

      7、本技術(shù)的一些方面還涉及在硬件加速器內(nèi)實(shí)現(xiàn)掩碼的行為,從而避免與將掩碼從主機(jī)傳輸?shù)接布铀倨飨嚓P(guān)聯(lián)的帶寬和延時(shí)成本。另外,避免與將掩碼應(yīng)用于輸入數(shù)據(jù)相關(guān)聯(lián)的計(jì)算還減少對(duì)硬件加速器的計(jì)算負(fù)荷。

      8、因此,根據(jù)本技術(shù)的各個(gè)方面的對(duì)數(shù)據(jù)掩碼和數(shù)據(jù)的歸一化的硬件加速改進(jìn)包括此類(lèi)操作的機(jī)器學(xué)習(xí)模型訓(xùn)練過(guò)程的性能。性能的改進(jìn)涉及計(jì)算時(shí)間(例如,處理器時(shí)間)的減少、數(shù)據(jù)存儲(chǔ)和帶寬(例如,存儲(chǔ)器使用和通過(guò)通信總線傳輸?shù)臄?shù)據(jù))、能耗的減少,并且在一些示例中,減少在現(xiàn)場(chǎng)可編程門(mén)陣列(fpga)上的某些實(shí)現(xiàn)方式中以及在諸如專(zhuān)用集成電路(asic)和其他專(zhuān)用集成電路的其他硬件實(shí)現(xiàn)方式中使用的物理硬件的量。

      9、一個(gè)或多個(gè)方面的細(xì)節(jié)在下面的附圖和描述中闡述。從閱讀以下詳細(xì)描述和審閱相關(guān)聯(lián)的附圖,其他特征和優(yōu)點(diǎn)將顯而易見(jiàn)。應(yīng)理解,以下詳細(xì)描述僅是解釋性的,并不限制所要求保護(hù)的本發(fā)明。



      技術(shù)特征:

      1.一種用于加速現(xiàn)場(chǎng)可編程門(mén)陣列(fpga)中的計(jì)算的方法,所述現(xiàn)場(chǎng)可編程門(mén)陣列包括連接多個(gè)邏輯塊的可配置互連結(jié)構(gòu),所述方法包括:

      2.根據(jù)權(quán)利要求1所述的方法,其中所述掩碼是三角掩碼。

      3.根據(jù)權(quán)利要求1所述的方法,還包括:

      4.根據(jù)權(quán)利要求1所述的方法,其中所述掩碼歸一化電路被配置為將softmax函數(shù)應(yīng)用于所述組合的數(shù)據(jù)向量的所述第一子向量和所述組合的數(shù)據(jù)向量的所述第二子向量中的所述未掩碼的數(shù)據(jù)值,以基于所述組合的數(shù)據(jù)向量的最大未掩碼的數(shù)據(jù)值計(jì)算n個(gè)歸一化的值的所述組合的歸一化的數(shù)據(jù)向量。

      5.根據(jù)權(quán)利要求1所述的方法,還包括:

      6.根據(jù)權(quán)利要求1所述的方法,其中所述掩碼歸一化電路經(jīng)由所述fpga的設(shè)備存儲(chǔ)器的第一端口讀取所述輸入數(shù)據(jù)的所述行的所述r[i]個(gè)未掩碼的數(shù)據(jù)值,同時(shí)經(jīng)由所述fpga的所述設(shè)備存儲(chǔ)器的第二端口讀取所述輸入數(shù)據(jù)的所述另一行的所述n-r[i]個(gè)未掩碼的數(shù)據(jù)值。

      7.根據(jù)權(quán)利要求1所述的方法,其中合并所述行的所述r[i]個(gè)未掩碼的數(shù)據(jù)值和所述另一行的所述n-r[i]個(gè)數(shù)據(jù)值由所述掩碼歸一化電路的按位或電路執(zhí)行。

      8.根據(jù)權(quán)利要求1所述的方法,還包括訓(xùn)練機(jī)器學(xué)習(xí)模型,包括:

      9.一種計(jì)算機(jī)存儲(chǔ)介質(zhì),所述計(jì)算機(jī)存儲(chǔ)介質(zhì)存儲(chǔ)配置文件,所述配置文件指定包括可配置互連結(jié)構(gòu)和多個(gè)邏輯塊的現(xiàn)場(chǎng)可編程門(mén)陣列(fpga)的配置,其中基于所述配置文件而被配置的fpga包括由所述可配置互連結(jié)構(gòu)連接的、實(shí)現(xiàn)掩碼歸一化電路的邏輯塊,所述掩碼歸一化電路被配置為:

      10.根據(jù)權(quán)利要求9所述的計(jì)算機(jī)存儲(chǔ)介質(zhì),其中所述掩碼是三角掩碼。

      11.根據(jù)權(quán)利要求9所述的計(jì)算機(jī)存儲(chǔ)介質(zhì),其中所述配置文件還指定所述fpga的所述可配置互連結(jié)構(gòu)和所述邏輯塊的所述配置以用虛擬行填充所述輸入數(shù)據(jù),其中所述虛擬行的所述數(shù)據(jù)值中的所有數(shù)據(jù)值都被掩碼,并且其中所述虛擬行具有負(fù)索引。

      12.根據(jù)權(quán)利要求9所述的計(jì)算機(jī)存儲(chǔ)介質(zhì),其中所述配置文件還指定所述fpga的所述可配置互連結(jié)構(gòu)和所述邏輯塊的所述配置以實(shí)現(xiàn)指數(shù)電路,所述指數(shù)電路被配置為將softmax函數(shù)應(yīng)用于所述組合的數(shù)據(jù)向量的所述第一子向量和所述組合的數(shù)據(jù)向量的所述第二子向量中的所述未掩碼的數(shù)據(jù)值,以基于所述組合的數(shù)據(jù)向量的最大未掩碼的數(shù)據(jù)值計(jì)算n個(gè)歸一化的值的所述組合的歸一化的數(shù)據(jù)向量。

      13.根據(jù)權(quán)利要求9所述的計(jì)算機(jī)存儲(chǔ)介質(zhì),其中所述配置文件還指定所述fpga的所述可配置互連結(jié)構(gòu)和所述邏輯塊的所述配置以實(shí)現(xiàn)行拆分和填充電路,所述行拆分和填充電路被配置為:

      14.根據(jù)權(quán)利要求9所述的計(jì)算機(jī)存儲(chǔ)介質(zhì),其中所述配置文件還指定所述fpga的所述可配置互連結(jié)構(gòu)和所述邏輯塊的所述配置以將所述第一局部掩碼塊連接到所述fpga的設(shè)備存儲(chǔ)器的第一端口并將所述第二局部掩碼塊連接到所述fpga的所述設(shè)備存儲(chǔ)器的第二端口。

      15.一種現(xiàn)場(chǎng)可編程門(mén)陣列(fpga),包括連接多個(gè)邏輯塊的可配置互連結(jié)構(gòu),所述可配置互連結(jié)構(gòu)和所述邏輯塊被配置為實(shí)現(xiàn)掩碼歸一化電路,所述掩碼歸一化電路被配置為:


      技術(shù)總結(jié)
      一種現(xiàn)場(chǎng)可編程門(mén)陣列包括連接邏輯塊的可配置互連結(jié)構(gòu),該邏輯塊實(shí)現(xiàn)電路以:接收包括組織成行和列的數(shù)據(jù)值的輸入數(shù)據(jù),每行具有N個(gè)數(shù)據(jù)值;根據(jù)掩碼和行的索引i選擇輸入數(shù)據(jù)的行的R[i]個(gè)未掩碼的數(shù)據(jù)值;根據(jù)掩碼和另一行的索引選擇輸入數(shù)據(jù)的另一行的N?R[i]個(gè)未掩碼的數(shù)據(jù)值;將該行的R[i]個(gè)未掩碼的數(shù)據(jù)值和該另一行的N?R[i]個(gè)數(shù)據(jù)值合并成N個(gè)數(shù)據(jù)值的組合的數(shù)據(jù)向量;以及基于組合的數(shù)據(jù)向量的R[i]個(gè)未掩碼的數(shù)據(jù)值計(jì)算R[i]個(gè)歸一化的值并基于組合的數(shù)據(jù)向量的N?R[i]個(gè)數(shù)據(jù)值計(jì)算N?R[i]個(gè)歸一化的值以生成N個(gè)歸一化的數(shù)據(jù)值。

      技術(shù)研發(fā)人員:奚錦文
      受保護(hù)的技術(shù)使用者:微軟技術(shù)許可有限責(zé)任公司
      技術(shù)研發(fā)日:
      技術(shù)公布日:2024/12/19
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1