TW201933194A - 神經網路處理單元及系統晶片 - Google Patents

神經網路處理單元及系統晶片 Download PDF

Info

Publication number
TW201933194A
TW201933194A TW108100877A TW108100877A TW201933194A TW 201933194 A TW201933194 A TW 201933194A TW 108100877 A TW108100877 A TW 108100877A TW 108100877 A TW108100877 A TW 108100877A TW 201933194 A TW201933194 A TW 201933194A
Authority
TW
Taiwan
Prior art keywords
processing unit
value
neural network
neural
output
Prior art date
Application number
TW108100877A
Other languages
English (en)
Other versions
TWI818944B (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 TW201933194A publication Critical patent/TW201933194A/zh
Application granted granted Critical
Publication of TWI818944B publication Critical patent/TWI818944B/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/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/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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • G06F7/49947Rounding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06GANALOGUE COMPUTERS
    • G06G7/00Devices in which the computing operation is performed by varying electric or magnetic quantities
    • G06G7/12Arrangements for performing computing operations, e.g. operational amplifiers
    • G06G7/14Arrangements for performing computing operations, e.g. operational amplifiers for addition or subtraction 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06GANALOGUE COMPUTERS
    • G06G7/00Devices in which the computing operation is performed by varying electric or magnetic quantities
    • G06G7/12Arrangements for performing computing operations, e.g. operational amplifiers
    • G06G7/16Arrangements for performing computing operations, e.g. operational amplifiers for multiplication or division
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06GANALOGUE COMPUTERS
    • G06G7/00Devices in which the computing operation is performed by varying electric or magnetic quantities
    • G06G7/12Arrangements for performing computing operations, e.g. operational amplifiers
    • G06G7/26Arbitrary function generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • 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/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • 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/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computer Hardware Design (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Neurology (AREA)
  • Power Engineering (AREA)
  • Nonlinear Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Image Analysis (AREA)
  • Investigating Or Analysing Biological Materials (AREA)

Abstract

一種神經網路處理單元可被配置成實行近似乘法運算且一種系統晶片可包括所述神經網路處理單元。神經網路處理單元可包括多個神經處理單元且可基於輸入資料的一或多個實例以及基於多個權重來實行計算。至少一個神經處理單元被配置成接收第一值及第二值並基於第一值及第二值實行近似乘法運算,且更被配置成基於所述近似乘法運算的輸出值來實行隨機捨入運算。

Description

神經網路處理單元及系統晶片
本發明概念是有關於神經網路處理單元,且更具體而言是有關於包括近似乘法器(approximate multiplier)的神經網路處理單元以及包括所述神經網路處理單元的系統晶片。
神經網路是指對生物大腦進行建模的計算架構。近來,隨著神經網路技術的發展,已積極研究了各種類型的電子系統以使用神經網路處理單元來分析輸入資料及提取有效資訊。
神經網路處理單元利用相對大量的計算來處理複雜的輸入資料。為使神經網路處理單元被配置成即時地分析高品質輸入並提取資訊,需要具有用於高效地處理神經網路操作的技術。舉例而言,低功率及高效能嵌式系統(例如,智慧型電話)具有有限的資源。
一些示例性實施例提供神經網路處理單元,所述神經網路處理單元被配置成能夠在減少處理複雜的輸入資料所需的計算量的同時降低準確性損失,藉此提供可特別適合包含於低功率及高效能嵌式系統(包括智慧型電話)中的神經網路處理單元。
本發明概念提供包括近似乘法器的神經網路處理單元以及包括所述神經網路處理單元的系統晶片,所述近似乘法器被配置成實行固定點型(fixed-point type)訓練計算。
根據本發明概念的態樣,一種神經網路處理單元可被配置成基於輸入資料的一或多個實例以及基於多個權重來實行計算。所述神經網路處理單元可包括多個神經處理單元。所述多個神經處理單元中的至少一個神經處理單元可被配置成接收第一值及第二值並基於所述第一值及所述第二值實行近似乘法運算;以及基於所述近似乘法運算的輸出值來實行隨機捨入運算。
根據本發明概念的另一態樣,一種系統晶片可包括:一或多個半導體智慧財產核心(intellectual property core,IP);以及神經網路處理單元,被配置成自所述一或多個IP接收輸入資料,並基於所述輸入資料及多個權重來實行神經網路計算。所述神經網路處理單元可包括多個神經處理單元,其中所述多個神經處理單元中的至少一個神經處理單元被配置成接收第一值及第二值並對所述第一值及所述第二值實行近似乘法運算,以及基於所述近似乘法運算的輸出值而實行隨機捨入運算,以輸出關於所述近似乘法運算的所述輸出的後激活。
根據本發明概念的另一態樣,一種神經網路處理單元可在訓練模式中基於訓練資料的一或多個實例以及基於多個權重來實行訓練操作。所述神經網路處理單元可包括多個神經處理單元。所述多個神經處理單元中的至少一個神經處理單元可被配置成:接收第一值及第二值並在所述訓練模式中對所述第一值及所述第二值實行近似乘法運算;基於所述近似乘法運算的輸出值以及基於第三值來實行加法運算;對所述近似乘法運算的輸出值進行累加;以及對基於所述累加而輸出的累加值實行隨機捨入運算,以輸出關於所述累加值的後激活。
在下文中,將參照附圖詳細闡述本發明概念的示例性實施例。
圖1是示出根據本揭露一些示例性實施例的系統晶片(SoC)10的方塊圖。
參照圖1,SoC 10可包括多個智慧財產(IP)以及神經網路處理單元(neural network processing unit,NPU)100。SoC 10可被設計成在半導體系統中實行各種功能,且舉例而言,SoC 10可為應用處理器。SoC 10可基於神經網路而即時地分析輸入資料及提取有效資訊,且基於所提取的資訊,可確定安裝有SoC 10的電子裝置的情況或者控制所述電子裝置的配置。舉例而言,SoC 10可用於無人機、機器人設備(例如,高階駕駛員輔助系統(advanced driver assistance system,ADAS))、自主車輛(autonomous vehicle)、智慧型電視(television,TV)、智慧型電話、醫療裝置、行動裝置、影像顯示裝置、量測裝置、物聯網(Internet of Things,IoT)裝置等,且另外,SoC 10可安裝於各種電子裝置中的至少一者上。
如本文所述,應理解,IP(例如,IP1、IP2及IP3)是指作為一方的智慧財產的硬體電路系統(例如,積體電路)的實例。本文中所提及的IP可被互換地稱為半導體智慧財產核心、IP核心及/或IP區塊。SoC 10可包括各種IP。舉例而言,IP可包括處理單元(「處理電路系統的實例」,例如CPU、應用專用積體電路、它們的一些組合等)、處理單元中所包括的多個核心、多格式編解碼器(Multi-Format Codec,MFC)、視訊模組(例如,相機介面、聯合圖像專家組(Joint Photographic Experts Group,JPEG)處理器、視訊處理器或混合器)、三維(three-dimensional,3D)圖形核心、音訊系統、驅動器、顯示驅動器、揮發性記憶體、非揮發性記憶體、記憶體控制器、輸入及輸出介面區塊或快取記憶體。
用於連接IP的大多數技術涉及基於系統匯流排的連接方法。舉例而言,作為標準匯流排規範,可使用高階精簡指令集電腦(Reduced Instruction Set Computer,RISC)機器公司(Advanced RISC Machines Ltd,ARM)的高階微控制器匯流排架構(Advanced Microcontroller Bus Architecture,AMBA)協定。AMBA協定的匯流排類型可包括高階高效能匯流排(Advanced High-Performance Bus,AHB)、高階周邊匯流排(Advanced Peripheral Bus,APB)、高階可擴展介面(Advanced eXtensible Interface,AXI)、AXI4、AXI一致性擴展(AXI Coherency Extension,ACE)等。上述匯流排類型中的AXI是各IP之間的介面協定且可提供多重未決位址功能(multiple outstanding address function)、資料交織功能(data interleaving function)等。另外,亦可對系統匯流排應用其他類型的協定,例如索尼克公司(SONIC Inc.)的u網路(uNetwork)、國際商業機器公司(International Business Machines,IBM)的核心連接(CoreConnect)或開放式核心協定國際同盟(Open Core Protocol International Partnership,OCP-IP)的開放式核心協定(Open Core Protocol)。
NPU 100可產生神經網路、可訓練(或學習)神經網路、可基於所接收的輸入資料實行計算並基於計算結果產生資訊訊號或者可重新訓練神經網路。在一些示例性實施例中,NPU 100可基於固定點來訓練神經網路。此將在以下進行詳細闡述。
應理解,NPU 100可為可執行儲存於記憶體(例如,儲存裝置)中的指令程式的處理器(例如,處理電路系統的實例)及/或可由所述處理器來構建。因此,在一些示例性實施例中,本文所述NPU 100可為用於構建NPU 100的功能的處理器。
NPU 100可經由系統匯流排自IP接收各種輸入資料,且相應地可產生資訊訊號(例如,基於輸入資料來實行神經網路計算以產生輸出訊號)。由神經網路產生的資訊訊號可包括例如以下各種辨識訊號中的一者:語音辨識訊號、對象辨識訊號(object recognition signal)、影像辨識訊號及生物資訊辨識訊號。舉例而言,NPU 100可接收視訊流中所包括的訊框資料作為輸入資料,且可自訊框資料產生關於由訊框資料表示的影像中所包括的對象的辨識訊號。然而,本揭露並非僅限於此,且NPU 100可接收各種輸入資料且可根據輸入資料產生辨識訊號。
圖2是示出根據本揭露一些示例性實施例的神經網路1的實例的圖。圖2所示神經網路可由神經網路處理單元來構建,所述神經網路處理單元包括例如NPU 100及/或圖13所示NPU 1058(在以下進行進一步闡述)。
參照圖2,神經網路1可具有包括輸入層、隱藏層及輸出層的結構。構建神經網路1的神經網路處理單元可基於所接收的輸入資料(例如,I1及I2)來實行計算且可基於計算結果來產生輸出資料(例如,O1及O2)。在一些示例性實施例中,可對神經網路處理單元進行訓練以藉由基於輸入資料實行的計算來構建神經網路1。對神經網路處理單元進行訓練以構建神經網路在本文中可被稱為「訓練」神經網路。當對神經網路1進行訓練時,輸入資料可為訓練資料。
神經網路1可為深度神經網路(deep neural network,DNN)或包括兩個或更多個隱藏層的n層神經網路。舉例而言,如圖2所示,神經網路1可為包括輸入層2、第一隱藏層3及第二隱藏層4以及輸出層5的DNN。所述DNN可包括但不限於卷積神經網路(convolutional neural network,CNN)、遞歸神經網路(recurrent neural network,RNN)、深度信念網路(deep belief network)、限制波爾茲曼機(restricted Boltzmann machine)等。
當神經網路1具有DNN結構時,神經網路1包括可從中提取有效資訊的更多個層,且因此神經網路1可對複雜資料集進行處理。儘管神經網路1被示出為包括四個層(即,輸入層2、第一隱藏層3及第二隱藏層4以及輸出層5),但此僅為實例,且神經網路1可包括更少或更多的層。另外,神經網路1可包括具有與圖2所示結構不同的各種結構的層。
神經網路1中所包括的輸入層2、第一隱藏層3及第二隱藏層4、以及輸出層5中的每一者可包括多個神經元。所述神經元可對應於多個人工節點(artificial node),所述人工節點被稱為處理元件(processing element,PE)、單元或相似的用語。舉例而言,如圖2所示,輸入層2可包括兩個神經元(節點),且第一隱藏層3及第二隱藏層4中的每一者可包括三個神經元(節點)。然而,此僅為實例,且神經網路1中所包括的層中的每一者皆可包括各種數目的神經元(節點)。
在神經網路1中所包括的層中的每一者中所包括的神經元可連接至彼此以交換資料。一個神經元可自其他神經元接收資料並實行計算,且可將計算結果輸出至其他神經元。
神經元(節點)中的每一者的輸入及輸出可被稱為輸入激活及輸出激活。亦即,激活可為一個神經元的輸出且亦可為與下一層中所包括的神經元的輸入對應的參數。神經元中的每一者可基於自前一層中所包括的神經元接收到的激活及權重來確定此神經元的激活。權重是用於計算每一神經元中的輸出激活的參數,且可為被分配給神經元之間的連接關係的值。
神經元中的每一者可由接收到輸入並輸出激活的神經處理單元(或PE)來處理,且可對神經元中的每一者的輸入-輸出進行映射。舉例而言,σ可為激活函數(activation function),且可為自第(i-1)層中所包括的第k神經元至第i層中所包括的第j神經元的權重值。可為第i層中所包括的第j神經元的偏置值(bias value),且可為第i層的第j神經元的激活(換言之,後激活(post-activation))。後激活可使用以下方程式1來計算。
[方程式1]
如圖2所示,第一隱藏層3的第一神經元的後激活可被表示為。另外,根據方程式1,可具有值。換言之,後激活可為藉由對自前一層接收到的激活之和應用激活函數而獲得的值。然而,方程式1僅為用於闡釋用於對神經網路1中的資料進行處理的激活及權重的實例,且並非僅限於此。
如上所述,在神經網路1中,諸多資料集在多個相互連接的神經元之間交換且在經過各個層時會經歷諸多計算過程。藉由此種計算,可對神經網路1進行訓練,且相應地可對權重及偏置進行最佳化。根據本揭露一些示例性實施例的NPU可包括近似乘法器及/或可被配置成構建近似乘法器,且可被配置成基於固定點型激活(fixed-point type activation)、權重及偏置來訓練神經網路1。以下將對此進行詳細說明。
圖3是示出根據本揭露一些示例性實施例的神經網路的訓練過程的流程圖。可參照圖2來闡述圖3。圖3所示訓練過程可由神經網路處理單元來構建,所述神經網路處理單元包括NPU 100及/或圖13所示NPU 1058(以下進行進一步闡述)。
參照圖3,在操作S100中,可基於訓練資料來實行對神經網路1的計算且亦可產生輸出資料。換言之,當將訓練資料施加至輸入層2作為輸入資料I1及I2時,神經網路1可產生與訓練資料對應的輸出資料O1及O2。訓練資料(其是為進行學習而向神經網路1施加的輸入資料)可為預先知曉對應的目標值或標簽的資料。
可基於固定點型激活、權重及偏置來對神經網路1進行訓練。在一些示例性實施例中,可基於固定點近似乘法器、固定點加法器及固定點捨入器(fixed-point rounder)來計算每一神經元中的後激活。舉例而言,可藉由近似乘法器來將後激活與前一層的權重近似地相乘在一起,且可對藉由將多個近似乘法相加而獲得的值實行捨入。舉例而言,捨入器可實行隨機捨入(stochastic rounding)。
在操作S200中,可基於與訓練資料對應的輸出資料來計算損失。舉例而言,損失可指與訓練資料對應的目標值和與訓練資料對應的輸出資料之間的差。
在操作S300中,可將損失反向傳播至神經網路1,且可確定每一神經元的參數。神經元的參數可包括作為神經網路計算的基礎的各種資料,例如權重、偏置等。當對神經網路1進行重複訓練時,可對神經網路1的參數進行調整以相對於給定輸入計算更準確的輸出。
圖4是示出固定點值FX的實例的圖。
參照圖4,固定點值FX可被劃分成整數部分IL、小數點DP及分數部分FL。固定點是指利用小數點表示具有固定位數的小數的表示形式。
整數部分IL可包括符號位元SB。符號位元SB可確定固定點值FX的符號。整數部分IL可對應於表示固定點值FX的整數的部分,且分數部分FL可對應於表示固定點值FX的分數的部分。小數點DP可指用於區分固定點值FX的整數部分IL與分數部分FL的參考點。
舉例而言,當固定點值FX是8位元固定點值時,表示整數部分IL及分數部分FL的位元中的每一者可具有值1或0。表示整數部分IL的位元可自符號位元SB依序表示值-8、+4、+2及+1。另外,表示分數部分FL的位元可基於小數點DP來依序表示值+0.5、+0.25、+0.125及+0.0625。舉例而言,當符號位元SB是1時,整數部分IL的最高有效位元表示的值是-8,其中固定點值FX表示的值是負數,而無論整數部分IL及分數部分FL中所包括的其他位元的值如何。
儘管圖4示出8位元固定點值FX,然而此僅為示例性實施例,且固定點值FX可為具有任何恰當的位元數目的固定點值。另外,固定點值FX可使用編碼表示形式、一的補碼系統(complement system)、及二的補碼系統中的一者來表示負數。
圖5是示出根據本揭露一些示例性實施例的NPU 100的結構的實例的方塊圖。圖5示出例如NPU 100的詳細結構。在下文中,將參照圖1來闡述圖5。
參照圖5,NPU 100可包括資料隨機存取記憶體(資料RAM)110、權重RAM 120、控制器130以及多個神經處理單元140-1至140-n。儘管圖中未示出,然而NPU 100可更包括序列器(sequencer)、多個暫存器、程式記憶體等。控制器130、序列器、多個暫存器、程式記憶體等在一些示例性實施例中可為執行儲存於記憶體(例如,儲存裝置)中的指令程式的處理器(例如,處理電路系統的實例)及/或可由所述處理器來構建。因此,本文所述控制器130、序列器、所述多個暫存器、程式記憶體等在一些示例性實施例中可為構建控制器130、序列器、所述多個暫存器、程式記憶體等的處理器。
本文所述神經處理單元140-1至140-n可分別由執行儲存於記憶體(例如,儲存裝置)中的指令程式的處理器(例如,處理電路系統的實例)來構建。因此,本文所述控制器130、序列器、所述多個暫存器、程式記憶體等在一些示例性實施例中可為構建控制器130、序列器、所述多個暫存器、程式記憶體等的處理器。
在一些示例性實施例中,每一個單獨的神經處理單元140-1至140-n皆為被配置成構建各自的神經處理單元的功能的電路系統的單獨的實例。
資料RAM 110可儲存一或多條輸入資料I(輸入資料I的一或多個「實例」)且可將輸入資料I施加至神經處理單元140-1至140-n。舉例而言,輸入資料I可由多個IP中的至少一者提供。另外,可接收並儲存基於神經處理單元140-1至140-n的計算而產生的輸出資料O。在一些示例性實施例中,輸入資料I及輸出資料O可為固定點型。
舉例而言,在NPU 100的訓練模式(或學習模式)中(例如,因應於NPU 100正在以訓練模式運作),資料RAM 110可儲存訓練資料(例如,在訓練模式中自一或多個IP接收的訓練資料)且可將訓練資料施加至神經處理單元140-1至140-n作為輸入資料I。舉例而言,在NPU 100的推斷模式中(例如,因應於NPU 100正在以推斷模式運作),資料RAM 110可儲存用於NPU 100的推斷操作的資料且可將所述資料施加至神經處理單元140-1至140-n作為輸入資料I。當在系統晶片(例如,圖1所示10)中包括NPU 100時,資料RAM 110可儲存自系統晶片(例如,圖1所示10)中所包括的各種IP輸出的資料作為輸入資料I。NPU 100可由此在訓練模式中基於一或多條訓練資料(訓練資料的一或多個「實例」)以及基於多個權重來實行訓練操作。訓練操作可包括固定點型訓練操作。
權重RAM 120可儲存多個權重W且可將每一權重施加至對應的神經處理單元。換言之,被分別分配給神經處理單元140-1至140-n的權重W可儲存於權重RAM 120中。舉例而言,在NPU 100的訓練模式(或學習模式)中,權重RAM 120可自神經處理單元140-1至140-n接收藉由訓練過程而進行調整的權重W且可儲存權重W。在一些示例性實施例中,權重W可為固定點型。
資料RAM 110及權重RAM 120可為例如動態隨機存取記憶體(dynamic RAM,DRAM)、靜態RAM(static RAM,SRAM)、同步動態隨機存取記憶體(synchronous DRAM,SDRAM)、相變隨機存取記憶體(phase-change RAM,PRAM)等。然而,本揭露並非僅限於此,且資料RAM 110及權重RAM 120可被構建為各種記憶體。
控制器130可對神經處理單元140-1至140-n實行總體控制操作。舉例而言,控制器130可向神經處理單元140-1至140-n施加用於控制每一神經處理單元中所包括的多工器的第一控制訊號CTRL_1。另外,在一些示例性實施例中,控制器130可向神經處理單元140-1至140-n施加用於控制每一神經處理單元中所包括的近似乘法器的第二控制訊號CTRL_2。舉例而言,第二控制訊號CTRL_2可為對近似乘法器進行模式選擇的基礎。本文所述用於控制神經處理單元140-1至140-n的元件(例如,多工器及/或近似乘法器)的模式的控制訊號可為所輸出的用於控制至少一個神經處理單元140-1至140-n的模式的控制訊號。
神經處理單元140-1至140-n可分別被配置成作為神經網路(例如,圖2所示10)的各個層(例如,圖2所示2、3、4及5)中所包括的神經元運作。舉例而言,神經處理單元140-1至140-n中的至少一些神經處理單元可與輸入層(例如,圖2所示2)中所包括的神經元對應地運作,且因此,可接收輸入資料I及權重W並相應地輸出激活。舉例而言,神經處理單元140-1至140-n中的一些其他神經處理單元可與隱藏層(例如,圖2所示3及4)中所包括的神經元對應地運作,且因此,可接收自前一層中所包括的神經元接收的激活以及權重W並相應地輸出激活。舉例而言,神經處理單元140-1至140-n中的其他神經處理單元可與輸出層(例如,圖2所示5)中所包括的神經元對應地運作,且因此,可接收自前一層中所包括的神經元接收的激活以及權重W並相應地產生輸出資料。
在一些示例性實施例中,神經處理單元140-1至140-n中的至少一者可包括近似乘法器及捨入器。再次重申,神經處理單元中的至少一者可被配置成構建近似乘法器及捨入器的功能。舉例而言,神經處理單元140-1至140-n中的至少一者可藉由近似乘法器、基於在所述至少一個神經處理單元處接收到的第一值(例如,mo)及第二值(例如,W)(例如基於激活(例如,I_A)及權重W)來實行近似乘法運算。另外,神經處理單元140-1至140-n中的至少一者可藉由捨入器、基於近似乘法運算的輸出(例如基於多個近似相乘的值之和)來實行隨機捨入(stochastic rounding)(「實行隨機捨入運算」)。
儘管一些示例性實施例中未示出,然而NPU 100可更包括時脈,且神經處理單元140-1至140-n可在每一時脈循環期間實行計算操作。在一些示例性實施例中,神經處理單元140-1至140-n可採用管線方式(pipelined fashion)運作。
圖6是示出根據本揭露一些示例性實施例的神經處理單元140-m的詳細結構的方塊圖。舉例而言,圖6所示神經處理單元140-m可為圖5所示神經處理單元140-1至140-n中的一者。在下文中,將參照圖5來闡述圖6。應理解,在一些示例性實施例中,神經處理單元140-m的元件150m至180m中的一或多者可由神經處理單元140的電路系統來構建。
參照圖6,神經處理單元140-m可包括算術邏輯單元(arithmetic logic unit,ALU)160m、累加器170m及激活函數單元(activation function unit,AFU)180m及/或可被配置成構建算術邏輯單元(ALU)160m、累加器170m及激活函數單元(AFU)180m的功能。另外,神經處理單元140-m可更包括多工器150m及/或可被配置成構建多工器150m的功能。
多工器150m可接收輸入資料I及輸入激活A_I且可基於第一控制訊號CTRL_1而以二者擇一的方式選擇輸入資料I以及輸入激活A_I中的一者並輸出所選擇的一者作為第一值mo。舉例而言,第一控制訊號CTRL_1可由控制器130提供。在一些示例性實施例中,輸入資料I是自NPU 100的資料RAM(例如,資料RAM 110)輸出的訓練資料。
舉例而言,輸入資料I可由資料RAM 110提供。另外,輸入激活A_I可由神經處理單元140-1至140-n中的一者提供。舉例而言,基於包括與神經處理單元140-m對應的神經元的層,輸入激活A_I可由與前一層中所包括的神經元對應的神經處理單元提供或者可由與同一層中所包括的神經元對應的神經處理單元提供。
ALU 160m可接收多條資料且相應地可實行算術及邏輯運算。舉例而言,ALU 160m可接收第一值mo及權重W,且可對第一值mo及權重W實行乘法運算。另外,ALU 160m可更接收自累加器170m輸出的累加值aco,且可藉由對第一值mo與權重W的乘法運算結果和累加值aco實行加法運算來產生輸出值alo。ALU 160m可包括固定點型裝置。
在一些示例性實施例中,在NPU 100的訓練模式中(例如,因應於NPU 100正在以訓練模式運作),ALU 160m可對第一值mo與權重W實行近似乘法運算。作為一種近似計算,近似乘法運算可指其中部分地容許計算結果值存在誤差的乘法運算。另外,在NPU 100的推斷模式中,ALU 160m可對第一值mo與權重W實行一般乘法運算。
累加器170m可暫時儲存ALU 160m的計算結果。詳言之,累加器170m可包括接收並暫時儲存ALU 160m的輸出值alo的暫存器。舉例而言,累加器170m可包括其中將多個正反器連接至彼此的配置。累加器170m可將暫時儲存的輸出值alo輸出至ALU 160m或AFU 180m作為累加值aco。累加器170m可被理解成對由ALU 160m實行的近似乘法運算的一或多個輸出值alo進行累加。
AFU 180m可自累加器170m接收累加值aco(例如,由累加器170m實行的累加的輸出值)。在一些示例性實施例中,AFU 180m可對累加值aco實行捨入運算且可產生關於累加值aco的後激活A_O。亦應理解,後激活A_O可與ALU 160m的近似乘法運算的輸出有關。作為實例,AFU 180m可對累加值aco實行捨入運算且可對所述捨入運算應用激活函數。作為另外一種選擇,AFU 180m可對累加值aco應用激活函數,且可對所述激活函數實行捨入運算。作為另外一種選擇,AFU 180m可對累加值aco實行捨入運算且可繞過對激活函數的應用。舉例而言,AFU 180m可對累加值aco實行隨機捨入運算。因此,AFU 180m可產生後激活A_O(或輸出激活)。
圖7是示出根據本揭露一些示例性實施例的ALU 160m的方塊圖。舉例而言,圖7可為圖6所示ALU 160m的詳細方塊圖。在下文中,將參照圖5及圖6來闡述圖7。
參照圖7,ALU 160m可包括近似乘法器162m及加法器164m。近似乘法器162m可對多個輸入值實行近似乘法運算。詳言之,近似乘法器162m可接收第一值mo及權重W,且可對第一值mo與權重W進行近似乘法。近似乘法器162m可被構建為各種類型,例如基於近似4:2壓縮器的乘法器、近似經修改布斯乘法器(approximate modified booth multiplier)等。
相較於第一值mo與權重W的一般乘法,由近似乘法器162m進行的第一值mo與權重W的近似乘法可能在一或多個位元中隨機地具有誤差。亦即,第一值mo與權重W的乘法可能會因近似乘法而具有隨機性,且隨機捨入操作相應地可在AFU 180m中依序地實行。
在一些示例性實施例中,近似乘法器162m可被控制成在NPU 100的訓練模式中實行近似乘法並在NPU 100的推斷模式中實行一般乘法。舉例而言,近似乘法器162m可被控制成基於自控制器130接收到的第二控制訊號CTRL_2而實行近似乘法及一般乘法中的一者(例如,可以以下模式中的一種模式運作:第一模式,在所述第一模式中實行近似乘法運算;以及第二模式,在所述第二模式中實行一般乘法運算)。
加法器164m可對近似乘法器162m的輸出與自累加器170m輸出的累加值aco(例如,所述累加的輸出值)實行加法運算。亦即,加法器164m可藉由在訓練模式中對第一值mo與權重W的乘法運算結果和累加值aco實行加法運算來產生輸出值alo。輸出值alo可為例如與自前一層接收到的激活之和對應的值。
圖8是示出根據本揭露一些示例性實施例的AFU 180m的方塊圖。舉例而言,圖8可為圖6所示AFU 180m的詳細方塊圖。在下文中,將參照圖5及圖6來闡述圖8。
參照圖8,AFU 180m可包括捨入器182m及激活函數(AF)模組184m。捨入器182m可對自累加器170m輸出的累加值aco實行捨入運算。在一些示例性實施例中,在NPU 100的訓練模式中,累加值aco可基於近似乘法運算而隨機地具有誤差,且捨入器182m相應地可對累加值aco實行隨機捨入運算。藉由對累加值aco進行捨入運算,可對累加值aco進行量化。
隨機捨入運算可指基於機率(probability)實行捨入的運算。舉例而言,以其中指數部分是IL且分數部分是FL的固定點為基礎,隨機捨入運算可被定義為以下[方程式2]。
[方程式2]
在[方程式2]中,可指代在小於x的值中的最大整數倍。在根據[方程式2]的隨機捨入運算中,基於機率實行捨入運算,且因此,舉例而言,在訓練期間可反映範圍內的小的變化。
根據本發明概念的NPU 100可包括藉由近似乘法器162m及捨入器182m構建隨機捨入的多個神經處理單元。根據一些示例性實施例的在神經處理單元中構建的隨機捨入可被定義為以下[方程式3]。
[方程式3]
在[方程式3]中,可定義單值函數(uniform function)作為返回位於兩個輸入變數()之間的隨機小數的函數。
在一些示例性實施例中,AF模組184m可對經捨入的累加值aco應用激活函數。AF模組184m可對經捨入的累加值aco應用激活函數並輸出後激活A_O。亦即,AF模組184m可對自前一層接收到的激活之和應用激活函數並輸出後激活A_O。AF模組184m可應用例如階梯函數(step function)、S型函數(sigmoid function)、雙曲正切函數(hyperbolic-tangent function)或線性整流函數(Rectified Linear Unit,ReLU),但本揭露並非僅限於此。
儘管在一些示例性實施例中已闡述了將在捨入器182m中進行捨入的累加值aco輸入至AF模組184m,然而此僅為實例,且本揭露並非僅限於此。作為實例,可將累加值aco輸入至AF模組184m以對累加值aco應用激活函數,且可將已被應用激活函數的累加值aco輸入至捨入器182m以對累加值aco實行隨機捨入運算。再舉例而言,可由捨入器182m對累加值aco實行隨機捨入運算,且累加值aco可繞過AF模組184m並由AFU 180m輸出。
圖9及圖10分別是示出根據本揭露一些示例性實施例的對NPU進行訓練的流程圖以及示出根據本揭露一些示例性實施例的隨機捨入的圖。在下文中,將參照圖6至圖8來闡述圖9及圖10。
參照圖9,在NPU 100的訓練模式中,每一神經處理單元可對輸入激活A_I及權重W實行近似乘法運算(操作S110)。舉例而言,可藉由ALU 160m中所包括的近似乘法器162m來實行近似乘法運算。
接下來,可對已實行近似乘法運算的值實行累加(操作S120)。舉例而言,可藉由ALU 160m中所包括的加法器164m以及累加器170m來對已實行近似乘法運算的值實行累加。累加值可對應於例如自前一層接收到的激活之和。
接下來,每一神經處理單元皆可對累加值aco實行隨機捨入(操作S130)。舉例而言,可藉由AFU 180m中所包括的捨入器182m來實行隨機捨入運算。在實行隨機捨入之後,可對已實行隨機捨入的值應用激活函數(操作S140)。舉例而言,可藉由AFU 180m中所包括的AF模組184m來實行激活函數的應用。
進一步參照圖10,圖10示出對隨機數實施隨機捨入。舉例而言,當輸入至捨入器182m的累加值aco是3.3時,根據本揭露一些示例性實施例的隨機捨入,被捨入成3的機率與被捨入成4的機率可分別為70%及30%。亦即,由於即使在固定點運算中亦可根據機率來反映小的變化,因此根據本發明概念的NPU 100可實行固定點訓練。另外,由於即使在不具有單獨的隨機數產生器時亦可藉由近似乘法器來實行隨機捨入運算,因此NPU 100的面積及功耗可減小。
圖11是示出根據本揭露一些示例性實施例的ALU 260m的方塊圖。以下將不再對圖11所示配置的已參照圖7進行的說明予以重複贅述。
參照圖11,ALU 260m可包括近似乘法器262m及近似加法器264m。在一些示例性實施例中,近似加法器264m可對近似乘法器262m的輸出與累加值aco實行近似加法運算。作為一種近似計算,近似加法運算可指其中部分地容許計算結果值存在誤差的加法運算。
在一些示例性實施例中,近似加法器264m可被控制成在NPU(圖5所示100)的訓練模式中實行近似加法並在NPU(圖5所示100)的推斷模式中實行一般加法。舉例而言,近似加法器264m可被控制成基於自控制器(圖5所示130)接收到的第三控制訊號CTRL_3而實行近似加法及一般加法中的一者。舉例而言,在NPU(圖5所示100)的訓練模式中,輸出值alo可能會因近似乘法器262m的近似乘法及近似加法器264m的近似加法而具有隨機性,且相應地可隨後在AFU(圖6所示180m)中實行隨機捨入運算。
圖12是示出根據本揭露一些示例性實施例的ALU 360m的方塊圖。以下將不再對圖12所示配置的已參照圖7及圖11進行的說明予以重複贅述。
參照圖12,ALU 360m可包括一般乘法器362m及近似加法器364m。在一些示例性實施例中,一般乘法器362m可在NPU(圖5所示100)的訓練模式及推斷模式中實行一般乘法。另外,近似加法器364m可被控制成在NPU(圖5所示100)的訓練模式中實行近似加法並在NPU(圖5所示100)的推斷模式中實行一般加法。舉例而言,在NPU(圖5所示100)的訓練模式中,輸出值alo可能會因近似加法器364m的近似加法而具有隨機性,且相應地可隨後在AFU(圖6所示180m)中實行隨機捨入運算。
圖13是示出根據本揭露一些示例性實施例的行動計算裝置1000的方塊圖。作為非限制性實例,行動計算裝置1000可為由電池供電或自發電(self power generation)的任何行動電子裝置,例如行動電話、平板個人電腦(personal computer,PC)、可穿戴裝置或物聯網(IoT)裝置。
如圖13所示,行動計算裝置1000可包括記憶子系統1010、輸入/輸出(I/O)裝置1030、處理單元1050及網路介面1070,且記憶子系統1010、輸入/輸出裝置1030、處理單元1050及網路介面1070可經由匯流排1090來與彼此進行通訊。在一些實施例中,記憶子系統1010、輸入/輸出裝置1030、處理單元1050、及網路介面1070中的至少兩者可作為系統晶片包含於一個封裝中。
記憶子系統1010可包括RAM 1012及儲存器1014。RAM 1012及/或儲存器1014可儲存欲由處理單元1050執行的指令以及欲被處理的資料。舉例而言,RAM 1012及/或儲存器1014可儲存神經網路的變數(例如,訊號、權重及偏置)或者可儲存神經網路的神經元(或節點)的參數。在一些實施例中,儲存器1014可包括非揮發性記憶體。
處理單元1050可包括中央處理單元(central processing unit,CPU)1052、圖形處理單元(graphics processing unit,GPU)1054、數位訊號處理器(digital signal processor,DSP)1056及NPU 1058。不同於圖13所示,在一些實施例中,處理單元1050可包括CPU 1052、GPU 1054、DSP 1056、及NPU 1058中的至少一些。
CPU 1052可控制或實行行動計算裝置1000的總體操作,且舉例而言,可因應於經由輸入/輸出裝置1030接收的外部輸入來直接實行特定操作,或者可指示處理單元1050的其他組件來實行特定操作。GPU 1054可產生藉由輸入/輸出裝置1030中所包括的顯示裝置輸出的影像的資料或者可對自輸入/輸出裝置1030中所包括的相機接收的資料進行編碼。DSP 1056可藉由對數位訊號(例如,自網路介面1070提供的數位訊號)進行處理來產生有用的資料。
作為神經網路獨有的硬體,NPU 1058可包括與構成神經網路的至少一些神經元對應的神經處理單元,且至少一些神經處理單元可並列地處理訊號。根據本揭露一些示例性實施例的NPU 1058可包括近似乘法器及捨入器且相應地可實行神經網路訓練,所述神經網路訓練使固定點訓練具有高準確性,藉此改善行動計算裝置1000的操作效能及/或功能。另外,由於即使在不具有單獨的隨機數產生器的條件下亦可實行隨機捨入,因此NPU 1058的面積及功耗可減小,藉此進一步改善行動計算裝置1000的操作效能及/或功能。
輸入/輸出裝置1030可包括輸入裝置(例如,觸控輸入裝置、聲音輸入裝置及相機)以及輸出裝置(例如,顯示裝置及聲音輸出裝置)。舉例而言,當經由聲音輸入裝置輸入使用者的語音時,可藉由在行動計算裝置1000中構建的神經網路來辨識所述語音,且可觸發對應的操作。另外,當經由相機輸入影像時,可藉由在行動計算裝置1000中構建的神經網路來辨識影像中所包括的對象,且可將輸出(例如,虛擬實境)提供至使用者。網路介面1070可將對於行動通訊網路(例如,長期演進(Long Term Evolution,LTE)、5G等)的存取提供至行動計算裝置1000或者可提供對於區域網路(例如,無線保真(Wi-Fi))的存取。
圖14示出根據一些示例性實施例的車輛。
參照圖14,車輛1400可包括以下中的一或多者:處理總成1402、一或多個感測器裝置1420、一或多個通訊介面1430、一或多個駕駛控制元件1440、自主導航系統1450及一或多個車輛乘員(「使用者」)介面1460。
本文所述的所述一或多個感測器1420可包括一或多個相機裝置、主動掃描裝置(active scanning device)(例如,一或多個雷射雷達(LiDAR)感測器裝置)、一或多個超音波感測器裝置、一或多個地理空間定位裝置、它們的一些組合等。感測器裝置1420可基於對環繞車輛1400的外部環境的一或多個部分進行監測來產生感測器訊號。
本文所述的所述一或多個駕駛控制元件可包括以下中的一或多者:車輛轉向裝置,被配置成控制車輛1400的轉向;油門裝置,被配置成控制車輛1400的馬達的至少一部分以控制車輛1400的加速及/或運動;制動裝置(brake device),被配置成控制車輛1400的制動;燈總成(light assembly),被配置成提供外部照明(例如,頭燈、煞車燈、轉向訊號指示燈等);氣候控制總成,被配置成控制車輛1400駕駛室的一或多個部分的制熱及/或制冷;或被配置成控制車輛1400的任何操作的任何其他已知元件。
本文所述的使用者介面1460可包括以下中的一或多者:車輛1400駕駛室中的一或多個顯示螢幕(包括觸控螢幕顯示器、非交互式顯示器、抬頭顯示器、它們的一些組合等)上呈現的圖形顯示介面(graphical display interface,GUI)、音訊介面(例如,揚聲器及/或麥克風)、觸覺介面裝置、它們的一些組合等。
本文所述的所述一或多個通訊介面1430可包括無線電收發器、無線網路通訊收發器、特定無線網路通訊收發器(ad hoc wireless network communication transceiver)、地理空間定位系統(geospatial positioning system,GPS)裝置、它們的一些組合等。
本文所述的自主導航系統1450可包括計算裝置(例如,儲存指令程式的至少一個記憶體以及被配置成執行指令程式的至少一個處理器),所述計算裝置被配置成對一或多個駕駛控制元件1440實施自主控制以藉由環境來對車輛1400進行自主導航。自主導航系統1450可被配置成基於對由一或多個感測器裝置1420產生的感測器資料進行的處理來實施對一或多個駕駛控制元件的此種自主控制。
如圖中所示,處理總成1402可包括神經網路處理單元(NPU)1410。NPU 1410可為本文所述的NPU 100及/或NPU 1058。在一些示例性實施例中,處理總成1402包含於自主導航系統1450中以使自主導航系統包括NPU 1410。
在一些示例性實施例中,車輛1400被配置成啟用自主導航(「自主駕駛」),例如,不依靠車輛乘員對任何駕駛控制元件1440的控制來駕駛車輛,因而車輛1400在本文中可被稱為自主車輛。
在一些示例性實施例中,NPU 1410(其可為本文所述的NPU 100及/或NPU 1058)可被配置成接收包括由一或多個感測器裝置1420產生的感測器資料的一或多條輸入資料(輸入資料的一或多個「實例」)。NPU 1410可被配置成自一或多個各種裝置(包括可包含於處理總成1402及/或自主導航系統1450中的一或多個IP)接收多個權重。所述權重可在NPU處經由使用者介面1460、感測器裝置1420、或通訊介面1430中的一或多者被接收。
NPU 1410可被配置成實行本文所述的NPU 100的功能,例如,基於輸入資料(例如,感測器資料)的一或多個實例以及基於多個權重來實行計算以產生輸出訊號(例如,後激活A_O),所述輸出訊號可為駕駛控制元件控制訊號且被傳送至至少一個駕駛控制元件1440來使所述至少一個駕駛控制元件1440對車輛1400的駕駛的一或多個態樣實施控制以對車輛1400進行自主導航。
另外,在一些示例性實施例中,輸入資料的所述一或多個
實例可為在NPU 1410處自使用者介面1460及通訊介面1430中的一或多者接收的資料。另外,在一些示例性實施例中,NPU 1410被配置成產生輸出訊號(例如,後激活A_O),所述輸出訊號使使用者介面1460為車輛1400的一或多個特定乘員提供使用者介面功能。另外,在一些示例性實施例中,NPU 1410被配置成產生輸出訊號(例如,後激活A_O),所述輸出訊號使通訊介面1430向一或多個位於遠端的外部實體(包括基地台、另一車輛、位於遠端的通訊裝置(例如,智慧型電話)、無線網路中的伺服器裝置、它們的一些組合等)傳送資訊及/或對資訊的請求。
在一些示例性實施例中,NPU 1410可包括近似乘法器及捨入器且相應地可實行神經網路訓練,所述神經網路訓練使固定點訓練具有高的準確性,藉此在被配置成實施車輛1400的自主導航方面改善車輛1400的操作效能及/或功能。舉例而言,NPU 1410可被配置成基於對由一或多個感測器裝置1420產生的感測器資料的處理來以提高的準確性、精確度及/或效率達成車輛1400的自主導航,藉此改善車輛1400的自主導航功能。另外,由於即使在不具有單獨的隨機數產生器的條件下亦可實行隨機捨入,因此NPU 1410的面積及功耗可減小,藉此在與車輛1400的自主導航功能相關聯的硬體的至少效率及緊湊性方面改善車輛1400的操作效能及/或功能。
儘管已參考本發明概念的示例性實施例具體示出並闡述了本發明概念,然而應理解,可在不背離以下申請專利範圍的精神及範圍的條件下對其作出各種形式及細節上的變化。
1‧‧‧神經網路
2‧‧‧輸入層/層
3‧‧‧第一隱藏層/層
4‧‧‧第二隱藏層/層
5‧‧‧輸出層/層
10‧‧‧系統晶片(SoC)
100、1058、1410‧‧‧神經網路處理單元(NPU)
110‧‧‧資料隨機存取記憶體(資料RAM)
120‧‧‧權重隨機存取記憶體(權重RAM)
130‧‧‧控制器
140-1、140-2~140-n、140-m‧‧‧神經處理單元
150m‧‧‧多工器/元件
160m‧‧‧算術邏輯單元(ALU)/元件
162m、262m‧‧‧近似乘法器
164m‧‧‧加法器
170m‧‧‧累加器/元件
180m‧‧‧激活函數單元(AFU)/元件
182m‧‧‧捨入器
184m‧‧‧激活函數(AF)模組
260m、360m‧‧‧算術邏輯單元(ALU)
264m、364m‧‧‧近似加法器
362m‧‧‧一般乘法器
1000‧‧‧行動計算裝置
1010‧‧‧記憶子系統
1012‧‧‧隨機存取記憶體(RAM)
1014‧‧‧儲存器
1030‧‧‧輸入/輸出(I/O)裝置
1050‧‧‧處理單元
1052‧‧‧中央處理單元(CPU)
1054‧‧‧圖形處理單元(GPU)
1056‧‧‧數位訊號處理器(DSP)
1070‧‧‧網路介面
1090‧‧‧匯流排
1400‧‧‧車輛
1402‧‧‧處理總成
1420‧‧‧感測器裝置/感測器
1430‧‧‧通訊介面
1440‧‧‧駕駛控制元件
1450‧‧‧自主導航系統
1460‧‧‧車輛乘員(「使用者」)介面
A_I‧‧‧輸入激活
A_O‧‧‧後激活
aco‧‧‧累加值
alo‧‧‧輸出值
CTRL_1‧‧‧第一控制訊號
CTRL_2‧‧‧第二控制訊號
CTRL_3‧‧‧第三控制訊號
DP‧‧‧小數點
FL‧‧‧分數部分
FX‧‧‧固定點值
I、I1、I2‧‧‧輸入資料
IL‧‧‧整數部分/指數部分
mo‧‧‧第一值
O、O1、O2‧‧‧輸出資料
S100、S110、S120、S130、S140、S200、S300‧‧‧操作
SB‧‧‧符號位元
W‧‧‧權重/第二值
結合附圖閱讀以下詳細說明,將更清楚地理解本發明概念的示例性實施例,在附圖中:
圖1是示出根據本揭露一些示例性實施例的系統晶片(system on chip,SoC)的方塊圖。
圖2是示出根據本揭露一些示例性實施例的神經網路的實例的圖。
圖3是示出根據本揭露一些示例性實施例的神經網路的訓練過程的流程圖。可參照圖2來闡述圖3。
圖4是示出固定點值的實例的圖。
圖5是示出根據本揭露一些示例性實施例的神經網路處理單元的結構的實例的方塊圖。
圖6是示出根據本揭露一些示例性實施例的神經處理單元的詳細結構的方塊圖。
圖7是示出根據本揭露一些示例性實施例的算術邏輯單元的方塊圖。
圖8是示出根據本揭露一些示例性實施例的激活函數單元的方塊圖。
圖9及圖10分別是示出根據本揭露一些示例性實施例的對神經網路處理單元進行訓練的流程圖以及示出根據本揭露一些示例性實施例的隨機捨入的圖。
圖11是示出根據本揭露一些示例性實施例的算術邏輯單元的方塊圖。
圖12是示出根據本揭露一些示例性實施例的算術邏輯單元的方塊圖。
圖13是示出根據本揭露一些示例性實施例的行動計算裝置的方塊圖。
圖14示出根據一些示例性實施例的車輛。

Claims (20)

  1. 一種神經網路處理單元,被配置成基於輸入資料的一或多個實例以及基於多個權重來實行計算,所述神經網路處理單元包括: 多個神經處理單元,其中所述多個神經處理單元中的至少一個神經處理單元被配置成: 接收第一值及第二值並基於所述第一值及所述第二值實行近似乘法運算;以及 基於所述近似乘法運算的輸出值來實行隨機捨入運算。
  2. 如申請專利範圍第1項所述的神經網路處理單元,其中所述至少一個神經處理單元更被配置成: 以二者擇一的方式選擇所述輸入資料的所述一或多個實例以及所述多個神經處理單元中的一個神經處理單元的輸出值中的一個要素,以及 輸出所選擇的所述一個要素作為所述第一值。
  3. 如申請專利範圍第1項所述的神經網路處理單元,其中所述第二值包括所述多個權重中的至少一個權重。
  4. 如申請專利範圍第1項所述的神經網路處理單元,其中所述至少一個神經處理單元更被配置成: 對所述近似乘法運算的一或多個輸出值進行累加;以及 基於所述近似乘法運算的所述輸出值以及所述累加的輸出值來實行加法運算。
  5. 如申請專利範圍第4項所述的神經網路處理單元,其中所述至少一個神經處理單元被配置成對所述累加的所述輸出值實行所述隨機捨入運算。
  6. 如申請專利範圍第1項所述的神經網路處理單元,其中所述至少一個神經處理單元被配置成因應於所述神經網路處理單元以訓練模式運作而實行所述近似乘法運算。
  7. 如申請專利範圍第6項所述的神經網路處理單元,更包括: 控制器,被配置成輸出控制訊號以控制模式至少一個神經處理單元, 其中所述至少一個神經處理單元被配置成基於所述控制訊號而以以下模式中的一種模式運作: 第一模式,在所述第一模式中實行所述近似乘法運算,以及 第二模式,在所述第二模式中實行一般乘法運算。
  8. 如申請專利範圍第7項所述的神經網路處理單元,其中所述至少一個神經處理單元被配置成基於所述控制訊號而在所述神經網路處理單元的推斷模式中以所述第二模式運作。
  9. 如申請專利範圍第1項所述的神經網路處理單元,其中所述至少一個神經處理單元包括固定點型裝置。
  10. 一種系統晶片,包括: 一或多個半導體智慧財產核心;以及 神經網路處理單元,被配置成自所述一或多個智慧財產核心接收輸入資料,並基於所述輸入資料及多個權重來實行神經網路計算,所述神經網路處理單元包括多個神經處理單元,其中所述多個神經處理單元中的至少一個神經處理單元被配置成: 接收第一值及第二值並對所述第一值及所述第二值實行近似乘法運算,以及 基於所述近似乘法運算的輸出值而實行隨機捨入運算,以輸出關於所述近似乘法運算的所述輸出的後激活。
  11. 如申請專利範圍第10項所述的系統晶片,其中 所述神經網路處理單元更包括控制器,所述控制器被配置成控制所述近似乘法運算,且 所述至少一個神經處理單元被配置成基於所述控制器的所述控制而在所述神經網路處理單元的訓練模式中實行所述近似乘法運算。
  12. 如申請專利範圍第11項所述的系統晶片,其中所述至少一個神經處理單元被配置成基於所述控制器的所述控制而在所述神經網路處理單元的推斷模式中實行一般乘法運算。
  13. 如申請專利範圍第10項所述的系統晶片,其中所述神經網路處理單元更包括資料隨機存取記憶體,所述資料隨機存取記憶體被配置成在訓練模式中自所述一或多個智慧財產核心接收訓練資料並儲存所述訓練資料。
  14. 如申請專利範圍第13項所述的系統晶片,其中所述至少一個神經處理單元被配置成: 接收自所述資料隨機存取記憶體輸出的訓練資料以及接收所述多個神經處理單元中的一者的輸出值, 選擇所述訓練資料及所述輸出值中的一者,以及 輸出所述訓練資料及所述輸出值中的被選擇的所述一者作為所述第一值。
  15. 如申請專利範圍第10項所述的系統晶片,其中所述第二值包括所述多個權重中的至少一個權重。
  16. 如申請專利範圍第10項所述的系統晶片,其中所述至少一個神經處理單元被配置成: 對所述近似乘法運算的一或多個輸出值進行累加, 基於所述近似乘法運算的輸出值及所述累加的輸出值來實行加法運算,以及 對所述累加的所述輸出值實行所述隨機捨入運算。
  17. 一種神經網路處理單元,所述神經網路處理單元被配置成在訓練模式中基於訓練資料的一或多個實例以及基於多個權重來實行訓練操作,所述神經網路處理單元包括: 多個神經處理單元,所述多個神經處理單元中的至少一個神經處理單元被配置成: 接收第一值及第二值並在所述訓練模式中對所述第一值及所述第二值實行近似乘法運算, 基於所述近似乘法運算的輸出值以及基於第三值來實行加法運算, 對所述近似乘法運算的輸出值進行累加,以及 對基於所述累加而輸出的累加值實行隨機捨入運算,以輸出關於所述累加值的後激活。
  18. 如申請專利範圍第17項所述的神經網路處理單元,其中 所述第一值包括所述訓練資料的所述一或多個實例及所述多個神經處理單元中的一者的輸出值中的一者,且 所述第二值包括所述多個權重中的至少一個權重。
  19. 如申請專利範圍第17項所述的神經網路處理單元,其中所述第三值包括基於所述累加而輸出的所述累加值。
  20. 如申請專利範圍第17項所述的神經網路處理單元,其中所述訓練操作包括固定點型訓練操作。
TW108100877A 2018-01-09 2019-01-09 神經網路處理單元及系統晶片 TWI818944B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
??10-2018-0002776 2018-01-09
KR1020180002776A KR102637735B1 (ko) 2018-01-09 2018-01-09 근사 곱셈기를 구비하는 뉴럴 네트워크 처리 장치 및 이를 포함하는 시스템온 칩
KR10-2018-0002776 2018-01-09

Publications (2)

Publication Number Publication Date
TW201933194A true TW201933194A (zh) 2019-08-16
TWI818944B TWI818944B (zh) 2023-10-21

Family

ID=66995591

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108100877A TWI818944B (zh) 2018-01-09 2019-01-09 神經網路處理單元及系統晶片

Country Status (5)

Country Link
US (1) US20190212981A1 (zh)
KR (1) KR102637735B1 (zh)
CN (1) CN110020723A (zh)
DE (1) DE102019100292A1 (zh)
TW (1) TWI818944B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI723634B (zh) * 2019-10-01 2021-04-01 創鑫智慧股份有限公司 資料處理系統及其資料處理方法
TWI819645B (zh) * 2022-06-08 2023-10-21 緯創資通股份有限公司 更新神經網路模型的方法和電子裝置

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102098713B1 (ko) * 2018-01-29 2020-04-08 주식회사 유엑스팩토리 Cnn과 rnn이 하나의 고성능 저전력 칩으로 집적된 이기종 프로세서 구조
US11410040B2 (en) * 2018-10-23 2022-08-09 Qualcomm Incorporated Efficient dropout inference for bayesian deep learning
US12020149B2 (en) * 2019-10-28 2024-06-25 Micron Technology, Inc. Distributed neural network processing on an intelligent image sensor stack
US11507702B2 (en) * 2019-11-05 2022-11-22 Apple Inc. Secure mode switching in neural processor circuit
CN111832719A (zh) * 2020-07-28 2020-10-27 电子科技大学 一种定点量化的卷积神经网络加速器计算电路
CN112098845B (zh) * 2020-08-17 2021-08-31 四川大学 一种用于分布式储能系统的锂电池状态估计方法
CN112035398B (zh) * 2020-08-25 2023-10-24 青岛信芯微电子科技股份有限公司 一种系统级芯片SoC及适用于SoC的数据处理方法
US11256981B1 (en) * 2020-10-15 2022-02-22 Gigantor Technologies Inc. Unbounded parallel implementation of deep neural networks
US11099854B1 (en) * 2020-10-15 2021-08-24 Gigantor Technologies Inc. Pipelined operations in neural networks
WO2022126630A1 (zh) * 2020-12-18 2022-06-23 清华大学 可重构处理器及其上多种神经网络激活函数计算方法
JP2024514659A (ja) * 2021-04-15 2024-04-02 ジャイガンター・テクノロジーズ・インコーポレイテッド ニューラルネットワークにおけるパイプライン動作
KR102607328B1 (ko) * 2023-02-01 2023-11-29 (주) 한국주택정보 소규모 주택의 관리비 정산 방법 및 시스템

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7711765B2 (en) * 2006-02-17 2010-05-04 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus to perform multiply-and-accumulate operations
US9389863B2 (en) * 2014-02-10 2016-07-12 Via Alliance Semiconductor Co., Ltd. Processor that performs approximate computing instructions
US10049322B2 (en) * 2015-05-21 2018-08-14 Google Llc Prefetching weights for use in a neural network processor
US10192162B2 (en) * 2015-05-21 2019-01-29 Google Llc Vector computation unit in a neural network processor
US11244225B2 (en) * 2015-07-10 2022-02-08 Samsung Electronics Co., Ltd. Neural network processor configurable using macro instructions
CN106484362B (zh) * 2015-10-08 2020-06-12 上海兆芯集成电路有限公司 利用使用者指定二维定点算术运算的装置
US10353861B2 (en) * 2015-10-08 2019-07-16 Via Alliance Semiconductor Co., Ltd. Mechanism for communication between architectural program running on processor and non-architectural program running on execution unit of the processor regarding shared resource
CN107153522B (zh) * 2017-04-21 2020-10-02 东南大学 一种面向人工神经网络计算的动态精度可配近似乘法器
US10474458B2 (en) * 2017-04-28 2019-11-12 Intel Corporation Instructions and logic to perform floating-point and integer operations for machine learning
US11361215B2 (en) * 2017-11-29 2022-06-14 Anaflash Inc. Neural network circuits having non-volatile synapse arrays
EP3502978A1 (en) * 2017-12-22 2019-06-26 Siemens Healthcare GmbH Meta-learning system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI723634B (zh) * 2019-10-01 2021-04-01 創鑫智慧股份有限公司 資料處理系統及其資料處理方法
TWI819645B (zh) * 2022-06-08 2023-10-21 緯創資通股份有限公司 更新神經網路模型的方法和電子裝置

Also Published As

Publication number Publication date
US20190212981A1 (en) 2019-07-11
TWI818944B (zh) 2023-10-21
CN110020723A (zh) 2019-07-16
KR20190084705A (ko) 2019-07-17
DE102019100292A1 (de) 2019-07-11
KR102637735B1 (ko) 2024-02-19

Similar Documents

Publication Publication Date Title
TWI818944B (zh) 神經網路處理單元及系統晶片
JP7491808B2 (ja) 手持ち物体の姿勢追跡
US20210146531A1 (en) Guided uncertainty-aware policy optimization: combining model-free and model-based strategies for sample-efficient learning
Tang et al. LoPECS: A low-power edge computing system for real-time autonomous driving services
CN112389443A (zh) 使用一个或更多个神经网络进行视线检测
US10909842B2 (en) Use of self-driving vehicles and mapping for pedestrian defined crosswalks
KR20220079661A (ko) 촉각 파지 정책들의 강화 학습
US20190095212A1 (en) Neural network system and operating method of neural network system
US11170263B2 (en) Distributed batch normalization using estimates and rollback
US20220067512A1 (en) Fine-grained per-vector scaling for neural network quantization
CN114004329A (zh) 物体交接的机器学习控制
CN115479604A (zh) 神经网络路径规划
US20230153510A1 (en) Lithography simulation using a neural network
CN114556424A (zh) 使用一个或更多个神经网络的姿态确定
US20220067530A1 (en) Fine-grained per-vector scaling for neural network quantization
US20230237342A1 (en) Adaptive lookahead for planning and learning
US11119507B2 (en) Hardware accelerator for online estimation
US20220075842A1 (en) Processor and system for automatic fusion of matrix multiplication and reduction operations
US20220391781A1 (en) Architecture-agnostic federated learning system
CN114519415A (zh) 计算数据压缩参数
US20220398283A1 (en) Method for fast and better tree search for reinforcement learning
Vink et al. Caffe barista: Brewing caffe with fpgas in the training loop
US20220044101A1 (en) Collaborative sensor data processing by deep learning accelerators with integrated random access memory
CN115104288A (zh) 使用客户端托管的神经网络的行为建模
US11720417B2 (en) Distributed inferencing using deep learning accelerators with integrated random access memory