TWI717646B - 在類神經網路中產生隨機性 - Google Patents
在類神經網路中產生隨機性 Download PDFInfo
- Publication number
- TWI717646B TWI717646B TW107136967A TW107136967A TWI717646B TW I717646 B TWI717646 B TW I717646B TW 107136967 A TW107136967 A TW 107136967A TW 107136967 A TW107136967 A TW 107136967A TW I717646 B TWI717646 B TW I717646B
- Authority
- TW
- Taiwan
- Prior art keywords
- execution unit
- bit
- result
- predetermined
- instruction
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/582—Pseudo-random number generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/01—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
- G06F7/501—Half or full adders, i.e. basic adder cells for one denomination
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本發明係關於處理一種執行單元,其經組態以執行一電腦程式指令以基於一預定概率分佈產生隨機數。該執行單元包括:一硬體偽隨機數產生器,其經組態以在執行該指令時至少產生隨機化位元串;及加法電路,其經組態以接收自該隨機化位元串選擇之一預定位元長度之數個位元序列且對其等求和以產生一結果。
Description
本發明係關於在類神經網路中產生隨機性。
類神經網路用於機器學習及人工智慧領域。類神經網路包括藉由鏈路互連且彼此互動之節點組之配置。運算中之類神經網路之原理基於關於電刺激如何在人腦中傳達資訊之資訊。出於此原因,節點通常被稱為類神經元。節點亦可稱為頂點。鏈路有時稱為邊緣。網路可獲取輸入資料且特定節點對資料執行運算。將此等運算之結果傳遞至其他節點。各節點之輸出稱為其激勵(activation)或節點值。各鏈路與一權重相關聯。一權重定義類神經網路之節點之間的連接性。已知類神經網路能夠藉由其等學習之諸多不同技術,該學習係藉由改變權重值來進行。
圖1展示一類神經網路中之一種節點配置之一極簡化版本。此類型之配置通常用於學習或訓練且包括一節點輸入層、一節點隱藏層及一節點輸出層。實際上,各層中將存在諸多節點,且現今每個區段可存在一個以上層。輸入層Ni之各節點能夠在其輸出處產生一激勵或節點值,該激勵或節點值係藉由對提供給該節點之資料實行一函數而產生。藉由隱藏層中之各節點之輸入處之各自權重之一向量來按比例調整來自輸入層之節點值之一向量,各權重定義該特定節點與其在隱藏層中之連接節點之連接性。在實踐中,網路可具有數百萬個節點且多維連接,因此向量通常係一張量。施加於節點Nh之輸入處之權重標記為w0....w2。輸入層中之各節點至少最初連接至隱藏層中之各節點。隱藏層中之各節點可對提供給其等之資料執行一激勵函數且可類似地產生一輸出向量,該輸出向量供應給輸出層0
中之節點N0
之各者。各節點例如藉由實行節點之輸入激勵及各自傳入鏈路之唯一權重之點積來對其傳入資料進行加權。接著,各節點對加權資料執行一激勵函數。該激勵函數可為例如一S形(sigmoid)。參見圖1A。網路藉由對輸入層處輸入之資料進行運算,將權重指派給來自各節點之激勵且對輸入至隱藏層中之各節點之資料進行運算(藉由對其進行加權且執行激勵函數)來學習。因此,隱藏層中之節點對加權資料進行運算且將輸出供應給輸出層中之節點。輸出層之節點亦可指派權重。各權重之特徵在於一各自誤差值。此外,各節點可與一誤差條件相關聯。各節點處之誤差條件給定節點權重誤差是否低於一特定可接受性位準或程度之一量度。存在不同學習方法,但在各情況下,誤差存在透過網路之一正向傳播(圖1中自左至右)、一總體誤差計算及透過網路之一反向傳播(圖1中自右至左)。在下一循環中,各節點考量反向傳播誤差且產生一權重修訂集。以此方式,可訓練網路以執行其期望運算。
一類神經網路可能出現之一個問題係「過度擬合」。具有數百萬或數十億個參數(權重)之大型網路可能容易過度擬合。過度擬合引起一網路記住已提供給其之各訓練樣本(將資料提供給輸入節點之一訓練樣本),而非經訓練以提取相關特徵使得類神經網路適於在其已經訓練之後應用以更一般地自樣本提取特徵。已開發廣泛範圍之技術以藉由使類神經網路正規化以避免過度擬合/記憶來解決此問題。
在使用類神經網路處理大型資料集時,存在涉及使用隨機數之技術,此可改良其等效能。一種技術係所謂蒙特卡羅(Monte Carlo)取樣,其係用於依賴於重複隨機取樣以獲得數值結果之廣泛種類之運算演算法之術語。蒙特卡羅抽樣之基本理念係隨機性可能能夠解決原理上具確定性之問題。在使用蒙特卡羅取樣時,期望隨機數之一規定概率分佈。蒙特卡羅取樣可用於例如產生模型。
最近已設計藉由將隨機雜訊與權重或激勵相加來改良類神經網路之效能之技術。在此方面可能探究高斯(Gaussian)雜訊。
使用已知電腦技術實施類神經網路具有各種挑戰。例如使用一CPU或GPU實施隨機技術並非易事且且可影響有效實施方案可達成之全部益處。
本發明人已開發一種用於一處理器之執行單元,該處理器可回應於執行一程式指令而有效地提供來自一預定近高斯分佈之隨機值。
根據本發明之一個態樣,提供一種執行單元,其經組態以執行一電腦程式指令以基於一預定概率分佈產生隨機數,該執行單元包括:
一硬體偽隨機數產生器,其經組態以在執行該指令時至少產生隨機化位元串;及
加法電路,其經組態以接收自該隨機化位元串選擇之一預定位元長度之數個位元序列且對其等求和以產生一結果。
該執行單元可包含正規化電路,該正規化電路經組態以接收該結果且產生一正規化結果以使該預定概率分佈居中於一選定已知值及/或將該分佈之方差調整為一選定已知值。
該硬體偽隨機數產生器可經組態以在執行該指令時產生兩個或更多個隨機化位元串,且該加法電路可經組態以自兩次或更多次各自求和產生兩個或更多個結果。
在一項實施例中,該正規化電路包括一查找表,該查找表經組態以接收各結果且提供該正規化結果。然而,可利用任何實施方案。該正規化電路可實行自該結果減去一預定數目(該預定數目計算為由該加法電路產生之結果之總可能數目範圍之一半)、轉換為一浮點數格式且除以一除數之函數。該除數可為具有該預定位元長度之均勻分佈隨機變數之可能值之數目。
在一項實施例中,位元序列之數目係12。考量所需分佈及特定應用之硬體最佳化,該數目12被發現係位元序列之數目之一良好折衷。該分佈可為一Irwin-Hall分佈。各序列可具有任何合適數目個位元。該數目在所描述實施例中係5,但此僅係非限制性實例。
該正規化電路可經組態以自該結果減去186 (其中結果之數目範圍係372)。
該執行電路可包括求和電路,該求和電路將來自複數個該電腦程式指令之結果一起求和以更準確地擬合該預定概率分佈。該執行電路可進一步包括用於組合來自該偽隨機數產生器之輸出與來自該電腦程式指令之結果之電路。
亦提供一種對應方法及電腦程式。
一個態樣提供一種執行一電腦程式指令以基於一預定概率分佈產生隨機數之方法,該方法包括:
在執行該指令時產生至少一個隨機化位元串;
自該隨機化位元串選擇一預定位元長度之數個位元序列且對其等求和以產生一結果。
另一態樣提供一種包括一電腦程式之電腦程式產品,該電腦程式包括記錄於不可傳輸媒體上之一電腦程式指令,該電腦程式指令在被執行時實行前述方法。
為了更好地理解本發明且為了展示可實現本發明,現將僅以實例方式參考隨附圖式。
圖2展示一執行單元之一示意方塊圖,該執行單元經配置以執行用於自一預定概率分佈產生隨機值之單個指令。該指令在本文中稱為宏指令。執行單元2在一處理單元中形成一管線4之部分。該處理單元包括一指令提取單元6,指令提取單元6自一指令記憶體10提取指令。該處理單元亦包括一記憶體存取階8,記憶體存取階8負責存取一資料記憶體12以自該記憶體載入資料或將資料儲存至該記憶體中。提供一組暫存器14以保存由管線4在任何情況下執行之指令之來源運算元及目的地運算元。將容易理解,管線4可包含用於執行各種不同指令(例如,用於執行數學運算)之諸多不同類型之執行單元。可用於本發明之一種類型之處理單元係使用桶形執行緒時槽之一處理單元,其中一管理程式執行緒可將不同工作執行緒分配給不同時槽以便執行。本文中所描述之宏指令可與任何合適處理單元架構一起使用。
執行單元2包括一硬體偽隨機數產生器22,硬體偽隨機數產生器22在由該指令請求時產生偽隨機數。該等數各採取64個位元之一隨機化序列之形式。執行單元2亦包括一宏指令執行模組23及用於保持指令執行結果之一輸出緩衝器27。
該指令存在兩個版本。第一f16v2grand$aDST將來自隨機值之一預定概率分佈之兩個隨機16位元值傳回至一暫存器或記憶體位置DST中。該指令之一第二版本f32v2grand$aDST將來自同一分佈之兩個32位元值傳回至一暫存器或記憶體位置DST中。由宏指令模組23實施之技術提供接近於一Irwin-Hall分佈之一分佈。如本文中所解釋,Irwin-Hall分佈非常類似於一高斯分佈。Irwin Hall分佈係被定義為各具有一均勻分佈之數個獨立隨機變數之和之一隨機變數之一概率分佈。Irwin Hall分佈有時稱為均勻和分佈,儘管其具有高斯特性。與一量化正態分佈相比較,圖3繪示一量化Irwin-Hall分佈,其中求和之獨立隨機變數之數目係12。此與一高斯分佈曲線密切相關,該高斯分佈曲線被展示為具有一方差1及一平均值0。圖3中之上圖係對數標度,且下圖係普通標度。概率密度函數(PDF)在高斯之20%內直至3西格瑪(sigma)。累積分佈函數(CDF)概率與高斯相差小於+/-0.0024 (約1%)。就所有意圖及目的而言,其係用於上文所描述之以一非常令人滿意之方式改良類神經網路之效能之目的之一隨機數分佈。
在所描述實施例中,在由該執行單元執行宏指令時,PRNG 22產生兩個64位元寬輸出res 0、res 1。將理解,可能利用本發明之原理,其中僅產生單個輸出,但更有效地產生兩個輸出以便回應於單個指令而產生兩個隨機數。中間64位元寬PRNG輸出res 0、res 1藉由對12個構成5位元欄位求和而壓縮為9個位元,如下文所指示。圖4示意地繪示下文表示為由兩個加法器40a、40a實施之加法函數,各加法器自一各自隨機化位元串接收輸入序列。各加法器具有12個輸入,且各輸入為5位元寬。捨棄各輸入串之前4個位元。
assign rsum0[8:0]=res0[4:0]+res0[9:5]+res0[14:10]+
res0[19:15]+res0[24:20]+res0[29:25]+
res0[34:30]+res0[39:35]+res0[44:40]+
res0[49:45]+res0[54:50]+res0[59:55]+
assign rsum1[8:0]=res1[4:0]+res1[9:5]+res1[14:10]+
res1[19:15]+res1[24:20]+res1[29:25]+
res1[34:30]+res1[39:35]+res1[44:40]+
res1[49:45]+res1[54:50]+res1[59:55]+
所得不帶正負號9位元和(RESULT 1、RESULT 2)包含於範圍0至372內。將理解,藉由自隨機化位元串選擇不同數目個位元序列且亦可藉由改變各位元序列內之位元數目,可產生不同數目範圍。針對任何特定數目個序列/序列長度,加法器將在一定義數目範圍內產生一結果集。
為了方便起見,展示兩個12輸入加法器,但將明白,可利用其他加法電路組態。對12個均勻分佈隨機變數求和之選擇係基於以下項之一最佳化:
1)在接近於一正態(高斯)分佈與硬體成本之間進行一合理權衡;及
2)如此做恰好產生具有一標準偏差1而非一尷尬分數(awkward fraction)之一分佈,此簡化將整數按比例調整為具有標準偏差1之一浮點值所需之硬體。
接著在正規化電路42中處理求和結果RESULT 1、RESULT 2以便提供一正規化曲線。若無此正規化,則結果之數目範圍將自0延伸至372且將不以0為中心。該正規化電路執行自該結果減去186以將範圍重新居中於0之一減法函數。此數目186係372之一半。將明白,若存在一不同數目範圍,則將存在一不同減法值(數目範圍之一半)。
結果應呈浮點格式以對應於所需精度,如在正規化電路42轉換為f16區塊中所展示。
一除法階將浮點數除以32以產生具有非常類似於一標準正態分佈之屬性之一分佈(尤其是近似儘可能接近於1之標準偏差)。除以32在二進位算術中容易達成,因為2次冪需要一固定移位或指數調整。32係單個5位元均勻分佈隨機變數之可能值之數目。應注意,若n個選定序列之數目並非12,則需要按比例調整達32n/12。
在所描述實施例中,由查找表42實施正規化電路。然而,將明白,正規化電路可以任何合適形式實施。在一種配置中,該查找表可合成為邏輯閘。
如上文所提及,該指令存在兩個版本。上文已描述之版本係f16v2grand。在替代版本f32v2grand中,輸出係兩個f32值而非兩個f16值。無需另一查找表或類似查找表,因為可根據由轉換邏輯44執行之以下操控自各自f16結果V1、V2導出所需f32輸出值之位元。
assign f32result0[31:0]={fpresult0[15:14],4’{fpresult0[13]},fpresult0[12:3],16’b0};
assign f32result1[31:0]={fpresult1[15:14],4’{fpresult1[13]},fpresult1[12:3],16’b0};
assign aDst[63:0]-{f32result1,f32result0};
即,藉由採取VI (f16)結果之位元14及15,將位元13複製4次,採取位元3至12且用16個零終結,導出一32位元序列。此在圖6中展示。
返回圖3,圖表上之各點表示藉由對12個5位元值求和產生之384個可能值之一者。概率分佈函數保持高斯直至近似3.5西格瑪,超過3.5西格瑪,該分佈之尾部將比一正態分佈中之情況更快地衰落。最極端輸出係+/-5.8125西格瑪,但概率極低。最接近之已知分佈係一連續非量化12階Irwin-Hall分佈,但將理解,下文特定分佈基於其產生方式係唯一的。
藉由對來自多個宏指令之偽高斯純量求和,可能更近似於一正態分佈。如已提及,Irwin-Hall概率分佈函數之尾部比一理想正態分佈之彼等尾部更快地減小振幅。此可藉由對來自多個宏指令之多個純量輸出求和來解決。圖5中之曲線展示為了達成一概率分佈函數(或累積分佈函數)需要對多少純量求和,其中尾部在一理想正態分佈之1%、10%或2x範圍內,直至一最大標準偏差數(sigma)。例如,來自一f16v2宏指令之各純量輸出係12個均勻分佈偽隨機值之一和且尾部在一理想正態分佈之10%內,直至2.8西格瑪。
為了對12個宏指令純量輸出(一第144階Irwin-Hall分佈)求和;應執行宏指令6次且將所有12個所得純量值求和。將最終和除以sqrt (12)以保持一標準偏差1。
宏指令之輸出可組合其他均勻分佈隨機變數之一和使用以產生一2西格瑪或3西格瑪截斷正態分佈。用來產生一2西格瑪resp (3西格瑪)之一演算法可進行運算以產生兩個(resp.three)「均值」(各均值係來自範圍-1至+1內之均勻分隨機變數(來自PRNG)之一隨機數)且對其等求和。接著,針對一2西格瑪分佈,使用前文所描述之宏指令產生兩個正態分佈值N1、N2。(針對一3西格瑪分佈,產生單個正態分佈值N1)。應注意,N1、N2對應於前文所論述之輸出V1、V2。
針對2西格瑪分佈,若|N1|或|N2|大於2,則均值之和用作輸出。
針對3西格瑪分佈,若|N1|大於3,則替代地使用均值之和。
兩個均勻隨機變數之和具有由圖6中之曲線(a)所表示之PDF (概率分佈函數):僅非常粗略之高斯,但明確地限於+/-2西格瑪。由曲線(b)繪示演算法試圖匹配之截斷高斯分佈。
若兩個高斯變數超出範圍(超過2西格瑪),則替代地使用兩個均值之和。
因為兩個高斯變數不可能超出範圍;因此僅罕見地使用兩個均值之和(500次中使用約1次)且因此其對平均分佈之影響非常輕微。
用於產生3西格瑪截斷高斯值之演算法略有不同。此次僅需一個高斯變數,因為單個值超過3西格瑪範圍之可能性已然很小(約1/500)。
三個均勻隨機變數之和具有由圖7中之曲線(a)所表示之PDF。其係粗略高斯且明確地限於+/-3西格瑪。由曲線(b)繪示演算法試圖匹配之截斷高斯分佈。若高斯變數超出範圍(超過3西格瑪),則替代地使用三個均值之和。
所得分佈之誤差非常小,因為3個均值之和已係一3西格瑪截斷高斯分佈之一相當好近似值且其僅在500次中被使用約1次。
本文中所使用之術語「隨機」可意謂「真隨機」或「偽隨機」。宏指令可使用一偽隨機或一真隨機位元序列產生器。
由一「偽隨機數產生器」或「PRNG」產生偽隨機數。PRNG可以軟體或硬體實施。由一「真隨機數產生器」或「TRNG」產生真隨機數。一TRNG之一實例係一「轉變效應環形振盪器」。PRNG優於TRNG之處在於確定性(在相同起始條件下運行相同程式兩次始終具有相同結果)。
TRNG優於PRNG之處在於輸出係真隨機(而一PRNG之輸出滿足任意選擇數學性質之一有限集;一PRNG之狀態及輸出始終可自當前狀態預測且因此并非真隨機)。
雖然已描述特定實施例,但一旦給定本發明,所揭示技術之其他應用及變體對於熟習此項技術者而言將變得顯而易見。本發明之範疇不受限於所描述實施例,而僅受限於隨附申請專利範圍。
2‧‧‧執行單元
4‧‧‧管線
6‧‧‧指令提取單元
8‧‧‧記憶體存取階
10‧‧‧指令記憶體
12‧‧‧資料記憶體
14‧‧‧暫存器
22‧‧‧偽隨機數產生器
23‧‧‧宏指令執行模組
27‧‧‧輸出緩衝器
40a‧‧‧加法器
40b‧‧‧加法器
42‧‧‧正規化電路/查找表
44‧‧‧轉換邏輯
圖1係一類神經網路之一高度簡化示意圖;
圖1A係一類神經元之一高度簡化示意圖;
圖2係根據本發明之一實施例之一處理單元之一示意圖;
圖3在一對數及正態圖上展示一正態高斯分佈與一Irwin-Hall分佈之間的差異;
圖4係用於實施遮罩指令之一執行單元之一方塊圖;
圖5展示藉由對多個宏指令(grand instruction)之結果求和來改良效能;
圖6繪示自一f16值至一f32值之轉換;
圖7及圖8係比較分佈之圖表。
2‧‧‧執行單元
4‧‧‧管線
6‧‧‧指令提取單元
8‧‧‧記憶體存取階
10‧‧‧指令記憶體
12‧‧‧資料記憶體
14‧‧‧暫存器
22‧‧‧偽隨機數產生器
23‧‧‧宏指令執行模組
27‧‧‧輸出緩衝器
Claims (21)
- 一種在處理單元中之執行單元,該執行單元經組態以執行自該處理單元之指令記憶體提取之一電腦程式指令以基於一預定概率分佈產生隨機數,該執行單元包括:一硬體偽隨機數產生器,其經組態以在該執行單元執行該指令時產生一隨機化位元串,該隨機化位元串包括一預定位元長度之數個位元序列;及加法電路,其經組態以接收自該隨機化位元串選擇之該預定位元長度之數個位元序列且對其等求和以產生一結果。
- 如請求項1之執行單元,其中該硬體偽隨機數產生器經組態以在執行該指令時產生兩個或更多個隨機化位元串,且其中該加法電路經組態以自兩次或更多次各自求和產生兩個或更多個結果。
- 如請求項1或2之執行單元,其包括正規化電路,該正規化電路經組態以接收該結果且產生一正規化結果以進行下列至少一者:使該預定概率分佈居中於一選定已知值;及將該分佈之方差調整為一選定已知值。
- 如請求項3之執行單元,其中正規化電路包括一查找表,該查找表經組態以接收各結果且提供正規化結果。
- 如請求項3之執行單元,其中該正規化電路自該結果減去一預定數目,該預定數目計算為由該加法電路產生之結果之總可能數目範圍之一半。
- 如請求項1之執行單元,其中位元序列之數目係12。
- 如請求項3之執行單元,其中位元序列之數目係12。
- 如請求項7之執行單元,其中該正規化電路經組態以自該結果減去186。
- 如請求項3之執行單元,其中該正規化電路經組態以除以一數,該數係具有該預定位元長度之均勻分佈隨機變數之可能值之數目。
- 如請求項1或2之執行單元,其中各序列之位元長度係5。
- 如請求項9之執行單元,其中該正規化電路經組態以除以32。
- 如請求項1或2之執行單元,其中該預定概率分佈近似一按比例調整、偏移、量化Irwin-Hall分佈。
- 如請求項1或2之執行單元,其包括求和電路,該求和電路將來自複數個該電腦程式指令之結果一起求和以更準確地擬合該預定概率分佈。
- 如請求項3之執行單元,其經組態以組合來自該隨機化位元串之一或多個位元序列與一或多個正規化結果。
- 一種執行一電腦程式指令以基於一預定概率分佈產生隨機數之方法,在一處理器之一執行單元中實施之該方法包括:當該執行單元執行該電腦程式指令時,在該指令執行時產生一隨機化位元串,該隨機化位元串包括一預定位元長度之數個位元序列;自該隨機化位元串選擇該預定位元長度之數個位元序列且對其等求和以產生一結果。
- 如請求項15之方法,其中回應於該指令,產生兩個或更多個隨機化位元串且自兩次或更多次各自求和產生兩個或更多個結果。
- 如請求項15或16之方法,其包括使用一查找表,該查找表經組態以接收該結果及正規化該結果,其中使用該查找表實行正規化步驟。
- 如請求項15或16之方法,其中位元序列之數目係12。
- 如請求項15或16之方法,其中各序列之位元長度係5。
- 如請求項15或16之方法,其包括正規化該結果以產生一正規化結果以使該預定概率分佈居中於一選定已知值且將該分佈之方差調整為一選定已知值。
- 一種包括一電腦程式之電腦程式產品,該電腦程式包括一電腦程式指令,該電腦程式指令在被執行時實行基於一預定概率分佈產生隨機數之一方法,在一處理器之一執行單元中實施之該方法包括:在該執行單元執行該指令時產生至少一個隨機化位元串,該隨機化位元串包括一預定位元長度之數個位元序列;及自該隨機化位元串選擇該預定位元長度之數個位元序列且對其等求和以產生一結果。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1717309.7A GB2568660B (en) | 2017-10-20 | 2017-10-20 | Generating Random Numbers Based on a Predetermined Probaility Distribution in an Execution Unit |
GB1717309.7 | 2017-10-20 | ||
??1717309.7 | 2017-10-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201931104A TW201931104A (zh) | 2019-08-01 |
TWI717646B true TWI717646B (zh) | 2021-02-01 |
Family
ID=60481696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107136967A TWI717646B (zh) | 2017-10-20 | 2018-10-19 | 在類神經網路中產生隨機性 |
Country Status (8)
Country | Link |
---|---|
US (2) | US10613833B2 (zh) |
EP (1) | EP3474134B1 (zh) |
JP (1) | JP6744375B2 (zh) |
KR (1) | KR102181385B1 (zh) |
CN (1) | CN109697048B (zh) |
CA (1) | CA3021415C (zh) |
GB (1) | GB2568660B (zh) |
TW (1) | TWI717646B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2568660B (en) * | 2017-10-20 | 2020-10-14 | Graphcore Ltd | Generating Random Numbers Based on a Predetermined Probaility Distribution in an Execution Unit |
US11533272B1 (en) * | 2018-02-06 | 2022-12-20 | Amesite Inc. | Computer based education methods and apparatus |
JP7177000B2 (ja) * | 2019-05-16 | 2022-11-22 | 日立Astemo株式会社 | 演算装置および演算方法 |
CN110765111B (zh) * | 2019-10-28 | 2023-03-31 | 深圳市商汤科技有限公司 | 存储和读取方法、装置、电子设备和存储介质 |
TWI754970B (zh) * | 2020-06-22 | 2022-02-11 | 鴻海精密工業股份有限公司 | 加速啟動函數運算的裝置、方法及存儲介質 |
CN112580822B (zh) * | 2020-12-16 | 2023-10-17 | 北京百度网讯科技有限公司 | 机器学习模型的对抗训练方法装置、电子设备和介质 |
DE112021006880T5 (de) | 2021-01-22 | 2023-11-16 | Nec Corporation | Zufallszahlengenerator, Zufallszahlen-Erzeugungsverfahren und nichtflüchtiges, computerlesbares Medium das ein Programm speichert |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3984668A (en) * | 1974-03-20 | 1976-10-05 | U.S. Philips Corporation | Method for generating pseudo-random bit sequence words and a device for carrying out the method |
US4218749A (en) * | 1978-09-25 | 1980-08-19 | Sangamo Weston, Inc. | Apparatus and method for digital noise synthesis |
GB2076570A (en) * | 1980-05-14 | 1981-12-02 | British Broadcasting Corp | Random Number Generator |
JP2005038229A (ja) * | 2003-07-16 | 2005-02-10 | Fujitsu Ltd | 乱数発生装置 |
JP2009049547A (ja) * | 2007-08-15 | 2009-03-05 | Seiko Epson Corp | 画像処理装置、画像処理方法、画像処理プログラム |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03117209A (ja) * | 1989-09-29 | 1991-05-20 | Anritsu Corp | デジタルガウス性雑音信号発生装置 |
JPH05216630A (ja) | 1991-11-29 | 1993-08-27 | Nec Corp | 相関のある乱数発生器 |
JPH06132825A (ja) * | 1992-10-16 | 1994-05-13 | Nippon Precision Circuits Kk | 信号生成回路 |
JP2000276459A (ja) | 1999-03-26 | 2000-10-06 | Fujitsu Ltd | 学習による変換関数を用いた乱数発生装置,乱数発生方法および乱数発生システム |
US20030177155A1 (en) * | 2002-03-15 | 2003-09-18 | Shackleford J. Barry | Random number converter of distribution from uniform to gaussian-like |
JP4121769B2 (ja) | 2002-04-30 | 2008-07-23 | 株式会社エヌ・ティ・ティ・ドコモ | 乱数列生成装置及び乱数列生成方法、並びに伝搬モデルシミュレーション装置及び方法 |
US7472148B2 (en) * | 2004-07-23 | 2008-12-30 | Qualcomm Incorporated | Method and apparatus for random-number generator |
JP2006072891A (ja) | 2004-09-06 | 2006-03-16 | Sony Corp | セルオートマトンに基づく、制御可能な周期を有する擬似乱数シーケンスの生成方法および装置 |
US8389167B2 (en) * | 2006-08-28 | 2013-03-05 | GM Global Technology Operations LLC | Detection of cell-to-cell variability in water holdup using pattern recognition techniques |
US8255443B2 (en) * | 2008-06-03 | 2012-08-28 | International Business Machines Corporation | Execution unit with inline pseudorandom number generator |
US8601485B2 (en) * | 2011-05-25 | 2013-12-03 | Arm Limited | Data processing apparatus and method for processing a received workload in order to generate result data |
CN104025501B (zh) * | 2011-12-29 | 2018-03-27 | 英特尔公司 | 用于不确定性随机位发生器(nrbg)的方法和装置 |
US8856198B2 (en) * | 2012-03-30 | 2014-10-07 | Freescale Semiconductor, Inc. | Random value production methods and systems |
US10061562B2 (en) * | 2012-09-29 | 2018-08-28 | Pivotal Software, Inc. | Random number generator in a parallel processing database |
US8873750B2 (en) * | 2013-03-14 | 2014-10-28 | International Business Machines Corporation | Instruction for performing a pseudorandom number generate operation |
US9417845B2 (en) * | 2013-10-02 | 2016-08-16 | Qualcomm Incorporated | Method and apparatus for producing programmable probability distribution function of pseudo-random numbers |
CN105045561A (zh) * | 2015-08-12 | 2015-11-11 | 中国电子科技集团公司第四十一研究所 | 一种伪随机数产生方法 |
US10922052B2 (en) * | 2015-10-12 | 2021-02-16 | Oracle International Corporation | Generating pseudorandom number sequences by nonlinear mixing of multiple subsidiary pseudorandom number generators |
US20170220322A1 (en) * | 2016-01-28 | 2017-08-03 | International Business Machines Corporation | Generating gaussian random numbers using inverse sampling and recurrence relationship |
US11635943B2 (en) * | 2017-04-07 | 2023-04-25 | Intel Corporation | Systems and methods for generating gaussian random numbers with hardware acceleration |
GB2568660B (en) * | 2017-10-20 | 2020-10-14 | Graphcore Ltd | Generating Random Numbers Based on a Predetermined Probaility Distribution in an Execution Unit |
-
2017
- 2017-10-20 GB GB1717309.7A patent/GB2568660B/en not_active Expired - Fee Related
-
2018
- 2018-02-01 US US15/886,505 patent/US10613833B2/en active Active
- 2018-10-12 EP EP18200110.7A patent/EP3474134B1/en active Active
- 2018-10-16 CN CN201811206421.4A patent/CN109697048B/zh active Active
- 2018-10-19 KR KR1020180125337A patent/KR102181385B1/ko active IP Right Grant
- 2018-10-19 TW TW107136967A patent/TWI717646B/zh active
- 2018-10-19 JP JP2018197148A patent/JP6744375B2/ja active Active
- 2018-10-19 CA CA3021415A patent/CA3021415C/en active Active
-
2020
- 2020-02-21 US US16/797,582 patent/US11334320B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3984668A (en) * | 1974-03-20 | 1976-10-05 | U.S. Philips Corporation | Method for generating pseudo-random bit sequence words and a device for carrying out the method |
US4218749A (en) * | 1978-09-25 | 1980-08-19 | Sangamo Weston, Inc. | Apparatus and method for digital noise synthesis |
GB2076570A (en) * | 1980-05-14 | 1981-12-02 | British Broadcasting Corp | Random Number Generator |
JP2005038229A (ja) * | 2003-07-16 | 2005-02-10 | Fujitsu Ltd | 乱数発生装置 |
JP2009049547A (ja) * | 2007-08-15 | 2009-03-05 | Seiko Epson Corp | 画像処理装置、画像処理方法、画像処理プログラム |
Also Published As
Publication number | Publication date |
---|---|
EP3474134A1 (en) | 2019-04-24 |
KR20190044550A (ko) | 2019-04-30 |
JP6744375B2 (ja) | 2020-08-19 |
US20190121616A1 (en) | 2019-04-25 |
CA3021415A1 (en) | 2019-04-20 |
TW201931104A (zh) | 2019-08-01 |
GB201717309D0 (en) | 2017-12-06 |
JP2019079523A (ja) | 2019-05-23 |
EP3474134B1 (en) | 2023-09-13 |
GB2568660B (en) | 2020-10-14 |
CA3021415C (en) | 2021-05-25 |
CN109697048A (zh) | 2019-04-30 |
KR102181385B1 (ko) | 2020-11-20 |
GB2568660A (en) | 2019-05-29 |
US11334320B2 (en) | 2022-05-17 |
US10613833B2 (en) | 2020-04-07 |
CN109697048B (zh) | 2024-03-22 |
US20200192636A1 (en) | 2020-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI717646B (zh) | 在類神經網路中產生隨機性 | |
GB2582145A (en) | Execution unit in Processor | |
US11449309B2 (en) | Hardware module for converting numbers | |
US11169778B2 (en) | Converting floating point numbers to reduce the precision | |
JP7292297B2 (ja) | 確率的丸めロジック | |
JP7208529B2 (ja) | 最適化装置及び最適化方法 | |
US20220222086A1 (en) | Processing core with operation suppression based on contribution estimate | |
Guo et al. | Automated framework for FPGA-based parallel genetic algorithms | |
Marni et al. | Mc3a: Markov chain monte carlo manycore accelerator | |
JP6709266B2 (ja) | ニューラルネットワークにおける処理 | |
JP7036224B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
Ueki et al. | Aqss: Accelerator of quantization neural networks with stochastic approach | |
Murillo et al. | PLAM: A Posit Logarithm-Approximate Multiplier for Power Efficient Posit-based DNNs | |
Yang et al. | Value-driven synthesis for neural network ASICs | |
Minarik et al. | On evolutionary approximation of sigmoid function for HW/SW embedded systems | |
Crespo | Vector Multiply-Accumulate Unit for Transprecision Computing |