TW201931220A - 集成電路芯片裝置及相關產品 - Google Patents

集成電路芯片裝置及相關產品 Download PDF

Info

Publication number
TW201931220A
TW201931220A TW107144034A TW107144034A TW201931220A TW 201931220 A TW201931220 A TW 201931220A TW 107144034 A TW107144034 A TW 107144034A TW 107144034 A TW107144034 A TW 107144034A TW 201931220 A TW201931220 A TW 201931220A
Authority
TW
Taiwan
Prior art keywords
data
processing circuit
circuit
basic
data block
Prior art date
Application number
TW107144034A
Other languages
English (en)
Other versions
TWI768159B (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 TW201931220A publication Critical patent/TW201931220A/zh
Application granted granted Critical
Publication of TWI768159B publication Critical patent/TWI768159B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/061Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using biological neurons, e.g. biological neurons connected to an integrated circuit
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Theoretical Computer Science (AREA)
  • Molecular Biology (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Advance Control (AREA)
  • Image Processing (AREA)
  • Logic Circuits (AREA)
  • Container Filling Or Packaging Operations (AREA)
  • Complex Calculations (AREA)

Abstract

本披露提供一種集成電路芯片裝置及相關產品,所述集成電路芯片裝置包括:主處理電路以及多個基礎處理電路;所述主處理電路或多個基礎處理電路中至少一個基礎處理電路包括:數據類型運算電路,所述數據類型運算電路,用於執行浮點類型數據以及定點類型數據之間的轉換。本披露提供的技術方案具有計算量小,功耗低的優點。

Description

集成電路芯片裝置及相關產品
本披露涉及神經網絡領域,尤其涉及一種集成電路芯片裝置及相關產品。
人工神經網絡(Artificial Neural Network, ANN ),是20世紀80 年代以來人工智能領域興起的研究熱點。它從信息處理角度對人腦神經元網絡進行抽象, 建立某種簡單模型,按不同的連接方式組成不同的網絡。在工程與學術界也常直接簡稱為神經網絡或類神經網絡。神經網絡是一種運算模型,由大量的節點(或稱神經元)之間相互聯接構成。現有的神經網絡的運算基於CPU(Central Processing Unit,中央處理器)或GPU(Graphics Processing Unit,圖形處理器)來實現神經網絡的運算,此種運算的計算量大,功耗高。
本披露實施例提供了一種集成電路芯片裝置及相關產品,可提升計算裝置的處理速度,提高效率。
第一方面,提供一種集成電路芯片裝置,所述集成電路芯片裝置包括:主處理電路、k個分支電路以及k組基礎處理電路,所述主處理電路與所述k個分支電路分別連接,k個分支電路中每個分支電路對應k組基礎處理電路中的一組基礎處理電路,所述一組基礎處理電路包括至少一個基礎處理電路;
所述分支電路包括:數據類型運算電路,用於執行浮點類型數據與定點類型數據之間的轉換;
所述主處理電路,用於執行神經網絡運算中的各個連續的運算以及和與其相連的所述k個分支電路傳輸數據;
所述k個分支電路,用於在主處理電路與k組基礎處理電路之間轉發所述傳輸數據,依據所述傳輸數據的運算控制是否啓動所述數據類型運算電路對所述傳輸數據的類型執行轉換;
所述k個基礎處理電路,用於依據所述傳輸數據或轉換後的傳輸數據以並行方式執行神經網絡中的運算,並將運算結果通過與所述主處理電路連接的分支電路傳輸給所述主處理電路。
第二方面,提供一種神經網絡運算裝置,所述神經網絡運算裝置包括一個或多個第一方面提供的集成電路芯片裝置。
第三方面,提供一種組合處理裝置,所述組合處理裝置包括:第二方面提供的神經網絡運算裝置、通用互聯介面和通用處理裝置;
所述神經網絡運算裝置通過所述通用互聯介面與所述通用處理裝置連接。
第四方面,提供一種芯片,所述芯片集成第一方面的裝置、第二方面的裝置或第三方面的裝置。
第五方面,提供一種電子設備,所述電子設備包括第四方面的芯片。
第六方面,提供一種神經網絡的運算方法,所述方法應用在集成電路芯片裝置內,所述集成電路芯片裝置包括:第一方面所述的集成電路芯片裝置,所述集成電路芯片裝置用於執行神經網絡的運算。
可以看出,通過本披露實施例,提供數據轉換運算電路將數據塊的類型進行轉換後運算,節省了傳輸資源以及計算資源,所以其具有功耗低,計算量小的優點。
為了使本技術領域的人員更好地理解本披露方案,下面將結合本披露實施例中的圖式,對本披露實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本披露一部分實施例,而不是全部的實施例。基於本披露中的實施例,所屬技術領域中具有通常知識者在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬於本披露保護的範圍。
在第一方面提供的裝置中,所述主處理電路,用於獲取待計算的數據塊以及運算指令,依據該運算指令對所述待計算的數據塊劃分成分發數據塊以及廣播數據塊;對所述分發數據塊進行拆分處理得到多個基本數據塊,將所述多個基本數據塊分發至與其連接的所述k個分支電路,將所述廣播數據塊廣播至與其連接的所述k個分支電路;
所述k個分支電路,用於接收基本數據塊以及廣播數據塊,啓動數據類型運算電路將該基本數據塊以及廣播數據塊轉換成定點數據類型;將基本數據塊以及廣播數據塊以定點數據類型轉發至k組基礎處理電路;
所述基礎處理電路,用於對所述基本數據塊與所述廣播數據塊以定點數據類型執行內積運算得到運算結果,將所述運算結果發送至所述k個分支電路;
所述k個分支電路,用於將所述運算結果轉換成浮點類型的運算結果,將浮點類型的運算結果發送至主處理電路;
所述主處理電路,用於對所述浮點類型的運算結果處理得到所述待計算的數據塊以及運算指令的指令結果。
在第一方面提供的裝置中,所述主處理電路,具體用於將所述廣播數據塊通過一次廣播至所述k個分支電路。
在第一方面提供的裝置中,所述主處理電路,具體用於將所述廣播數據塊分成多個部分廣播數據塊,將所述多個部分廣播數據塊通過多次廣播至所述K個分支電路。
在第一方面提供的裝置中,所述基礎處理電路,具體用於將所述部分廣播數據塊與所述基本數據塊以定點類型執行一次內積處理後得到內積處理結果,將所述內積處理結果累加得到部分運算結果,將所述部分運算結果發送至所述k個分支電路,
所述k個分支電路,用於將所述部分運算結果轉換成浮點類型數據發送至所述主處理電路。
在第一方面提供的裝置中,所述基礎處理電路,具體用於復用n次該部分廣播數據塊以定點數據類型執行該部分廣播數據塊與該n個基本數據塊內積運算得到定點數據類型的n個部分處理結果,將定點數據類型的n個部分處理結果分別累加後得到定點類型的n個部分運算結果,將所述定點類型的n個部分運算結果發送至分支電路;
所述分支電路,用於將所述定點類型的n個部分運算結果轉換成浮點類型的n個部分運算結果,將浮點類型的n個部分運算結構發送至主處理電路,所述n為大於等於2的整數。
在第一方面提供的裝置中,所述主處理電路包括:主寄存器或主片上緩存電路;
或所述分支電路包括:基本寄存器或基本片上緩存電路;
或所述基礎處理電路包括:基本寄存器或基本片上緩存電路。
在第一方面提供的裝置中,所述主處理電路包括:向量運算器電路、算數邏輯單元電路、累加器電路、矩陣轉置電路、直接內存存取電路、數據類型運算電路或數據重排電路中的一種或任意組合。
在第一方面提供的裝置中,所述數據為:向量、矩陣、三維數據塊、四維數據塊以及n維數據塊中一種或任意組合。
在第一方面提供的裝置中,如所述運算指令為乘法指令,所述主處理電路確定乘數數據塊為廣播數據塊,被乘數數據塊為分發數據塊;
如所述運算指令為卷積指令,所述主處理電路確定輸入數據塊為廣播數據塊,卷積核為分發數據塊。
在第四方面提供的方法中,所述神經網絡的運算包括:卷積運算、矩陣乘矩陣運算、矩陣乘向量運算、偏執運算、全連接運算、GEMM運算、GEMV運算、激活運算中的一種或任意組合。
參閱圖1a,圖1a為一種集成電路芯片裝置的結構示意圖,如圖1a所示,該芯片裝置包括:主處理電路、基本處理電路和分支處理電路。其中,具體的,集成電路芯片裝置包括:主處理電路、k個分支電路(如圖1a所示,k=4,當然在實際應用中也可以為其他數值,例如8、16等等數值)以及k組基礎處理電路,所述主處理電路與所述k個分支電路分別連接,k個分支電路中每個分支電路對應k組基礎處理電路中的一組基礎處理電路,所述一組基礎處理電路包括至少一個基礎處理電路;所述分支電路包括:數據類型運算電路,用於執行浮點類型數據與定點類型數據之間的轉換;所述主處理電路,用於執行神經網絡運算中的各個連續的運算以及和與其相連的所述k個分支電路傳輸數據;所述k個分支電路,用於在主處理電路與k組基礎處理電路之間轉發所述傳輸數據,依據所述傳輸數據的運算控制是否啓動所述數據類型運算電路對所述傳輸數據的類型執行轉換;所述k個基礎處理電路,用於依據所述傳輸數據或轉換後的傳輸數據以並行方式執行神經網絡中的運算,並將運算結果通過與所述主處理電路連接的分支電路傳輸給所述主處理電路
主處理電路可以包括寄存器和/或片上緩存電路,該主處理電路還可以包括:控制電路、向量運算器電路、ALU(arithmetic and logic unit,算數邏輯單元)電路、累加器電路、DMA(Direct Memory Access,直接內存存取)電路等電路,當然在實際應用中,上述主處理電路還可以添加,轉換電路(例如矩陣轉置電路)、數據重排電路或激活電路等等其他的電路;
可選的,主處理電路可以包括:數據類型轉換運算電路,數據類型轉換運算電路可以用於將接收或發送的數據從浮點類型數據轉換成定點類型數據,當然在實際應用中,也可以將定點類型數據轉換成浮點類型數據。本發明並不限制上述數據類型轉換運算電路的具體形式。
主處理電路還包括數據發送電路、數據接收電路或介面,該數據發送電路可以集成數據分發電路以及數據廣播電路,當然在實際應用中,數據分發電路以及數據廣播電路也可以分別設置;在實際應用中上述數據發送電路以及數據接收電路也可以集成在一起形成數據收發電路。對於廣播數據,即需要發送給每個基礎處理電路的數據。對於分發數據,即需要有選擇的發送給部分基礎處理電路的數據,具體的選擇方式可以由主處理電路依據負載以及計算方式進行具體的確定。對於廣播發送方式,即將廣播數據以廣播形式發送至每個基礎處理電路。(在實際應用中,通過一次廣播的方式將廣播數據發送至每個基礎處理電路,也可以通過多次廣播的方式將廣播數據發送至每個基礎處理電路,本申請具體實施方式並不限制上述廣播的次數),對於分發發送方式,即將分發數據有選擇的發送給部分基礎處理電路。
在實現分發數據時,主處理電路的控制電路向部分或者全部基礎處理電路傳輸數據(該數據可以相同,也可以不同,具體的,如果採用分發的方式發送數據,各個接收數據的基礎處理電路收到的數據可以不同,當然也可以有部分基礎處理電路收到的數據相同;
具體地,廣播數據時,主處理電路的控制電路向部分或者全部基礎處理電路傳輸數據,各個接收數據的基礎處理電路可以收到相同的數據。
可選的,上述主處理電路的向量運算器電路可以執行向量運算,包括但不限於:兩個向量加減乘除,向量與常數加、減、乘、除運算,或者對向量中的每個元素執行任意運算。其中,連續的運算具體可以為,向量與常數加、減、乘、除運算、激活運算、累加運算等等。
每個基礎處理電路可以包括基礎寄存器和/或基礎片上緩存電路;每個基礎處理電路還可以包括:內積運算器電路、向量運算器電路、累加器電路等中一個或任意組合。上述內積運算器電路、向量運算器電路、累加器電路都可以是集成電路,上述內積運算器電路、向量運算器電路、累加器電路也可以為單獨設置的電路。
該芯片裝置可選的還可以包括一個或多個分支處理電路,如具有分支處理電路時,其中主處理電路與分支處理電路連接,該分支處理電路與基本處理電路連接,該基本處理電路的內積運算器電路用於執行數據塊之間的內積運算,該主處理電路的控制電路控制數據接收電路或數據發送電路收發外部數據,以及通過控制電路控制數據發送電路將外部數據分發至分支處理電路,該分支處理電路用於收發主處理電路或基本處理電路的數據。如圖1a所示的結構適合複雜數據的計算,因為對於主處理電路來說,其連接的單元的數量有限,所以需要在主處理電路與基本處理電路之間添加分支處理電路以實現更多的基本處理電路的接入,從而實現對複雜數據塊的計算。分支處理電路和基礎處理電路的連接結構可以是任意的,不局限在圖1a的H型結構。可選的,主處理電路到基礎處理電路是廣播或分發的結構,基礎處理電路到主處理電路是收集(gather)的結構。廣播,分發和收集的定義如下,對於分發或廣播結構,此時的基礎處理電路的數量大於主處理電路,即1個主處理電路對應多個基礎處理電路,即從主處理電路到多個基礎處理電路為廣播或分發的結構,反之,從多個基礎處理電路到主處理電路可以為收集結構。
基礎處理電路,接收主處理電路分發或者廣播的數據保存到基礎處理電路的片上緩存中,可以進行運算產生結果,可以向主處理電路發送數據。
基礎處理電路中所涉及到的數據可以是任意數據類型的數據,可以是任意位寬的浮點數表示的數據也可以是任意位寬的定點數表示的數據;涉及到的所有運算電路和存儲電路都可以是能夠處理的任意數據類型的運算電路和存儲電路,可以是任意位寬的浮點數的運算電路和存儲電路也可以是任意位寬的定點數的運算電路和存儲電路。
可選的,每個基礎處理電路均可以包括數據類型轉換運算電路,也可以在部分基礎處理電路配置數據類型轉換運算電路;數據類型轉換運算電路可以用於將接收或發送的數據從浮點類型數據轉換成定點類型數據,也可以將定點類型數據轉換成浮點類型數據。本發明並不限制上述數據類型轉換運算電路的具體形式。
可選的,該基礎處理電路的向量運算器電路可以對數據類型轉換後的兩個向量執行的向量運算,當然在實際應用中,基礎處理電路的內積運算器電路可以對數據類型轉換後的兩個向量執行內積運算,累加器電路也可以對內積運算的結果進行累加。
在一種可選方案中,兩個向量可以存放在片上緩存和/或寄存器中,基礎處理電路可以根據實際計算的需要提取兩個向量執行運算。該運算包括但不限於:內積運算、乘法運算、加法運算或其他的運算。
在一種可選方案中,內積運算的結果可以累加到片上緩存和/或寄存器上;其可選方案的優點是,減少了基礎處理電路和主處理電路之間的數據傳輸量,提高了運算效率,降低了數據傳輸功耗。
在一種可選方案中,內積運算的結果不進行累加,直接作為結果傳輸;此技術方案的優點是,減少了基礎處理電路內部的運算量,提高基礎處理電路的運算效率。
在一種可選方案中,每個基礎處理電路可以執行多組兩個向量的內積運算,也可以對多組內積運算的結果分別進行累加;
在一種可選方案中,多組的兩個向量數據可以存放在片上緩存和/或寄存器中;
在一種可選方案中,多組內積運算的結果可以分別累加到片上緩存和/或寄存器中;
在一種可選方案中,各組內積運算的結果可以不進行累加,直接作為結果傳輸;
在一種可選方案中,每個基礎處理電路可以執行同一個向量與多個向量分別進行內積運算的操作(「一對多」內積,即多組內積里每組的兩個向量中有一個向量是共享的),並將每個向量對應的內積結果分別進行累加。此技術方案可以實現同一套權值對不同的輸入數據進行多次計算,增加了數據復用,減少基礎處理電路內部數據的數據傳輸量,提高計算效率,降低功耗。
具體地,計算內積使用的數據中,各組共享的向量和每組的另一個向量(即每組之間不同的那個向量)的數據來源可以不同:
在一種可選方案中,在計算內積時,各組共享的向量來自主處理電路或者分支處理電路的廣播或者分發;
在一種可選方案中,在計算內積時,各組共享的向量來自片上緩存;
在一種可選方案中,在計算內積時,各組共享的向量來自寄存器;
在一種可選方案中,在計算內積時,每組的另一個非共享向量來自主處理電路或者分支處理電路的廣播或者分發;
在一種可選方案中,在計算內積時,每組的另一個非共享向量來自從片上緩存;
在一種可選方案中,在計算內積時,每組的另一個非共享向量來自寄存器;
在一種可選方案中,在進行多組的內積運算時,每組共享的向量在基礎處理電路的片上緩存和/寄存器中保留任意份數;
在一種可選方案中,共享向量可以對應每組內積各保留一份;
在一種可選方案中,共享向量可以只保留一份;
具體地,多組內積運算的結果可以分別累加到片上緩存和/或寄存器中;
具體地,各組內積運算的結果可以不進行累加,直接作為結果傳輸;
參閱圖1a所示的結構,其包含一主處理電路(可以執行向量操作),多基礎處理電路(可以執行內積操作)。這樣組合的好處是:裝置不僅能使用基礎處理電路執行矩陣和向量乘法運算,也能使用主處理電路執行其他任意的向量運算,使裝置在有限的硬件電路的配置下,能夠更快的完成更多的運算,減少了與裝置外部進行數據傳輸的次數,提高了計算效率,降低了功耗。另外,本芯片在基礎處理電路和/或主處理電路均可以設置數據類型轉換運算電路,這樣在進行神經網絡計算時能夠將浮點類型數據轉換成定點類型數據,也可以將定點類型數據轉換成浮點類型數據,並且本芯片可以依據各個電路(主要是主處理電路和基礎處理電路)的運算量(即負載量)動態的分配由那個電路將數據類型進行轉換,這樣能夠減少數據計算的複雜程式,降低功耗,並且動態的分配數據類型的轉換能夠實現不影響芯片的計算效率。該分配的方式包括但不限於:負載均衡、負載最小值分配等等方式。
參閱圖1b所示的裝置,圖1b所示的裝置為分支處理電路單獨連接基礎處理電路的計算裝置,如圖1b所示的裝置,其包括:主處理電路以及N個基礎處理電路,其中,主處理電路(具體的結構如圖1c所示)與N個基礎處理電路可以直接或間接連接,如為間接連接的方式時 ,一種可選的方案如圖1a所示可以包括N/4個分支處理電路,每個分支處理電路分別連接4個基礎處理電路,對於主處理電路以及N個基礎處理電路分別包含的電路可以參見上述如圖1a所示的描述,這裡不再贅述,這裡需要說明的是,上述基礎處理電路還可以設置在分支處理電路內,另外,每個分支處理電路連接基礎處理電路的數量也可以不局限於4個,廠家可以根據實際需要進行配置。該上述主處理電路和/或N個基礎處理電路均可以包括數據類型轉換運算電路,具體的,可以是主處理電路包括數據類型運算電路,也可以是N個基礎處理電路或其中的一部分包括數據類型轉換電路,也可以是主處理電路和N個基礎處理電路或其中的一部分均包括。上述主處理電路可以根據神經網絡計算指令動態的分配數據類型轉換步驟的操作實體,具體的,主處理電路可以根據自身的負載確定是否對接收到的數據執行數據類型轉換步驟,具體的,可以將負載的值設置多個區間,每個區間對應分配數據類型轉換步驟的執行主體,例如,以3個區間為例,區間1的負載值較低,可以由主處理電路單獨執行數據類型轉換步驟,區間2負載值位於區間1以及區間3之間,可以由主處理電路或N個基礎處理電路共同執行數據類型轉換步驟,區間3負載值較高,可以由N個基礎處理電路執行數據類型轉換步驟。對此,可以以明示的方式來執行,例如主處理電路可以配置一個特殊指示或指令,當基礎處理電路接收到該特殊指示或指令時 ,確定執行數據類型轉換步驟,如基礎處理電路未接收到特殊指示或指令時,確定不執行數據類型轉換步驟。又如,可以以暗示的方式來執行,例如,基礎處理電路接收到數據類型為浮點類型的數據且確定需要執行內積運算時, 將該數據類型轉換成定點類型的數據。
下面提供一種採用如圖1a所示的裝置實現計算的方法,該計算的方法具體可以為神經網絡的計算方式,例如神經網絡的正向運算,神經網絡的訓練,在實際應用中,正向運算依據不同的輸入數據可以執行矩陣乘矩陣、卷積運算、激活運算、變換運算等等運算,上述運算均可以採用如圖1a所示的裝置實現。
主處理電路的數據轉換運算電路先對數據的類型進行轉換然後由控制電路傳輸給基礎處理電路運算,例如,主處理電路的數據轉換運算電路可以將浮點數轉換成位寬更低的定點數再傳輸給基礎處理電路,其優點是可以減少傳輸數據的位寬,減少傳輸的總比特數量,基礎處理電路執行地位寬定點運算的效率也更高,功耗更低。
如基礎處理電路接收到的數據為浮點數據,那麼基礎處理電路可以收到數據後由數據轉換運算電路先進行數據類型轉化然後再進行計算,例如,基礎處理電路收到主處理電路傳輸過來的浮點數,數據轉換運算電路然後轉換為定點數,然後基礎處理電路的內積運算器電路、向量運算器電路或累加器電路進行運算,提高運算效率,降低功耗。
基礎處理電路計算出結果之後可以先進行數據類型轉換然後再傳輸給主處理電路,例如,基礎處理電路計算出的浮點數運算結果可以先轉換為低位寬的定點數然後再傳輸給主處理電路,其好處是降低了傳輸過程的數據位寬,效率更高,而且節約了功耗。
主處理電路將待計算的數據傳輸到全部或者一部分基礎處理電路上;以矩陣乘以向量計算為例,主處理電路的控制電路可以將矩陣數據拆分每列作為一個基礎數據,例如m*n矩陣,可以拆分成n個m行的向量,主處理電路的控制電路將拆分後的n個m行的向量分發給多個基礎處理電路。對於向量,主處理電路的控制電路可以將向量整體廣播給每個基礎處理電路。如果m的值比較大,那麼控制電路可以先將m*n矩陣拆分成x*n個向量,以x=2為例,具體的可以拆分成,2n個向量,每個向量包含m/2行,即將n個m行的向量中每個向量均分成2個向量,以第一行為例,如n個m行的向量的第一個向量為1000行,那麼均分成2個向量可以為,將前500行組成第一向量,將後500行組成第二向量,控制電路通過2個廣播將2個向量廣播給多個基礎處理電路。
所述數據傳輸的方式可以是廣播或者分發,或者其他任何可能的傳輸方式;
基礎處理電路接收到數據後,執行運算,得到運算結果;
基礎處理電路將運算結果傳輸回主處理電路;
所述運算結果可以是中間運算結果,也可以是最終運算結果。
使用如圖1a所示裝置完成矩陣乘向量的運算;
(矩陣乘向量可以是矩陣中的每一行分別與向量進行內積運算,並將這些結果按對應行的順序擺放成一個向量。)
下面描述計算尺寸是M行L列的矩陣S和長度是L的向量P的乘法的運算,如下圖2a所示,(矩陣S中的每一行與向量P長度相同,他們中的數據按位置一一對應)所述神經網絡計算裝置擁有K個基礎處理電路:
參閱圖2,圖2提供了了一種矩陣乘向量的實現方法,具體可以包括:
步驟S201,主處理電路的數據轉換運算電路將矩陣S中的每一行數據轉換成定點類型的數據,主處理電路的控制電路分發到K個基礎處理電路中的某一個上,基礎處理電路將接收到的分發數據保存在基礎處理電路的片上緩存和/或寄存器中;
在一種可選方案中,如果矩陣S的行數M<=K則,主處理電路的控制電路給K個基礎處理電路分別分發S矩陣的一行;
在一種可選方案中,如果矩陣S的行數M>K,則主處理電路的控制電路給每個基礎處理電路分別分發S矩陣中一行或多行的數據。
分發到第i個基礎處理電路的S中的行的集合為Ai,共有Mi個行,如圖2c表示第i個基礎處理電路上將要執行的計算。
在一種可選方案中,在每個基礎處理電路中,例如第i個基礎處理電路中,可以將接收到的分發數據例如矩陣Ai保存在第i個基礎處理電路的寄存器和/或片上緩存中;優點是減少了之後的分發數據的數據傳輸量,提高了計算效率,降低了功耗。
步驟S202,主處理電路的數據類型運算電路將向量P轉換成定點類型的數據,主處理電路的控制電路將定點類型的向量P中各部分以廣播的方式傳輸給K個基礎處理電路;
在一種可選方案中,主處理電路的控制電路可以將向量P中各部分只廣播一次到各個基礎處理電路的寄存器或者片上緩存中,第i個基礎處理電路對這一次得到的向量P的數據進行充分地復用,完成對應與矩陣Ai中每一行的內積運算。優點是,減少從主處理電路到基礎處理電路的向量P的重復傳輸的數據傳輸量,提高執行效率,降低傳輸功耗。
在一種可選方案中,主處理電路的控制電路可以將向量P中各部分多次廣播到各個基礎處理電路的寄存器或者片上緩存中,第i個基礎處理電路對每次得到的向量P的數據不進行復用,分次完成對應於矩陣Ai中的每一行的內積運算;優點是,減少基礎處理電路內部的單次傳輸的向量P的數據傳輸量,並可以降低基礎處理電路緩存和/或寄存器的容量,提高執行效率,降低傳輸功耗,降低成本。
在一種可選方案中,主處理電路的控制電路可以將向量P中各部分多次廣播到各個基礎處理電路的寄存器或者片上緩存中,第i個基礎處理電路對每次得到的向量P的數據進行部分復用,完成對應於矩陣Ai中的每一行的內積運算;優點是,減少從主處理電路到基礎處理電路的數據傳輸量,也減少基礎處理電路內部的數據傳輸量,提高執行效率,降低傳輸功耗。
步驟S203,K個基礎處理電路的內積運算器電路計算矩陣S和向量P的數據的內積,例如第i個基礎處理電路,計算矩陣Ai的數據和向量P的數據的內積;
步驟S204,K個基礎處理電路的累加器電路將內積運算的結果進行累加得到累加結果,將累加結果以定點類型形式傳輸回主處理電路。
在一種可選方案中,可以將每次基礎處理電路執行內積運算得到的部分和(部分和即累加結果的一部分,例如累加結果為:F1*G1+ F2*G2+ F3*G3+ F4*G4+ F5*G5,那麼部分和可以為:F1*G1+ F2*G2+ F3*G3的值)傳輸回主處理電路進行累加;優點是,減少了基礎處理電路內部的運算量,提高基礎處理電路的運算效率。
在一種可選方案中,也可以將每次基礎處理電路執行的內積運算得到的部分和保存在基礎處理電路的寄存器和/或片上緩存中,累加結束之後傳輸回主處理電路;優點是,減少了基礎處理電路和主處理電路之間的數據傳輸量,提高了運算效率,降低了數據傳輸功耗。
在一種可選方案中,也可以將每次基礎處理電路執行的內積運算得到的部分和在部分情況下保存在基礎處理電路的寄存器和/或片上緩存中進行累加,部分情況下傳輸到主處理電路進行累加,累加結束之後傳輸回主處理電路;優點是,減少了基礎處理電路和主處理電路之間的數據傳輸量,提高了運算效率,降低了數據傳輸功耗,減少了基礎處理電路內部的運算量,提高基礎處理電路的運算效率。
參閱圖2b,使用如圖1a所示的裝置完成矩陣乘矩陣的運算;
下面描述計算尺寸是M行L列的矩陣S和尺寸是L行N列的矩陣W的乘法的運算,(矩陣S中的每一行與矩陣W的每一列長度相同,如圖2d所示)所述神經網絡計算裝置擁有K個基礎處理電路:
步驟S201b,主處理電路的控制電路將矩陣S中的每一行數據分發到K個基礎處理電路中的某一個上,基礎處理電路將接收到的數據保存在片上緩存和/或寄存器中;
在一種可選方案中,如果S的行數M<=K則,主處理電路的控制電路給M個基礎處理電路分別分發S矩陣的一行;
在一種可選方案中,如果S的行數M>K,主處理電路的控制電路給每個基礎處理電路分別分發S矩陣中一行或多行的數據。
S中有Mi行分發到第i個基礎處理電路,這Mi行的集合稱為Ai,如圖2e表示第i個基礎處理電路上將要執行的計算。
在一種可選方案中,在每個基礎處理電路中,例如第i個基礎處理電路中:
接收的由主處理電路分發的矩陣Ai,將矩陣Ai保存在第i個基礎處理電路寄存器和/或片上緩存中;優點是減少了之後的數據傳輸量,提高了計算效率,降低了功耗。
步驟S202b,主處理電路的控制電路將矩陣W中各部分以廣播的方式傳輸給各個基礎處理電路;
在一種可選方案中,可以將矩陣W中各部分只廣播一次到各個基礎處理電路的寄存器或者片上緩存中,第i個基礎處理電路對這一次得到的矩陣W的數據進行充分地復用,完成對應與矩陣Ai中每一行的內積運算;本實施例中的復用具體可以為基礎處理電路在計算中重復使用,例如矩陣W的數據的復用,可以是對矩陣W的數據在多次使用。
在一種可選方案中,主處理電路的控制電路可以將矩陣W中各部分多次廣播到各個基礎處理電路的寄存器或者片上緩存中,第i個基礎處理電路對每次得到的矩陣W的數據不進行復用,分次完成對應於矩陣Ai中的每一行的內積運算;
在一種可選方案中,主處理電路的控制電路可以將矩陣W中各部分多次廣播到各個基礎處理電路的寄存器或者片上緩存中,第i個基礎處理電路對每次得到的矩陣W的數據進行部分復用,完成對應於矩陣Ai中的每一行的內積運算;
在一種可選方案中,每個基礎處理電路,例如第i個基礎處理電路,計算矩陣Ai的數據和矩陣W的數據的內積;
步驟S203b,每個基礎處理電路的累加器電路將內積運算的結果進行累加並傳輸回主處理電路。
在一種可選方案中,基礎處理電路可以將每次執行內積運算得到的部分和傳輸回主處理電路進行累加;
在一種可選方案中,也可以將每次基礎處理電路執行的內積運算得到的部分和保存在基礎處理電路的寄存器和/或片上緩存中,累加結束之後傳輸回主處理電路;
在一種可選方案中,也可以將每次基礎處理電路執行的內積運算得到的部分和在部分情況下保存在基礎處理電路的寄存器和/或片上緩存中進行累加,部分情況下傳輸到主處理電路進行累加,累加結束之後傳輸回主處理電路;
參閱圖3a,使用如圖1a所示的裝置完成全連接運算:
如果全連接層的輸入數據是一個向量(即神經網絡的輸入是單個樣本的情況),則以全連接層的權值矩陣作為矩陣S,輸入向量作為向量P,按照所述裝置的使用方法一執行如圖2所示的矩陣乘向量的運算;
如果全連接層的輸入數據是一個矩陣(即神經網絡的輸入是多個樣本作為batch的情況),則以全連接層的權值矩陣作為矩陣S,輸入向量作為矩陣W,或者以全連接層的權值矩陣作為矩陣W,輸入向量作為矩陣S,按照所述裝置的使用如圖2c所示的矩陣乘矩陣的執行運算;
參閱圖3b,使用如圖1a所示的裝置完成卷積運算:
對於一個卷積層,記其卷積核的數量為M;
步驟S301,主處理電路的控制電路將卷積層權值中的每一個卷積核的權值分發到K個基礎處理電路中的某一個上,保存在基礎處理電路的片上緩存和/或寄存器中;
在一種可選方案中,如果卷積核的個數M<=K則,主處理電路的控制電路給M個基礎處理電路分別分發一個卷積核的權值;
在一種可選方案中,如果卷積核的個數M>K,主處理電路的控制電路給每個基礎處理電路分別分發一個或多個卷積核的權值。
共有Mi個卷積核分發到第i個基礎處理電路,這些卷積核權值的集合稱為Ai。
在一種可選方案中,在每個基礎處理電路中,例如第i個基礎處理電路中:
將收到的由主處理電路分發的卷積核權值Ai保存在其寄存器和/或片上緩存中;
步驟S302,主處理電路的控制電路將輸入數據T中各部分以廣播的方式傳輸給各個基礎處理電路;
在一種可選方案中,主處理電路的控制電路可以將輸入數據T中各部分只廣播一次到各個基礎處理電路的寄存器或者片上緩存中,第i個基礎處理電路對這一次得到的輸入數據T的數據進行充分地復用,完成對應與Ai中每一個卷積核的內積運算;
在一種可選方案中,主處理電路的控制電路可以將輸入數據T中各部分多次廣播到各個基礎處理電路的寄存器或者片上緩存中,第i個基礎處理電路對每次得到的輸入數據T的數據不進行復用,分次完成對應於Ai中的每一個卷積核的內積運算;
在一種可選方案中,主處理電路的控制電路可以將輸入數據T中各部分多次廣播到各個基礎處理電路的寄存器或者片上緩存中,第i個基礎處理電路對每次得到的輸入數據T的數據進行部分復用,完成對應於Ai中的每一個卷積核的內積運算;
步驟S303,每個基礎處理電路計算卷積核和輸入數據T的數據內積,例如第i個基礎處理電路,計算Ai的每一個卷積核和輸入數據T的數據的內積;
步驟S304,每個基礎處理電路的累加器電路將內積運算的結果進行累加並傳輸回主處理電路:
在一種可選方案中,可基礎處理電路以將每次執行內積運算得到的部分和傳輸回主處理電路進行累加;
在一種可選方案中,基礎處理電路也可以將每次執行的內積運算得到的部分和保存在基礎處理電路的寄存器和/或片上緩存中,累加結束之後傳輸回主處理電路;
在一種可選方案中,基礎處理電路也可以將每次執行的內積運算得到的部分和在部分情況下保存在基礎處理電路的寄存器和/或片上緩存中進行累加,部分情況下傳輸到主處理電路進行累加,累加結束之後傳輸回主處理電路;
使用如圖1a所示的裝置更新權值的方法:
利用主處理電路的向量運算器電路實現神經網絡訓練過程中的權值更新功能,具體地,權值更新是指使用權值的梯度來更新權值的方法。
在一種可選方案中,使用主處理電路的向量運算器電路對權值和權值梯度這兩個向量進行加減運算得到運算結果,該運算結果即為更新權值。
在一種可選方案中,使用主處理電路的向量運算器電路在權值以及權值梯度乘以或除以一個數得到中間權值和中間權值梯度值,向量運算器電路對中間權值和中間權值梯度值進行加減運算得到運算結果,該運算結果即為更新權值。
在一種可選方案中,可以先使用權值的梯度計算出一組動量,然後再使用動量與權值進行加減計算得到更新後的權值;
使用如圖1a所示的裝置實現全連接層的反向運算的方法
全連接層的反向運算可以分成兩部分,如下圖4a所示,實線箭頭表示全連接層的正向計算過程,如圖4b所示,表示全連接層的反向計算過程。
圖4a、圖4b所示的全連接層的反向運算,可以使用如圖1a所示的裝置如圖2b所示的矩陣乘矩陣方法來完成;
使用如圖1a所示的裝置實現卷積層的反向運算;
卷積層的反向運算可以分成兩部分,如下圖5a中,實線箭頭表示卷積層的正向計算過程,如圖5b所示,表示卷積層的反向計算過程。
圖5a、圖5b所示的卷積層的反向運算,可以使用如圖1a所示裝置採用如圖3b所示的方法完成卷積層的反向運算。
使用如圖1a所示的裝置實現BLAS(Basic Linear Algebra Subprograms)函數的方法
GEMM計算是指:BLAS庫中的矩陣-矩陣乘法的運算。該運算的通常表示形式為:C = alpha*op( S )*op( P ) + beta*C,其中,S和P為輸入的兩個矩陣,C為輸出矩陣,alpha和beta為標量,op代表對矩陣S或P的某種操作,此外,還會有一些輔助的整數作為參數來說明矩陣的S和P的寬高;
使用如圖1a的裝置實現GEMM計算的步驟包括:
主處理電路的數據類型轉換運算電路可以對矩陣S以及矩陣W進行數據類型轉換;
主處理電路的轉換電路對輸入矩陣S和矩陣W進行各自相應的op操作;
在一種可選方案中,op可以為矩陣的轉置操作;可以利用主處理電路的矩陣轉置電路實現該矩陣轉置操作;
在一種可選方案中,在執行完矩陣S和矩陣W的OP操作以後,還可以由主處理電路的數據轉換運算電路執行數據類型轉換操作,即數據轉換運算電路將op( S )以及op(P )的數據類型由浮點類型數據轉換成定點類型數據,然後執行如圖2b所示的矩陣乘法運算。
在一種可選方案中,某個矩陣的op可以為空,op操作不進行;
用如圖1a所示的裝置的使用如圖2b中所述矩陣乘矩陣的計算方法完成op(S)與op(P)之間的矩陣乘法計算;
利用主處理電路的算術邏輯單元對op(S)*op(P)的結果中的每一個值進行乘以alpha的操作;
在一種可選方案中,alpha為1的情況下乘以alpha的操作不進行;
利用主處理電路的算術邏輯單元實現beta*C的運算;
在一種可選方案中,beta為1的情況下,不進行乘以beta的操作;
利用主處理電路的向量運算器電路實現矩陣alpha*op( s)*op( P ) 和 beta*C之間對應位置相加的步驟得到GEMM計算的結果。
在一種可選方案中,beta為0的情況下,不進行這步操作;
GEMV計算是指:BLAS庫中的矩陣-向量乘法的運算。該運算的通常表示形式為:C = alpha*op( S )*P+ beta*C,其中,S為輸入矩陣,P為輸入的向量,C為輸出向量,alpha和beta為標量,op代表對矩陣S的某種操作;
使用如圖1a的裝置實現GEMV計算的步驟為:
主處理電路的數據類型轉換運算電路可以對輸入矩陣S以及矩陣W進行數據類型轉換;
主處理電路的轉換電路對輸入矩陣S進行相應的op操作;
在一種可選方案中,op可以為矩陣的轉置操作;利用主處理電路的轉換電路實現矩陣轉置操作;
在一種可選方案中,某個矩陣的op可以為空,轉置操作不進行;
用如圖1a所示裝置使用如圖2a中所述矩陣乘向量的計算方法完成矩陣op(S)與向量P之間的矩陣-向量乘法計算;
利用主處理電路的算術邏輯單元對op(S)*P的結果中的每一個值進行乘以alpha的操作;
在一種可選方案中,alpha為1的情況下乘以alpha的操作不進行;
利用主處理電路的算術邏輯單元實現beta*C的運算;
在一種可選方案中,beta為1的情況下,不進行乘以beta的操作;
利用主處理電路的向量運算器電路實現矩陣alpha*op( S )* P和 beta*C之間對應位置相加的步驟得到GEMV的結果。
在一種可選方案中,beta為0的情況下,不進行相加的步驟操作;
使用如圖1a的裝置實現激活函數的方法
利用主處理電路的激活電路輸入一向量,計算出該向量的激活向量;
在一種可選方案中,主處理電路激活電路將輸入向量中的每一個值通過一個激活函數(激活函數的輸入是一個數值,輸出也是一個數值),計算出一個數值輸出到輸出向量的對應位置;
在一種可選方案中,激活函數可以是:y=max(m, x),其中x是輸入數值,y是輸出數值,m是一個常數;
在一種可選方案中,激活函數可以是:y=tanh(x),其中x是輸入數值,y是輸出數值;
在一種可選方案中,激活函數可以是:y=sigmoid(x),其中x是輸入數值,y是輸出數值;
在一種可選方案中,激活函數可以是一個分段線性函數;
在一種可選方案中,激活函數可以是任意輸入一個數,輸出一個數的函數。
在一種可選方案中,輸入向量的來源有(包括但不限於):
所述裝置的外部數據來源;
在一種可選方案中,輸入數據來自所述裝置進行矩陣乘向量的運算結果;
在一種可選方案中,輸入數據來自所述裝置進行矩陣乘矩陣的運算結果;
所述裝置的主處理電路計算結果;
在一種可選方案中,輸入數據來自所述裝置主處理電路實現加偏置之後的計算結果。
需要說明的是,上述激活操作可以由主處理電路內的算數邏輯電路和累加器電路來實現,也可以在主處理電路單獨增加一個激活電路來實現激活操作。
使用如圖1a的裝置實現加偏置操作:
利用主處理電路的向量運算器電路可以實現兩個向量或者兩個矩陣相加的功能;
利用主處理電路的向量運算器電路可以實現把一個向量加到一個矩陣的每一行上,或者每一個列上的功能。
在一種可選方案中,所述矩陣可以來自所述裝置執行矩陣乘矩陣運算的結果;
在一種可選方案中,所述矩陣可以來自所述裝置執行矩陣乘向量運算的結果;
在一種可選方案中,所述矩陣可以來自所述裝置的主處理電路從外部接受的數據。
在一種可選方案中,所述向量可以來自所述裝置的主處理電路從外部接受的數據。
包括但不限於以上這些數據來源。
使用如圖1a的裝置實現數據類型轉換:
利用主處理電路的數據類型轉換運算電路實現將數據類型的轉換;
在一種可選方案中,使用主處理電路的數據類型轉換運算電路實現一組數據的數據類型轉換;
在一種可選方案中,數據類型轉化的形式包括但不限於:浮點數轉定點數和定點數轉浮點數等;
本發明還提供一種芯片,該芯片包含計算裝置,該計算裝置包括:
包括一個主處理電路,主處理電路中所涉及到的數據可以是任意數據類型的數據,在一種可選方案中,可以是任意位寬的浮點數表示的數據也可以是任意位寬的定點數表示的數據;涉及到的所有運算電路和存儲電路都可以是任意數據類型的運算電路和存儲電路,在一種可選方案中,可以是任意位寬的浮點數的運算電路和存儲電路也可以是任意位寬的定點數的運算電路和存儲電路。
在一種可選方案中,主處理電路包括數據類型轉換運算電路;
在一種可選方案中,主處理電路包括執行數據類型轉換的向量運算單元;
具體地,包含接收輸入數據的數據輸入介面;
在一種可選方案中,所述接收的數據來源可以是:所述神經網絡運算電路裝置的外部或所述神經網絡運算電路裝置的部分或全部基礎處理電路;
在一種可選方案中,所述數據輸入介面可以有多個;具體地,可以包含輸出數據的數據輸出介面;
在一種可選方案中,所述輸出的數據的去向可以是:所述神經網絡運算裝置的外部或所述神經網絡運算電路裝置的部分或全部基礎處理電路;
在一種可選方案中,所述數據輸出介面可以有多個;
在一種可選方案中,所述主處理電路包括片上緩存和/或寄存器;
在一種可選方案中,所述主處理電路中包含運算單元,可以執行數據運算;
在一種可選方案中,所述主處理電路中包含算術運算單元;
在一種可選方案中,所述主處理電路中包含向量運算單元,可以同時對一組數據執行運算;具體地,所述算術運算和/或向量運算可以是任意類型的運算,包括但不限於:兩個數相加減乘除,一個數與常數加減乘除,對一個數執行指數運算,冪次運算,對數運算,以及各種非線性運算,對兩個數執行比較運算,邏輯運算等。兩個向量相加減乘除,一個向量中的每一個元素與常數加減乘除,對向量中的每一個元素執行指數運算,冪次運算,對數運算,以及各種非線性運算等,對一個向量中的每兩個對應的元素執行比較運算,邏輯運算等。
在一種可選方案中,所述主處理電路包括數據重排列單元,用於按照一定的順序向基礎處理電路傳輸數據,或者按照一定的順序原地重新排列數據;
在一種可選方案中,所述數據排列的順序包括:對一個多維數據塊進行維度順序的變換;所述數據排列的順序還可以包括:對一個數據塊進行分塊以發送到不同的基礎處理電路。
該計算裝置還包括多個基礎處理電路:每一個基礎處理電路用於計算兩個向量的內積,計算的方法是,基礎處理電路收到的兩組數,將這兩組數中的元素對應相乘,並且將相乘的結果累加起來;內積的結果傳輸出去,這裡傳輸出去根據基礎處理電路的位置,有可能傳輸給其他基礎處理電路,也可以直接傳輸給主處理電路。
基礎處理電路中所涉及到的數據可以是任意數據類型的數據,在一種可選方案中,可以是任意位寬的浮點數表示的數據也可以是任意位寬的定點數表示的數據;涉及到的所有運算電路和存儲電路都可以是任意數據類型的運算電路和存儲電路,在一種可選方案中,可以是任意位寬的浮點數的運算電路和存儲電路也可以是任意位寬的定點數的運算電路和存儲電路。
在一種可選方案中,基礎處理電路包括數據類型轉換運算電路;
在一種可選方案中,基礎處理電路包括執行數據類型轉換的向量運算單元;
具體地,包括由片上緩存和/或寄存器構成的存儲單元;
具體地,包括一個或多個接收數據的數據輸入介面;
在一種可選方案中,包括兩個數據輸入介面,每次從兩個數據輸入介面處可以分別獲得一個或多個數據;
在一種可選方案中,基礎處理電路可以將從數據輸入介面接收到輸入數據後保存在寄存器和/或片上緩存中;
上述數據輸入介面接收數據的來源可以是:其他基礎處理電路和/或主處理電路。
所述神經網絡運算電路裝置的主處理電路;
所述神經網絡運算電路裝置的其他基礎處理電路(所述神經網絡運算電路裝置擁有多個基礎處理電路);
具體地,包括一個或多個傳輸輸出數據的數據輸出介面;
在一種可選方案中,可以將一個或多個數據從數據輸出介面傳輸出去;
具體地,通過數據輸出介面傳輸出去的數據可以是:從數據輸入介面接收到的數據、保存在片上緩存和/或寄存器中的數據、乘法器運算結果、累加器運算結果或內積運算器運算結果中的一種或任意組合。
在一種可選方案中,包含三個數據輸出介面,其中的兩個分別對應於兩個數據輸入介面,每一層出上一層從數據輸入介面接收到的數據,第三個數據輸出介面負責輸出運算結果;
具體地,所述數據輸出介面傳輸數據的去向可以是:上文數據來源和此處的數據去向決定了基礎處理電路在裝置中的連接關係。
所述神經網絡運算電路裝置的主處理電路;
所述神經網絡運算電路裝置的其他基礎處理電路,所述神經網絡運算電路裝置擁有多個基礎處理電路;
具體地,包括算術運算電路:該算術運算電路具體可以為:一個或多個乘法器電路、一個或多個累加器電路、一個或多個執行兩組數內積運算的電路中的一個或任意組合。
在一種可選方案中,可以執行兩個數的乘法運算,其結果可以保存在片上緩存和/或寄存器上,也可以直接累加到寄存器和/或片上緩存中;
在一種可選方案中,可以執行兩組數據的內積運算,其結果可以保存在片上緩存和/或寄存器中,也可以直接累加到寄存器和/或片上緩存中;
在一種可選方案中,可以執行數據的累加運算,將數據累加到片上緩存和或寄存器中;
具體地,累加器電路被累加的數據,可以是:從數據輸入介面接收到的數據、保存在片上緩存和/或寄存器中的數據、乘法器運算結果、累加器運算結果、內積運算器運算結果中的一個或任意組合。
需要說明的是,上述對基礎處理電路的描述中所用到的「數據輸入介面」和「數據輸出介面」是指每一個基礎處理電路的數據輸入與輸出介面,而不是整個裝置的數據輸入與輸出介面。
本披露還揭露了一個神經網絡運算裝置,其包括一個或多個在如圖1a或如圖1b所示的芯片,用於從其他處理裝置中獲取待運算數據和控制信息,執行指定的神經網絡運算,執行結果通過I/O介面傳遞給外圍設備。外圍設備譬如攝像頭,顯示器,鼠標,鍵盤,網卡,wifi介面,服務器。當包含一個以上神如圖1a或如圖1b所示的芯片時,如圖1a或如圖1b所示的芯片間可以通過特定的結構進行鏈接並傳輸數據,譬如,通過PCIE總線進行互聯並傳輸數據,以支持更大規模的神經網絡的運算。此時,可以共享同一控制系統,也可以有各自獨立的控制系統;可以共享內存,也可以每個加速器有各自的內存。此外,其互聯方式可以是任意互聯拓撲。
該神經網絡運算裝置具有較高的兼容性,可通過PCIE介面與各種類型的服務器相連接。
本披露還揭露了一個組合處理裝置,其包括上述的神經網絡運算裝置,通用互聯介面,和其他處理裝置(即通用處理裝置)。神經網絡運算裝置與其他處理裝置進行交互,共同完成用戶指定的操作。如4c下圖為組合處理裝置的示意圖。
其他處理裝置,包括中央處理器CPU、圖形處理器GPU、神經網絡處理器等通用/專用處理器中的一種或以上的處理器類型。其他處理裝置所包括的處理器數量不做限制。其他處理裝置作為神經網絡運算裝置與外部數據和控制的介面,包括數據搬運,完成對本神經網絡運算裝置的開啓、停止等基本控制;其他處理裝置也可以和神經網絡運算裝置協作共同完成運算任務。
通用互聯介面,用於在所述神經網絡運算裝置與其他處理裝置間傳輸數據和控制指令。該神經網絡運算裝置從其他處理裝置中獲取所需的輸入數據,寫入神經網絡運算裝置片上的存儲裝置;可以從其他處理裝置中獲取控制指令,寫入神經網絡運算裝置片上的控制緩存;也可以讀取神經網絡運算裝置的存儲模塊中的數據並傳輸給其他處理裝置。
如圖4d所示,可選的,該結構還包括存儲裝置,用於保存在本運算單元/運算裝置或其他運算單元所需要的數據,尤其適用於所需要運算的數據在本神經網絡運算裝置或其他處理裝置的內部存儲中無法全部保存的數據。
該組合處理裝置可以作為手機、機器人、無人機、視頻監控設備等設備的SOC片上系統,有效降低控制部分的核心面積,提高處理速度,降低整體功耗。此情況時,該組合處理裝置的通用互聯介面與設備的某些部件相連接。某些部件譬如攝像頭,顯示器,鼠標,鍵盤,網卡,wifi介面。
本披露實施例提供了一種神經網絡處理器板卡,可用於眾多通用或專用的計算系統環境或配置中。例如:個人計算機、服務器計算機、手持設備或便攜式設備、平板型設備、智能家居、家電、多處理器系統、基於微處理器的系統、機器人、可編程的消費電子設備、網絡個人計算機(personal computer,PC)、小型計算機、大型計算機、包括以上任何系統或設備的分布式計算環境等等。
請參照圖5c,圖5c為本披露實施例提供的一種神經網絡處理器板卡的結構示意圖。如圖5c所示,上述神經網絡處理器板卡10包括神經網絡芯片封裝結構11、第一電氣及非電氣連接裝置12和第一基板(substrate)13。
本披露對於神經網絡芯片封裝結構11的具體結構不作限定,可選的,如圖5d所示,上述神經網絡芯片封裝結構11包括:神經網絡芯片111、第二電氣及非電氣連接裝置112、第二基板113。
本披露所涉及的神經網絡芯片111的具體形式不作限定,上述的神經網絡芯片111包含但不限於將神經網絡處理器集成的神經網絡晶片,上述晶片可以由硅材料、鍺材料、量子材料或分子材料等製成。根據實際情況(例如:較嚴苛的環境)和不同的應用需求可將上述神經網絡晶片進行封裝,以使神經網絡晶片的大部分被包裹住,而將神經網絡晶片上的引腳通過金線等導體連到封裝結構的外邊,用於和更外層進行電路連接。
本披露對於神經網絡芯片111的具體結構不作限定,可選的,請參照圖1a或圖1b所示的裝置。
本披露對於第一基板13和第二基板113的類型不做限定,可以是印制電路板(printed circuit board,PCB)或(printed wiring board,PWB),還可能為其它電路板。對PCB的製作材料也不做限定。
本披露所涉及的第二基板113用於承載上述神經網絡芯片111,通過第二電氣及非電氣連接裝置112將上述的神經網絡芯片111和第二基板113進行連接得到的神經網絡芯片封裝結構11,用於保護神經網絡芯片111,便於將神經網絡芯片封裝結構11與第一基板13進行進一步封裝。
對於上述具體的第二電氣及非電氣連接裝置112的封裝方式和封裝方式對應的結構不作限定,可根據實際情況和不同的應用需求選擇合適的封裝方式並進行簡單地改進,例如:倒裝芯片球柵陣列封裝(Flip Chip Ball Grid Array Package,FCBGAP),薄型四方扁平式封裝(Low-profile Quad Flat Package,LQFP)、帶散熱器的四方扁平封裝(Quad Flat Package with Heat sink,HQFP)、無引腳四方扁平封裝(Quad Flat Non-lead Package,QFN)或小間距四方扁平式封裝(Fine-pitch Ball Grid Package,FBGA)等封裝方式。
倒裝芯片(Flip Chip),適用於對封裝後的面積要求高或對導線的電感、信號的傳輸時間敏感的情況下。除此之外可以用引線鍵合(Wire Bonding)的封裝方式,減少成本,提高封裝結構的靈活性。
球柵陣列(Ball Grid Array),能夠提供更多引腳,且引腳的平均導線長度短,具備高速傳遞信號的作用,其中,封裝可以用引腳網格陣列封裝(Pin Grid Array,PGA)、零插拔力(Zero Insertion Force,ZIF)、單邊接觸連接(Single Edge Contact Connection,SECC)、觸點陣列(Land Grid Array,LGA)等來代替。
可選的,採用倒裝芯片球柵陣列(Flip Chip Ball Grid Array)的封裝方式對神經網絡芯片111和第二基板113進行封裝,具體的神經網絡芯片封裝結構的示意圖可參照圖6。如圖6所示,上述神經網絡芯片封裝結構包括:神經網絡芯片21、焊盤22、焊球23、第二基板24、第二基板24上的連接點25、引腳26。
其中,焊盤22與神經網絡芯片21相連,通過在焊盤22和第二基板24上的連接點25之間焊接形成焊球23,將神經網絡芯片21和第二基板24連接,即實現了神經網絡芯片21的封裝。
引腳26用於與封裝結構的外部電路(例如,神經網絡處理器板卡10上的第一基板13)相連,可實現外部數據和內部數據的傳輸,便於神經網絡芯片21或神經網絡芯片21對應的神經網絡處理器對數據進行處理。對於引腳的類型和數量本披露也不作限定,根據不同的封裝技術可選用不同的引腳形式,並遵從一定規則進行排列。
可選的,上述神經網絡芯片封裝結構還包括絕緣填充物,置於焊盤22、焊球23和連接點25之間的空隙中,用於防止焊球與焊球之間產生干擾。
其中,絕緣填充物的材料可以是氮化硅、氧化硅或氧氮化硅;干擾包含電磁干擾、電感干擾等。
可選的,上述神經網絡芯片封裝結構還包括散熱裝置,用於散髮神經網絡芯片21運行時的熱量。其中,散熱裝置可以是一塊導熱性良好的金屬片、散熱片或散熱器,例如,風扇。
舉例來說,如圖6a所示,神經網絡芯片封裝結構11包括:神經網絡芯片21、焊盤22、焊球23、第二基板24、第二基板24上的連接點25、引腳26、絕緣填充物27、散熱膏28和金屬外殼散熱片29。其中,散熱膏28和金屬外殼散熱片29用於散髮神經網絡芯片21運行時的熱量。
可選的,上述神經網絡芯片封裝結構11還包括補強結構,與焊盤22連接,且內埋於焊球23中,以增強焊球23與焊盤22之間的連接強度。
其中,補強結構可以是金屬線結構或柱狀結構,在此不做限定。
本披露對於第一電氣及非電氣裝置12的具體形式也不作限定,可參照第二電氣及非電氣裝置112的描述,即通過焊接的方式將神經網絡芯片封裝結構11進行封裝,也可以採用連接線連接或插拔方式連接第二基板113和第一基板13的方式,便於後續更換第一基板13或神經網絡芯片封裝結構11。
可選的,第一基板13包括用於擴展存儲容量的內存單元的介面等,例如:同步動態隨機存儲器(Synchronous Dynamic Random Access Memory,SDRAM)、雙倍速率同步動態隨機存儲器(Double Date Rate SDRAM,DDR)等,通過擴展內存提高了神經網絡處理器的處理能力。
第一基板13上還可包括快速外部設備互連總線(Peripheral Component Interconnect-Express,PCI-E或PCIe)介面、小封裝可熱插拔(Small Form-factor Pluggable,SFP)介面、以太網介面、控制器局域網總線(Controller Area Network,CAN)介面等等,用於封裝結構和外部電路之間的數據傳輸,可提高運算速度和操作的便利性。
將神經網絡處理器封裝為神經網絡芯片111,將神經網絡芯片111封裝為神經網絡芯片封裝結構11,將神經網絡芯片封裝結構11封裝為神經網絡處理器板卡10,通過板卡上的介面(插槽或插芯)與外部電路(例如:計算機主板)進行數據交互,即直接通過使用神經網絡處理器板卡10實現神經網絡處理器的功能,並保護神經網絡芯片111。且神經網絡處理器板卡10上還可添加其他模塊,提高了神經網絡處理器的應用範圍和運算效率。
在一個實施例里,本公開公開了一個電子裝置,其包括了上述神經網絡處理器板卡10或神經網絡芯片封裝結構11。
電子裝置包括數據處理裝置、機器人、電腦、打印機、掃描儀、平板電腦、智能終端、手機、行車記錄儀、導航儀、傳感器、攝像頭、服務器、相機、攝像機、投影儀、手錶、耳機、移動存儲、可穿戴設備、交通工具、家用電器、和/或醫療設備。
所述交通工具包括飛機、輪船和/或車輛;所述家用電器包括電視、空調、微波爐、冰箱、電飯煲、加濕器、洗衣機、電燈、燃氣灶、油煙機;所述醫療設備包括核磁共振儀、B超儀和/或心電圖儀。
以上所述的具體實施例,對本披露的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本披露的具體實施例而已,並不用於限制本披露,凡在本披露的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本披露的保護範圍之內。
S201、S202、S203、S204、S201b、S202b、S203b、S301、S302、S303、S304‧‧‧步驟
A、Ai 、 B、S‧‧‧矩陣
P‧‧‧向量
10‧‧‧神經網絡處理器板卡
11‧‧‧神經網絡芯片封裝結構
12‧‧‧第一電氣及非電氣連接裝置
13‧‧‧第一基板
111‧‧‧神經網絡芯片
112‧‧‧第二電氣及非電氣連接裝置
113‧‧‧第二基板
1111‧‧‧存儲單元
1112‧‧‧直接內存存取單元
1113‧‧‧指令緩存單元
1114‧‧‧權值緩存單元
1115‧‧‧輸入神經元緩存單元
1116‧‧‧輸出神經元緩存單元
1117‧‧‧控制單元
1118‧‧‧運算單元
21‧‧‧神經網絡芯片
22‧‧‧焊盤
23‧‧‧焊球
24‧‧‧第二基板
25‧‧‧第二基板24上的連接點
26‧‧‧引腳
27‧‧‧絕緣填充物
28‧‧‧散熱膏
29‧‧‧金屬外殼散熱片
圖1a是一種集成電路芯片裝置結構示意圖。
圖1b是另一種集成電路芯片裝置結構示意圖。
圖1c是一種基礎處理電路的結構示意圖。
圖1d為一種定點數據類型的示意結構圖。
圖2為一種矩陣乘以向量流程示意圖。
圖2a是矩陣乘以向量的示意圖。
圖2b為一種矩陣乘以矩陣流程示意圖。
圖2c是矩陣Ai乘以向量的示意圖。
圖2d是矩陣A乘以矩陣B的示意圖。
圖2e是矩陣Ai乘以矩陣B的示意圖。
圖3a為神經網絡訓練示意圖。
圖3b為卷積運算示意圖。
圖4a為神經網絡正向運算示意圖。
圖4b為神經網絡反向運算示意圖。
圖4c為本披露還揭露了一個組合處理裝置結構示意圖。
圖4d為本披露還揭露了一個組合處理裝置另一種結構示意圖。
圖5a為神經網絡另一種正向運算示意圖。
圖5b為神經網絡另一種反向運算示意圖。
圖5c為本披露實施例提供的一種神經網絡處理器板卡的結構示意圖;
圖5d為本披露實施例提供的一種神經網絡芯片封裝結構的結構示意圖;
圖5e為本披露實施例提供的一種神經網絡芯片的結構示意圖;
圖6為本披露實施例流提供的一種神經網絡芯片封裝結構的示意圖;
圖6a為本披露實施例流提供的另一種神經網絡芯片封裝結構的示意圖。

Claims (16)

  1. 一種集成電路芯片裝置,其中,該集成電路芯片裝置包括: 一主處理電路、k個分支電路以及k組基礎處理電路,該主處理電路與該k個分支電路分別連接,該k個分支電路中每個分支電路對應該k組基礎處理電路中的一組基礎處理電路,該一組基礎處理電路包括至少一個基礎處理電路; 該分支電路包括:一數據類型運算電路,用於執行浮點類型數據與定點類型數據之間的轉換; 該主處理電路,用於執行神經網絡運算中的各個連續的運算以及和與其相連的該k個分支電路傳輸數據; 該k個分支電路,用於在該主處理電路與k組基礎處理電路之間轉發一傳輸數據,依據該傳輸數據的運算控制是否啓動該數據類型運算電路對該傳輸數據的類型執行轉換; 該k個基礎處理電路,用於依據該傳輸數據或轉換後的傳輸數據以並行方式執行神經網絡中的運算,並將運算結果通過與該主處理電路連接的分支電路傳輸給該主處理電路。
  2. 根據申請專利範圍第1項的集成電路芯片裝置,其中, 該主處理電路,用於獲取一待計算的數據塊以及一運算指令,依據該運算指令對該待計算的數據塊劃分成一分發數據塊以及一廣播數據塊;對該分發數據塊進行拆分處理得到多個基本數據塊,將該多個基本數據塊分發至與其連接的該k個分支電路,將該廣播數據塊廣播至與其連接的該k個分支電路; 該k個分支電路,用於接收該基本數據塊以及該廣播數據塊,啓動該數據類型運算電路將該基本數據塊以及該廣播數據塊轉換成定點數據類型;將該基本數據塊以及該廣播數據塊以定點數據類型轉發至該k組基礎處理電路; 該基礎處理電路,用於對該基本數據塊與該廣播數據塊以定點數據類型執行內積運算得到一運算結果,將該運算結果發送至該k個分支電路; 該k個分支電路,用於將該運算結果轉換成一浮點類型的運算結果,將該浮點類型的運算結果發送至該主處理電路; 該主處理電路,用於對該浮點類型的運算結果處理得到該待計算的數據塊以及該運算指令的指令結果。
  3. 根據申請專利範圍第2項的集成電路芯片裝置,其中, 該主處理電路,具體用於將該廣播數據塊通過一次廣播至該k個分支電路。
  4. 根據申請專利範圍第2項的集成電路芯片裝置,其中, 該主處理電路,具體用於將該廣播數據塊分成多個部分廣播數據塊,將該多個部分廣播數據塊通過多次廣播至該K個分支電路。
  5. 根據申請專利範圍第4項的集成電路芯片裝置,其中, 該基礎處理電路,具體用於將該部分廣播數據塊與該基本數據塊以定點類型執行一次內積處理後得到一內積處理結果,將該內積處理結果累加得到一部分運算結果,將該部分運算結果發送至該k個分支電路, 該k個分支電路,用於將該部分運算結果轉換成浮點類型數據發送至該主處理電路。
  6. 根據申請專利範圍第4項的集成電路芯片裝置,其中, 該基礎處理電路,具體用於復用n次該部分廣播數據塊以定點數據類型執行該部分廣播數據塊與該n個基本數據塊內積運算得到定點數據類型的n個部分處理結果,將定點數據類型的n個部分處理結果分別累加後得到一定點類型的n個部分運算結果,將該定點類型的n個部分運算結果發送至分支電路; 該分支電路,用於將該定點類型的n個部分運算結果轉換成浮點類型的n個部分運算結果,將浮點類型的n個部分運算結果發送至該主處理電路,該n為大於等於2的整數。
  7. 根據申請專利範圍第1項的集成電路芯片裝置,其中, 該主處理電路包括:主寄存器或主片上緩存電路; 或該分支電路包括:基本寄存器或基本片上緩存電路; 或該基礎處理電路包括:基本寄存器或基本片上緩存電路。
  8. 根據申請專利範圍第7項的集成電路芯片裝置,其中, 該主處理電路包括:向量運算器電路、算數邏輯單元電路、累加器電路、矩陣轉置電路、直接內存存取電路、數據類型運算電路或數據重排電路中的一種或任意組合。
  9. 根據申請專利範圍第1項的集成電路芯片裝置,其中, 該數據為:向量、矩陣、三維數據塊、四維數據塊以及n維數據塊中一種或任意組合。
  10. 根據申請專利範圍第2項的集成電路芯片裝置,其中, 如該運算指令為乘法指令,該主處理電路確定乘數數據塊為該廣播數據塊,被乘數數據塊為該分發數據塊; 如該運算指令為卷積指令,該主處理電路確定輸入數據塊為該廣播數據塊,卷積核為該分發數據塊。
  11. 一種神經網絡運算裝置,其中,該神經網絡運算裝置包括一個或多個如申請專利範圍第1-10項任意一項的集成電路芯片裝置。
  12. 一種組合處理裝置,其中,該組合處理裝置包括:如申請專利範圍第11項的一神經網絡運算裝置、一通用互聯介面和一通用處理裝置; 該神經網絡運算裝置通過該通用互聯介面與該通用處理裝置連接。
  13. 一種芯片,其中,該芯片集成如申請專利範圍第1-12項任意一項的裝置。
  14. 一種智能設備,其中,該智能設備包括如申請專利範圍第13項的芯片。
  15. 一種神經網絡的運算方法,其中,該方法應用在集成電路芯片裝置內,該集成電路芯片裝置包括:如申請專利範圍第1-10項任意一項的集成電路芯片裝置,該集成電路芯片裝置用於執行神經網絡的運算。
  16. 根據申請專利範圍第15項的方法,其中,該神經網絡的運算包括:卷積運算、矩陣乘矩陣運算、矩陣乘向量運算、偏執運算、全連接運算、GEMM運算、GEMV運算、激活運算中的一種或任意組合。
TW107144034A 2017-12-14 2018-12-07 集成電路芯片裝置及相關產品 TWI768159B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201711347406.7 2017-12-14
??201711347406.7 2017-12-14
CN201711347406.7A CN109961134B (zh) 2017-12-14 2017-12-14 集成电路芯片装置及相关产品

Publications (2)

Publication Number Publication Date
TW201931220A true TW201931220A (zh) 2019-08-01
TWI768159B TWI768159B (zh) 2022-06-21

Family

ID=67018575

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107144034A TWI768159B (zh) 2017-12-14 2018-12-07 集成電路芯片裝置及相關產品

Country Status (2)

Country Link
CN (4) CN111126588B (zh)
TW (1) TWI768159B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109978147A (zh) * 2017-12-27 2019-07-05 北京中科寒武纪科技有限公司 集成电路芯片装置及相关产品
CN109978150A (zh) * 2017-12-27 2019-07-05 北京中科寒武纪科技有限公司 神经网络处理器板卡及相关产品
CN109978155A (zh) * 2017-12-28 2019-07-05 北京中科寒武纪科技有限公司 集成电路芯片装置及相关产品

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0276062A (ja) * 1988-09-12 1990-03-15 Nippon Telegr & Teleph Corp <Ntt> 神経回路網の構成方法および神経回路網
JPH064504A (ja) * 1992-06-18 1994-01-14 Matsushita Electric Ind Co Ltd ニューラルネットワーク回路
EP1102163A3 (en) * 1999-11-15 2005-06-29 Texas Instruments Incorporated Microprocessor with improved instruction set architecture
GB2471067B (en) * 2009-06-12 2011-11-30 Graeme Roy Smith Shared resource multi-thread array processor
CN101673645B (zh) * 2009-10-28 2012-01-25 胡聪娟 一种断路器额定保护电流自动调节器
US9501276B2 (en) * 2012-12-31 2016-11-22 Intel Corporation Instructions and logic to vectorize conditional loops
CN103199806B (zh) * 2013-02-04 2015-12-02 中国科学院电子学研究所 对传感器信号处理的可编程的模拟单元
US9766888B2 (en) * 2014-03-28 2017-09-19 Intel Corporation Processor instruction to store indexes of source data elements in positions representing a sorted order of the source data elements
US20160026912A1 (en) * 2014-07-22 2016-01-28 Intel Corporation Weight-shifting mechanism for convolutional neural networks
CN104518567B (zh) * 2014-11-26 2016-11-23 国家电网公司 一种用电设备状态在线跟踪方法
US9678749B2 (en) * 2014-12-22 2017-06-13 Intel Corporation Instruction and logic for shift-sum multiplier
US10489703B2 (en) * 2015-05-20 2019-11-26 Nec Corporation Memory efficiency for convolutional neural networks operating on graphics processing units
US10049322B2 (en) * 2015-05-21 2018-08-14 Google Llc Prefetching weights for use in a neural network processor
CN106570559A (zh) * 2015-10-09 2017-04-19 阿里巴巴集团控股有限公司 一种基于神经网络的数据处理方法和装置
US10789545B2 (en) * 2016-04-14 2020-09-29 Oath Inc. Method and system for distributed machine learning
CN107330515A (zh) * 2016-04-29 2017-11-07 北京中科寒武纪科技有限公司 一种用于执行人工神经网络正向运算的装置和方法
CN105956660A (zh) * 2016-05-16 2016-09-21 浪潮集团有限公司 一种用于实时图像识别的神经元网络芯片实现方法
CN106126481B (zh) * 2016-06-29 2019-04-12 华为技术有限公司 一种计算系统和电子设备
CN107229967B (zh) * 2016-08-22 2021-06-15 赛灵思公司 一种基于fpga实现稀疏化gru神经网络的硬件加速器及方法
CN106940815B (zh) * 2017-02-13 2020-07-28 西安交通大学 一种可编程卷积神经网络协处理器ip核
CN107016175B (zh) * 2017-03-23 2018-08-31 中国科学院计算技术研究所 适用神经网络处理器的自动化设计方法、装置及优化方法

Also Published As

Publication number Publication date
TWI768159B (zh) 2022-06-21
CN111126588A (zh) 2020-05-08
CN111105033B (zh) 2024-01-12
CN111160541B (zh) 2023-05-19
CN111126588B (zh) 2023-05-23
CN109961134B (zh) 2020-06-23
CN109961134A (zh) 2019-07-02
CN111160541A (zh) 2020-05-15
CN111105033A (zh) 2020-05-05

Similar Documents

Publication Publication Date Title
TWI793225B (zh) 神經網絡訓練方法及相關產品
US11748605B2 (en) Integrated circuit chip device
TWI791725B (zh) 神經網絡運算方法、集成電路芯片裝置及相關產品
TWI768159B (zh) 集成電路芯片裝置及相關產品
CN111242294B (zh) 集成电路芯片装置及相关产品
WO2019114842A1 (zh) 一种集成电路芯片装置
TWI793224B (zh) 集成電路芯片裝置及相關產品
TWI767098B (zh) 神經網絡正向運算方法及相關產品
TWI767097B (zh) 集成電路芯片裝置及相關產品
CN110197267B (zh) 神经网络处理器板卡及相关产品
TWI795482B (zh) 集成電路芯片裝置及相關產品
WO2019165946A1 (zh) 集成电路芯片装置、板卡及相关产品
CN109978152B (zh) 集成电路芯片装置及相关产品
TWI768160B (zh) 集成電路芯片裝置及相關產品
CN109978153B (zh) 集成电路芯片装置及相关产品
CN109977071A (zh) 神经网络处理器板卡及相关产品
CN109978147A (zh) 集成电路芯片装置及相关产品
CN109978150A (zh) 神经网络处理器板卡及相关产品
WO2019165940A1 (zh) 集成电路芯片装置、板卡及相关产品
CN109978130A (zh) 集成电路芯片装置及相关产品