TWI804043B - 多輸入多輸出的累加器及其執行方法 - Google Patents

多輸入多輸出的累加器及其執行方法 Download PDF

Info

Publication number
TWI804043B
TWI804043B TW110141536A TW110141536A TWI804043B TW I804043 B TWI804043 B TW I804043B TW 110141536 A TW110141536 A TW 110141536A TW 110141536 A TW110141536 A TW 110141536A TW I804043 B TWI804043 B TW I804043B
Authority
TW
Taiwan
Prior art keywords
operand
truncated
floating
point
output
Prior art date
Application number
TW110141536A
Other languages
English (en)
Other versions
TW202319908A (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 財團法人工業技術研究院
Priority to TW110141536A priority Critical patent/TWI804043B/zh
Priority to US17/546,074 priority patent/US20230144030A1/en
Publication of TW202319908A publication Critical patent/TW202319908A/zh
Application granted granted Critical
Publication of TWI804043B publication Critical patent/TWI804043B/zh

Links

Images

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/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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • 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/485Adding; 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/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/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

Abstract

一種多輸入多輸出的累加器及其執行方法,此多輸入多輸出的累加器包括加法器電路系統,用以執行運算。上述運算包括針對第一來源運算元以及第二來源運算元進行相加,以產生第一加總運算元,又針對第一加總運算元的最後至少一個位元進行直接截斷,以產生第一截斷加總運算元,以及針對第一截斷加總運算元進行往右位移,以產生第一位移加總運算元,其中第一截斷加總運算元的往右位移的位元位數等於第一加總運算元的直接截斷的位元位數。

Description

多輸入多輸出的累加器及其執行方法
本揭露是有關於一種累加器,且特別是有關於一種多輸入多輸出的累加器及其執行方法。
一個n個位元(n-bit)的浮點數(floating-point)乘累加器所需的晶片面積、運算速度、功率損耗等遠遠超過一個n-bit的定點數(fixed-point)乘累加器,其中最大的原因是浮點數採用科學記號的表示方式。因此,不論是乘法運算或是加法運算後,浮點數乘累加器都必須進行正規化步驟(normalization)以及四捨五入步驟(rounding)。
腦浮點數格式(brain floating-point format,BF16)是一種新型態的浮點數表示。有別於半精度浮點數格式(half-precision floating-point format,FP16)以及單精度浮點數格式(single-precision floating-point format,FP32),BF16保有與FP32相當的動態範圍(dynamic range),並且在運算的過程中,因為尾數(mantissa)的7-bit以及符號位元(sign bit)的1-bit,正好與定點整數(8-bit fixed point integer,INT-8)的格式相符,因此BF16已經廣泛地利用於卷積神經網路(convolutional neural network,CNN)的應用中。
另一方面,在CNN的應用中,由於神經網路可以允許運算所帶來的些微錯誤,因此在AI晶片(AI-on-Chip)領域,不論是推論(inference)或是訓練(train)晶片,同時可支援BF16與INT8兩種格式已逐漸成為趨勢。因此,如何改善浮點數乘累加器的運算速度慢、面積大、耗能大的問題,以及如何提升定點數乘累加器的運算精度不足以及溢位(overflow)的問題,為本領域的重要議題。
有鑑於此,本揭露提供一種多輸入多輸出的累加器及其執行方法。
在本揭露的一範例實施例中,上述的多輸入多輸出的累加器包括加法器電路系統。加法器電路系統用以執行運算,此運算包括針對第一來源運算元以及第二來源運算元進行相加,以產生第一加總運算元,又針對第一加總運算元的最後至少一個位元進行直接截斷,以產生第一截斷加總運算元,以及針對第一截斷加總運算元進行往右位移,以產生第一位移加總運算元,其中第一截斷加總運算元的往右位移的位元位數等於第一加總運算元的直接截斷的位元位數。
在本揭露的一範例實施例中,上述的多輸入多輸出的累加器的執行方法包括針對第一來源運算元以及第二來源運算元進行相加,以產生第一加總運算元,又針對第一加總運算元的最後至少一個位元進行直接截斷,以產生第一截斷加總運算元,以及針對第一截斷加總運算元進行往右位移,以產生第一位移加總運算元,其中第一截斷加總運算元的往右位移的位元位數等於第一加總運算元的直接截斷的位元位數。
本揭露的部份範例實施例接下來將會配合附圖來詳細描述,以下的描述所引用的元件符號,當不同附圖出現相同的元件符號將視為相同或相似的元件。這些範例實施例只是本揭露的一部份,並未揭示所有本揭露的可實施方式。更確切的說,這些範例實施例僅為本揭露的專利申請範圍中的裝置以及方法的範例。
圖1是根據本揭露一範例實施例所繪示的加法器電路系統的示意圖。首先圖1先介紹系統中的各個構件以及配置關係,詳細功能將配合後續範例實施例的流程圖一併揭露。
請參照圖1,本範例實施例的加法器電路系統100為階層架構的樹狀累加器,並且可以是由多個加法器、多個移位器以及多個多功器所組成,然而本揭露不以此為限。以下僅繪示出其中一個階層的其中一個加法器110、移位器120以及多工器130A、130B來進行說明。加法器110可以是二輸入加法器,用以接收兩個輸入In1、In2來進行加法運算,以產生加總結果Sum。位移器120可以是一位元右移運算器,以避免下一階層的加法器會有溢位的問題。此外,為了維持靈活性,在一般樹狀累加器中,並非每兩個輸入都要進行加法運算,有些步驟僅需要將兩個輸入下移或是略過(bypass)到下一階層才做必要的累加。因此,多工器130A、可以選擇要輸出加總結果Sum_shift或是直接輸出In1_shift,多工器130B可以選擇要輸出加總結果Sum_shift或是直接輸出In2_shift。以另一觀點來說,每個階層的加法器的前端都有個多工器來選擇要輸入的運算元。
圖2是根據本揭露一範例實施例所繪示的多輸入多輸出的累加器的執行方法的流程圖,而圖2的方法流程可由圖1的加法器電路系統100來實現。
請同時參照圖1以及圖2,本範例實施例的加法器電路系統100的加法器110先針對第一來源運算元以及第二來源運算元進行相加,以產生第一加總運算元(步驟S202),再針對第一加總運算元的最後至少一個位元進行直接截斷,以產生第一截斷加總運算元(步驟S204)。之後,移位器120將針對第一截斷加總運算元進行往右位移,以產生第一位移加總運算元,其中第一截斷加總運算元的往右位移的位元位數等於第一加總運算元的直接截斷的位元位數(步驟S206)。也就是說,本範例實施例可以將加法器電路系統100實作為定點數直接截斷樹狀累加器,藉由位元的直接截斷以及位移來提升運算速度、降低功率損耗,同時可避免溢位所造成的誤差。
值得一提的是,上述的架構具有可擴充性,例如是包括一維陣列的N個乘法器,並且在N個乘法器的輸出端連接上包括(N-1)個加法器的定點數直接截斷樹狀累加器。如此一來,此擴充架構可以讓輸入以及輸出都維持浮點數的格式,來保有浮點數乘累加器的運算精確度,又同時有接近定點數乘累加器的高速率以及低功率損耗的優點。此外,本範例實施例的資料路徑是由定點數運算器所組成,因此亦同時支援定點數多輸入多輸出的乘累加器。為了方便明瞭,以下以32個乘法器以及31個加法器為範例實施例來進行說明。
圖3是根據本揭露一範例實施例所繪示的多輸入多輸出的累加器的示意圖。
請參照圖3,在本範例實施例中,假設有32個浮點數運算元I1~I32。首先,所有浮點數運算元I1~I32會從32個乘法器分別輸入至最大指數提取器310。接著,最大指數提取器310會從所有浮點數運算元I1~I32的指數部份找出最大指數Max_exp,再將其餘浮點數運算元的指數與最大指數Max_exp對齊,以使其餘浮點數的尾數向右位移,其中每個其餘浮點數的位移數即為自身指數與最大指數Max_exp的差值。
假設完成最大指數提取的尾數分別為I1_shift~I32_shift。接著,有號數轉換器320將根據浮點數運算元I1~I32各自的符號I1_sign~I32_sign,進行有號數轉換,而轉換過的正負尾數將以二補數表示,即I1_s~I32_s。接著,完成最大指數提取以及有號數轉換的尾數I1_s~I32_s將會進入到加法樹330來進行加法運算,而此加法樹330的架構將在稍後進行說明。
為了最大化多輸入多輸出的乘累加器,假設加法樹330可輸出M個加法樹結果O1~OM。在本範例實施例中,為了使得輸出結果滿足BF16的格式,絕對值轉換器350會先將加法樹結果O1~OM的符號保留,以將加法樹結果O1~OM的數值轉換成無號數結果O1_abs到OM_abs,並且將輸出加法樹結果O1~OM的符號位元O1_sign~OM_sign。
接著,將會進入到正規化步驟。在此,領導1(leading one)偵測器360先偵測出無號數結果O1_abs~OM_abs的第一個1的起始位元位置O1_LD~OM_LD,左位移器370再將無號數結果O1_abs到OM_abs向左位移至最高有效位元(most significant bit)為1,而產生正規化結果O1_shift~OM_shift。
之後,將會進入到四捨五入步驟。在此,捨入器380會將正規化結果O1_shift~OM_shift經過四捨五入,調整至目標浮點數格式的尾數位元數,而產生結果O1_Mantissa~OM_Mantissa,且四捨五入後的進位為O1_C~OM_C。
另一方面,加法樹340會將各個結果O1~OM經過的加法樹330的階層數加上Max_exp,即為加法樹結果O1~OM的指數O1_exp~OM_exp。
最後,指數更新器390會根據領導1的位置O1_LD~OM_LD、四捨五入後的進位O1_C~OM_C以及指數O1_exp~OM_exp決定各個輸出結果的指數O1_exp_f~OM_exp_f,其中O1_exp_f=O1_exp+O1_C+(O1_LD-BW),BW為O1_abs的小數位元位數。
為了保留所有的有效位數(full-precision),傳統的加法樹通常在不同階層需利用不同位元數的加法器。以32個運算元的加法樹為例,從架構上看,共可分為5個階層。第一階層用n-bit加法器,第二階層則需用(n+1)-bit加法器,第三階層則需用(n+2)-bit加法器,依此類推。以32個運算元的加法樹為例,每一階層會增加一個位元數,因此5個階層共增加5個位元數,導致架構中的關鍵路徑(critical path)變長。如此一來,傳統加法樹的架構會因為輸入位元數的增加(例如512、1024)而大幅提升晶片面積,同時因為過長的加法器,其太長的關鍵路徑導致晶片速度變慢,同時也損耗過多的功率。基此,以下將提出一種可有效解決上述問題,以實作於加法樹330的架構。
圖4是根據本揭露一範例實施例所繪示的加法樹的示意圖。
請參照圖4,在本範例實施例中,加法樹400將接收圖3的浮點數運算元I1_s~I32_s,而每一階層L都是採用相同位元數n-bit的直接截斷加法器。為了避免產生溢出,每一個n-bit的直接截斷加法器之後,可安插1-bit移位器。也就是說,每一個n-bit的直接截斷加法器的輸入端的位元數與輸出端的位元數都是n-bit,而在兩個n-bit運算元進行相加後,n-bit的直接截斷加法器會直接將相加結果的最後一位元刪除並且將刪除後的結果再往右位移一個位元。亦即,第一階層(L=1)的n-bit的直接截斷加法器的輸出,即為第二階層(L=2)的n-bit的直接截斷加法器的輸入,以此類推。如此一來,加法樹400的架構可以保證在運算階段,不會有因為溢出所產生的誤差。此外,由於每一階層的位元數相同,在加完後會將結果往右位移一個位元,並且截斷成原本的位元數,可維持每一階層L的相同位元數。為了避免加法樹中同一階層的尾數出現不同指數而無法直接相加的情況發生,即使是沒有相加的尾數往下傳送至下一階層時也會往右位移一位元,保持同一階層的指數都相同。
整體來說,浮點數運算元在進入加法樹之前,會先經過最大指數提取,將尾數進行對齊,而使所有運算元的指數部份相同,方能進入加法樹來進行相加。以五個階層且尾數為16-bit的加法樹為例,若最大指數提取是針對32個運算元,找出32個運算元的最大指數,並將其餘31個運算元的指數與最大指數對齊。最糟情況是最大指數與其餘31個運算元的指數相差超過16,且所有運算元都要相加,其餘31個運算元為了與最大指數對齊,尾數將被向右位移至原本最大有效位數超出原有的位元數,因此造成其餘31個擁有較小指數的運算元,其位移後的尾數都為0,因而造成誤差。若指數為8 bits,假設指數最大的運算元為1.0 2× {\displaystyle \times } ×2 -110,其餘31個運算元皆為: 1.111111111111111 2× {\displaystyle \times } ×2 -126= 1.999969482421875 10×2 -126。 此時正確結果應為: 1.0 10× {\displaystyle \times } ×2 -110+31×1.999969482421875 10×2 -126=1.000946030486375 10× {\displaystyle \times } ×2 -110。 但是,經過所設計的樹狀累加器,其結果為: 1.0 10× {\displaystyle \times } ×2 -110+31×0 10×2 -110。 如此一來,所造成的誤差為0.00094514,其SQNR約為60 dB。
為了更進一步地提升運算的精確度,圖5是根據本揭露一範例實施例所繪示的多輸入多輸出的累加器的示意圖。
請參照圖5,在本範例實施例中,假設有32個浮點數運算元I1~I32,則將會拆分成四組I1~I8、I9~I16、I17~I24以及I25~I32,而最大指數提取器510A~510B將會對各組進行最大指數提取,以分別提取出Max_exp_1~Max_exp_4。有關於有號數轉換器520、加法樹530、加法器540、絕對值轉換器550、領導1偵測器560、左位移器570、捨入器580以及指數更新器590的運作請參照圖3中的有號數轉換320、加法樹330、加法器340、絕對值轉換器350、領導1偵測器360、左位移器370、捨入器380以及指數更新器390,於此不再贅述。
需要說明的是,就以加法樹530的結構可以圖6是根據本揭露一範例實施例所繪示的加法樹的示意圖來實現。
請參照圖6,在加法樹600的第四階層(L=4)的加法器會遇到左右兩邊的指數不同,因此分別需要比較Max_exp_1與Max_exp_2以及Max_exp_3與Max_exp_4,並將較小指數的尾數向右位移與另一邊靠齊,並輸出Max_exp_1與Max_exp_2中較大的指數為Max_exp_5,Max_exp_3與Max_exp_4中較大的指數為Max_exp_6,到了第五階層(L=5),需比較Max_exp_5與Max_exp_6,並將較小指數的尾數向右位移,最後完成結果。此時原本的最糟情況,僅會有一組發生向右位移成0的情況,其結果為: 1.0 10× {\displaystyle \times } ×2 -110+4×0 10×2 -110+28×1.999969482421875 10× {\displaystyle \times } ×2 -110。 如此一來,所造成的誤差為0.000091465,相較於先前未進行分組的32個浮點數運算元的最大指數提取,誤差減少了九成,其SQNR大約是80.4 dB。
基此,以應用面來說,為了簡化BF16乘累加器的運算,前述的多輸入多輸出融合乘累加器可同時支援BF16與INT8格式。在架構上,可將N個BF16乘法器排成一維振列,在N個BF16乘法器的輸出端接上一個包含(N-1)個16-bit加法器的樹狀累加器。為了提升硬體速度,針對浮點數運算,在計算的過程中,每個BF16浮點數乘累加器中所需的正規化步驟以及四捨五入的步驟移除,只保留最後一個層級的加法器的正規化步驟以及四捨五入的步驟。如此一來,此樹狀多輸入多輸出融合乘累加器的輸入與輸出都可維持BF16浮點數的格式,而中間計算過程則以定點數16-bit直接截斷累加器實現。此外在定點數16-bit 直接截斷樹狀累加器中,可安插1-bit移位器,如此不僅可提升運算的精確度,同時也可避免定點直接截斷加法器產生溢位。
雖然本揭露已以範例實施例揭露如上,然其並非用以限定本揭露,任何所屬技術領域中具有通常知識者,在不脫離本揭露的精神和範圍內,當可作些許的更動與潤飾,故本揭露的保護範圍當視後附的申請專利範圍及其均等範圍所界定者為準。
110:加法器 120:移位器120 130A、130B:多工器 S202~S206:方法步驟 310、510A~510D:最大指數提取器 320、520:有號數轉換器 330、530、400、600:加法樹 340、540:加法器 350、550:絕對值轉換器 360、560:領導1偵測器 370、570:左位移器 380、580:捨入器 390、590:指數更新器 L:加法樹的階層
圖1是根據本揭露一範例實施例所繪示的加法器電路系統的示意圖。 圖2是根據本揭露一範例實施例所繪示的多輸入多輸出的累加器的執行方法的流程圖。 圖3是根據本揭露一範例實施例所繪示的多輸入多輸出的累加器的示意圖。 圖4是根據本揭露一範例實施例所繪示的加法樹的示意圖。 圖5是根據本揭露一範例實施例所繪示的多輸入多輸出的累加器的示意圖。 圖6是根據本揭露一範例實施例所繪示的加法樹的示意圖。
S202~S206:方法步驟

Claims (16)

  1. 一種多輸入多輸出的累加器,包括:加法器電路系統,用以執行運算,該運算包括:針對第一來源運算元以及第二來源運算元進行相加,以產生第一加總運算元;針對該第一加總運算元的最後至少一個位元進行直接截斷,以產生第一截斷加總運算元;以及針對該第一截斷加總運算元進行往右位移,以產生第一位移加總運算元,其中該第一截斷加總運算元的往右位移的位元位數等於該第一加總運算元的直接截斷的位元位數。
  2. 如請求項1所述的多輸入多輸出的累加器,其中該加法器電路系統為樹狀累加器。
  3. 如請求項2所述的多輸入多輸出的累加器,其中該樹狀累加器包括多個加法器,其中各所述加法器為相同位元數的直接截斷加法器。
  4. 如請求項3所述的多輸入多輸出的累加器,其中該樹狀累加器更包括多個移位器。
  5. 如請求項4所述的多輸入多輸出的累加器,其中所述加法器包括第一加法器,所述移位器包括第一移位器,其中該第一加法器直接截斷該第一加總運算元的最後一個位元,以產生該第一截斷加總運算元,其中該第一移位器針對該第一截斷加總運算元進行往右位移一個位元位數,以產生該第一位移加總運算元。
  6. 如請求項2所述的多輸入多輸出的累加器,更包括:N個乘法器,其中各所述乘法器的輸出端連接於該樹狀累加器。
  7. 如請求項1所述的多輸入多輸出的累加器,更包括:至少一最大指數提取器,用以:接收多個浮點數運算元;自所述浮點數運算元中,判斷具有最大指數的第一浮點數運算元;使所述浮點數運算元中的各個剩餘浮點數運算元的指數與該第一浮點數運算元的該最大指數靠齊,以使各所述剩餘浮點數運算元的尾數向右位移,據以產生多個最大指數提取尾數;以及根據所述最大指數提取尾數,計算出該第一來源運算元以及該第二來源運算元。
  8. 如請求項7所述的多輸入多輸出的累加器,其中各所述剩餘浮點數運算元的該尾數的向右位移數分別為該剩餘浮點數運算元的指數與該最大指數的差值。
  9. 如請求項7所述的多輸入多輸出的累加器,其中所述最大指數提取器的數量為多個時,各所述最大指數提取器所接收的所述浮點數運算元已經過分組。
  10. 如請求項7所述的多輸入多輸出的累加器,更包括: 有號數轉換器,用以:根據各所述浮點數運算元的符號,進行有號數轉換,以分別產生有號數轉換尾數,其中該第一來源運算元以及該第二來源運算元為所述有號數轉換尾數的其中兩者。
  11. 如請求項1所述的多輸入多輸出的累加器,更包括:絕對值轉換器,用以:保留該加法器電路系統的多個輸出結果的多個符號,以轉換各所述輸出結果為無號數,進而產生多個無號數結果;以及輸出所述符號。
  12. 如請求項11所述的多輸入多輸出的累加器,更包括:領導1偵測器,用以偵測各所述無號數結果的第一個1的起始位元位置;以及左移位器,用以針對各所述無號數結果向左位移至最高有效位元為1,以產生正規化結果。
  13. 如請求項12述的多輸入多輸出的累加器,更包括:捨入器,用以針對各所述正規化結果進行四捨五入,以調整至目標浮點數格式的尾數位元數。
  14. 如請求項1所述的多輸入多輸出的累加器,其中該加法器電路系統的輸入以及輸出皆為浮點數格式。
  15. 如請求項1所述的多輸入多輸出的累加器,其中該加法器電路系統的輸入以及輸出皆為定點數格式。
  16. 一種由多輸入多輸出的累加器執行的方法,包括:針對第一來源運算元以及第二來源運算元進行相加,以產生第一加總運算元;針對該第一加總運算元的最後至少一個位元進行直接截斷,以產生第一截斷加總運算元;以及針對該第一截斷加總運算元進行往右位移,以產生第一位移加總運算元,其中該第一截斷加總運算元的往右位移的位元位數等於該第一加總運算元的直接截斷的位元位數。
TW110141536A 2021-11-08 2021-11-08 多輸入多輸出的累加器及其執行方法 TWI804043B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW110141536A TWI804043B (zh) 2021-11-08 2021-11-08 多輸入多輸出的累加器及其執行方法
US17/546,074 US20230144030A1 (en) 2021-11-08 2021-12-09 Multi-input multi-output adder and operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW110141536A TWI804043B (zh) 2021-11-08 2021-11-08 多輸入多輸出的累加器及其執行方法

Publications (2)

Publication Number Publication Date
TW202319908A TW202319908A (zh) 2023-05-16
TWI804043B true TWI804043B (zh) 2023-06-01

Family

ID=86229970

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110141536A TWI804043B (zh) 2021-11-08 2021-11-08 多輸入多輸出的累加器及其執行方法

Country Status (2)

Country Link
US (1) US20230144030A1 (zh)
TW (1) TWI804043B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI604380B (zh) * 2013-03-15 2017-11-01 密碼研究公司 非對稱遮罩乘法
CN111045728A (zh) * 2018-10-12 2020-04-21 上海寒武纪信息科技有限公司 一种计算装置及相关产品
EP3474132B1 (en) * 2017-10-17 2021-01-06 Fujitsu Limited Arithmetic processor, arithmetic processing apparatus including arithmetic processor, information processing apparatus including arithmetic processing apparatus, and control method for arithmetic processing apparatus
US20210072954A1 (en) * 2019-09-10 2021-03-11 Cornami, Inc. Reconfigurable arithmetic engine circuit

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI604380B (zh) * 2013-03-15 2017-11-01 密碼研究公司 非對稱遮罩乘法
EP3474132B1 (en) * 2017-10-17 2021-01-06 Fujitsu Limited Arithmetic processor, arithmetic processing apparatus including arithmetic processor, information processing apparatus including arithmetic processing apparatus, and control method for arithmetic processing apparatus
CN111045728A (zh) * 2018-10-12 2020-04-21 上海寒武纪信息科技有限公司 一种计算装置及相关产品
US20210072954A1 (en) * 2019-09-10 2021-03-11 Cornami, Inc. Reconfigurable arithmetic engine circuit

Also Published As

Publication number Publication date
TW202319908A (zh) 2023-05-16
US20230144030A1 (en) 2023-05-11

Similar Documents

Publication Publication Date Title
KR102430645B1 (ko) 독립형 부동소수점 변환장치
WO2021147395A1 (zh) 算数逻辑单元、浮点数乘法计算的方法及设备
US9519460B1 (en) Universal single instruction multiple data multiplier and wide accumulator unit
US9608662B2 (en) Apparatus and method for converting floating-point operand into a value having a different format
JPH02196328A (ja) 浮動小数点演算装置
US11106431B2 (en) Apparatus and method of fast floating-point adder tree for neural networks
CN106951211A (zh) 一种可重构定浮点通用乘法器
WO2022170809A1 (zh) 一种适用于多精度计算的可重构浮点乘加运算单元及方法
US6988119B2 (en) Fast single precision floating point accumulator using base 32 system
CN116400883A (zh) 一种可切换精度的浮点乘加器
WO2022170811A1 (zh) 一种适用于混合精度神经网络的定点乘加运算单元及方法
KR20170138143A (ko) 단일 곱셈-누산 방법 및 장치
TWI804043B (zh) 多輸入多輸出的累加器及其執行方法
CN117111881A (zh) 支持多输入多格式的混合精度乘加运算器
US20200183650A1 (en) Radix-1000 decimal floating-point numbers and arithmetic units using a skewed representation of the fraction
JP2022162183A (ja) 演算装置および演算方法
KR19990074385A (ko) 부동소수점 곱셈기에서 반올림과 덧셈을 동시에 수행하는 장치및 방법
CN114077419A (zh) 用于处理浮点数的方法和系统
CN110069240A (zh) 定点与浮点数据计算方法及装置
CN113377334B (zh) 一种浮点数据处理方法、装置及存储介质
WO2022068327A1 (zh) 运算单元、浮点数计算的方法、装置、芯片和计算设备
WO2023078364A1 (zh) 矩阵乘法的运算方法及装置
US11455142B2 (en) Ultra-low precision floating-point fused multiply-accumulate unit
Kumar et al. Simulation And Synthesis Of 32-Bit Multiplier Using Configurable Devices
Shaikh et al. IEEE 754-Based Single-and Double-Precision Floating-Point Multiplier Analysis