TWI805820B - Neural processing system - Google Patents
Neural processing system Download PDFInfo
- Publication number
- TWI805820B TWI805820B TW108127870A TW108127870A TWI805820B TW I805820 B TWI805820 B TW I805820B TW 108127870 A TW108127870 A TW 108127870A TW 108127870 A TW108127870 A TW 108127870A TW I805820 B TWI805820 B TW I805820B
- Authority
- TW
- Taiwan
- Prior art keywords
- end module
- neural processing
- operation result
- processing unit
- data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/06—Clock generators producing several clock signals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Power Sources (AREA)
- Image Analysis (AREA)
- Electrotherapy Devices (AREA)
- Feedback Control In General (AREA)
- Hardware Redundancy (AREA)
Abstract
Description
本揭露涉及一種神經處理系統。The present disclosure relates to a neural processing system.
深度學習(deep learning)是指一種基於使用演算法集(algorithm set)的深度學習架構的運算類型,其試圖使用在層級結構(hierarchy)中具有多個處理級(processing level)的深度圖(deep graph)對輸入資料的高級抽象進行建模。一般來說,深度學習架構可包括多個神經元層級結構及參數。深度學習架構中的卷積神經網路(Convolutional Neural Network,CNN)被廣泛應用於許多人工智慧及機器學習應用中,例如影像分類、影像標題創建(image caption creation)、視覺問題回應以及自動化駕駛車輛中。Deep learning refers to a type of operation based on a deep learning architecture using an algorithm set that attempts to use a deep graph with multiple processing levels in a hierarchy. graph) to model a high-level abstraction of the input data. In general, a deep learning architecture may include multiple neuron hierarchies and parameters. The Convolutional Neural Network (CNN) in the deep learning architecture is widely used in many artificial intelligence and machine learning applications, such as image classification, image caption creation (image caption creation), visual question response, and autonomous vehicles middle.
由於CNN系統包括很多參數且需要進行很多例如用於影像分類的運算,因此CNN系統複雜度高。因此,為了實施CNN系統,硬體資源的成本成為問題,且硬體資源消耗的電量也成為問題。具體來說,在最近的移動系統(例如,移動通信裝置)中實施的CNN的情形中,需要能夠在具有低成本及低功耗的同時實施人工智慧的架構。Since the CNN system includes many parameters and needs to perform many operations, such as for image classification, the CNN system has high complexity. Therefore, in order to implement the CNN system, the cost of hardware resources becomes a problem, and the power consumed by the hardware resources also becomes a problem. Specifically, in the case of CNNs implemented in recent mobile systems (eg, mobile communication devices), an architecture capable of implementing artificial intelligence while having low cost and low power consumption is required.
本揭露的各個方面提供一種能夠在具有低成本及低功耗的同時實施人工智慧的神經網路系統。Various aspects of the present disclosure provide a neural network system capable of implementing artificial intelligence while having low cost and low power consumption.
然而,本揭露的各個方面並不受限於本文中所述的方面。通過參照以下給出的本揭露的詳細說明,本揭露的以上及其他方面將對本揭露所屬領域中的普通技術人員來說變得更顯而易見。However, aspects of the present disclosure are not limited to the aspects described herein. The above and other aspects of the present disclosure will become more apparent to those of ordinary skill in the art to which the present disclosure pertains by reference to the detailed description of the disclosure given below.
根據本揭露的一個方面,一種神經處理系統包括第一前端模組、第二前端模組、第一後端模組及第二後端模組。所述第一前端模組利用第一特徵圖及第一權重執行特徵提取運算,並輸出第一運算結果及第二運算結果。所述第二前端模組利用第二特徵圖及第二權重執行所述特徵提取運算,並輸出第三運算結果及第四運算結果。所述第一後端模組接收從所述第一前端模組提供的所述第一運算結果及通過第二橋接器從所述第二前端模組提供的所述第四運算結果的輸入,以總和所述第一運算結果與所述第四運算結果。所述第二後端模組接收從所述第二前端模組提供的所述第三運算結果及通過第一橋接器從所述第一前端模組提供的所述第二運算結果的輸入,以總和所述第三運算結果與所述第二運算結果。According to an aspect of the present disclosure, a neural processing system includes a first front-end module, a second front-end module, a first back-end module, and a second back-end module. The first front-end module performs a feature extraction operation by using the first feature map and the first weight, and outputs a first operation result and a second operation result. The second front-end module performs the feature extraction operation by using the second feature map and the second weight, and outputs a third operation result and a fourth operation result. The first back-end module receives input of the first calculation result provided from the first front-end module and the fourth calculation result provided from the second front-end module through a second bridge, and summing up the first operation result and the fourth operation result. The second back-end module receives the input of the third calculation result provided from the second front-end module and the second calculation result provided from the first front-end module through the first bridge, and summing up the third operation result and the second operation result.
根據本揭露的另一方面,一種神經處理系統包括第一神經處理單元、橋接器單元以及第二神經處理單元。所述第一神經處理單元包括第一前端模組及第一後端模組。所述橋接器單元電連接到所述第一神經處理單元。所述第二神經處理單元在與所述第一神經處理單元不同的時脈域中運作。所述第一前端模組將通過利用第一特徵圖及第一權重執行特徵提取運算而獲得的第一運算結果的一部分提供到所述第一後端模組。所述橋接器單元將在所述第二神經處理單元中執行的第二運算結果的一部分提供到所述第一後端模組。所述第一後端模組總和所述第一運算結果的所述一部分與所述第二運算結果的所述一部分。According to another aspect of the present disclosure, a neural processing system includes a first neural processing unit, a bridge unit, and a second neural processing unit. The first neural processing unit includes a first front-end module and a first back-end module. The bridge unit is electrically connected to the first neural processing unit. The second NPU operates in a different clock domain than the first NPU. The first front-end module provides a part of a first operation result obtained by performing a feature extraction operation using a first feature map and a first weight to the first back-end module. The bridge unit provides a part of the result of the second operation performed in the second neural processing unit to the first backend module. The first backend module sums the part of the first operation result and the part of the second operation result.
根據本揭露的另一方面,一種神經處理系統包括第一神經處理單元、第二神經處理單元以及工作負荷管理器。所述第一神經處理單元包括第一前端模組及第一後端模組。所述第二神經處理單元包括第二前端模組及第二後端模組。所述工作負荷管理器將用於執行特徵提取的資料中的第一資料分配到所述第一神經處理單元,並將所述資料中的第二資料分配到所述第二神經處理單元。所述第一前端模組利用第一特徵圖及第一權重對所述第一資料執行特徵提取運算,並輸出第一運算結果及第二運算結果。所述第二前端模組利用第二特徵圖及第二權重對所述第二資料執行所述特徵提取運算,並輸出第三運算結果及第四運算結果。所述第一後端模組總和所述第一運算結果與所述第四運算結果。所述第二後端模組總和所述第三運算結果與所述第二運算結果。According to another aspect of the present disclosure, a neural processing system includes a first neural processing unit, a second neural processing unit, and a workload manager. The first neural processing unit includes a first front-end module and a first back-end module. The second neural processing unit includes a second front-end module and a second back-end module. The workload manager distributes a first one of the data for performing feature extraction to the first neural processing unit, and distributes a second one of the data to the second neural processing unit. The first front-end module performs a feature extraction operation on the first data by using the first feature map and the first weight, and outputs a first operation result and a second operation result. The second front-end module performs the feature extraction operation on the second data by using the second feature map and the second weight, and outputs a third operation result and a fourth operation result. The first backend module sums the first operation result and the fourth operation result. The second backend module sums the third operation result and the second operation result.
圖1是示出根據本揭露的實施例的計算系統的示意圖。FIG. 1 is a schematic diagram illustrating a computing system according to an embodiment of the present disclosure.
參照圖1,根據本揭露的實施例的計算系統1包括神經處理系統10、時脈管理單元20(clock management unit,CMU)、處理器30以及記憶體40。神經處理系統10、處理器30以及記憶體40可通過匯流排90傳送及接收資料。神經處理系統10可為或可包括一個或多個神經網路處理器,所述神經網路處理器可例如通過執行指令並處理資料來實施卷積神經網路(CNN)。然而,本揭露並不僅限於此。也就是說,神經處理系統10可作為另外一種選擇由處理任意向量運算、矩陣運算等的處理器實施。神經處理系統10也可包括儲存在其中的指令,或可執行儲存在記憶體40中或動態地從外部源接收的指令。神經處理系統10也可包括在本文中所述的學習過程中動態更新的記憶體,以對學習內容進行更新從而動態更新新的學習。神經網路處理器的實例是圖形處理器(graphics processing unit,GPU),但可使用多於一個處理器(例如,多個圖形處理器)來實施神經處理系統10。因此,本文中使用的神經處理系統10至少包括神經網路處理器,但也可被視為包括功能上可分離但相互依賴的軟體模組、個別電路元件的功能上可分離但相互依賴的電路模組、每一模組和/或單元所特有的資料及記憶體、以及本文中所述的其他元件。同時,儘管在圖1中示出了神經處理系統10並參照圖1將神經處理系統10闡述為與時脈管理單元20、處理器30以及記憶體40分離,但由神經處理系統10實施的功能可部分地通過或使用時脈管理單元20、處理器30以及記憶體40的資源實施。Referring to FIG. 1 , a
另外,圖1中的計算系統1可以是包括一個或多個計算裝置的電腦系統,所述一個或多個計算裝置各自包括一個或多個處理器。計算系統1的處理器是有形的及非暫時性的。用語“非暫時性的”明確否認短暫特性,例如在任意時間任意地點僅暫時性地存在的載波或信號或其他形式的特性。處理器是製品和/或機器組件。用於實施圖1中的神經處理系統10或本文中的其他實施例的電腦系統的處理器被配置成執行軟體指令以實行如在本文中的各種實施例中所述的功能。電腦系統的處理器可以是通用處理器、專用積體電路(application specific integrated circuit,ASIC)的一部分、微處理器、微電腦、處理器晶片、控制器、微控制器、數位訊號處理器(digital signal processor,DSP)、狀態機、或可程式化的邏輯裝置。電腦系統的處理器也可以是包括可程式化閘陣列(programmable gate array,PGA)(例如,現場可程式化閘陣列(field programmable gate array,FPGA))的邏輯電路或包括分立門和/或電晶體邏輯的另一類型的電路。處理器也可以是中央處理器(central processing unit,CPU)、圖形處理器(GPU)或可以是所述兩者。另外,本文中所述的任一處理器可包括多個處理器、並行處理器或可包括所述兩者。多個處理器可包括在單個裝置或多個裝置中或耦合到單個裝置或多個裝置。Additionally,
實施圖1中的計算系統1的電腦系統可實施本文中所述的全部或部分方法。舉例來說,如本文中所述的例如特徵提取、求和及啟動等功能可由執行軟體指令的電腦系統通過本文中所述的一個或多個處理器來實施。A computer system implementing the
在本實施例中,神經處理系統10可實施和/或處理包括多個層(例如,特徵提取層及特徵分類層)的神經網路。此處,特徵提取層對應於神經網路的初始層,且可例如用於從輸入影像中提取例如邊緣及梯度等低級特徵。另一方面,特徵分類層對應於神經網路的第二級層(secondary layer),且可例如用於從輸入影像中提取例如人臉、眼睛、鼻子等更複雜及高級的特徵。解釋一下,特徵提取層可被視為在特徵分類層提取更複雜及高級的特徵之前提取低級特徵。特徵分類層對應于全連接層(fully-connected layer)。In this embodiment, the
為了從輸入影像中提取特徵,神經處理系統10可使用濾波器或內核(kernel)來計算輸入影像或特徵圖。舉例來說,神經處理系統10可使用卷積濾波器或卷積內核對輸入影像或特徵圖執行卷積運算。此外,神經處理系統10可利用可對應於特徵圖的權重來進行運算,所述權重是依具體實施方式的目的而確定的。To extract features from an input image, the
在本實施例中,應特別注意的是,神經處理系統10包括多個神經處理單元,所述多個神經處理單元包括第一神經處理單元100a及第二神經處理單元100b。第一神經處理單元100a及第二神經處理單元100b可通過如上所述的物理上分離的神經網路處理器實施,並/或通過由相同或不同物理上分離的神經網路處理器執行的邏輯上和/或功能上分離的軟體模組實施。為便於闡釋,在本實施例中,神經處理系統10被示出為包括第一神經處理單元100a及第二神經處理單元100b,但本揭露的範圍並不僅限於此。根據具體實施方式的目的,神經處理系統10可包括n(此處,n是為2或大於2的自然數)個神經處理單元。In this embodiment, it should be particularly noted that the
使用例如本文中所述的第一神經處理單元100a及第二神經處理單元100b等多個神經處理單元提供了若干實際機會來降低成本和/或功耗。Using multiple neural processing units such as the first
時脈管理單元20產生用於驅動神經處理系統10的第一時脈信號CLK1及第二時脈信號CLK2。時脈管理單元20向第一神經處理單元100a及第二神經處理單元100b中的每一者提供第一時脈信號CLK1及第二時脈信號CLK2。因此,第一神經處理單元100a根據第一時脈信號CLK1被驅動。第二神經處理單元100b根據第二時脈信號CLK2被驅動。如本文中所闡釋,針對例如第一神經處理單元100a及第二神經處理單元100b等不同的神經處理單元,可以降低功耗、增加功耗、降低處理速度或提高處理速度的方式選擇性地控制不同的時脈。The
在本揭露的一些實施例中,第一時脈信號CLK1及第二時脈信號CLK2的頻率可彼此不同。換句話說,第一神經處理單元100a在其中運作的時脈域可不同於第二神經處理單元100b在其中運作的時脈域。In some embodiments of the present disclosure, the frequencies of the first clock signal CLK1 and the second clock signal CLK2 may be different from each other. In other words, the clock domain in which the first
時脈管理單元20可根據需要控制第一時脈信號CLK1及第二時脈信號CLK2的每個頻率。此外,時脈管理單元20還可根據需要對第一時脈信號CLK1及第二時脈信號CLK2執行時脈閘控(clock gating)。The
處理器30是執行一般算數運算的處理器,所述一般算數運算與由神經處理系統10處理的人工智慧運算、向量運算、矩陣運算等運算不同。處理器30可包括例如中央處理器(CPU)、圖形處理器(GPU)等,但本揭露的範圍並不僅限於此。在本實施例中,處理器30通常可控制計算系統1。The
記憶體40可儲存在處理器30執行應用程式或控制計算系統1時使用的資料。記憶體40也可用於儲存用於神經處理系統10的資料,但神經處理系統10可包括其自身的記憶體以儲存指令及資料。記憶體40可以是例如動態隨機存取記憶體(Dynamic Random-Access Memory,DRAM),但本揭露的範圍並不僅限於此。在本實施例中,將由神經處理系統10利用例如CNN處理的影像資料可儲存在記憶體40中。The
圖2是示出根據本揭露的實施例的神經處理系統的方塊圖。FIG. 2 is a block diagram illustrating a neural processing system according to an embodiment of the present disclosure.
參照圖2,根據本揭露的實施例的神經處理系統10包括第一神經處理單元100a及第二神經處理單元100b。在第一神經處理單元100a與第二神經處理單元100b之間設置有橋接器單元110。如上所述,第一神經處理單元100a與第二神經處理單元100b可在物理上分離且在功能上分離。如在本文中所闡釋,例如在橋接器單元110中使用一個或多個橋接器會增強以降低功耗、增加功耗、降低處理速度或提高處理速度的方式選擇性地控制第一神經處理單元100a及第二神經處理單元100b的實際能力。Referring to FIG. 2 , the
首先,橋接器單元110包括第一橋接器111及第二橋接器112。第一橋接器111用於將由第一神經處理單元100a的運算產生的中間結果傳送到第二神經處理單元100b。第二橋接器112用於將由第二神經處理單元100b的運算產生的中間結果傳送到第一神經處理單元100a。Firstly, the
為此,第一神經處理單元100a與第二神經處理單元100b可在相互不同的時脈域中運作。在此種情況下,橋接器單元110可電連接到第一神經處理單元100a及在不同於第一神經處理單元100a的時脈域中運作的第二神經處理單元100b。For this reason, the first
因此,當第一神經處理單元100a與第二神經處理單元100b在相互不同的時脈域中運作時,橋接器單元110中所包括的第一橋接器111及第二橋接器112被實施為非同步橋接器以使得資料能夠在彼此不同的時脈域之間傳送。Therefore, when the first
在本實施例中,第一神經處理單元100a包括第一前端模組102a及第一後端模組104a。第二神經處理單元100b包括第二前端模組102b及第二後端模組104b。第一神經處理單元100a可對將由神經處理系統10處理的資料中的第一資料DATA1進行處理。第二神經處理單元100b可對將由神經處理系統10處理的資料中的第二資料DATA2進行處理。具體來說,第一前端模組102a利用第一特徵圖及第一權重對第一資料DATA1執行特徵提取運算,並輸出第一運算結果R11及第二運算結果R12。此外,第二前端模組102b利用第二特徵圖及第二權重對第二資料DATA2執行特徵提取運算,並輸出第三運算結果R21及第四運算結果R22。In this embodiment, the first
第一後端模組104a接收從第一前端模組102a提供的第一運算結果R11以及通過第二橋接器112從第二前端模組102b提供的第四運算結果R22。第一後端模組104a總和第一運算結果R11與第四運算結果R22。另一方面,第二後端模組104b接收從第二前端模組102b提供的第三運算結果R21以及通過第一橋接器111從第一前端模組102a提供的第二運算結果R12。第二後端模組104b總和第三運算結果R21與第二運算結果R12。The first back-
在本揭露的一些實施例中,第一前端模組102a及第一後端模組104a根據第一時脈信號CLK1被驅動,且第二前端模組102b及第二後端模組104b可根據頻率與第一時脈信號CLK1不同的第二時脈信號CLK2被驅動。也就是說,第一前端模組102a及第一後端模組104a可在不同於第二前端模組102b及第二後端模組104b的時脈域中運作。In some embodiments of the present disclosure, the first front-
另一方面,在本實施例中,第一後端模組104a可向第一前端模組102a提供第一回寫資料WB DATA1,且第二後端模組104b可向第二前端模組102b提供第二回寫資料WB DATA2。第一回寫資料WB DATA1及第二回寫資料WB DATA2被輸入到第一前端模組102a及第二前端模組102b中的每一者,以允許重複進行特徵提取運算。On the other hand, in this embodiment, the first back-
現在參照圖3,將闡述根據本揭露的實施例的神經處理系統10的更詳細的結構。Referring now to FIG. 3 , a more detailed structure of
圖3是示出根據本揭露的實施例的神經處理系統的方塊圖。FIG. 3 is a block diagram illustrating a neural processing system according to an embodiment of the present disclosure.
參照圖3,根據本揭露的實施例的神經處理系統10的第一神經處理單元100a中所包括的第一前端模組102a包括多個第一內部記憶體1021a及1022a、多個第一提取單元1023a及1024a、多個第一分派單元1025a及1026a以及第一MAC陣列1027a(乘法及累積陣列)。Referring to FIG. 3 , the first front-
第一內部記憶體1021a及1022a可儲存由第一前端模組102a用於進行資料DATA11及DATA12的特徵提取運算的第一特徵圖及第一權重。在本實施例中,第一內部記憶體1021a及1022a可實施為靜態隨機存取記憶體(Static Random-Access Memory,SRAM),但本揭露的範圍並不僅限於此。The first
第一提取單元1023a及1024a從第一內部記憶體1021a及1022a中的每一者提取第一特徵圖及第一權重,並將所述第一特徵圖及第一權重傳送到第一分派單元1025a及1026a。The
第一分派單元1025a及1026a針對每一通道將所提取的第一特徵圖及第一權重傳送到第一MAC陣列1027a。舉例來說,第一分派單元1025a及1026a例如針對k(此處,k是自然數)個通道中的每一者選擇權重及對應的特徵圖,並可將所述權重及對應的特徵圖傳送到第一MAC陣列1027a。The
第一MAC陣列1027a對從第一分派單元1025a及1026a傳送的資料執行乘法累積運算。舉例來說,第一MAC陣列1027a對用於k個通道中的每一者的資料執行乘法累積運算。此外,第一MAC陣列1027a輸出第一運算結果R11及第二運算結果R12。The
然後,如上所述,第一運算結果R11被提供到第一後端模組104a,且第二運算結果R12可通過第一橋接器111被提供到第二神經處理單元100b的第二後端模組104b。Then, as described above, the first operation result R11 is provided to the first back-
另一方面,根據本揭露的實施例的神經處理系統10的第一神經處理單元100a中所包括的第一後端模組104a包括第一求和單元1041a、第一啟動單元1043a以及第一回寫單元1045a。On the other hand, the
第一求和單元1041a對第一運算結果R11及第四運算結果R22執行求和運算以產生求和結果。此處,可通過第二橋接器112從第二神經處理單元100b的第二前端模組102b提供第四運算結果R22。The
第一啟動單元1043a可對求和運算的執行結果執行啟動運算以產生啟動結果。在本揭露的一些實施例中,啟動運算可包括使用啟動函數(例如,修正線性單元(rectified linear unit,ReLU)、S形(Sigmoid)函數及雙曲正切函數(tanh))的運算,但本揭露的範圍並不僅限於此。The
第一回寫單元1045a執行向第一前端模組102a提供啟動運算的執行結果的回寫運算。具體來說,第一回寫單元1045a可將啟動運算的執行結果儲存在第一內部記憶體1021a及1022a中。The first write-
另一方面,根據本揭露的實施例的神經處理系統10的第二神經處理單元100b中所包括的第二前端模組102b包括多個第二內部記憶體1021b及1022b、多個第二提取單元1023b及1024b、多個第二分派單元1025b及1026b以及第二MAC陣列1027b。On the other hand, the second front-
所述多個第二內部記憶體1021b及1022b可儲存由第二前端模組102b用於進行資料DATA21及DATA22的特徵提取運算的第二特徵圖及第二權重。在本實施例中,第二內部記憶體1021b及1022b可實施為SRAM,但本揭露的範圍並不僅限於此。The plurality of second
第二提取單元1023b及1024b從第二內部記憶體1021b及1022b中的每一者提取第二特徵圖及第二權重,並將所述第二特徵圖及第二權重傳送到第二分派單元1025b及1026b。The
第二分派單元1025b及1026b針對每一通道將所提取的第二特徵圖及第二權重傳送到第二MAC陣列1027b。舉例來說,第二分派單元1025b及1026b例如針對k(此處,k是自然數)個通道中的每一者選擇權重及對應的特徵圖,並可將所述權重及對應的特徵圖傳送到第二MAC陣列1027b。The
第二MAC陣列1027b對從第二分派單元1025b及1026b傳送的資料執行乘法累積運算。舉例來說,第二MAC陣列1027b對用於k個通道中的每一者的資料執行乘法累積運算。此外,第二MAC陣列1027b輸出第三運算結果R21及第四運算結果R22。The
然後,如上所述,第三運算結果R21被提供到第二後端模組104b,且第四運算結果R22可通過第二橋接器112被提供到第一神經處理單元100a的第一後端模組104a。Then, as described above, the third operation result R21 is provided to the second back-
另一方面,根據本揭露的實施例的神經處理系統10的第二神經處理單元100b中所包括的第二後端模組104b包括第二求和單元1041b、第二啟動單元1043b以及第二回寫單元1045b。On the other hand, the
第二求和單元1041b對第三運算結果R21及第二運算結果R12執行求和運算以產生求和結果。此處,可通過第一橋接器111從第一神經處理單元100a的第一前端模組102a提供第二運算結果R12。The
第二啟動單元1043b可對求和運算的執行結果執行啟動運算以產生執行結果。在本揭露的一些實施例中,啟動運算可包括使用啟動函數(例如,修正線性單元(ReLU)、S形(Sigmoid)函數及雙曲正切函數(tanh))的運算,但本揭露的範圍並不僅限於此。The
第二回寫單元1045b執行用於向第二前端模組102b提供啟動運算的執行結果的回寫運算。具體來說,第二回寫單元1045b可將啟動運算的執行結果儲存在第二內部記憶體1021b及1022b中。The second write-
圖4及圖5是示出根據本揭露的實施例的神經處理系統的前端模組的方塊圖。4 and 5 are block diagrams illustrating front-end modules of a neural processing system according to an embodiment of the disclosure.
參照圖4,第一內部記憶體1021a及1022a中的每一者儲存用於對資料DATA11及資料DATA12進行特徵提取運算的第一特徵圖及第一權重。第一提取單元1023a及1024a從第一內部記憶體1021a及1022a中的每一者提取第一特徵圖及第一權重,並將所述第一特徵圖及第一權重傳送到第一分派單元1025a及1026a。Referring to FIG. 4, each of the first
第一分派單元1025a針對資料DATA11的六個通道中的每一者選擇權重及對應的特徵圖,並將所述權重及對應的特徵圖傳送到第一MAC陣列1027a。第一分派單元1026a針對資料DATA12的六個通道中的每一者選擇權重及對應的特徵圖,並將所述權重及對應的特徵圖傳送到第一MAC陣列1027a。The
第一MAC陣列1027a對從第一分派單元1025a及1026a針對六個通道中的每一者傳送的資料執行乘法累積運算。The
在本實施例中,從第一MAC陣列1027a輸出的運算結果中的第一運算結果R11對應於針對第一通道、第三通道及第六通道的乘法累積運算的結果。第二運算結果R12對應於針對第二通道、第四通道及第五通道的乘法累積運算的結果。In this embodiment, the first operation result R11 among the operation results output from the
第一運算結果R11被提供到第一後端模組104a的第一求和單元1041a,且第二運算結果R12被提供到第一橋接器111以傳送到在其他時脈域中運作的第二神經處理單元100b。另一方面,第一後端模組104a的第一求和單元1041a通過第二橋接器112接收在其他時脈域中運作的第二神經處理單元100b的運算結果,例如,第四運算結果R22。The first operation result R11 is provided to the
接下來,參照圖5,第二內部記憶體1021b及1022b中的每一者儲存用於對資料DATA21及資料DATA22進行特徵提取運算的第二特徵圖及第二權重。第二提取單元1023b及1024b從第二內部記憶體1021b及1022b中的每一者提取第二特徵圖及第二權重,並將所述第二特徵圖及第二權重傳送到第二分派單元1025b及1026b。Next, referring to FIG. 5 , each of the second
第二分派單元1025b針對資料DATA21的六個通道中的每一者選擇權重及對應的特徵圖,並將所選擇的權重及對應的特徵圖傳送到第二MAC陣列1027b。第二分派單元1026b針對資料DATA22的六個通道中的每一者選擇權重及對應的特徵圖,並將所選擇的權重及對應的特徵圖傳送到第二MAC陣列1027b。The
第二MAC陣列1027b對從第二分派單元1025b及1026b針對六個通道中的每一者傳送的資料執行乘法累積運算。The
在本實施例中,從第二MAC陣列1027b輸出的運算結果中的第三運算結果R21對應於對第二通道、第四通道及第五通道的乘法累積運算的結果。第四運算結果R22對應於對第一通道、第三通道及第六通道的乘法累積運算的結果。In this embodiment, the third operation result R21 among the operation results output from the
第三運算結果R21被提供到第二後端模組104b的第二求和單元1041b,且第四運算結果R22被提供到第二橋接器112以傳送到在其他時脈域中運作的第一神經處理單元100a。另一方面,第二後端模組104b的第二求和單元1041b通過第一橋接器111接收在其他時脈域中運作的第一神經處理單元100a的運算結果,例如,第二運算結果R12。The third operation result R21 is provided to the
圖6是示出根據本揭露的實施例的神經處理系統的後端模組的方塊圖。FIG. 6 is a block diagram illustrating backend modules of a neural processing system according to an embodiment of the disclosure.
參照圖6,第一求和單元1041a針對每一通道對第一運算結果R11及第四運算結果R22執行求和運算以產生求和結果。在圖4及圖5中,由於總第一運算結果R11包括六個通道中的三個通道的值,且第四運算結果R22也包括三個通道的值,因此對其中每一者的求和是針對三個通道執行的。Referring to FIG. 6 , the
隨後,第一啟動單元1043a對每一通道的求和運算的執行結果執行啟動運算以產生啟動結果,且第一回寫單元1045a針對每一通道執行用於向第一前端模組102a提供啟動運算的執行結果的回寫運算。舉例來說,第一回寫單元1045a可將啟動運算的執行結果中對應於第一通道的資料回寫到第一內部記憶體1021a中,且可將對應於第二通道及第三通道的資料回寫到第一內部記憶體1022a中。Subsequently, the first start-up
另一方面,第二求和單元1041b也針對每一通道對第三運算結果R21及第二運算結果R12執行求和運算以產生求和結果。在圖4及圖5中,由於總第三運算結果R21包括六個通道中的三個通道的值,且第二運算結果R12也包括三個通道的值,因此對其中每一者的求和是針對三個通道執行的。On the other hand, the
隨後,第二啟動單元1043b對每一通道的求和運算的執行結果執行啟動運算以產生啟動結果。第二回寫單元1045b針對每一通道執行用於向第二前端模組102b提供啟動運算的執行結果的回寫運算。舉例來說,第二回寫單元1045b可將啟動運算的執行結果中對應於第一通道的資料回寫到第二內部記憶體1021b中,且可將對應於第二通道及第三通道的資料回寫到第二內部記憶體1022b中。Subsequently, the
圖7是示出根據本揭露的另一實施例的計算系統的示意圖,且圖8是示出根據本揭露的另一實施例的神經處理系統的方塊圖。FIG. 7 is a schematic diagram illustrating a computing system according to another embodiment of the present disclosure, and FIG. 8 is a block diagram illustrating a neural processing system according to another embodiment of the present disclosure.
參照圖7及圖8,不同於圖1所示的實施例,根據本實施例的計算系統2的神經處理系統10還包括工作負荷管理器120。如在本文中所闡釋,使用例如工作負荷管理器120等工作負荷管理器會增強以降低功耗、增加功耗、降低處理速度或提高處理速度的方式選擇性地控制多個神經處理單元中的個別神經處理單元的實際能力。Referring to FIG. 7 and FIG. 8 , different from the embodiment shown in FIG. 1 , the
工作負荷管理器120將用於執行特徵提取的資料DATA中的第一資料DATA1分配到第一神經處理單元100a。工作負荷管理器120將資料DATA中的第二資料DATA2分配到第二神經處理單元100b。具體來說,工作負荷管理器120將用於執行特徵提取的資料DATA中的第一資料DATA1分配到第一前端模組102a,並將資料DATA中的第二資料DATA2分配到第二前端模組102b。The
因此,第一前端模組102a利用第一特徵圖及第一權重對第一資料DATA1執行特徵提取運算。第二前端模組102b可利用第二特徵圖及第二權重對第二資料DATA2執行特徵提取運算。Therefore, the first front-
具體來說,在本揭露的一些實施例中,第一資料DATA1的量與第二資料DATA2的量可彼此不同。Specifically, in some embodiments of the present disclosure, the amount of the first data DATA1 and the amount of the second data DATA2 may be different from each other.
時脈管理單元20控制第一時脈信號CLK1及第二時脈信號CLK2中的至少一者的頻率,且可根據工作負荷管理器120的分配操作控制第一神經處理單元100a及第二神經處理單元100b的性能及功率。舉例來說,時脈管理單元20可根據工作負荷管理器120的分配操作對第一前端模組102a、第一後端模組104a、第二前端模組102b及第二後端模組104b中的至少一者執行時脈閘控。The
如此一來,根據本揭露的各種實施例的神經處理系統10可控制其中的多個第一神經處理單元100a及第二神經處理單元100b的時脈信號來控制性能或功耗。舉例來說,為了改善第一神經處理單元100a的性能並降低第二神經處理單元100b的功耗,時脈管理單元20可增大用於驅動第一神經處理單元100a的第一時脈信號CLK1的頻率且可減小用於驅動第二神經處理單元100b的第二時脈信號CLK2的頻率。作為另一實例,在其中僅使用第一神經處理單元100a且不使用第二神經處理單元100b的具體情況下,可通過控制用於驅動第二神經處理單元100b的第二時脈信號CLK2而執行時脈閘控。因此,根據包括根據本揭露的各種實施例的神經處理系統10的計算系統,可在降低成本及功耗的同時實現人工智慧。In this way, the
圖9是示出根據本揭露的再一實施例的計算系統的示意圖,且圖10是示出根據本揭露的另一實施例的神經處理系統的方塊圖。FIG. 9 is a schematic diagram illustrating a computing system according to yet another embodiment of the present disclosure, and FIG. 10 is a block diagram illustrating a neural processing system according to another embodiment of the present disclosure.
參照圖9及圖10,不同於圖7及圖8所示的實施例,根據本實施例的計算系統3還包括電源管理單元50(power management unit,PMU)。如在本文中所闡釋,使用例如電源管理單元50等電源管理單元會增強以降低功耗、增加功耗、降低處理速度或提高處理速度的方式選擇性地控制多個神經處理單元中的個別神經處理單元的功率的實際能力。Referring to FIG. 9 and FIG. 10 , different from the embodiments shown in FIG. 7 and FIG. 8 , the computing system 3 according to this embodiment further includes a power management unit 50 (power management unit, PMU). As explained herein, the use of a power management unit such as
如上所述,工作負荷管理器120將資料DATA中用於執行特徵提取的第一資料DATA1分配到第一前端模組102a,並將資料DATA中的第二資料DATA2分配到第二前端模組102b。As described above, the
因此,第一前端模組102a可利用第一特徵圖及第一權重對第一資料DATA1執行特徵提取運算。第二前端模組102b可利用第二特徵圖及第二權重對第二資料DATA2執行特徵提取運算。Therefore, the first front-
電源管理單元50向第一神經處理單元100a提供第一電源閘控信號PG1,並向第二神經處理單元100b提供第二電源閘控信號PG2。具體來說,電源管理單元50可向第一前端模組102a及第一後端模組104a提供第一電源閘控信號PG1。電源管理單元50可向第二前端模組102b及第二後端模組104b提供第二電源閘控信號PG2。The
電源管理單元50可控制第一電源閘控信號PG1及第二電源閘控信號PG2的至少一個值,藉此回應於工作負荷管理器120的分配操作執行對第一神經處理單元100a及第二神經處理單元100b的電源控制。舉例來說,電源管理單元50可對第一前端模組102a、第一後端模組104a、第二前端模組102b及第二後端模組104b中的至少一者執行電源閘控。The
如此一來,根據本揭露的各種實施例的神經處理系統10可根據需要對第一神經處理單元100a及第二神經處理單元100b的至少一部分執行電源閘控,藉此降低神經處理系統10的功耗。因此,根據包括根據本揭露的各種實施例的神經處理系統10的計算系統,可在降低成本及功耗的同時實現人工智慧。In this way, the
圖11是示出根據本揭露的另一實施例的計算系統的示意圖。FIG. 11 is a schematic diagram illustrating a computing system according to another embodiment of the present disclosure.
參照圖11,根據本實施例的計算系統4包括第一神經處理單元100a、第二神經處理單元100b、第三神經處理單元100c以及第四神經處理單元100d。為便於闡釋,在本實施例中將神經處理系統10示出為包括第一神經處理單元100a、第二神經處理單元100b、第三神經處理單元100c以及第四神經處理單元100d,但本揭露的範圍並不僅限於此。Referring to FIG. 11 , the
時脈管理單元20產生用於驅動神經處理系統10的第一時脈信號CLK1、第二時脈信號CLK2、第三時脈信號CLK3及第四時脈信號CLK4。時脈管理單元20向第一神經處理單元100a、第二神經處理單元100b、第三神經處理單元100c以及第四神經處理單元100d中的每一者提供時脈信號。因此,第一神經處理單元100a根據第一時脈信號CLK1被驅動。第二神經處理單元100b根據第二時脈信號CLK2被驅動。第三神經處理單元100c根據第三時脈信號CLK3被驅動。第四神經處理單元100d根據第四時脈信號CLK4被驅動。The
在本揭露的一些實施例中,第一時脈信號CLK1、第二時脈信號CLK2、第三時脈信號CLK3及第四時脈信號CLK4的頻率可能並不是都相同的。換句話說,第一神經處理單元100a、第二神經處理單元100b、第三神經處理單元100c以及第四神經處理單元100d在其中運作的時脈域可能並不是都相同的。In some embodiments of the present disclosure, the frequencies of the first clock signal CLK1 , the second clock signal CLK2 , the third clock signal CLK3 and the fourth clock signal CLK4 may not all be the same. In other words, the clock domains in which the first
時脈管理單元20可根據需要控制第一時脈信號CLK1、第二時脈信號CLK2、第三時脈信號CLK3及第四時脈信號CLK4的每個頻率。此外,時脈管理單元20也可根據需要對第一時脈信號CLK1、第二時脈信號CLK2、第三時脈信號CLK3及第四時脈信號CLK4中的至少一者執行時脈閘控。The
圖12及圖13是示出根據本揭露的再一實施例的神經處理系統的方塊圖。12 and 13 are block diagrams illustrating a neural processing system according to yet another embodiment of the present disclosure.
參照圖12,根據本實施例的神經處理系統10包括第一神經處理單元100a到第四神經處理單元100d。在第一神經處理單元100a到第四神經處理單元100d之間設置有一個或多個橋接器1112、1113及1114。Referring to FIG. 12, the
在本實施例中,第三神經處理單元100c包括第三前端模組102c及第三後端模組104c。第四神經處理單元100d包括第四前端模組102d及第四後端模組104d。第三神經處理單元100c可對將由神經處理系統10處理的資料中的第三資料DATA3進行處理。第四神經處理單元100d可對將由神經處理系統10處理的資料中的第四資料DATA4進行處理。In this embodiment, the third
橋接器1112將由第一神經處理單元100a的運算產生的中間結果R12傳送到第二神經處理單元100b。橋接器1113將由第一神經處理單元100a的運算產生的中間結果R13傳送到第三神經處理單元100c。此外,橋接器1114將由第一神經處理單元100a的運算產生的中間結果R14傳送到第四神經處理單元100d。The
為此,第一神經處理單元100a與第二神經處理單元100b可在相互不同的時脈域中運作。在此種情況下,橋接器1112可電連接到第一神經處理單元100a及在不同於第一神經處理單元100a的時脈域中運作的第二神經處理單元100b。類似地,橋接器1113可電連接到第一神經處理單元100a及在不同於第一神經處理單元100a的時脈域中運作的第三神經處理單元100c。橋接器1114可電連接到第一神經處理單元100a及在不同於第一神經處理單元100a的時脈域中運作的第四神經處理單元100d。For this reason, the first
因此,橋接器1112、1113及1114被實施為非同步橋接器以使得能夠在不同的時脈域之間進行資料傳送。Therefore, bridges 1112, 1113, and 1114 are implemented as asynchronous bridges to enable data transfer between different clock domains.
隨後,參照圖13,在第一神經處理單元100a與第四神經處理單元100d之間設置有一個或多個橋接器1122、1123及1124。Subsequently, referring to FIG. 13 , one or
橋接器1122將由第二神經處理單元100b的運算產生的中間結果R22傳送到第一神經處理單元100a。橋接器1123將由第三神經處理單元100c的運算產生的中間結果R33傳送到第一神經處理單元100a。此外,橋接器1124將由第四神經處理單元100d的運算產生的中間結果R44傳送到第一神經處理單元100a。The
為此,第一神經處理單元100a與第二神經處理單元100b可在相互不同的時脈域中運作。在此種情況下,橋接器1122可電連接到第一神經處理單元100a及在不同於第一神經處理單元100a的時脈域中運作的第二神經處理單元100b。類似地,橋接器1123可電連接到第一神經處理單元100a及在不同於第一神經處理單元100a的時脈域中運作的第三神經處理單元100c。橋接器1124可電連接到第一神經處理單元100a及在不同於第一神經處理單元100a的時脈域中運作的第四神經處理單元100d。For this reason, the first
因此,橋接器1122、1123及1124被實施為非同步橋接器以使得能夠在不同的時脈域之間進行資料傳送。Therefore, bridges 1122, 1123, and 1124 are implemented as asynchronous bridges to enable data transfer between different clock domains.
在圖12及圖13所示的實施例中,已闡述了在不同於第一神經處理單元100a的第二神經處理單元100b、第三神經處理單元100c及第四神經處理單元100d之間的橋接器,但本揭露的範圍並不僅限於此,且此內容也可類似地應用在不同於第二神經處理單元100b的第三神經處理單元100c與第四神經處理單元100d之間、以及第三神經處理單元100c與第四神經處理單元100d之間。In the embodiments shown in FIGS. 12 and 13 , bridging between the
圖14是示出根據本揭露的再一實施例的計算系統的方塊圖。FIG. 14 is a block diagram illustrating a computing system according to yet another embodiment of the present disclosure.
參照圖14,根據本實施例的計算系統5的神經處理系統10還包括工作負荷管理器120。類似於對圖7及圖8的說明,工作負荷管理器120可將用於執行特徵提取的資料DATA分佈及分配到第一神經處理單元100a、第二神經處理單元100b、第三神經處理單元100c以及第四神經處理單元100d。此外,從第一神經處理單元100a到第四神經處理單元100d分佈的資料量可能並不是都相同的。Referring to FIG. 14 , the
時脈管理單元20可以與參照圖7及圖8所闡釋的方式相同的方式控制第一時脈信號CLK1到第四時脈信號CLK4中的至少一者的頻率,以回應於工作負荷管理器120的分配操作控制第一神經處理單元100a到第四神經處理單元100d的性能及功率。The
如此一來,根據本揭露的各種實施例的神經處理系統10可控制其中的第一神經處理單元100a、第二神經處理單元100b、第三神經處理單元100c及第四神經處理單元100d的時脈信號,藉此控制性能或功耗。舉例來說,為了改善第一神經處理單元100a、第二神經處理單元100b及第三神經處理單元100c的性能並降低第四神經處理單元100d的功耗,時脈管理單元20可增大用於驅動第一神經處理單元100a到第三神經處理單元100c的第一時脈信號CLK1、第二時脈信號CLK2及第三時脈信號CLK3的頻率且可減小用於驅動第四神經處理單元100d的第四時脈信號CLK4的頻率。作為再一實例,當僅使用第一神經處理單元100a及第二神經處理單元100b且不使用第三神經處理單元100c及第四神經處理單元100d時,可通過控制用於驅動第三神經處理單元100c及第四神經處理單元100d的第三時脈信號CLK3及第四時脈信號CLK4而執行時脈閘控。因此,根據包括根據本揭露的各種實施例的神經處理系統10的計算系統,可在降低成本及功耗的同時實現人工智慧。In this way, the
圖15是示出根據本揭露的再一實施例的計算系統的方塊圖。FIG. 15 is a block diagram illustrating a computing system according to yet another embodiment of the present disclosure.
參照圖15,不同於圖14所示的實施例,根據本實施例的計算系統6的神經處理系統10還包括電源管理單元50(PMU)。Referring to FIG. 15 , different from the embodiment shown in FIG. 14 , the
如上所述,工作負荷管理器120將用於執行特徵提取的資料DATA分配及分佈到第一神經處理單元100a、第二神經處理單元100b、第三神經處理單元100c以及第四神經處理單元100d。As mentioned above, the
電源管理單元50向第一神經處理單元100a、第二神經處理單元100b、第三神經處理單元100c以及第四神經處理單元100d提供第一電源閘控信號PG1、第二電源閘控信號PG2、第三電源閘控信號PG3以及第四電源閘控信號PG4。The
電源管理單元50可以與參照圖9及圖10所述相同的方式控制第一電源閘控信號PG1、第二電源閘控信號PG2、第三電源閘控信號PG3以及第四電源閘控信號PG4的至少一個值,藉此回應於工作負荷管理器120的分配操作執行第一神經處理單元100a、第二神經處理單元100b、第三神經處理單元100c以及第四神經處理單元100d的電源控制。The
如此一來,根據本揭露的各種實施例的神經處理系統10可通過視需要對第一神經處理單元100a、第二神經處理單元100b、第三神經處理單元100c以及第四神經處理單元100d中的一者或多者執行電源閘控而降低神經處理系統10的功耗。因此,根據包括根據本揭露的各種實施例的神經處理系統10的計算系統,可在降低成本及功耗的同時實現人工智慧。In this way, the
圖16是示出根據本揭露的再一實施例的計算系統的方塊圖。FIG. 16 is a block diagram illustrating a computing system according to yet another embodiment of the present disclosure.
參照圖16,根據本實施例的計算系統7可以是包括神經處理系統10、時脈管理單元20、處理器30、記憶體40、電源管理單元50、儲存器60、顯示器70及照相機80的計算系統。神經處理系統10、時脈管理單元20、處理器30、記憶體40、電源管理單元50、儲存器60、顯示器70及照相機80可通過匯流排90傳送及接收資料。Referring to FIG. 16 , the
在本發明的一些實施例中,計算系統7可以是移動計算系統。舉例來說,計算系統7可以是包括智慧手機、平板電腦、膝上電腦等在內的計算系統。當然,本揭露的範圍並不僅限於此。In some embodiments of the invention,
如到目前為止所闡釋的根據本揭露的各種實施例的神經處理系統10能夠使用具有低成本及低功率的CNN對通過照相機80產生的影像資料或儲存在儲存器60中的影像資料執行特徵提取運算。As explained so far, the
如上所述,神經處理系統10採用包括多個能夠個別控制時脈及功率的神經處理單元的架構,藉此在降低成本及功耗的同時忠實地實施及執行人工智慧。As described above, the
通過對所作詳細說明進行總結,所屬領域中的技術人員將認識到,在不實質上背離本揭露的原則的情況下可對優選實施例作出諸多更改及修改。因此,本發明所揭露的優選實施例僅用於一般及說明性意義且不用於限制目的。From the summary of the detailed description, those skilled in the art will recognize that many changes and modifications can be made to the preferred embodiment without materially departing from the principles of this disclosure. Therefore, the disclosed preferred embodiments of the present invention are used in a general and descriptive sense only and not for limiting purposes.
1、2、3、4、5、6、7:計算系統 10:神經處理系統 20:時脈管理單元(CMU) 30:處理器 40:記憶體 50:電源管理單元(PMU) 60:儲存器 70:顯示器 80:照相機 90:匯流排 100a:第一神經處理單元 100b:第二神經處理單元 100c:第三神經處理單元 100d:第四神經處理單元 102a:第一前端模組 102b:第二前端模組 102c:第三前端模組 102d:第四前端模組 104a:第一後端模組 104b:第二後端模組 104c:第三後端模組 104d:第四後端模組 110:橋接器單元 111:第一橋接器 112:第二橋接器 120:工作負荷管理器 1021a、1022a:第一內部記憶體 1021b、1022b:第二內部記憶體 1023a、1024a:第一提取單元 1023b、1024b:第二提取單元 1025a、1026a:第一分派單元 1025b、1026b:第二分派單元 1027a:第一MAC陣列 1027b:第二MAC陣列 1041a:第一求和單元 1041b:第二求和單元 1043a:第一啟動單元 1043b:第二啟動單元 1045a:第一回寫單元 1045b:第二回寫單元 1112、1113、1114、1122、1123、1124:橋接器 CLK1:第一時脈信號 CLK2:第二時脈信號 CLK3:第三時脈信號 CLK4:第四時脈信號 DATA、DATA3、DATA4、DATA11、DATA12、DATA21、DATA22:資料 DATA1:第一資料 DATA2:第二資料 DATA3:第三資料 DATA4:第四資料 PG1:第一電源閘控信號 PG2:第二電源閘控信號 PG3:第三電源閘控信號 PG4:第四電源閘控信號 R11:第一運算結果 R12:第二運算結果/中間結果 R13、R14:中間結果 R21:第三運算結果 R22:第四運算結果/中間結果 R33、R44:中間結果 WB DATA1:第一回寫資料 WB DATA2:第二回寫資料。1, 2, 3, 4, 5, 6, 7: computing systems 10: Neural Processing System 20: Clock Management Unit (CMU) 30: Processor 40: Memory 50: Power Management Unit (PMU) 60: Storage 70: display 80: camera 90: busbar 100a: first neural processing unit 100b: second neural processing unit 100c: The third neural processing unit 100d: Fourth neural processing unit 102a: The first front-end module 102b: Second front-end module 102c: The third front-end module 102d: The fourth front-end module 104a: The first backend module 104b: Second backend module 104c: The third backend module 104d: The fourth backend module 110: Bridge unit 111: First bridge 112: Second bridge 120:Workload Manager 1021a, 1022a: first internal memory 1021b, 1022b: the second internal memory 1023a, 1024a: the first extraction unit 1023b, 1024b: the second extraction unit 1025a, 1026a: the first dispatch unit 1025b, 1026b: the second dispatch unit 1027a: first MAC array 1027b: second MAC array 1041a: first summation unit 1041b: second summation unit 1043a: first activation unit 1043b: second activation unit 1045a: first write-back unit 1045b: the second write-back unit 1112, 1113, 1114, 1122, 1123, 1124: bridge CLK1: the first clock signal CLK2: Second clock signal CLK3: The third clock signal CLK4: The fourth clock signal DATA, DATA3, DATA4, DATA11, DATA12, DATA21, DATA22: data DATA1: the first data DATA2: Second data DATA3: the third data DATA4: the fourth data PG1: The first power gating signal PG2: Second power gating signal PG3: The third power gate control signal PG4: The fourth power gate control signal R11: The result of the first operation R12: second operation result/intermediate result R13, R14: intermediate results R21: The result of the third operation R22: Fourth operation result/intermediate result R33, R44: intermediate results WB DATA1: write data for the first time WB DATA2: Write data for the second time.
通過參照附圖詳細闡述本揭露的示例性實施例,本揭露的以上及其它方面及特徵將變得更顯而易見,在附圖中: 圖1是示出根據本揭露的實施例的計算系統的示意圖。 圖2是示出根據本揭露的實施例的神經處理系統的方塊圖。 圖3是示出根據本揭露的實施例的神經處理系統的方塊圖。 圖4及圖5是示出根據本揭露的實施例的神經處理系統的前端模組的方塊圖。 圖6是示出根據本揭露的實施例的神經處理系統的後端模組的方塊圖。 圖7是示出根據本揭露的另一實施例的計算系統的示意圖。 圖8是示出根據本揭露的另一實施例的神經處理系統的方塊圖。 圖9是示出根據本揭露的再一實施例的計算系統的示意圖。 圖10是示出根據本揭露的再一實施例的神經處理系統的方塊圖。 圖11是示出根據本揭露的再一實施例的計算系統的示意圖。 圖12及圖13是示出根據本揭露的再一實施例的神經處理系統的方塊圖。 圖14是示出根據本揭露的再一實施例的計算系統的方塊圖。 圖15是示出根據本揭露的再一實施例的計算系統的方塊圖。 圖16是示出根據本揭露的再一實施例的計算系統的方塊圖。The above and other aspects and features of the present disclosure will become more apparent by elaborating exemplary embodiments of the present disclosure in detail with reference to the accompanying drawings, in which: FIG. 1 is a schematic diagram illustrating a computing system according to an embodiment of the present disclosure. FIG. 2 is a block diagram illustrating a neural processing system according to an embodiment of the present disclosure. FIG. 3 is a block diagram illustrating a neural processing system according to an embodiment of the present disclosure. 4 and 5 are block diagrams illustrating front-end modules of a neural processing system according to an embodiment of the disclosure. FIG. 6 is a block diagram illustrating backend modules of a neural processing system according to an embodiment of the disclosure. FIG. 7 is a schematic diagram illustrating a computing system according to another embodiment of the present disclosure. FIG. 8 is a block diagram illustrating a neural processing system according to another embodiment of the present disclosure. FIG. 9 is a schematic diagram illustrating a computing system according to yet another embodiment of the present disclosure. FIG. 10 is a block diagram illustrating a neural processing system according to yet another embodiment of the present disclosure. FIG. 11 is a schematic diagram illustrating a computing system according to yet another embodiment of the present disclosure. 12 and 13 are block diagrams illustrating a neural processing system according to yet another embodiment of the present disclosure. FIG. 14 is a block diagram illustrating a computing system according to yet another embodiment of the present disclosure. FIG. 15 is a block diagram illustrating a computing system according to yet another embodiment of the present disclosure. FIG. 16 is a block diagram illustrating a computing system according to yet another embodiment of the present disclosure.
1:計算系統 1: Computing system
10:神經處理系統 10: Neural Processing System
20:時脈管理單元(CMU) 20: Clock Management Unit (CMU)
30:處理器 30: Processor
40:記憶體 40: Memory
90:匯流排 90: busbar
100a:第一神經處理單元 100a: first neural processing unit
100b:第二神經處理單元 100b: second neural processing unit
CLK1:第一時脈信號 CLK1: the first clock signal
CLK2:第二時脈信號 CLK2: Second clock signal
Claims (20)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180106917A KR20200029661A (en) | 2018-09-07 | 2018-09-07 | Neural processing system |
KR10-2018-0106917 | 2018-09-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202011279A TW202011279A (en) | 2020-03-16 |
TWI805820B true TWI805820B (en) | 2023-06-21 |
Family
ID=69718889
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108127870A TWI805820B (en) | 2018-09-07 | 2019-08-06 | Neural processing system |
Country Status (4)
Country | Link |
---|---|
US (2) | US11443183B2 (en) |
KR (1) | KR20200029661A (en) |
CN (1) | CN110889499A (en) |
TW (1) | TWI805820B (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102506622B1 (en) * | 2022-04-01 | 2023-03-07 | 리벨리온 주식회사 | Method for measuring performance of neural processing device and Device for measuring performance |
KR20230142336A (en) | 2022-04-01 | 2023-10-11 | 리벨리온 주식회사 | Method for measuring performance of neural processing device and Device for measuring performance |
US11954587B2 (en) * | 2023-08-30 | 2024-04-09 | Deepx Co., Ltd. | System-on-chip for artificial neural network being operated according to dynamically calibrated phase of clock signal |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201640422A (en) * | 2014-12-19 | 2016-11-16 | 英特爾股份有限公司 | Method and apparatus for distributed and cooperative computation in artificial neural networks |
US20170011288A1 (en) * | 2015-07-10 | 2017-01-12 | Samsung Electronics Co., Ltd. | Neural network processor |
TW201734894A (en) * | 2014-07-22 | 2017-10-01 | 英特爾股份有限公司 | Weight-shifting processor, method and system |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5627943A (en) | 1993-02-17 | 1997-05-06 | Kawasaki Steel Corporation | Neural network processor including systolic array of two-dimensional layers |
US5799134A (en) | 1995-03-13 | 1998-08-25 | Industrial Technology Research Institute | One dimensional systolic array architecture for neural network |
US9477925B2 (en) | 2012-11-20 | 2016-10-25 | Microsoft Technology Licensing, Llc | Deep neural networks training for speech and pattern recognition |
KR102084547B1 (en) | 2013-01-18 | 2020-03-05 | 삼성전자주식회사 | Nonvolatile memory device, memory system having the same, external power controlling method thereof |
US10331997B2 (en) | 2014-05-07 | 2019-06-25 | Seagate Technology Llc | Adaptive configuration of a neural network device |
CN106575379B (en) | 2014-09-09 | 2019-07-23 | 英特尔公司 | Improved fixed point integer implementation for neural network |
US10373050B2 (en) | 2015-05-08 | 2019-08-06 | Qualcomm Incorporated | Fixed point neural network based on floating point neural network quantization |
CN105892989B (en) | 2016-03-28 | 2017-04-12 | 中国科学院计算技术研究所 | Neural network accelerator and operational method thereof |
US10650303B2 (en) | 2017-02-14 | 2020-05-12 | Google Llc | Implementing neural networks in fixed point arithmetic computing systems |
-
2018
- 2018-09-07 KR KR1020180106917A patent/KR20200029661A/en not_active Application Discontinuation
-
2019
- 2019-07-10 US US16/507,995 patent/US11443183B2/en active Active
- 2019-08-06 TW TW108127870A patent/TWI805820B/en active
- 2019-08-19 CN CN201910764175.2A patent/CN110889499A/en active Pending
-
2022
- 2022-08-25 US US17/895,190 patent/US11625606B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201734894A (en) * | 2014-07-22 | 2017-10-01 | 英特爾股份有限公司 | Weight-shifting processor, method and system |
TW201640422A (en) * | 2014-12-19 | 2016-11-16 | 英特爾股份有限公司 | Method and apparatus for distributed and cooperative computation in artificial neural networks |
US20170011288A1 (en) * | 2015-07-10 | 2017-01-12 | Samsung Electronics Co., Ltd. | Neural network processor |
Also Published As
Publication number | Publication date |
---|---|
US11443183B2 (en) | 2022-09-13 |
KR20200029661A (en) | 2020-03-19 |
US20220405593A1 (en) | 2022-12-22 |
US20200082263A1 (en) | 2020-03-12 |
TW202011279A (en) | 2020-03-16 |
US11625606B2 (en) | 2023-04-11 |
CN110889499A (en) | 2020-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110678843B (en) | Dynamic partitioning of workload in deep neural network modules to reduce power consumption | |
JP7474586B2 (en) | Tensor Computation Data Flow Accelerator Semiconductor Circuit | |
TWI805820B (en) | Neural processing system | |
Motamedi et al. | Design space exploration of FPGA-based deep convolutional neural networks | |
JP2022070955A (en) | Scheduling neural network processing | |
JP2022046552A (en) | Neural network compute tile | |
KR20190084705A (en) | Neural network processing unit including approximate multiplier and system on chip including the same | |
US20210357732A1 (en) | Neural network accelerator hardware-specific division of inference into groups of layers | |
JP2018073414A (en) | Method of controlling work flow in distributed computation system comprising processor and memory units | |
Pullini et al. | A heterogeneous multicore system on chip for energy efficient brain inspired computing | |
WO2020163315A1 (en) | Systems and methods for artificial intelligence with a flexible hardware processing framework | |
CN111105023B (en) | Data stream reconstruction method and reconfigurable data stream processor | |
CN109753319B (en) | Device for releasing dynamic link library and related product | |
WO2020253383A1 (en) | Streaming data processing method based on many-core processor, and computing device | |
US11847507B1 (en) | DMA synchronization using alternating semaphores | |
CN111047022A (en) | Computing device and related product | |
Chen et al. | An efficient accelerator for multiple convolutions from the sparsity perspective | |
EP4206999A1 (en) | Artificial intelligence core, artificial intelligence core system, and loading/storing method of artificial intelligence core system | |
Bruel et al. | Generalize or die: Operating systems support for memristor-based accelerators | |
CN116484909A (en) | Vector engine processing method and device for artificial intelligent chip | |
US11221979B1 (en) | Synchronization of DMA transfers for large number of queues | |
Ozaki et al. | Cool mega-array: A highly energy efficient reconfigurable accelerator | |
Aghapour et al. | Integrated ARM big. Little-Mali pipeline for high-throughput CNN inference | |
US20230195836A1 (en) | One-dimensional computational unit for an integrated circuit | |
CN114595813B (en) | Heterogeneous acceleration processor and data computing method |