TWI731373B - 晶片、基於其的資料處理方法及計算設備 - Google Patents
晶片、基於其的資料處理方法及計算設備 Download PDFInfo
- Publication number
- TWI731373B TWI731373B TW108125249A TW108125249A TWI731373B TW I731373 B TWI731373 B TW I731373B TW 108125249 A TW108125249 A TW 108125249A TW 108125249 A TW108125249 A TW 108125249A TW I731373 B TWI731373 B TW I731373B
- Authority
- TW
- Taiwan
- Prior art keywords
- chip
- calculation
- data
- neural network
- processed
- Prior art date
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 30
- 238000004364 calculation method Methods 0.000 claims abstract description 149
- 238000012545 processing Methods 0.000 claims abstract description 50
- 238000000034 method Methods 0.000 claims abstract description 28
- 238000013528 artificial neural network Methods 0.000 claims description 87
- 210000002569 neuron Anatomy 0.000 claims description 44
- 230000006870 function Effects 0.000 claims description 14
- 108010001267 Protein Subunits Proteins 0.000 claims 2
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000012546 transfer Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 210000002364 input neuron Anatomy 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 210000004205 output neuron Anatomy 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
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/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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3871—Asynchronous instruction pipeline, e.g. using handshake signals between stages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
-
- 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/044—Recurrent networks, e.g. Hopfield networks
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Neurology (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Advance Control (AREA)
- Stored Programmes (AREA)
Abstract
本說明書實施例提供一種晶片及基於其的資料處理方法,所述晶片包括嵌入式CPU和多個運算子單元,用於執行計算任務,所述方法在晶片端執行,包括:獲取待處理資料;以及透過由所述嵌入式CPU執行以下步驟而進行所述計算任務的計算:配置所述多個運算子單元,以使得所述多個運算子單元與該計算任務中包括的不同類型的計算分別對應,以及,基於所述待處理資料,透過呼叫所述多個運算子單元,進行所述計算任務的計算,以獲取處理結果。
Description
本說明書實施例涉及資料處理技術領域,更具體地,涉及一種晶片及基於其的資料處理方法。
隨著AI技術的發展,其對計算量的需求越來越大,特別是作為線上服務的神經網路預測對處理時延有著相當苛刻的要求,在該情況下,伺服器CPU上跑的軟體通常滿足不了這種要求。現有技術中,透過硬體加速的方法來縮短這種處理時延,在該情況中,需要硬體具備一定的靈活性,以滿足神經網路結構的升級以及待處理資料長短的變化。當程式遇到一大段計算量時,它會把待處理的資料透過PCIE匯流排發給晶片,晶片算完之後再透過PCIE匯流排將結果傳回程式記憶體。晶片上的運算單元通常被設計成較通用的,透過伺服器CPU下發的控制參數來指定具體怎麼運算,比如透過一個通用的卷積運算單元來處理各種卷積操作。但如果一段程式包含有多次晶片運算單元的呼叫,伺服器CPU和晶片之間資料交互的開銷就會非常大。目前通用的做法是在晶片上把各個運算單元如卷積的控制設計成格式化的二進位指令,然後把神經網路的各層呼叫
映射到這些指令上、並集合成一個序列,再下放到晶片上,晶片上的邏輯解析每一條指令並啟動相應的運算單元。
因此,需要一種更有效的基於晶片的資料處理方案。
本說明書實施例旨在提供一種更有效的基於晶片的資料處理方案,以解決現有技術中的不足。
為實現上述目的,本說明書一個態樣提供一種基於晶片的資料處理方法,所述晶片包括嵌入式CPU和多個運算子單元,用於執行計算任務,所述方法在晶片端執行,包括:獲取待處理資料;以及透過由所述嵌入式CPU執行以下步驟而進行所述計算任務的計算:配置所述多個運算子單元,以使得所述多個運算子單元與該計算任務中包括的不同類型的計算分別對應,以及,基於所述待處理資料,透過呼叫所述多個運算子單元,進行所述計算任務的計算,以獲取處理結果。
本說明書另一態樣提供一種基於晶片的資料處理方法,所述晶片包括嵌入式CPU和多個運算子單元,用於執行神經網路的預測計算,所述方法在晶片端執行,包括:獲取待處理資料;以及基於所述待處理資料,執行所述神經網路中的每一層的計算,以獲取處理結果,其中,透過由所述嵌入式CPU執行以下步驟而進行所述神經網路的每一層的計算:配置所述多個運算子單元,以使得所述多個運算子單元與該層中包括的不同類型的計算分別對應,以及,基於神經網路上一層中各個神經元的值,透過呼叫所述多個運算子單元,執行該層中每個神經元處的計算,以獲取該層中每個神經元的值。
在一個實施例中,在所述資料處理方法中,所述晶片與伺服器連接。
在一個實施例中,在所述資料處理方法中,所述待處理資料透過所述伺服器傳送至所述晶片。
在一個實施例中,在所述資料處理方法中,所述嵌入式CPU透過運行基於程式的彙編指令而執行所述步驟,其中,所述程式由所述伺服器傳送至所述晶片。
在一個實施例中,在所述資料處理方法中,所述程式為C語言程式。
在一個實施例中,在所述資料處理方法中,呼叫所述多個運算子單元包括,透過C語言程式中的函數呼叫,呼叫所述多個運算子單元。
在一個實施例中,在所述資料處理方法中,所述晶片還包括DMA模組,所述方法還包括,在獲取所述處理結果之後,透過所述嵌入式CPU控制所述DMA模組,以將所述處理結果寫入所述伺服器的記憶體中。
在一個實施例中,在所述資料處理方法中,呼叫所述多個運算子單元包括,非同步地呼叫所述多個運算子單元。
在一個實施例中,在所述資料處理方法中,配置所述多個運算子單元包括,對所述待處理資料的長度進行判斷,並基於所述長度獲取發送給各個運算子單元的參數。
在一個實施例中,在所述資料處理方法中,所述晶片用於執行多種神經網路的預測計算,其中,獲取待處理資料包括,獲取待處理資料及其對應的神經網路的類型,其中,基於所述待處理資料,執行所述神經網路中的每一層的計算,以獲取處理結果包括,基於所述待處理資料及其對應的神經網路的類型,執行該類型的神經網路中的每一層的計算,以獲取處理結果。
本說明書另一態樣提供一種晶片,用於執行計算任務,所述晶片包括:
多個運算子單元,以及
嵌入式CPU,配置為,透過執行以下步驟而進行所述計算任務的計算:配置所述多個運算子單元,以使得所述多個運算子單元與該計算任務中包括的不同類型的計算分別對應,以及,基於從所述晶片的外部輸入的待處理資料,透過呼叫所述多個運算子單元,進行所述計算任務的計算,以獲取處理的結果。
本說明書另一態樣提供一種晶片,用於執行神經網路的預測計算,所述晶片包括:
多個運算子單元,以及
嵌入式CPU,配置為,基於從所述晶片的外部輸入的待處理資料,執行所述神經網路中的每一層的計算,以獲取處理結果,其中,透過由所述嵌入式CPU執行以下步驟而進行所述神經網路的每一層的計算:配置所述多個運算子單元,以使得所述多個運算子單元與該層中包括的不同類型的計算分別對應,以及,基於神經網路上一層中各個神經元的值,透過呼叫所述多個運算子單元,執行該層中每個神經元處的計算,以獲取該層中每個神經元的值。
在一個實施例中,所述晶片與伺服器連接。
在一個實施例中,在所述晶片中,所述待處理資料透過所述伺服器傳送至所述晶片。
在一個實施例中,在所述晶片中,所述嵌入式CPU透過運行基於程式的彙編指令而執行所述步驟,其中,所述程式由所述伺服器傳送至所述晶片。
在一個實施例中,在所述晶片中,所述程式為C語言程式。
在一個實施例中,在所述晶片中,所述嵌入式CPU還配置為,透過C語言中的函數呼叫,呼叫所述多個運算子單元。
在一個實施例中,在所述晶片中,所述晶片還包括DMA模組,所述嵌入式CPU還配置為,在獲取所述處理結果之後,透過控制所述DMA模組,以將所述處理結果寫入所述伺服器的記憶體中。
在一個實施例中,在所述晶片中,所述嵌入式CPU還配置為,非同步地呼叫所述多個運算子單元。
在一個實施例中,在所述晶片中,所述嵌入式CPU還配置為,對所述待處理資料的長度進行判斷,並基於所述長度獲取發送給各個運算子單元的參數。
在一個實施例中,在所述晶片中,所述晶片為ASIC晶片或FPGA晶片。
在一個實施例中,所述晶片用於執行多種神經網路的預測計算,其中,所述嵌入式CPU還配置為,基於從所述晶片的外部輸入的待處理資料及其對應的神經網路的類型,執行所述類型的神經網路中的每一層的計算,以獲取處理結果。
本說明書另一態樣提供一種計算設備,包括記憶體和處理器,其特徵在於,所述記憶體中儲存有可執行程式碼,所述處理器執行所述可執行程式碼時,實現上述任一項資料處理方法。
透過根據本說明書實施例的基於晶片的資料處理方案,因為引入了嵌入式CPU,天然在晶片內部就可以完成較細運算子的控制;C語言函數呼叫的方式又大大節省了程式指令的空間,並且,嵌入式CPU上C程式天然就可以完美地進行控制類型的操作,比如各種if/for/while等嵌套;嵌入式CPU上的C程式可以對輸入資料的長度做判斷,並靈活產生計算過程中下發給各個運算子單元的參數;另外,當所述神經網路結構升級時,可透過伺服器向晶片傳入新的程式,以進行更新的神經網路的預測計算。
下面將結合圖式描述本說明書實施例。
圖1示出根據本說明書實施例的資料處理系統的100的示意圖。如圖1所示,系統100包括伺服器11和晶片12,其例如透過PCIE匯流排連接。伺服器11中包括伺服器CPU111和記憶體112。晶片12中包括嵌入式CPU121、多個運算子單元122、以及DMA模組123。該晶片12用於執行計算任務,例如神經網路的預測計算。伺服器11在需要透過呼叫晶片12以進行例如神經網路的預測計算時,其例如透過伺服器CPU111將該神經網路預測的待處理資料經PCIE匯流排從記憶體傳到晶片中。晶片12中的嵌入式CPU121透過運行程式調度各個運算子單元122基於所述待處理資料完成神經網路每一層的計算,從而獲取最終的處理結果,即神經網路的預測結果。在獲取處理結果之後,由嵌入式CPU121控制DMA模組經PCIE匯流排將該處理結果傳回伺服器記憶體112。
圖2示出根據本說明書實施例的一種基於晶片的資料處理方法,所述晶片包括嵌入式CPU和多個運算子單元,用於執行計算任務,所述方法在晶片端執行,包括:
在步驟S202,獲取待處理資料;以及
在步驟S204,透過由所述嵌入式CPU執行以下步驟而進行所述計算任務的計算:配置所述多個運算子單元,以使得所述多個運算子單元與該計算任務中包括的不同類型的計算分別對應,以及,基於所述待處理資料,透過呼叫所述多個運算子單元,進行所述計算任務的計算,以獲取處理結果。
首先,在步驟S202,獲取待處理資料。在一個實施例中,所述晶片與伺服器連接。所述伺服器在呼叫該晶片進行計算時,將該待處理資料傳送至該晶片。可以理解,該晶片不限於與伺服器連接,例如,其可以為獨立的用於進行任務計算的硬體,並透過自身的輸入模組獲取待處理資料。
在一個實施例中,該晶片位於PCIE板卡上,為ASIC晶片或FPGA晶片,所述伺服器透過伺服器CPU經PCIE匯流排將所述待處理資料傳送到晶片。在一個實施例中,所述伺服器透過其中運行的應用程式將所述待處理資料傳送到晶片。在一個實施例中,所述晶片可同時接收多個應用程式傳送的待處理資料,所述晶片透過嵌入式CPU進行對所述多個待處理資料的收集。
在步驟S204,透過由所述嵌入式CPU執行以下步驟而進行所述計算任務的計算:配置所述多個運算子單元,以使得所述多個運算子單元與該計算任務中包括的不同類型的計算分別對應,以及,基於所述待處理資料,透過呼叫所述多個運算子單元,進行所述計算任務的計算,以獲取處理結果。
嵌入式CPU透過運行基於程式的彙編指令而進行所述計算。所述程式例如為C語言程式。所述晶片例如透過其中的SOC(系統單晶片編譯器),將所述程式翻譯成組合語言程式。其中,所述程式由所述伺服器傳送至所述晶片。
在進行計算時,所述嵌入式CPU首先透過運行程式配置所述多個運算子單元,以使得所述多個運算子單元與該計算任務中包括的不同類型的計算分別對應,所述不同類型的計算例如包括:矩陣相乘的計算、向量相加的計算、非線性運算等等。然後,嵌入式CPU透過繼續運行程式以執行具體的計算過程,其中的計算基於所述待處理資料進行的,並且,在計算中遇到各種類型的計算時,透過呼叫各個相應的運算子單元完成該計算。在複雜的計算任務中,可能需要經過多輪的計算,才能獲取最終的處理結果,其中,在每輪計算中,都透過預設的程式重新配置運算子單元,以適用於該輪的計算需要。
在一個實施例中,所述計算任務例如為神經網路的預測計算。在該情況中,所述嵌入式CPU基於所述待處理資料,執行所述神經網路中的每一層的計算,以獲取處理結果,即神經網路的預測結果。其中,透過由所述嵌入式CPU執行以下步驟而進行所述神經網路的每一層的計算:配置所述多個運算子單元,以使得所述多個運算子單元與該層中包括的不同類型的計算分別對應,以及,基於神經網路上一層中各個神經元的值,透過呼叫所述多個運算子單元,執行該層中每個神經元處的計算,以獲取該層中每個神經元的值。
也就是說,對於神經網路的每一層,嵌入式CPU都會重新配置運算子單元,並依次進行該層中各個神經元處的計算。從C語言程式的角度看,程式會進行兩層的循環。在外層循環中,程式循環n次,其中n是神經網路除輸入層之外的層數,以對神經網路除輸入層的每一層進行計算。而在內層循環中,即在對每層的計算中,程式循環m次,其中m是神經元的個數,以對每層中的每個神經元進行計算。
圖3示出了神經網路的示意圖,如圖3中所示,左側的層為輸入層,其包括(1)和(2)兩個輸入神經元,中間的層為隱藏層,其包括(3)、(4)和(5)三個神經元,右側的層為輸出層,其包括輸出神經元(6)。其中,在中間層中,在神經元(3)處,其針對上一層神經元的參數分別為W13
、W23
,在神經元(4)處,參數包括W14
、W24
,在神經元(5)處,參數包括W15
、W25
,以及在神經元(6)處,參數包括W36
、W46
和W56
。
在進行對圖3所示的神經網路的計算中,首先,對中間層進行計算,在該層的計算中,例如包括矩陣相乘的計算、向量相加的計算等,從而,嵌入式CPU可配置與矩陣相乘和向量相加分別對應的兩個運算子單元,並透過程式循環對神經元(3)、(4)和(5)分別進行計算。例如,在對神經元(3)的計算中,可將從輸入層獲取的待處理資料和神經元(3)處的參數(W13
、W23
)輸入上述兩個運算子單元中,以獲得該神經元(3)處的中間結果,其可視為神經元(3)處的值。
在完成對中間層的計算(即,獲取神經元(3)、(4)和(5)各自的值)之後,嵌入式CPU在外層循環中進入下一次循環,即,對輸出層進行計算,在對輸出層的計算中例如包括sigmoid函數計算,因此,嵌入式CPU基於運行的程式配置執行sigmoid函數計算的運算子單元,並對神經元(6)進行計算。在對神經元(6)的計算中,嵌入式CPU基於運行的程式呼叫運算子單元,並將神經元(3)、(4)和(5)各自的值和神經元(6)的參數輸入該運算子單元,從而獲得神經元(6)的值,該值即為該神經網路的預測值。
從上述對圖3所示的神經網路的計算實例中可以得出,在對每個神經元的計算中,透過呼叫相應的運算子單元進行具體的計算,從而得到該神經元處的值。其中,當該神經元位於神經網路的隱藏層時,透過計算獲取的該神經元處的值為中間結果,將該中間結果儲存在晶片中或晶片所在的PCIE卡中的ddr記憶體中,以備後續的計算使用。當該神經元位於神經網路的輸出層時,透過計算獲取的該神經元處的值即為該神經網路的預測值,則透過嵌入式CPU配置DMA描述符,以控制DMA模組將該預測值寫入伺服器的記憶體中。
根據本說明書實施例的該資料處理方法尤其適用於神經網路的預測計算。對於晶片中神經網路的計算,目前通用的做法是在晶片上把各個運算單元如卷積的控制設計成格式化的二進位指令,然後把神經網路的各層呼叫映射到這些指令上、並集合成一個序列,再下放到晶片上,晶片上的邏輯解析每一條指令並啟動相應的運算單元。然而,該方式適用於較大運算子的運算單元,對於較細運算子的控制,用這種指令序列的方式效率不高、且指令序列的量會非常多;對於控制類型的操作,指令序列的方式幾乎難以完成(比如用指令序列做多個循環的嵌套就非常困難);對於輸入資料長度適配的問題,比如每次CNN網路的輸入圖像大小不一樣或者每次LSTM網路輸入的語音長度不一致,這會讓指令序列無所適從;如果每次輸入資料長度不一樣都重新下載指令序列,這個過程引起的延時對業務來說太長了。
而在本說明書實施例的基於晶片的資料處理方案中,因為引入了嵌入式CPU,天然在晶片內部就可以完成較細運算子的控制;C語言函數呼叫的方式又大大節省了程式指令的空間,並且,嵌入式CPU上C程式天然就可以完美地進行控制類型的操作,比如各種if/for/while等嵌套;嵌入式CPU上的C程式可以對輸入資料的長度做判斷,並靈活產生計算過程中下發給各個運算子單元的參數;另外,當所述神經網路結構升級時,可透過伺服器向晶片傳入新的程式,以進行更新的神經網路的預測計算。
在一個實施例中,所述嵌入式CPU還配置為,透過C語言中的函數呼叫,呼叫所述多個運算子單元。
在一個實施例中,所述晶片還包括DMA模組,所述嵌入式CPU還配置為,在獲取所述處理結果之後,透過控制所述DMA模組,以將所述處理結果寫入所述伺服器的記憶體中。
在一個實施例中,所述嵌入式CPU還配置為,非同步地呼叫所述多個運算子單元。透過非同步地呼叫多個運算子單元,從而可以盡可能地讓多個運算子單元並行地工作,從而提高硬體的利用率。
在一個實施例中,所述嵌入式CPU還配置為,對待處理資料或神經網路各層的輸入資料的長度進行判斷,並基於所述長度獲取發送給各個運算子單元的參數。
在一個實施例中,所述晶片用於執行多種神經網路的預測計算,其中,獲取待處理資料包括,獲取待處理資料及其對應的神經網路的類型,其中,基於所述待處理資料,執行所述神經網路中的每一層的計算,以獲取處理結果包括,基於所述待處理資料及其對應的神經網路的類型,執行該類型的神經網路中的每一層的計算,以獲取處理結果。所述多種神經網路例如包括cnn、dnn、rnn等,所述晶片例如透過獲取指示神經網路類型的控制資訊(如神經網路標識等),從而獲取神經網路的類型。晶片在獲取神經網路類型之後,會在嵌入式CPU中基於神經網路的類型選定與該類型對應的程式並運行該程式,從而執行該類型的神經網路的計算。
圖4示出根據本說明書實施例的一種晶片400,用於執行計算任務,所述晶片包括:
多個運算子單元41,以及
嵌入式CPU42,配置為,透過執行以下步驟而進行所述計算任務的計算:配置所述多個運算子單元,以使得所述多個運算子單元與該計算任務中包括的不同類型的計算分別對應,以及,基於從所述晶片的外部輸入的待處理資料,透過呼叫所述多個運算子單元,進行所述計算任務的計算,以獲取處理的結果。
在一個實施例中,所述計算任務為神經網路的預測計算,所述嵌入式CPU42配置為,基於從所述晶片的外部輸入的待處理資料,執行所述神經網路中的每一層的計算,以獲取處理結果,其中,透過由所述嵌入式CPU執行以下步驟而進行所述神經網路的每一層的計算:配置所述多個運算子單元,以使得所述多個運算子單元與該層中包括的不同類型的計算分別對應,以及,基於神經網路上一層中各個神經元的值,透過呼叫所述多個運算子單元,執行該層中每個神經元處的計算,以獲取該層中每個神經元的值。
在一個實施例中,所述晶片與伺服器連接。
在一個實施例中,在所述晶片中,所述待處理資料透過所述伺服器傳送至所述晶片。
在一個實施例中,在所述晶片中,所述嵌入式CPU透過運行基於程式的彙編指令而執行所述步驟,其中,所述程式由所述伺服器傳送至所述晶片。
在一個實施例中,在所述晶片中,所述程式為C語言程式。
在一個實施例中,在所述晶片中,所述嵌入式CPU還配置為,透過C語言中的函數呼叫,呼叫所述多個運算子單元。
在一個實施例中,在所述晶片中,所述晶片還包括DMA模組43,所述嵌入式CPU還配置為,在獲取所述處理結果之後,透過控制所述DMA模組,以將所述處理結果寫入所述伺服器的記憶體中。
在一個實施例中,在所述晶片中,所述嵌入式CPU還配置為,非同步地呼叫所述多個運算子單元。
在一個實施例中,在所述晶片中,所述嵌入式CPU還配置為,對所述待處理資料的長度進行判斷,並基於所述長度獲取發送給各個運算子單元的參數。
在一個實施例中,在所述晶片中,所述晶片為ASIC晶片或FPGA晶片。
在一個實施例中,所述晶片用於執行多種神經網路的預測計算,其中,所述嵌入式CPU還配置為,基於從所述晶片的外部輸入的待處理資料及其對應的神經網路的類型,執行所述類型的神經網路中的每一層的計算,以獲取處理結果。
本說明書另一態樣提供一種計算設備,包括記憶體和處理器,其特徵在於,所述記憶體中儲存有可執行程式碼,所述處理器執行所述可執行程式碼時,實現圖2所示的資料處理方法。
透過根據本說明書實施例的基於晶片的資料處理方案,因為引入了嵌入式CPU,天然在晶片內部就可以完成較細運算子的控制;C語言函數呼叫的方式又大大節省了程式指令的空間,並且,嵌入式CPU上C程式天然就可以完美地進行控制類型的操作,比如各種if/for/while等嵌套;嵌入式CPU上的C程式可以對輸入資料的長度做判斷,並靈活產生計算過程中下發給各個運算子單元的參數;另外,當所述神經網路結構升級時,可透過伺服器向晶片傳入新的程式,以進行更新的神經網路的預測計算。
本說明書中的各個實施例均採用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於系統實施例而言,由於其基本相似於方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
上述對本說明書特定實施例進行了描述。其它實施例在所附申請專利範圍的範圍內。在一些情況下,在申請專利範圍中記載的動作或步驟可以按照不同於實施例中的順序來執行並且仍然可以實現期望的結果。另外,在圖式中描繪的過程不一定要求示出的特定順序或者連續順序才能實現期望的結果。在某些實施方式中,多工處理和平行處理也是可以的或者可能是有利的。
本領域普通技術人員應該還可以進一步意識到,結合本文中所公開的實施例描述的各示例的單元及演算法步驟,能夠以電子硬體、電腦軟體或者二者的結合來實現,為了清楚地說明硬體和軟體的可互換性,在上述說明中已經按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬體還是軟體方式來執軌道,取決於技術方案的特定應用和設計約束條件。本領域普通技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本申請案的範圍。
結合本文中所公開的實施例描述的方法或演算法的步驟可以用硬體、處理器執軌道的軟體模組,或者二者的結合來實施。軟體模組可以置於隨機記憶體(RAM)、記憶體、唯讀記憶體(ROM)、電可編程ROM、電可擦除可編程ROM、暫存器、硬碟、抽取式磁碟、CD-ROM、或技術領域內所公知的任意其它形式的儲存媒體中。
以上所述的具體實施方式,對本發明的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本發明的具體實施方式而已,並不用於限定本發明的保護範圍,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。
11:伺服器
12:晶片
41:運算子單元
42:嵌入式CPU
43:DMA模組
100:系統
111:伺服器CPU
112:記憶體
121:嵌入式CPU
122:運算子單元
123:DMA模組
400:晶片
透過結合圖式描述本說明書實施例,可以使得本說明書實施例更加清楚:
圖1示出根據本說明書實施例的資料處理系統的100的示意圖;
圖2示出根據本說明書實施例的一種基於晶片的資料處理方法;
圖3示出了神經網路的示意圖;以及
圖4示出根據本說明書實施例的一種晶片400。
Claims (24)
- 一種基於晶片的資料處理方法,所述晶片包括嵌入式CPU和多個運算子單元,用於執行計算任務,所述方法在晶片端執行,包括:獲取待處理資料;以及透過由所述嵌入式CPU執行以下步驟而進行所述計算任務的計算:配置所述多個運算子單元,以使得所述多個運算子單元與該計算任務中包括的不同類型的計算分別對應,以及,基於所述待處理資料,透過呼叫所述多個運算子單元,進行所述計算任務的計算,以獲取處理結果。
- 一種基於晶片的資料處理方法,所述晶片包括嵌入式CPU和多個運算子單元,用於執行神經網路的預測計算,所述方法在晶片端執行,包括:獲取待處理資料;以及基於所述待處理資料,執行所述神經網路中的每一層的計算,以獲取處理結果,其中,透過由所述嵌入式CPU執行以下步驟而進行所述神經網路的每一層的計算:配置所述多個運算子單元,以使得所述多個運算子單元與該層中包括的不同類型的計算分別對應,以及,基於所述神經網路上一層中各個神經元的值,透過呼叫所述多個運算子單元,執行該層中每個神經元處的計算,以獲取該層中每個神經元的值。
- 根據申請專利範圍第1或2項所述的資料處理方法,其中,所述晶片與伺服器連接。
- 根據申請專利範圍第3項所述的資料處理方法,其中,所述待處理資料透過所述伺服器傳送至所述晶片。
- 根據申請專利範圍第3項所述的資料處理方法,其中,所述嵌入式CPU透過運行基於程式的彙編指令而執行所述步驟,其中,所述程式由所述伺服器傳送至所述晶片。
- 根據申請專利範圍第5項所述的資料處理方法,其中,所述程式為C語言程式。
- 根據申請專利範圍第6項所述的資料處理方法,其中,呼叫所述多個運算子單元包括,透過C語言程式中的函數呼叫,呼叫所述多個運算子單元。
- 根據申請專利範圍第1或2項所述的資料處理方法,其中,所述晶片還包括DMA模組,所述方法還包括,在獲取所述處理結果之後,透過所述嵌入式CPU控制所述DMA模組,以將所述處理結果寫入伺服器的記憶體中。
- 根據申請專利範圍第1或2項所述的資料處理方法,其中,呼叫所述多個運算子單元包括,非同步地呼叫所述多個運算子單元。
- 根據申請專利範圍第1或2項所述的資料處理方法,其中,配置所述多個運算子單元包括,對所述待處理資料的長度進行判斷,並基於所述長度獲取發送給各個運算子單元的參數。
- 根據申請專利範圍第2項所述的資料處理方法,其中,所述晶片用於執行多種所述神經網路的預測計算,其中,獲取所述待處理資料包括,獲取所述待處理資料及其對應的神經網路的類型,其中,基於所述待處理資料,執行所述神經網路中的每一層的計算,以獲取所述處理結果包括,基於所述待處理資料及其對應的神經網路的類型,執行該類型的神經網路中的每一層的計算,以獲取所述處理結果。
- 一種用於執行計算任務的晶片,所述晶片包括:多個運算子單元,以及嵌入式CPU,配置為,透過執行以下步驟而進行所述計算任務的計算:配置所述多個運算子單元,以使得所述多個運算子單元與該計算任務中包括的不同類型的計算分別對應,以及,基於從所述晶片的外部輸入的待處理資 料,透過呼叫所述多個運算子單元,進行所述計算任務的計算,以獲取處理結果。
- 一種用於執行神經網路的預測計算的晶片,所述晶片包括:多個運算子單元,以及嵌入式CPU,配置為,基於從所述晶片的外部輸入的待處理資料,執行所述神經網路中的每一層的計算,以獲取處理結果,其中,透過由所述嵌入式CPU執行以下步驟而進行所述神經網路的每一層的計算:配置所述多個運算子單元,以使得所述多個運算子單元與該層中包括的不同類型的計算分別對應,以及,基於所述神經網路上一層中各個神經元的值,透過呼叫所述多個運算子單元,執行該層中每個神經元處的計算,以獲取該層中每個神經元的值。
- 根據申請專利範圍第12或13項所述的晶片,其中,所述晶片與伺服器連接。
- 根據申請專利範圍第14項所述的晶片,其中,所述待處理資料透過所述伺服器傳送至所述晶片。
- 根據申請專利範圍第14項所述的晶片,其中,所述嵌入式CPU透過運行基於程式的彙編指令而執行所述步驟, 其中,所述程式由所述伺服器傳送至所述晶片。
- 根據申請專利範圍第16項所述的晶片,其中,所述程式為C語言程式。
- 根據申請專利範圍第17項所述的晶片,其中,所述嵌入式CPU還配置為,透過C語言中的函數呼叫,呼叫所述多個運算子單元。
- 根據申請專利範圍第12或13項所述的晶片,其中,所述晶片還包括DMA模組,所述嵌入式CPU還配置為,在獲取所述處理結果之後,透過控制所述DMA模組,以將所述處理結果寫入伺服器的記憶體中。
- 根據申請專利範圍第12或13項所述的晶片,其中,所述嵌入式CPU還配置為,非同步地呼叫所述多個運算子單元。
- 根據申請專利範圍第12或13項所述的晶片,其中,所述嵌入式CPU還配置為,對所述待處理資料的長度進行判斷,並基於所述長度獲取發送給各個運算子單元的參數。
- 根據申請專利範圍第12或13項所述的晶片,其中,所述晶片為ASIC晶片或FPGA晶片。
- 根據申請專利範圍第13項所述的晶片,其中,所述晶片用於執行多種所述神經網路的預測計算,其中,所述嵌入式CPU還配置為,基於從所述晶片的外部輸入的所述待處理資料及其對應的神經網路的類型,執行所述類型的神經網路中的每一層的計算,以獲取所述處理結果。
- 一種計算設備,包括記憶體和處理器,其特徵在於,所述記憶體中儲存有可執行程式碼,所述處理器執行所述可執行程式碼時,實現申請專利範圍第1-11項中之任一項所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811156129.6 | 2018-09-30 | ||
CN201811156129.6A CN109359732B (zh) | 2018-09-30 | 2018-09-30 | 一种芯片及基于其的数据处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202014886A TW202014886A (zh) | 2020-04-16 |
TWI731373B true TWI731373B (zh) | 2021-06-21 |
Family
ID=65348485
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108125249A TWI731373B (zh) | 2018-09-30 | 2019-07-17 | 晶片、基於其的資料處理方法及計算設備 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11062201B2 (zh) |
EP (1) | EP3779804A4 (zh) |
CN (1) | CN109359732B (zh) |
SG (1) | SG11202010628SA (zh) |
TW (1) | TWI731373B (zh) |
WO (1) | WO2020063184A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109359732B (zh) | 2018-09-30 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 一种芯片及基于其的数据处理方法 |
CN112148391A (zh) * | 2019-06-26 | 2020-12-29 | 北京百度网讯科技有限公司 | 生成基于芯片的计算功能的方法、装置、设备和存储介质 |
CN111210005B (zh) * | 2019-12-31 | 2023-07-18 | Oppo广东移动通信有限公司 | 设备运行方法、装置、存储介质及电子设备 |
CN116362305A (zh) * | 2021-12-24 | 2023-06-30 | Oppo广东移动通信有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
CN115658269B (zh) * | 2022-11-01 | 2024-02-27 | 上海玫克生储能科技有限公司 | 一种用于任务调度的异构计算终端 |
CN116561051B (zh) * | 2023-04-10 | 2024-02-02 | 中科驭数(北京)科技有限公司 | 一种硬件加速卡和异构计算系统 |
CN116484947B (zh) * | 2023-06-25 | 2023-09-08 | 上海燧原科技有限公司 | 算子的自动生成方法、装置、设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8225074B2 (en) * | 2008-10-02 | 2012-07-17 | Nec Laboratories America, Inc. | Methods and systems for managing computations on a hybrid computing platform including a parallel accelerator |
US9715663B2 (en) * | 2014-05-01 | 2017-07-25 | International Business Machines Corporation | Predicting application performance on hardware accelerators |
Family Cites Families (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7225172B2 (en) * | 1999-07-01 | 2007-05-29 | Yeda Research And Development Co. Ltd. | Method and apparatus for multivariable analysis of biological measurements |
CN101017508A (zh) * | 2006-12-21 | 2007-08-15 | 四川大学 | 一种基于离散Hopfield神经网络的SoC软/硬件划分方法 |
FR3008505B1 (fr) * | 2013-07-10 | 2017-03-03 | Thales Sa | Procede d'optimisation de traitement parallele de donnees sur une plateforme materielle |
US10055434B2 (en) * | 2013-10-16 | 2018-08-21 | University Of Tennessee Research Foundation | Method and apparatus for providing random selection and long-term potentiation and depression in an artificial network |
US9978014B2 (en) * | 2013-12-18 | 2018-05-22 | Intel Corporation | Reconfigurable processing unit |
US9858220B2 (en) * | 2014-03-17 | 2018-01-02 | Purdue Research Foundation | Computing architecture with concurrent programmable data co-processor |
US20160026912A1 (en) * | 2014-07-22 | 2016-01-28 | Intel Corporation | Weight-shifting mechanism for convolutional neural networks |
US9883122B2 (en) * | 2014-09-16 | 2018-01-30 | Qualcomm Incorporated | Event-based down sampling |
EP3035249B1 (en) * | 2014-12-19 | 2019-11-27 | Intel Corporation | Method and apparatus for distributed and cooperative computation in artificial neural networks |
US10262259B2 (en) * | 2015-05-08 | 2019-04-16 | Qualcomm Incorporated | Bit width selection for fixed point neural networks |
US10725934B2 (en) * | 2015-10-08 | 2020-07-28 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Processor with selective data storage (of accelerator) operable as either victim cache data storage or accelerator memory and having victim cache tags in lower level cache wherein evicted cache line is stored in said data storage when said data storage is in a first mode and said cache line is stored in system memory rather then said data store when said data storage is in a second mode |
CN105488565A (zh) * | 2015-11-17 | 2016-04-13 | 中国科学院计算技术研究所 | 加速深度神经网络算法的加速芯片的运算装置及方法 |
US11093826B2 (en) * | 2016-02-05 | 2021-08-17 | International Business Machines Corporation | Efficient determination of optimized learning settings of neural networks |
US10867247B1 (en) * | 2016-02-14 | 2020-12-15 | Perceive Corporation | Machine learning through multiple layers of novel machine trained processing nodes |
US11055063B2 (en) * | 2016-05-02 | 2021-07-06 | Marvell Asia Pte, Ltd. | Systems and methods for deep learning processor |
CN106022468B (zh) * | 2016-05-17 | 2018-06-01 | 成都启英泰伦科技有限公司 | 人工神经网络处理器集成电路及该集成电路的设计方法 |
JP6776696B2 (ja) * | 2016-07-26 | 2020-10-28 | 富士通株式会社 | 並列情報処理装置、情報処理方法、およびプログラム |
CN106228238B (zh) * | 2016-07-27 | 2019-03-22 | 中国科学技术大学苏州研究院 | 现场可编程门阵列平台上加速深度学习算法的方法和系统 |
CN106228240B (zh) * | 2016-07-30 | 2020-09-01 | 复旦大学 | 基于fpga的深度卷积神经网络实现方法 |
US10698657B2 (en) * | 2016-08-12 | 2020-06-30 | Xilinx, Inc. | Hardware accelerator for compressed RNN on FPGA |
US10810484B2 (en) * | 2016-08-12 | 2020-10-20 | Xilinx, Inc. | Hardware accelerator for compressed GRU on FPGA |
US10802992B2 (en) * | 2016-08-12 | 2020-10-13 | Xilinx Technology Beijing Limited | Combining CPU and special accelerator for implementing an artificial neural network |
US20190303743A1 (en) * | 2016-08-13 | 2019-10-03 | Intel Corporation | Apparatuses, methods, and systems for neural networks |
CN106355244B (zh) * | 2016-08-30 | 2019-08-13 | 深圳市诺比邻科技有限公司 | 卷积神经网络的构建方法及系统 |
US11501130B2 (en) * | 2016-09-09 | 2022-11-15 | SK Hynix Inc. | Neural network hardware accelerator architectures and operating method thereof |
US10402527B2 (en) * | 2017-01-04 | 2019-09-03 | Stmicroelectronics S.R.L. | Reconfigurable interconnect |
CN207440765U (zh) * | 2017-01-04 | 2018-06-01 | 意法半导体股份有限公司 | 片上系统和移动计算设备 |
CN107016175B (zh) * | 2017-03-23 | 2018-08-31 | 中国科学院计算技术研究所 | 适用神经网络处理器的自动化设计方法、装置及优化方法 |
US10387298B2 (en) * | 2017-04-04 | 2019-08-20 | Hailo Technologies Ltd | Artificial neural network incorporating emphasis and focus techniques |
US11551335B2 (en) * | 2017-04-07 | 2023-01-10 | Intel Corporation | Methods and systems using camera devices for deep channel and convolutional neural network images and formats |
US10795836B2 (en) * | 2017-04-17 | 2020-10-06 | Microsoft Technology Licensing, Llc | Data processing performance enhancement for neural networks using a virtualized data iterator |
CN107679621B (zh) * | 2017-04-19 | 2020-12-08 | 赛灵思公司 | 人工神经网络处理装置 |
CN107679620B (zh) * | 2017-04-19 | 2020-05-26 | 赛灵思公司 | 人工神经网络处理装置 |
US10169298B1 (en) * | 2017-05-11 | 2019-01-01 | NovuMind Limited | Native tensor processor, using outer product unit |
US10248908B2 (en) * | 2017-06-19 | 2019-04-02 | Google Llc | Alternative loop limits for accessing data in multi-dimensional tensors |
US10430913B2 (en) * | 2017-06-30 | 2019-10-01 | Intel Corporation | Approximating image processing functions using convolutional neural networks |
CN107451653A (zh) * | 2017-07-05 | 2017-12-08 | 深圳市自行科技有限公司 | 深度神经网络的计算方法、装置及可读存储介质 |
CN107679618B (zh) * | 2017-07-28 | 2021-06-11 | 赛灵思电子科技(北京)有限公司 | 一种静态策略定点化训练方法及装置 |
CN107688849B (zh) * | 2017-07-28 | 2021-04-13 | 赛灵思电子科技(北京)有限公司 | 一种动态策略定点化训练方法及装置 |
GB2568776B (en) * | 2017-08-11 | 2020-10-28 | Google Llc | Neural network accelerator with parameters resident on chip |
CN111052134B (zh) * | 2017-08-31 | 2024-04-26 | 快图有限公司 | 外围处理设备 |
CN207458128U (zh) * | 2017-09-07 | 2018-06-05 | 哈尔滨理工大学 | 一种基于fpga在视觉应用中的卷积神经网络加速器 |
US12061990B2 (en) * | 2017-10-17 | 2024-08-13 | Xilinx, Inc. | Static block scheduling in massively parallel software defined hardware systems |
CN107844829A (zh) * | 2017-10-31 | 2018-03-27 | 中国科学院计算技术研究所 | 用于加速神经网络处理器的方法和系统及神经网络处理器 |
US11468332B2 (en) * | 2017-11-13 | 2022-10-11 | Raytheon Company | Deep neural network processor with interleaved backpropagation |
CN108171321A (zh) * | 2017-12-07 | 2018-06-15 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于SoC芯片的深度神经网络嵌入式实现方法 |
US20190180183A1 (en) * | 2017-12-12 | 2019-06-13 | Amazon Technologies, Inc. | On-chip computational network |
EP3783477B1 (en) * | 2017-12-27 | 2021-11-17 | Cambricon Technologies Corporation Limited | Integrated circuit chip device |
US20190205736A1 (en) * | 2017-12-29 | 2019-07-04 | Intel Corporation | Compute optimization mechanism for deep neural networks |
US10553207B2 (en) * | 2017-12-29 | 2020-02-04 | Facebook, Inc. | Systems and methods for employing predication in computational models |
CN108229670B (zh) * | 2018-01-05 | 2021-10-08 | 中国科学技术大学苏州研究院 | 基于fpga的深度神经网络加速平台 |
CN108280514B (zh) * | 2018-01-05 | 2020-10-16 | 中国科学技术大学 | 基于fpga的稀疏神经网络加速系统和设计方法 |
CN108470009B (zh) * | 2018-03-19 | 2020-05-29 | 上海兆芯集成电路有限公司 | 处理电路及其神经网络运算方法 |
US11188814B2 (en) * | 2018-04-05 | 2021-11-30 | Arm Limited | Systolic convolutional neural network |
CN108549935B (zh) * | 2018-05-03 | 2021-09-10 | 山东浪潮科学研究院有限公司 | 一种实现神经网络模型的装置及方法 |
CN115220918A (zh) * | 2018-06-13 | 2022-10-21 | 华为技术有限公司 | 一种神经网络的内存分配方法及装置 |
US11385863B2 (en) * | 2018-08-01 | 2022-07-12 | Hewlett Packard Enterprise Development Lp | Adjustable precision for multi-stage compute processes |
KR20200026455A (ko) * | 2018-09-03 | 2020-03-11 | 삼성전자주식회사 | 인공 신경망 시스템 및 인공 신경망의 고정 소수점 제어 방법 |
CN109359732B (zh) * | 2018-09-30 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 一种芯片及基于其的数据处理方法 |
-
2018
- 2018-09-30 CN CN201811156129.6A patent/CN109359732B/zh active Active
-
2019
- 2019-07-17 TW TW108125249A patent/TWI731373B/zh active
- 2019-08-16 WO PCT/CN2019/101069 patent/WO2020063184A1/zh unknown
- 2019-08-16 EP EP19867284.2A patent/EP3779804A4/en not_active Ceased
- 2019-08-16 SG SG11202010628SA patent/SG11202010628SA/en unknown
-
2020
- 2020-10-30 US US17/084,936 patent/US11062201B2/en active Active
-
2021
- 2021-07-12 US US17/373,384 patent/US11361217B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8225074B2 (en) * | 2008-10-02 | 2012-07-17 | Nec Laboratories America, Inc. | Methods and systems for managing computations on a hybrid computing platform including a parallel accelerator |
US9715663B2 (en) * | 2014-05-01 | 2017-07-25 | International Business Machines Corporation | Predicting application performance on hardware accelerators |
Non-Patent Citations (3)
Title |
---|
Mohamed Abouzahir et al., "Large-scale monocular FastSLAM2.0 acceleration on an embedded heterogeneous architecture," EURASIP Journal on Advances in Signal Processing 2016, 88, 17 August 2016. |
RajuKNiranjan et al., "A survey on techniques for cooperative CPU-GPU computing," Sustainable Computing: Informatics and Systems, pp. 72-85, 2018-08-03. |
RajuKNiranjan et al., "A survey on techniques for cooperative CPU-GPU computing," Sustainable Computing: Informatics and Systems, pp. 72-85, 2018-08-03. Mohamed Abouzahir et al., "Large-scale monocular FastSLAM2.0 acceleration on an embedded heterogeneous architecture," EURASIP Journal on Advances in Signal Processing 2016, 88, 17 August 2016. * |
Also Published As
Publication number | Publication date |
---|---|
US20210342680A1 (en) | 2021-11-04 |
WO2020063184A1 (zh) | 2020-04-02 |
CN109359732B (zh) | 2020-06-09 |
SG11202010628SA (en) | 2020-11-27 |
EP3779804A1 (en) | 2021-02-17 |
CN109359732A (zh) | 2019-02-19 |
TW202014886A (zh) | 2020-04-16 |
EP3779804A4 (en) | 2021-11-03 |
US11361217B2 (en) | 2022-06-14 |
US20210049453A1 (en) | 2021-02-18 |
US11062201B2 (en) | 2021-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI731373B (zh) | 晶片、基於其的資料處理方法及計算設備 | |
US11989647B2 (en) | Self-learning scheduler for application orchestration on shared compute cluster | |
US10713567B2 (en) | Apparatus and method for executing reversal training of artificial neural network | |
CN109740747B (zh) | 运算方法、装置及相关产品 | |
US10482380B2 (en) | Conditional parallel processing in fully-connected neural networks | |
CN109375951A (zh) | 一种用于执行全连接层神经网络正向运算的装置和方法 | |
EP3502975A1 (en) | Methods and apparatus for model parallelism in artificial neural networks | |
US20180039884A1 (en) | Systems, methods and devices for neural network communications | |
WO2021008259A1 (zh) | 用于异构架构的数据处理系统及其方法 | |
US9939792B2 (en) | Systems and methods to adaptively select execution modes | |
CN108734288A (zh) | 一种运算方法及装置 | |
CN107679625B (zh) | 针对数据记录执行机器学习的分布式系统及其方法 | |
US11694075B2 (en) | Partitioning control dependency edge in computation graph | |
CN110515889B (zh) | 嵌入式fpga集群智能计算平台硬件框架 | |
KR102167747B1 (ko) | 사용자 이용 패턴을 신경망 알고리즘으로 분석하여 다음 어플리케이션을 예측하는 모바일 디바이스 메모리 관리 장치 및 방법 | |
CN114327399A (zh) | 分布式训练方法、装置、计算机设备、存储介质和产品 | |
CN113326123B (zh) | 一种基于容器技术的生物信息分析计算系统及方法 | |
CN117271101A (zh) | 一种算子融合方法、装置、电子设备及存储介质 | |
Nurvitadhi et al. | Scalable low-latency persistent neural machine translation on CPU server with multiple FPGAs | |
CN107145944A (zh) | 基于fpga高效训练的遗传算法及系统 | |
CN110825380A (zh) | 核函数的生成方法、目标代码的生成方法和组合处理装置 | |
CN109272112B (zh) | 一种面向神经网络的数据重用指令映射方法、系统及装置 | |
CN108737130B (zh) | 基于神经网络的网络流量预测装置及方法 | |
CN109696910A (zh) | 一种舵机运动控制方法及装置、计算机可读存储介质 | |
Choi et al. | Legion: Tailoring grouped neural execution considering heterogeneity on multiple edge devices |