TWI819005B - 用於執行乘法運算的計算單元、方法、電腦程式、機器可讀取儲存元件和產品 - Google Patents

用於執行乘法運算的計算單元、方法、電腦程式、機器可讀取儲存元件和產品 Download PDF

Info

Publication number
TWI819005B
TWI819005B TW108120879A TW108120879A TWI819005B TW I819005 B TWI819005 B TW I819005B TW 108120879 A TW108120879 A TW 108120879A TW 108120879 A TW108120879 A TW 108120879A TW I819005 B TWI819005 B TW I819005B
Authority
TW
Taiwan
Prior art keywords
multiplicands
exponents
shift
exponent
unit
Prior art date
Application number
TW108120879A
Other languages
English (en)
Other versions
TW202001547A (zh
Inventor
賽巴斯欽 弗格
Original Assignee
德商羅伯特博斯奇股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 德商羅伯特博斯奇股份有限公司 filed Critical 德商羅伯特博斯奇股份有限公司
Publication of TW202001547A publication Critical patent/TW202001547A/zh
Application granted granted Critical
Publication of TWI819005B publication Critical patent/TWI819005B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/4833Logarithmic number system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/487Multiplying; Dividing
    • G06F7/4876Multiplying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/50Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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 for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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 for evaluating functions by calculation
    • G06F7/552Powers or roots, e.g. Pythagorean sums
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Nonlinear Science (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Image Analysis (AREA)
  • Complex Calculations (AREA)
  • Executing Machine-Instructions (AREA)
  • Apparatus For Radiation Diagnosis (AREA)
  • Inspection Of Paper Currency And Valuable Securities (AREA)
  • Die Bonding (AREA)

Abstract

本發明係關於用於相乘至少二個被乘數(c,d)的一種計算單元及一種方法(10)。該些被乘數(c,d)呈指數表示,即,該些被乘數(c,d)在每一情況下被指派一指數及一底數。該計算單元經設計以執行該些被乘數(c,d)之乘法,且包含:至少一個位元移位單元,其中該位元移位單元使二進位數移位一可預先判定的位數,特定而言向左;一算術邏輯單元,其執行二個輸入變數之加法及二個輸入變數之減法;及一記憶體。本發明亦關於一種經設計以執行該方法(10)的電腦程式,且關於一種上面儲存有該電腦程式的機器可讀取儲存元件。

Description

用於執行乘法運算的計算單元、方法、電腦程式、機器可讀取儲存元件和產品
本發明係關於一種用於藉由位元移位來相乘至少二個被乘數的計算單元。類似地,本發明係關於一種用於藉由位元移位來相乘至少二個被乘數的方法,關於一種經設計用於執行該方法的電腦程式,且關於一種上面儲存有該電腦程式的機器可讀取儲存元件。
DE 10 2013 220 432 A1揭示一種用於整合式控制模組之模型計算單元,藉由純粹基於硬體之實施而被提供,該模型計算單元在至少一個內迴路及一個外迴路中具備指數功能、求和功能及乘法功能,以便計算基於資料之功能模型,特定而言,高斯過程模型。
在第一態樣中,本發明係關於根據獨立請求項1之計算單元。該計算單元經設計以執行至少二個被乘數之乘法。該些被乘數在每一情況下具有第一指數及第一底數。該些被乘數(特定而言,第一底數)在每一情況下具有第二底數、第二指數及第三指數。
該計算單元尤其包含以下特徵:
至少一個位元移位單元,該位元移位單元使二進位數移位一可預先判定的位數,特定而言向左。該計算單元亦包含執行二個輸入變數之加法及二個輸入變數之減法的一算術邏輯單元,且亦包含一記憶體。該記憶體可為暫存器或查找表。
該算術邏輯單元及該位元移位單元以某種方式彼此連接,以使得該算術邏輯單元首先執行第三指數之減法。
該算術邏輯單元及該位元移位單元亦以某種方式彼此連接,以使得該位元移位執行第一被乘數之第一指數中之一者的二進位數之第一移位,該第一移位的位數為相減指數之值,因此該算術邏輯單元執行第一移位的結果與該些被乘數之另一個第一指數之加法。
取決於第三指數中之較小指數之值,加法之結果被分成整數部分及小數部分。
分成整數部分及小數部分可藉由加法之結果之移位來進行,該移位的位數為第三指數中之較小指數之值,因為此移位涉及使加法之結果之小數位移位,其判定了分成各個部分。
隨後自該記憶體讀出小數部分之二進位數。
小數部分之二進位數較佳為小數部分之上升至一冪的二進位數,特定而言,所判定小數部分之上升至2的冪的二進位數。
該位元移位單元隨後執行小數部分之二進位數之第二移位,該第二移位的位數為整數部分之值。
小數部分可用作位址,用於自記憶體進行讀取。
小數部分可理解為意謂一數字的跟在小數點或二進位小數點或逗點後面之部分。整數部分相應地為該數字的對應地位於小數點前面之部分。 或者,整數部分亦可理解為意謂該數字的對應地位於小數點前面之整數。
該計算單元之優點在於,乘法係藉由使該些被乘數之指數之二進位數移位來執行,且二進位數之移位可在硬體中以在資源及能量方面特別高效的方式執行。此外,該計算單元可實施於較小的晶片區域上,因為有可能省掉複雜的硬體實施之乘法機構(例如,浮點乘法器及定點乘法器)。此外,該計算單元在能量上更具經濟性,因為在執行乘法時使二進位數移位所需的操作使用之能量比複雜的乘法機構少。因此,該計算單元特別節約地使用執行乘法所需的資源,諸如能量、計算時間及晶片區域。
此外,在本發明之第一態樣中,移位在每一情況下可在位元層次上執行。
此外,在本發明之第一態樣中,可假設該位元移位單元取決於第三指數之減法之值,藉由用複數個「0」填補右側來執行第一移位,特定而言,對應於三個指數中之較大一者之指數。複數個「0」適宜地各自表示二進位值「0」。此程序在下文被稱為位元調整。
其優點在於,在第一指數之不同解析度(即,不同的定點表示)的情況下,可使其二進位表示彼此匹配,因此,例如可直接執行二進位數之後續相加。
亦可假設該記憶體具有至少2 n 個項目,其中n等於第三指數中之較小指數之絕對值。較佳地,在該記憶體中,針對第三指數中之較小指數在每一情況下可具有之所有可能的不同值,分別儲存有一項目,該項目對應於上升至一冪之小數部分之結果。小數部分可用作位址,用於自該記憶體讀出各個二進位數。
其優點在於,上升至一冪之小數部分之二進位數藉由存取記憶體來判定,因此不需要使用硬體來執行指數計算,指數計算在計算上非常複雜。
此外,可假設該計算單元包含一累加單元,該累加單元累加在每一情況下至少二個被乘數之複數個乘法之結果。
其優點在於,例如,可以特別節省資源的方式執行矩陣-向量乘法或卷積,該些矩陣-向量乘法或卷積尤其在操作機器學習系統時進行且用於判定執行哪些乘法,然後執行加法。此係由於各個乘法之結果不必單獨緩衝儲存且隨後加在一起,而是可直接累加。
可提供轉換單元,特定而言,優先編碼器,其將乘法之結果轉換成指數表示。在指數表示中,藉由第一指數及第一底數表示數字。第一底數可具有預定值。亦可想到,在指數表示中,數字繼而具有第二底數、第二指數及第三指數。
轉換成指數表示係有利的,因為結果呈適合的格式,以允許結果再次被提供為計算單元之被乘數。
在第二態樣中,呈現一種用於在計算單元上相乘至少二個被乘數的方法。該些被乘數在每一情況下具有第一指數及第一底數。該些被乘數(特定而言,第一底數)在每一情況下具有第二底數、第二指數及第三指數。
該方法尤其包含以下步驟:
首先,提供被乘數之第一指數及第三指數。所提供之指數中之每一者已被量化,特定而言為二進位數。
隨後,將第三指數彼此相減。在此之後,執行被乘數之第一指數中之一者的二進位數之第一移位,該第一移位的位數為相減指數之值。隨後,將第一移位的結果與被乘數之另一個第一指數相加。取決於第三指數中之較小指數之值,加法之結果被分成整數部分及小數部分。
取決於第三指數中之較小指數之值,此分割亦可藉由使加法之結果移位一定位數進行。
此後進行小數部分之二進位數之第二移位,該第二移位的位數為整數部分之值。
個別步驟較佳地藉由計算單元之處理器或算術邏輯單元(ALU)執行。有利地,至少第一移位藉由位元移位單元或藉由位元調整執行,且第二移位藉由位元移位單元執行。
本發明之第二態樣之優點在於,藉由此方法,可在計算單元上以節省資源的方式執行乘法。
亦提出,移位在每一情況下在位元層次上執行。
在第二態樣中,可假設小數部分之二進位數係自記憶體(特定而言,暫存器或查找表)讀出。為此,小數部分可用作記憶體的位址,用於讀出小數部分之二進位數。
亦可假設第二移位之結果被分解成指數及可預先判定的底數,特定而言,轉換成指數表示。
此允許該結果容易再用於藉由根據本發明之第二態樣之方法進行的更新(renew)乘法。另一個優點在於,藉由指數表示,結果佔用更少的記憶體空間,因為指數比結果本身量化程度更高。此允許亦達成在執行該方法時所需的記憶體空間之減少。
第二底數及第二指數在每一情況下的值為2係有利的,因為2的冪允許容易自被乘數之給定指數及底數進行重建。另外,2的冪具有高的硬體相似性,藉此,該方法可特別容易在硬體中(特定而言藉由位元移位)映射。
亦提出,所提供之指數藉由最多10個位元表示。此導致記憶體大大減少且亦導致所需的記憶體頻寬大大減少。
其優點在於,可達成記憶體空間之顯著減少。此係由於通常用至少32個位元儲存之被乘數,可在每一情況下藉由每個指數僅10個位元進行儲 存,而乘法之結果的準確性不會有任何顯著損失。此導致用於儲存個別被乘數之記憶體消耗大大減少。
在本發明之另一個態樣中,呈現一種用於操作一機器學習系統之方法。通常在該機器學習系統之操作期間用作被乘數的該機器學習系統之複數個參數及中間變數,分別藉由指數表示儲存於一記憶體中,特定而言,另一個記憶體中。此等被乘數之乘法藉由本發明之第二態樣之方法中之一者執行。
在一機器學習系統中,參數及中間變數可彼此相乘。中間變數被理解為意謂該機器學習系統之所判定的中間結果。中間結果可取決於機器學習系統之複數個參數且取決於輸入變數及/或先前所判定之中間結果來判定。中間結果可藉由機器學習系統進一步處理,常常直至取決於中間結果,機器學習系統已判定輸出變數。
因為乘法為機器學習系統中之基本計算操作,且在機器學習系統之操作期間非常頻繁地執行乘法,所以藉由根據本發明之第二態樣之方法可達成計算單元的計算功率效率及計算速度之顯著增加,從而亦增強機器學習系統之操作效能。
可假設,特定而言藉由累加器累加乘法之複數個結果。此係由於,除了乘法,在機器學習系統之操作期間常常執行加法,因此,機器學習系統之加法及因此計算可藉由累加該些結果,在計算單元上在計算及時間方面特別高效地執行。此另外允許增加機器學習系統之操作效能。
在另一個態樣中,可假設,在機器學習系統之訓練過程期間,至少該些中間變數及該些參數之指數表示之底數被判定。
其優點在於,被乘數之適合的底數在訓練過程期間已經判定,藉此,機器學習系統在判定機器學習系統之參數時可在訓練過程期間考慮到指數表示。
機器學習系統之訓練過程被理解為意謂機器學習系統基於所提供之訓練資料進行學習,以解決可預先判定的任務,例如對諸如所記錄之影像的一輸入變數進行分類或切割。
或者,可假設,在機器學習系統之訓練過程之後,至少機器學習系統之中間變數及參數之指數表示的底數被判定。
優點在於,不必執行利用經轉換之參數進行的更新學習,因為第一底數的值可按需要選擇。已發現假如機器學習系統之至少參數的第一底數具有小於2的值,對機器學習系統特別有利,藉此不必執行更新學習。
可假設,底數取決於傳播的量化誤差來判定。傳播的量化誤差特色化用量化指數之二個被乘數之乘法的結果相較於此等二個被乘數之乘法的結果的差值,較佳地相較於用實際指數或用高度解析的量化指數(例如,32位元的量化指數)之此等二個被乘數之乘法的結果的差值。
若數字呈指數表示且指數已量化,則下文中將此稱為量化的指數表示。傳播的量化誤差之優點在於,僅需要輸入訓練資料,其不必具備標籤及屬性。
或者,傳播的量化誤差可特色化在有和沒有直接(間接)跟隨的乘法之情況下結果的差值。直接跟隨的乘法之被乘數在此處為呈量化的指數表示之被乘數之乘法的結果,且至少呈指數表示之被乘數中之一者之第一底數被判定。
間接跟隨的乘法之被乘數在此處取決於呈量化的指數表示之被乘數之乘法的結果,呈指數表示之被乘數中之一者之第一底數被判定。
特定而言,直接(間接)跟隨的乘法同樣利用量化指數或實際指數執行。
若機器學習系統包含深度神經網路,則傳播的量化誤差可特色化 深度神經網路之直接(間接)跟隨的層之中間變數的差值。中間變數在此處至少取決於判定哪個被乘數之第一底數。
此外,可假設,指數取決於指數表示之所判定底數來判定,且此等所判定指數經量化,特定而言,轉換成二進位數。在指數之量化期間,或將指數轉換成二進位數期間,從藉由10個位元對指數之初始解析度開始,每當特色化量化誤差之變數小於可預先判定的值,一次一個位元地逐步減小解析度。應注意,初始解析度可按需要選擇為介於至少5個位元與超過30個位元之間。已發現機器學習系統從10個位元開始係有利的,因為此達成了快速找到最佳解析度之效果,而無需在剛開始時獲得不準確的指數。
在本發明之另一個態樣中,已提出,機器學習系統之輸入變數為已藉由感測器記錄之變數。取決於機器學習系統之輸出變數,可判定控制變數。
控制變數可用於控制技術系統之致動器。技術系統可為例如至少部分自主的機器、至少部分自主的車輛、機器人、工具、機器工具或諸如無人機之飛行物件。例如,機器人或車輛之移動可基於控制變數加以控制,或致動器之控制可基於控制變數進行。
或者,輸入變數可例如取決於所記錄之感測器資料來判定且可提供給機器學習系統。感測器資料可由技術系統之感測器(諸如相機)記錄或自外部接收。
在本發明之另一個態樣中,已提出一種電腦程式。該電腦程式經設計以執行前述方法中之一者。該電腦程式包含指令,當該電腦程式在一電腦上運行時,該些指令致使一電腦執行此等方法中之一者的所有步驟。亦提出一種上面儲存有該電腦程式之機器可讀取儲存元件。
在本發明之另一個態樣中,已提出一種產品,其可藉由執行第二態樣之方法中之一者獲得,該產品至少包含機器學習系統之訓練過程。
在隨附圖式中表示前述態樣之例示性實施例且在以下描述中更詳細地描述闡述該些實施例。
10:方法
11:步驟
12:步驟
13:步驟
14:步驟
15:步驟
20:方法
21:步驟
22:步驟
23:步驟
24:步驟
25:步驟
26:步驟
30:方法
31:步驟
32:步驟
33:步驟
34:步驟
35:步驟
36:步驟
50:裝置
51:訓練模組
52:待訓練模組
53:記憶體
60:至少部分自主的車輛
61:記錄單元
62:機器學習系統
63:致動器控制單元
64:計算機器
65:機器可讀取儲存元件
401:第一資料線
402:第二資料線
403:暫存器
404:暫存器
405:填補
406:第一邏輯單元
407:整數部分
408:小數部分
409:LUT
410:第二邏輯單元
411:轉換單元
412:第三資料線
圖1展示用於藉由位元移位判定二個被乘數之乘法之方法的示意性表示;圖2展示用於為機器學習系統判定被乘數之底數之方法的示意性表示;圖3展示用於操作機器學習系統之方法的示意性表示;圖4展示用於藉由位元移位判定二個被乘數之乘法之計算單元之實施例的示意性表示;圖5展示可用於機器學習系統之訓練過程之裝置之實施例的示意性表示;圖6包含機器學習系統之部分自主的車輛之實施例的示意性表示。
圖1展示用於相乘二個被乘數之方法(10)的示意性表示。該方法尤其使用以下數學性質:若b可藉由指數表示來表示,在此處表示為2的冪-2b,則一個被乘數a與另一個被乘數b之乘法可藉由位元移位在二進位系統中執行。
該乘法可藉由使被乘數a之二進位數向左進行
Figure 108120879-A0305-02-0011-1
位的位元移位來判定:
Figure 108120879-A0305-02-0011-2
運算符<<表示被乘數a在二進位系統中向左進行位元移位,位元移位的位數為
Figure 108120879-A0305-02-0011-56
的值。
對於被乘數a可同樣由2的冪
Figure 108120879-A0305-02-0011-64
表示之情況,則:
Figure 108120879-A0305-02-0012-3
應注意,將被乘數ab轉換成指數表示具有以下效果:為了儲存此等值,僅需要儲存指數
Figure 108120879-A0305-02-0012-4
Figure 108120879-A0305-02-0012-5
,其可藉由比原始被乘數ab更少的位元來儲存。較佳地,用32個位元儲存被乘數ab,然而用較佳8個位元或甚至更少的位元儲存指數
Figure 108120879-A0305-02-0012-55
Figure 108120879-A0305-02-0012-14
。此外,應注意,必須知道已經為指數表示選擇了什麼底數之資訊。此意謂可選擇指數之強量化,藉此節省記憶體空間。亦應注意,基於前述方程式(1)或(2)中之一者的乘法與硬體數字表示格式(例如,定點)無關,因為修改係在二進位系統中執行。
對於滿足條件B≠2的一般底數B,可用(較佳經量化之)指數
Figure 108120879-A0305-02-0012-15
以指數表示來定義任何所需的數字c
Figure 108120879-A0305-02-0012-6
此外,底數B在下文中被選擇如下,使得其滿足方程式:
Figure 108120879-A0305-02-0012-12
其中z源自整數(z
Figure 108120879-A0305-02-0012-13
)之集合且較佳具有負值。
對於底數B之給定的量化指數
Figure 108120879-A0305-02-0012-11
及底數2之給定的指數z,用給定的
Figure 108120879-A0305-02-0012-8
z對值c的重建被計算如下:
Figure 108120879-A0305-02-0012-7
對於z<0的情況,位元移位向右進行,且在指數中產生了在小數點後面有z位之二進位數。
此外,可簡化方程式(5):
Figure 108120879-A0305-02-0012-9
應注意,小數部分可直接自數字
Figure 108120879-A0305-02-0012-10
得出,因為如剛才所提及,小數部分包含 z位。
較佳地,方程式(6)完全在硬體中執行。於是可想到,值
Figure 108120879-A0305-02-0013-16
儲存於定位表(location up table,LUT)中。LUT含有2z個項目,因此儲存了表達式
Figure 108120879-A0305-02-0013-17
之所有必要值。
因此,藉由使自LUT讀出之數字向左進行位元移位,位數為表達式 Integer{
Figure 108120879-A0305-02-0013-57
z} 的值,可高效地重建數字c。應注意,自LUT讀出之值亦已量化,較佳地藉由介於5個位元與30個位元之間的量化解析度進行量化。
圖1所示之方法(10)從步驟11開始。在步驟11中,以指數表示提供被乘數(c,d)。此包含提供被乘數(c,d)之指數(
Figure 108120879-A0305-02-0013-18
,
Figure 108120879-A0305-02-0013-19
)及至少此等被乘數(c,d)之底數(B c ,B d )。較佳地,底數(B c ,B d )同樣已經以指數表示提供。或者,取決於可預先判定的底數,所提供之底數(B c ,B d )可轉換成指數表示;適宜地,可預先判定的底數的值為2,參見方程式(4)。
在指數表示中,乘法可被判定如下:
Figure 108120879-A0305-02-0013-20
若因此B m =min(B c ,B d )、
Figure 108120879-A0305-02-0013-63
z b =min(z c ,z d ),則此意謂對於z c <z d 則得出:
Figure 108120879-A0305-02-0013-22
因為在此實例中z d -z c >0,所以指數之加法可藉由位元調整(亦即,取決於差值z d -z c ,藉由用二進位0填補右側或位元移位)在硬體中進行。
z c <z d ,則與
Figure 108120879-A0305-02-0013-23
相乘對應於向右移位,且方程式(8)中之括弧中之加法的結果被向右移位,藉此,指數中在小數點後面的位數由∥zb∥定義。
方程式(8)可簡化如下:
Figure 108120879-A0305-02-0014-24
一旦步驟11已完成,則接著進行步驟12。在此步驟中,如方程式(9)之第二行中所示,執行指數之減法(z d -z c )。
隨後,在步驟12中,執行指數中之一者(
Figure 108120879-A0305-02-0014-25
)的第一位元移位,該第一位元移位之位數為減法(z d -z c )之結果的值。第一位元移位可較佳地作為位元調整在硬體中執行,如關於方程式(8)所提及。隨後,將第一移位之結果與另一個指數(
Figure 108120879-A0305-02-0014-26
)相加。
在後續步驟13中,藉由第二移位使加法之結果移位(特定而言,向右),該移位的位數為z b 的值。因此,獲得
Figure 108120879-A0305-02-0014-27
作為結果。此處應注意,對於z b <0的情況,第二移位導致
Figure 108120879-A0305-02-0014-28
中在小數點後面有∥z b ∥位。
在步驟13之後,接著進行步驟14。在此步驟中,如方程式(6)中那樣將來自步驟13之所判定結果
Figure 108120879-A0305-02-0014-58
分成小數部分及整數部分。或者,取決於值z b ,可跳過步驟13且在步驟14中將來自步驟12的加法之結果直接分成小數部分及整數部分。
cd=p的乘法之最終結果於是給出為:
Figure 108120879-A0305-02-0014-33
此意謂在步驟14中使小數部分的值移位,該移位的位數為整數部分的值。
較佳地,表達式
Figure 108120879-A0305-02-0014-29
的值儲存於LUT中,且為了判定結果cd,自LUT讀出該值。此LUT包含
Figure 108120879-A0305-02-0014-30
個項目,因此對於
Figure 108120879-A0305-02-0014-31
之每一可能的值,儲存一對應的值
Figure 108120879-A0305-02-0014-32
。可在方法(10)開始時初始判定且儲存LUT之項目。
應注意,亦可在超過二個被乘數(a,b,c,...)的情況下執行該方法。 為此,LUT含有
Figure 108120879-A0305-02-0015-34
個項目。當在超過二個被乘數的情況下執行該方法時,必須藉由添加另外的被乘數之指數來對應地擴展以上方程式。亦可想到用超過一個指數來描述被乘數;此同樣可在以上方程式中考慮到。
應注意,亦可在至少一個負的被乘數的情況下執行方法(10)。若二個被乘數中之一者或兩者具有負號,則方法(10)可在另一個實施例中執行到步驟14為止且包括步驟14,而忽略被乘數之正負號。在步驟14已結束之後,隨後在此實施例中執行步驟15。在步驟15中,以對應於各個被乘數(c,d)之正負號的方式調適乘法p=cd之結果之正負號。例如,若一被乘數為負,則乘法之結果同樣變為負。若二個被乘數均為負,則乘法之結果為正。
此結束了方法(10)。可想到,方法在硬體或軟體中或在軟體與硬體之混合形式中實施。
圖2展示用於為機器學習系統判定被乘數之指數表示之底數(B c ,B d )之方法(20)的示意性表示。在此實施例中,機器學習系統包含深度神經網路。
方法(20)從步驟21開始。在此步驟中,提供經訓練之機器學習系統。亦即,已在訓練過程中判定機器學習系統之參數化。可能已基於所提供之訓練資料藉由最佳化方法(特定而言,梯度下降方法)訓練機器學習系統。或者,可在步驟21中訓練機器學習系統。
後續步驟22包含選擇轉換成指數表示的機器學習系統之參數及(另外或其他)中間結果。在此之後建立針對此等參數及/或中間結果進行最佳化的方程式(參見以下方程式(13)及(14))。最佳化之結果於是產生呈指數表示的適合於參數及/或中間結果之適當表示的彼等底數。
若舉例而言,機器學習系統包含神經網路,則可將參數(特定而言,中間結果)逐層轉換成指數表示。較佳地,各個層之參數及/或中間結果在每 一情況下藉由同一底數表示。較佳地,在判定底數時考慮到以下約束條件:底數具有小於2的值。
另外,機器學習系統之參數及中間結果之指數在指數表示中可經量化。
以下適用於呈量化的指數表示
Figure 108120879-A0305-02-0016-36
的層(l)之中間結果y(1)
Figure 108120879-A0305-02-0016-35
方程式(11)中表示之表示式亦適用於表示機器學習系統之參數,特定而言,用於與其他值(諸如中間結果)相乘的彼等參數。
底數(B y ,B w )之判定取決於量化誤差
Figure 108120879-A0305-02-0016-37
來執行。
或者,可使用傳播的量化誤差來判定底數(B y ,B w )。傳播的量化誤差特色化在有和沒有量化的情況下乘法之結果之差值,或另一個乘法中之差值,在另一個乘法中再次使用該結果作為另一個乘法之被乘數。
傳播的量化誤差q p 由以下方程式給出:
Figure 108120879-A0305-02-0016-38
此處,在特定神經網路中,機器學習系統之層(l)之輸出變數y(1)被寫為層(l+1)之輸入變數x。另外或其他,(l+n)th可僅用於判定量化誤差。作為機器學習系統之輸入變數,所使用之訓練資料可用於訓練機器學習系統。
針於傳播的量化誤差之B y B w 之最佳選擇由以下給出:
Figure 108120879-A0305-02-0016-39
Figure 108120879-A0305-02-0016-40
一旦已建立方程式(13)及(14),則在步驟22中對其求解以判定各個底數。
藉由底數之不同值的組合測試,或者藉由梯度下降方法,可使方 程式(13)及(14)最小化。
在結束了步驟22之後,可執行步驟23。在步驟23中,將所判定之底數指派給各個參數及/或中間結果。
在後續步驟24中,可取決於所指派底數將參數及/或中間結果轉換成指數表示。
較佳地,隨後執行步驟25。在此步驟中,使指數(
Figure 108120879-A0305-02-0017-41
,
Figure 108120879-A0305-02-0017-42
,z
c ,z d )之量化最佳化。可疊代地執行對指數之量化之位元寬度的選擇。較佳地,最初用8個位元,最多用10個位元,可選地亦用超過10個位元對指數進行量化。隨後,逐步地每次使用少一個位元,只要相較於例如用初始量化的機器學習系統之預測品質,機器學習系統產生足夠好的結果即可。
可選地,在步驟26中,將參數及/或中間結果以指數表示儲存於記憶體中。為此,儲存底數及指數。或者,可同樣以指數表示儲存底數。較佳地,以此等底數之指數表示使用底數2。
應注意,判定用於中間結果及參數之底數的步驟亦可在機器學習系統之訓練過程期間執行。此可藉由所謂的影子權重(shadow weight)執行。就此而言,參見P.Gysel等人的「Hardware-oriented Approximation of Convolutional Neural Networks」(2016,arxiv.org,[online]https://arxiv.org/pdf/1604.03168.pdf)中第3頁上關於「精細調整(fine-tuning)」之段落。
方法(20)在步驟26結束。
圖3展示用於適宜地在計算機器(諸如電腦)上操作機器學習系統之方法(30)的示意性表示。
方法(30)從步驟31開始。在此步驟中,訓練機器學習系統。可能可選地一個接一個地多次執行步驟31。
一旦已訓練機器學習系統,就執行步驟32。在此步驟中,將機器 學習系統之複數個參數及/或中間結果轉換成指數表示。為此,首先可例如藉由圖2中之方法(20)判定底數。取決於所判定之底數,隨後可判定指數。
一旦已完成步驟32,就接著進行步驟33。在步驟33中,機器學習系統取決於其參數及所提供之輸入變數判定中間結果。藉由至少二個被乘數之乘法判定的那些中間結果係藉由來自圖1之方法(10)判定的。該些乘法可例如藉由矩陣乘法或卷積運算進行。另外,可累加已藉由方法(10)(特定而言,矩陣乘法或卷積運算)執行之單獨的乘法之結果。
可選地,可儲存機器學習系統之每層的指數之減法(z d -z c )的結果。其有利效果在於,減法之判定可藉由快速提供各個結果來執行。
在後續步驟34中,可取決於機器學習系統之輸出變數判定用於技術系統之致動器的控制變數。
圖4展示經設計用於藉由位元移位執行乘法之計算單元的示意性表示。
第一及第二資料線(401、402)可分別連接至計算單元之暫存器(403、404)。被乘數(c,d)被載入至此等暫存器(403、404)中。此實施例之被乘數為量化指數,較佳為二進位指數。
第一被乘數經歷向左的位元移位,藉此,取決於減法(z d -z c )的結果(參見方程式(8)及(9)),在硬體資源方面高效地執行位元調整。可選地,位元移位之寬度或暫存器之寬度可被設定,較佳地在每一情況下針對機器學習系統之各層來設定。此位元移位可根據圖4藉由用0填補(405)暫存器之右側來執行。適宜地,該些0中之每一者分別表示二進位值「0」。
隨後,在第一邏輯單元(406)中執行根據方程式(9)計算指數(
Figure 108120879-A0305-02-0018-59
)。為此,第一邏輯單元(406)包含:至少一個加法機構(適宜地為ALU),其根據方程式(9)執行各個指數之加法;及至少一個位元移位單元,其取決於最小指數(z b )使 加法之結果移位。應注意,指數(z c ,z d)可藉由例如邏輯單元(406)之另外的資料線提供。第一邏輯單元(406)之結果在此處對應於根據方程式(9)的(
Figure 108120879-A0305-02-0019-43
)。
邏輯單元(406)之結果隨後被分解成整數部分(407)及小數部分(408)。小數部分(408)較佳係取決於最小指數(z b )判定的,該指數(z b )指示小數點後面的位數。
在另一個例示性實施例中,特定而言,若最小指數(z b )具有負值,則第一邏輯單元(406)僅具有加法機構。隨後藉由取決於最小指數(z b )對小數點進行的虛構移位,將加法之結果分解成整數部分(407)及小數部分(408)。小數點之虛構移位使得有可能省掉藉由位元移位單元對加法之結果進行的移位。
小數部分(408)隨後用作LUT(409)之位址。針對給定位址的LUT之儲存值隨後被傳遞至第二邏輯單元(410)。
除了LUT的值,第二邏輯單元(410)另外獲得第一邏輯單元(406)之結果之整數部分(407)。第二邏輯單元(410)執行LUT的值之位元移位,該位元移位之位數為整數部分(407)的值。有利地,邏輯單元(410)為此包含另一個位元移位單元,或者使用邏輯單元(406)之位元移位單元。
因為來自第二邏輯單元(410)之結果並非以指數表示來輸出,所以轉換單元(411)可經設計用於將其輸入變數轉換成量化的指數表示。轉換單元(411)之輸出可連接至第三資料線(412)。第三資料線(412)之位元寬度可適應於量化指數之位元寬度,藉此增加有效頻帶寬度。轉換單元(111)較佳為優先編碼器。
可選地,累加單元可配置於計算單元之第二邏輯單元(410)與轉換單元(411)之間。累加單元可經設計以在一個接一個地多次執行乘法時在累加單元中累加該些乘法之結果。累加單元之此結果隨後可用於判定啟動,特定而言,神經元之啟動。應注意,所判定之啟動亦可為卷積運算之結果。亦即,計算單元可藉由累加單元不僅判定矩陣乘法,而且判定諸如在例如卷積神經網路 之情況下發生的卷積。
在另一個例示性實施例中,計算單元可用於支持機器學習系統之操作。此計算單元在此處可連接至例如在上面操作機器學習系統之計算機器。在計算機器上操作機器學習系統時必須執行之乘法於是可轉移至計算單元。
圖5展示用於訓練機器學習系統之裝置(50)的示意性表示,特定而言,用於執行訓練機器學習系統之步驟,例如方法(30)的步驟31。裝置(50)包含訓練模組(51)及待訓練模組(52)。此待訓練模組(52)包含機器學習系統。用於訓練機器學習系統之裝置(50)取決於機器學習系統之輸出變數且較佳地用可預先判定的訓練資料來訓練機器學習系統。適宜地,訓練資料包含複數個所記錄之影像,該些影像在每一情況下帶有標籤。在訓練過程期間,調適儲存於記憶體(53)中的機器學習系統之參數。
圖6展示至少部分自主的車輛(60)之示意性表示。在另一個例示性實施例中,至少部分自主的車輛(60)可為服務機器人、組裝機器人或固定的生產機器人,或者諸如無人機之自主的飛行物件。至少部分自主的車輛(60)可包含記錄單元(61)。記錄單元(61)可例如為記錄車輛(60)之周圍區域的相機。記錄單元(61)可連接至機器學習系統(62)。機器學習系統(62)取決於所提供之輸入變數(例如,由記錄單元(61)提供),且取決於機器學習系統(62)之複數個參數來判定輸出變數。輸出變數可傳遞至致動器控制單元(63)。致動器控制單元(63)取決於機器學習系統(62)之輸出變數來控制致動器,較佳地以某種方式控制致動器以使得車輛(60)執行無碰撞操縱。致動器在此例示性實施例中可為車輛(60)之引擎或制動系統。
車輛(60)亦包含計算機器(64)及機器可讀取儲存元件(65)。儲存於儲存元件(65)上的可為電腦程式,其包含命令,當該些命令在計算機器(64)上執行時,該些命令具有以下效果:計算機器(64)執行前述方法(10、20及30)中之一 者。亦可想到,可在每一情況下包含電腦程式之下載產品或人工產生的信號在車輛(60)之接收器處被接收之後,致使計算機器(64)執行此等方法中之一者。
在替代的例示性實施例中,機器學習系統(62)可用於建築物控制系統。藉由感測器(例如,相機或運動偵測器)記錄使用者之行為,且致動器控制單元取決於機器學習系統(62)之輸出變數來啟動例如加熱系統之加熱泵。機器學習系統(62)於是可經設計以取決於所記錄之感測器變數,基於此使用者行為來判定建築物控制系統需要之哪種操作模式。
在另一個例示性實施例中,致動器控制單元(63)包含啟用系統。啟用系統取決於機器學習系統(62)之輸出變數來決定物件(例如,所記錄之機器人或所記錄之人)是否可以進出一區域。較佳地,藉由致動器控制單元(63)啟動致動器(舉例而言,門開啟機構)。建築物控制系統之先前例示性實施例之致動器控制單元(63)可另外包含此啟用系統。
在替代的例示性實施例中,車輛(60)可為工具或機器工具或機器人。工件之材料可藉由機器學習系統(62)進行分類。致動器在此情況下可為例如操作磨削頭之馬達。
在另一個實施例中,在圖中未表示之量測系統中使用機器學習系統(62)。在量測系統不包含致動器控制單元(63)的意義上,量測系統不同於圖1中所示之車輛(60)。並非將機器學習系統(62)之輸出變數傳遞至致動器控制單元(63),量測系統可例如儲存輸出變數以供稍後再使用,或(另外或其他)例如藉由視覺或聽覺呈現形式呈現。
亦可想到,在量測系統之進一步發展中,記錄單元(61)記錄人或動物的身體或其部分之影像。例如,此可藉由光學信號,藉由超音波信號,或藉由MRT/CT方法進行。量測系統在此進一步發展中可包含機器學習系統(62),其以某種方式進行訓練以取決於輸入變數輸出分類,例如,基於此輸入變數, 哪種病理學可能適用。
401:第一資料線
402:第二資料線
403:暫存器
404:暫存器
405:填補
406:第一邏輯單元
407:整數部分
408:小數部分
409:LUT
410:第二邏輯單元
411:轉換單元
412:第三資料線

Claims (20)

  1. 一種計算單元,其經組態以執行至少二個被乘數(c,d)之乘法,其中該些被乘數(c,d)在每一情況下具有一第一指數(
    Figure 108120879-A0305-02-0024-45
    ,
    Figure 108120879-A0305-02-0024-46
    )及一第一底數(B c ,B d ),其中該些被乘數(c,d),特定而言該些第一底數(B c ,B d ),在每一情況下具有一第二底數、一第二指數及一第三指數(z c ,z d ),該計算單元包含:至少一個位元移位單元,其中該位元移位單元使一二進位數移位一可預先判定的位數,特定而言向左;一算術邏輯單元及一記憶體;其中該算術邏輯單元執行該些第三指數(z c ,z d )之一減法,其中該位元移位單元執行該些被乘數(c,d)之該些第一指數中之一者(
    Figure 108120879-A0305-02-0024-60
    )的一二進位數之一第一移位,該第一移位的一位數為相減的該些指數(z c -z d )之一值,且,其中該算術邏輯單元執行該第一移位的結果與該些被乘數(c,d)之另一個第一指數(
    Figure 108120879-A0305-02-0024-47
    )之一加法,其中取決於該些第三指數(z c ,z d )中之一較小指數(z b ),該計算單元把該加法之結果分成一整數部分及一小數部分,其中該小數部分之一二進位數係自該記憶體讀出,且其中該位元移位單元執行該小數部分之該二進位數之一第二移位,該第二移位的位數為該整數部分之值。
  2. 如請求項1所述之計算單元,其中該位元移位單元取決於該些第三指數(z c ,z d )之該減法之一值藉由用複數個「0」填補右側來執行該第一移位。
  3. 如請求項1及2中任一項所述之計算單元,其中該記憶體具有至少2n個項目,其中n等於該些第三指數(z c ,z d )中之該較小指數的絕對值, 其中該小數部分用作一位址,用於自該記憶體讀出該小數部分之該二進位值。
  4. 如請求項1及2中任一項所述之計算單元,其中該計算單元亦包含一累加單元,該累加單元累加在每一情況下該至少二個被乘數之複數個乘法之結果。
  5. 如請求項4所述之計算單元,其中該累加單元由一加法器樹實現。
  6. 如請求項1及2中任一項所述之計算單元,其中一轉換單元(411),特定而言一優先編碼器,將該第二移位之結果轉換成一第四指數表示。
  7. 一種用於在一計算單元上相乘至少二個被乘數(c,d)之方法(10),其中該些被乘數(c,d)在每一情況下具有一第一指數(
    Figure 108120879-A0305-02-0025-48
    ,
    Figure 108120879-A0305-02-0025-49
    )及一第一底數(B c ,B d ),其中該些被乘數(c,d),特定而言該些第一底數(B c ,B d ),在每一情況下具有一第二底數、一第二指數及一第三指數(z c ,z d ),該方法包含使該計算單元執行以下步驟:- 提供該些被乘數(c,d)之該些第一指數(
    Figure 108120879-A0305-02-0025-50
    ,
    Figure 108120879-A0305-02-0025-51
    )及該些第三指數(z c ,z d ),其中所提供之該些指數(
    Figure 108120879-A0305-02-0025-52
    ,
    Figure 108120879-A0305-02-0025-53
    ,z
    c ,z d )中之每一者已量化;- 相減該些第三指數(z c ,z d );- 對該些被乘數(c,d)之該些第一指數中之一者(
    Figure 108120879-A0305-02-0025-61
    )的一二進位數進行一第一移位,該第一移位的一位數為相減之該些指數(z c -z d )之一值;- 相加該第一移位的結果與該些被乘數(c,d)之另一個第一指數(
    Figure 108120879-A0305-02-0025-54
    );- 取決於該些第三指數(z c ,z d )中之一較小指數(z b )將該相加之結果分成一整數部分及一小數部分;以及- 對該小數部分之一二進位數進行第二移位,該第二移位的位數為該整數部分之值。
  8. 如請求項7所述之方法,其中該小數部分之該二進位數係自一記憶體,特定而言一查找表讀出,其中該小數部分用作該記憶體之一位址,用於讀出該小數部分之該二進位數。
  9. 如請求項7及8中任一項所述之方法,其中該第二移位之結果被分解成一指數及一可預先判定的底數。
  10. 如請求項7及8中任一項所述之方法,其中該些第二底數中之每一者的值為2,且該些第二指數中之每一者的值為2。
  11. 如請求項7及8中任一項所述之方法,其中所提供之該些指數藉由最多10個位元表示。
  12. 一種用於操作一機器學習系統之方法,其中該機器學習之複數個參數及中間變數分別藉由指數表示作為被乘數儲存於一記憶體中,其中所儲存之該些被乘數之乘法係由如請求項7至11中任一項所述之方法執行。
  13. 如請求項12所述之方法,其中,在該機器學習系統之訓練過程期間,至少該些中間變數及該些參數之該些指數表示的該些底數被判定。
  14. 如請求項12所述之方法,其中,在該機器學習系統之該訓練過程之後,至少該機器學習系統之該些中間變數及該些參數之該些指數表示的該些底數被判定。
  15. 如請求項13及14中任一項所述之方法,其中該些底數取決於一傳播的量化誤差來判定,其中該傳播的量化誤差特色化使用量化指數之該至少二個被乘數之乘法的結果相較於特定而言使用實際指數之該至少二個被乘數之該乘法的結果的一差值。
  16. 如請求項13及14中任一項所述之方法,其中該些指數取決於該指數表示所判定之該底數來判定且該些所判定指數經量化,其中在該些指數之該量化期間,從藉由10個位元對該些指數之該量化的一解析度開始,每當特色化一量化誤差之一變數小於一可預先判定的值,一次一個位元地逐步減小該解析度。
  17. 如請求項12及13中任一項所述之方法,其中該機器學習系統之輸入變數為已藉由一感測器記錄之一變數,其中,取決於該機器學習系統之一輸出變數,判定一控制變數。
  18. 一種電腦程式,其包含命令,該些命令在一電腦上執行時具有以下效果:致使該電腦執行如請求項7至17中任一項所述之方法。
  19. 一種機器可讀取儲存元件,其上儲存有如請求項18所述之該電腦程式。
  20. 一種用於執行乘法運算之產品,其可藉由如請求項13至16中任一項所述之方法中之一者獲得。
TW108120879A 2018-06-19 2019-06-17 用於執行乘法運算的計算單元、方法、電腦程式、機器可讀取儲存元件和產品 TWI819005B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102018209901.4A DE102018209901A1 (de) 2018-06-19 2018-06-19 Recheneinheit, Verfahren und Computerprogramm zum Multiplizieren zumindest zweier Multiplikanden
DE102018209901.4 2018-06-19

Publications (2)

Publication Number Publication Date
TW202001547A TW202001547A (zh) 2020-01-01
TWI819005B true TWI819005B (zh) 2023-10-21

Family

ID=66770423

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108120879A TWI819005B (zh) 2018-06-19 2019-06-17 用於執行乘法運算的計算單元、方法、電腦程式、機器可讀取儲存元件和產品

Country Status (8)

Country Link
US (1) US11537361B2 (zh)
EP (1) EP3811199B1 (zh)
JP (1) JP7136937B2 (zh)
KR (1) KR20210021540A (zh)
CN (1) CN112292663B (zh)
DE (1) DE102018209901A1 (zh)
TW (1) TWI819005B (zh)
WO (1) WO2019242968A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220413804A1 (en) * 2021-06-28 2022-12-29 Micron Technology, Inc. Efficient complex multiply and accumulate

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW345645B (en) * 1997-01-13 1998-11-21 Ibm Method and apparatus for performing high-precision multiply-add calculations using independent multiply and add instructions
US20140095571A1 (en) * 2009-06-19 2014-04-03 Singular Computing Llc Processing with Compact Arithmetic Processing Element
JP6250780B1 (ja) * 2016-12-01 2017-12-20 ヴィア アライアンス セミコンダクター カンパニー リミテッド キャッシュメモリ又はニューラルネットワークユニットメモリとして動作可能なメモリアレイを有するプロセッサ

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4555768A (en) 1983-06-07 1985-11-26 Rca Corporation Digital signal processing system employing logarithms to multiply and divide
JPH0283728A (ja) * 1988-09-21 1990-03-23 Hitachi Ltd 浮動小数点乗算装置
DE4123186A1 (de) * 1990-07-13 1992-01-23 Aisuke Katayama Multiplikationseinrichtung vom typ fuer unterteilte produkte, die zum ausfuehren einer multiplikation numerischer werte mit vielen stellen bei hoher genauigkeit faehig ist
JPH0540605A (ja) * 1991-08-02 1993-02-19 Toshiba Corp 浮動小数点乗算装置
JP3950920B2 (ja) * 1994-11-17 2007-08-01 株式会社ルネサステクノロジ 積和演算器及びデータ処理装置
DE10107376A1 (de) * 2001-02-16 2002-08-29 Infineon Technologies Ag Verfahren und Vorrichtung zum modularen Multiplizieren und Rechenwerk zum modularen Multiplizieren
JP2003067182A (ja) * 2001-08-28 2003-03-07 Matsushita Electric Works Ltd 演算装置および演算方法
US8667042B2 (en) * 2010-09-24 2014-03-04 Intel Corporation Functional unit for vector integer multiply add instruction
DE102013209657A1 (de) * 2013-05-24 2014-11-27 Robert Bosch Gmbh FMA-Einheit, insbesondere zur Verwendung in einer Modellberechnungseinheit zur rein hardwarebasierten Berechnung von Funktionsmodellen
DE102013220432A1 (de) 2013-10-10 2015-04-16 Robert Bosch Gmbh Modellberechnungseinheit für einen integrierten Steuerbaustein zur Berechnung von LOLIMOT
US9798519B2 (en) * 2014-07-02 2017-10-24 Via Alliance Semiconductor Co., Ltd. Standard format intermediate result
GB201607713D0 (en) * 2016-05-03 2016-06-15 Imagination Tech Ltd Convolutional neural network
US10621486B2 (en) * 2016-08-12 2020-04-14 Beijing Deephi Intelligent Technology Co., Ltd. Method for optimizing an artificial neural network (ANN)

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW345645B (en) * 1997-01-13 1998-11-21 Ibm Method and apparatus for performing high-precision multiply-add calculations using independent multiply and add instructions
US20140095571A1 (en) * 2009-06-19 2014-04-03 Singular Computing Llc Processing with Compact Arithmetic Processing Element
JP6250780B1 (ja) * 2016-12-01 2017-12-20 ヴィア アライアンス セミコンダクター カンパニー リミテッド キャッシュメモリ又はニューラルネットワークユニットメモリとして動作可能なメモリアレイを有するプロセッサ
JP2018092561A (ja) * 2016-12-01 2018-06-14 ヴィア アライアンス セミコンダクター カンパニー リミテッド キャッシュメモリ又はニューラルネットワークユニットメモリとして動作可能なメモリアレイを有するプロセッサ

Also Published As

Publication number Publication date
EP3811199B1 (de) 2023-08-23
US20210224037A1 (en) 2021-07-22
WO2019242968A1 (de) 2019-12-26
EP3811199A1 (de) 2021-04-28
DE102018209901A1 (de) 2019-12-19
US11537361B2 (en) 2022-12-27
TW202001547A (zh) 2020-01-01
CN112292663B (zh) 2023-12-12
KR20210021540A (ko) 2021-02-26
JP7136937B2 (ja) 2022-09-13
JP2021528756A (ja) 2021-10-21
CN112292663A (zh) 2021-01-29

Similar Documents

Publication Publication Date Title
EP3474194B1 (en) Method and apparatus with neural network parameter quantization
US20210004663A1 (en) Neural network device and method of quantizing parameters of neural network
US11216721B2 (en) Method for calculating a neuron layer of a multi-layer perceptron model with simplified activation function
EP3627397B1 (en) Processing method and apparatus
KR20190062129A (ko) 컨볼루션 신경망 계산을 위한 저전력 하드웨어 가속 방법 및 시스템
US11429838B2 (en) Neural network device for neural network operation, method of operating neural network device, and application processor including the neural network device
EP3528181B1 (en) Processing method of neural network and apparatus using the processing method
CN111260020B (zh) 卷积神经网络计算的方法和装置
JP2021507439A5 (zh)
CN109800865B (zh) 神经网络生成及图像处理方法和装置、平台、电子设备
JP2022513404A (ja) トレーニング済み長短期記憶ニューラルネットワークの量子化
JP7414930B2 (ja) 情報処理装置、情報処理方法
CN112508125A (zh) 一种图像检测模型的高效全整数量化方法
US20220092399A1 (en) Area-Efficient Convolutional Block
CN113348472A (zh) 具有软内核选择的卷积神经网络
KR20190098671A (ko) 뉴럴 네트워크의 고속 처리 방법 및 그 방법을 이용한 장치
CN112651485A (zh) 识别图像的方法和设备以及训练神经网络的方法和设备
TWI819005B (zh) 用於執行乘法運算的計算單元、方法、電腦程式、機器可讀取儲存元件和產品
US20200394519A1 (en) Method for operating an artificial neural network
JP2022512211A (ja) 画像処理方法、装置、車載演算プラットフォーム、電子機器及びシステム
CN112215347A (zh) 用于确定神经网络的成对连续层之间的传递函数的方法和计算工具
CN112561050B (zh) 一种神经网络模型训练方法及装置
CN113919479B (zh) 一种提取数据特征的方法和相关装置
CN112446461A (zh) 一种神经网络模型训练方法及装置
CN114730331A (zh) 数据处理装置和数据处理方法