JP2024003111A - データ計算システム - Google Patents
データ計算システム Download PDFInfo
- Publication number
- JP2024003111A JP2024003111A JP2023188892A JP2023188892A JP2024003111A JP 2024003111 A JP2024003111 A JP 2024003111A JP 2023188892 A JP2023188892 A JP 2023188892A JP 2023188892 A JP2023188892 A JP 2023188892A JP 2024003111 A JP2024003111 A JP 2024003111A
- Authority
- JP
- Japan
- Prior art keywords
- calculation
- data
- memory
- computation
- accelerator
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
- 238000004364 calculation method Methods 0.000 claims abstract description 151
- 238000000034 method Methods 0.000 claims abstract description 44
- 230000006870 function Effects 0.000 claims description 22
- 238000012886 linear function Methods 0.000 claims 4
- 238000010586 diagram Methods 0.000 description 8
- 238000013500 data storage Methods 0.000 description 6
- 238000009825 accumulation Methods 0.000 description 4
- 230000002411 adverse Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/491—Computations with decimal numbers radix 12 or 20.
- G06F7/498—Computations with decimal numbers radix 12 or 20. using counter-type accumulators
- G06F7/4981—Adding; Subtracting
-
- 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/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/544—Methods 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/491—Computations with decimal numbers radix 12 or 20.
- G06F7/4915—Multiplying; Dividing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/491—Computations with decimal numbers radix 12 or 20.
- G06F7/498—Computations with decimal numbers radix 12 or 20. using counter-type accumulators
- G06F7/4983—Multiplying; Dividing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/544—Methods 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/5443—Sum of products
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/544—Methods 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/556—Logarithmic or exponential functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
-
- 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/048—Activation functions
-
- 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
- G06N3/045—Combinations of networks
Abstract
【課題】プロセッサの実行効率を改善し、プロセッサの計算オーバヘッドを減らす枠組みを提供する。【解決手段】データ計算システムは、メモリ(11)と、プロセッサ(12)と、アクセラレータ(13)とを含み、メモリ(11)はプロセッサ(12)に通信可能に結合され、計算用データ及び計算結果を記憶するように構成され、データはプロセッサ(12)によって書き込まれ、プロセッサ(12)はアクセラレータ(13)に通信可能に結合され、アクセラレータ(13)を制御するように構成され、アクセラレータ(13)はメモリ(11)に通信可能に結合され、予め構成された制御情報に従ってメモリ(11)にアクセスし、計算プロセスを実施して計算結果をもたらし、計算結果をメモリ(11)に書き戻すように構成される。【選択図】図1
Description
関連出願の相互参照
[1] 本開示は、参照によりその全体を本明細書に援用する、2018年3月21日に出願された中国特許出願第201810235312.9号の優先権の利益を主張する。
[1] 本開示は、参照によりその全体を本明細書に援用する、2018年3月21日に出願された中国特許出願第201810235312.9号の優先権の利益を主張する。
背景
[2] 人工知能(AI)技術の発展と共に、計算能力及び計算速度はAIの分野で不可欠な役割を果たしている。従来の計算の実装方法は次の通りである:プロセッサがバス経由でメモリにアクセスしてデータを読み出し、結果を得るために計算を行い、次いで、計算結果をバス経由でメモリに書き戻す。従来の計算の実装方法での1つの問題はプロセッサが大量のバス資源を占有することであり、それはプロセッサが計算中に絶えずメモリにアクセスする必要があるからである。プロセッサの実行効率が悪影響を受ける。
[2] 人工知能(AI)技術の発展と共に、計算能力及び計算速度はAIの分野で不可欠な役割を果たしている。従来の計算の実装方法は次の通りである:プロセッサがバス経由でメモリにアクセスしてデータを読み出し、結果を得るために計算を行い、次いで、計算結果をバス経由でメモリに書き戻す。従来の計算の実装方法での1つの問題はプロセッサが大量のバス資源を占有することであり、それはプロセッサが計算中に絶えずメモリにアクセスする必要があるからである。プロセッサの実行効率が悪影響を受ける。
開示の概要
[3] 本開示は、メモリと、プロセッサと、アクセラレータとを含むデータ計算システムを提供する。メモリはプロセッサに通信可能に結合され、計算用データを記憶するように構成され、データはプロセッサによって書き込まれる。プロセッサはアクセラレータに通信可能に結合され、アクセラレータを制御するように構成される。アクセラレータはメモリに通信可能に結合され、予め構成された制御情報に従ってメモリにアクセスし、データの計算を実施し、計算結果をメモリ内に書き戻すように構成される。本開示は、データ計算システムのアクセラレータ及びアクセラレータによって実行される方法も提供する。
[3] 本開示は、メモリと、プロセッサと、アクセラレータとを含むデータ計算システムを提供する。メモリはプロセッサに通信可能に結合され、計算用データを記憶するように構成され、データはプロセッサによって書き込まれる。プロセッサはアクセラレータに通信可能に結合され、アクセラレータを制御するように構成される。アクセラレータはメモリに通信可能に結合され、予め構成された制御情報に従ってメモリにアクセスし、データの計算を実施し、計算結果をメモリ内に書き戻すように構成される。本開示は、データ計算システムのアクセラレータ及びアクセラレータによって実行される方法も提供する。
図面の簡単な説明
[4]本開示の一部の実施形態による例示的なデータ計算システムの概略図である。
[5]本開示の一部の実施形態による例示的なアクセラレータの概略図である。
[6]本開示の一部の実施形態による例示的な計算モジュールの概略図である。
[7]本開示の一部の実施形態による、例示的な32チャネル8x8乗累算データ記憶形式及び計算プロセスの図である。
[8]本開示の一部の実施形態による、例示的な4チャネル16x16乗累算データ記憶形式及び計算プロセスの図である。
[9]本開示の一部の実施形態による、指数関数、ソフトマックス関数、及びシグモイド関数のための例示的なデータ記憶形式及び計算プロセスの図である。
詳細な説明
[10] 本開示の実施形態の目的、技術的解決策、及び利点をより明確にするために、本開示の実施形態における技術的解決策を本開示の実施形態において添付図面を参照して以下で説明する。当然ながら、記載する実施形態は本開示の実施形態の全てではなく一部に過ぎない。本開示の実施形態に基づき、創造的な取り組みなしに当業者が得る他の全ての実施形態が本開示の保護範囲に含まれるものとする。
[10] 本開示の実施形態の目的、技術的解決策、及び利点をより明確にするために、本開示の実施形態における技術的解決策を本開示の実施形態において添付図面を参照して以下で説明する。当然ながら、記載する実施形態は本開示の実施形態の全てではなく一部に過ぎない。本開示の実施形態に基づき、創造的な取り組みなしに当業者が得る他の全ての実施形態が本開示の保護範囲に含まれるものとする。
[11] 本開示で示すデータ計算システムはプロセッサの実行効率を改善し、プロセッサの計算オーバヘッドを減らすことができる。本開示の一部の実施形態で示すデータ計算システムは、元のメモリ及びプロセッサに基づいてアクセラレータを追加する。プロセッサはバスを使用してアクセラレータを制御し、アクセラレータはメモリにアクセスし、データの計算を実行し、計算を完了した後で計算結果をメモリに書き戻す。従来の構造と比較し、プロセッサはアクセラレータを制御し、具体的なデータの計算はアクセラレータによって完了される。計算プロセスはアクセラレータによって独立に実行され、プロセッサの計算ユニットもバス資源も占有しない。アクセラレータが計算プロセスを実行している間プロセッサは他のイベントを処理することができ、アクセラレータの計算性能が悪影響を受けることはない。従ってプロセッサの実行効率が改善され、プロセッサの計算オーバヘッドが低減され、データの計算に費やされる時間も短縮される。
[12] 本開示の実施形態はデータ計算システムを提供する。図1は、本開示の一部の実施形態による例示的なデータ計算システムの概略図である。図1に示すように、データ計算システムはメモリ11と、プロセッサ12と、アクセラレータ13とを含む。
[13] メモリ11はプロセッサ12に通信可能に結合され、計算用データを記憶するように構成される。全ての計算用データはプロセッサ12によってメモリ11内に書き込まれる。
[14] プロセッサ12はアクセラレータ13に通信可能に結合され、アクセラレータ13を制御するように構成される。
[15] アクセラレータ13はメモリ11に通信可能に結合され、予め構成された制御情報に従ってメモリ11にアクセスし、データ計算プロセスを実施し、計算結果をメモリ11に書き戻すように構成される。
[16] 一部の実施形態では、データ計算プロセスを実行するとき、本開示の実施形態で示すデータ計算システムのプロセッサ12はアクセラレータ13を制御するがデータ計算プロセスは実行しない。データ計算プロセスはアクセラレータ13によって完了される。従って、計算プロセスの間プロセッサ12はメモリ11にアクセスする必要がなく、従ってバスを占有せず、それによりバスの利用率を改善する。同時に、アクセラレータ13がデータの計算を実行するときプロセッサ12は他のイベントを処理することができ、従ってプロセッサの利用率も改善される。加えて、アクセラレータ13は計算のために任意の種類のメモリに結合することができる。
[17] 加えて、本開示の一部の実施形態を使用してwake-on-voiceアルゴリズムの実験的検証を行うことができる。従来のシステムでは、同じwake-on-voiceアルゴリズムで処理速度を196MCPS(Millions of Cycles Per Second:100万サイクル/秒)に保つ必要があることを実験データの結果が示している。本開示では、アクセラレータ13を使用して処理速度が90MCPSに達し得る。性能を約55%改善することができる。
[18] 図2は、本開示の一部の実施形態による例示的なアクセラレータの概略図である。図2に示すように、アクセラレータ13は制御レジスタモジュール131及び計算モジュール132を含む。
[19] 制御レジスタモジュール131はプロセッサ12に通信可能に結合され、制御情報を記憶するように構成される。制御情報は、命令を届けるためのバスを使用してプロセッサ12によって予め構成される。
[20] 計算モジュール132はメモリ11に通信可能に結合され、制御情報に従ってメモリ11にアクセスし、データ計算を実施し、計算結果をメモリ11に書き戻すように構成される。
[21] 一部の実施形態では、制御情報が計算用データのための開始アドレス、オペランドの数、計算方式、計算結果のためのライトバックアドレス、及び計算イネーブルフラグを含む。計算方式は、乗累算演算、指数関数、シグモイド関数、正規化線形(ReLU)関数、及びソフトマックス関数を含む。換言すれば、計算モジュール132は乗累算演算、指数関数、シグモイド関数、正規化線形(ReLU)関数、及びソフトマックス関数を実装することができる。但し本開示の計算方式は上記の数種類に限定されず、計算方式はソフトウェアアプリケーションの実際の要件に従ってカスタマイズすることができる。実行中、その使用が柔軟且つ便利であるように、プロセッサによって計算方式を制御することができる。更に、チップ面積を最適化する効果を実現するために、計算方式のハードウェア実装を実際の要件に従って追加し又は削除することができる。
[22] 計算イネーブルフラグが1だと検出した後、計算モジュール132は、計算用データのための開始アドレスに従ってメモリ11から逐次的に計算用データとオペランドの数とを読み出し、計算方式に従ってデータの計算を実行し、計算結果のためのライトバックアドレスに従って計算結果をメモリ11に書き戻す。同時に、計算モジュール132は計算イネーブルフラグをリセットする。計算イネーブルフラグが0だと読み取った後、プロセッサ12は次の計算を開始することができ、又は計算結果をメモリ11から読み出すことができる。
[23] 図3は、本開示の一部の実施形態による例示的な計算モジュールの概略図である。図3に示すように、乗累算演算又は正規化線形(ReLU)関数を実装する場合、計算モジュール132は乗累算ユニット1321、正規化線形(ReLU)計算ユニット1322、第1のマルチプレクサ1323、及び第2のマルチプレクサ1324を含む。
[24] 乗累算ユニット1321は、2チャネル16ビット乗算器13211、2チャネル8ビット乗算器13212、累算器13214、及びレジスタ13213を含む。乗累算ユニット1321は、2チャネル16ビット乗算器13211及び2チャネル8ビット乗算器13212を使用して並列計算を実行し、乗累算計算された結果をレジスタ13213内に記憶するように構成される。
[25] 正規化線形(ReLU)計算ユニット1322は、入力データ1320又は乗累算ユニット1321からの乗累算計算された結果に対して正規化線形(ReLU)関数の計算を実行するように構成される。
[26] 第1のマルチプレクサ1323は、ReLU_bypass信号に従い、乗累算ユニット1321からの乗累算計算された結果又は入力データ1320を正規化線形(ReLU)計算ユニット1322へのデータ入力として選択するように構成される。
[27] 第2のマルチプレクサ1324は、ReLU_bypass信号に従い、乗累算ユニット1321からの乗累算計算された結果に対して正規化線形(ReLU)関数の計算を実行するかどうかを選択するように構成される。
[28] 図4は、本開示の一部の実施形態による、例示的な32チャネル8x8データ記憶形式及び計算プロセスの図である。32チャネル8x8乗累算計算を実行するために、図4に従って計算プロセスを以下に示す。
[29] プロセッサ12がデータA及びデータBをバス経由でメモリ11内に書き込み、その後の計算プロセスが完了するまでデータは書き込まれない。計算プロセスの完了後に計算用データを置換する必要がある場合、プロセッサ12が計算用データを書き換える。
[30] 計算用データがメモリ11内に書き込まれた後、プロセッサ12は、アクセラレータ13の制御レジスタモジュール131、データAのための開始アドレス(DATA0_Start_addr)、データBのための開始アドレス(DATA1_Start_addr)、及び計算結果のためのライトバックアドレス(Result_wb_addr)を構成する。
[31] 次いでプロセッサ12は、計算方式を32チャネル8x8乗累算計算(例えば図4の計算)であるように構成し、オペランドの数を32に設定し、計算イネーブルフラグを1に設定する。
[32] 計算イネーブルフラグが1だと検出した後、アクセラレータ13の計算モジュール132は計算プロセスを開始し、データAのための開始アドレス(DATA0_Start_addr)、データBのための開始アドレス(DATA1_Start_addr)、及びオペランドの数に従ってメモリ11から計算用データを読み出し、乗累算計算を実行する。
[33] 計算が完了した後、計算結果がライトバックアドレス(Result_wb_addr)に従ってメモリ11内に書き戻され、計算イネーブルフラグがリセットされる。
[34] 計算イネーブルフラグが0だと読み取った後、プロセッサ12は次の計算プロセスを開始することができ、又は計算結果をメモリ11から読み出すことができる。
[35] 図5は、本開示の一部の実施形態による、例示的な4チャネル16x16乗累算データ記憶形式及び計算プロセスの図である。4チャネル16x16乗累算計算を実行するために、図5に従って計算プロセスを以下に示す。
[36] プロセッサ12がデータA及びデータBをバス経由でメモリ11内に書き込み、その後の計算プロセスが完了するまでデータは書き込まれない。計算プロセスの完了後に計算用データを置換する必要がある場合、プロセッサ12が計算用データを書き換える。
[37] データがメモリ11内に書き込まれた後、プロセッサ12は、アクセラレータ13の制御レジスタモジュール131、データAのための開始アドレス(DATA0_Start_addr)、データBのための開始アドレス(DATA1_Start_addr)、及び計算結果のためのライトバックアドレス(Result_wb_addr)を構成する。
[38] 次いでプロセッサ12は、計算方式を4チャネル16x16乗累算計算(例えば図5の計算)であるように構成し、オペランドの数を4に設定し、計算イネーブルフラグを1に設定する。
[39] 計算イネーブルフラグが1だと検出した後、アクセラレータ13の計算モジュール132は計算プロセスを開始し、データAのための開始アドレス(DATA0_Start_addr)、データBのための開始アドレス(DATA1_Start_addr)、及びオペランドの数に従ってメモリ11から計算用データを読み出し、乗累算計算を実行する。
[40] 計算が完了した後、計算結果がライトバックアドレス(Result_wb_addr)に従ってメモリ11内に書き戻され、計算イネーブルフラグがリセットされる。
[41] 計算イネーブルフラグが0だと読み取った後、プロセッサ12は次の計算プロセスを開始することができ、又は計算結果をメモリ11から読み出すことができる。
[42] 図6は、本開示の一部の実施形態による、指数関数、ソフトマックス関数、及びシグモイド関数のための例示的なデータ記憶形式及び計算プロセスの図である。図6の計算プロセスは、図4及び図5の乗累算計算プロセスと同様である。乗累算計算の代わりに、プロセッサ12は指数関数、ソフトマックス関数、又はシグモイド関数であるように計算方式を構成する。
[43] 本開示の幾つかの具体的な実施形態を上記で説明したが、本開示の保護範囲はそれらの実施形態に限定されない。本開示によって開示する技術的範囲の中で当業者によって容易に考案され得る如何なる変更又は置換も本開示の保護範囲に含まれるものとする。従って、本開示を保護する保護範囲は特許請求の範囲の保護範囲に服するものとする。
Claims (20)
- 計算用データを記憶するように構成されるメモリと、
前記メモリに通信可能に結合され、前記メモリに前記データを書き込むように構成されるプロセッサと、
前記メモリ及び前記プロセッサに通信可能に結合され、前記プロセッサから制御情報を受信し、前記制御情報に従って前記メモリにアクセスし、計算結果をもたらす計算プロセスを実施し、前記計算結果を前記メモリに書き戻すように構成されるアクセラレータと
を含む、データ計算システム。 - 前記アクセラレータが、
前記プロセッサに通信可能に結合され、命令を含む前記制御情報を記憶するように構成される制御レジスタモジュールと、
前記メモリに通信可能に結合され、前記制御情報に従って前記メモリにアクセスし、前記計算プロセスを実施し、前記計算結果を前記メモリに書き戻すように構成される計算モジュールと
を含む、請求項1に記載のデータ計算システム。 - 前記制御レジスタモジュール内に記憶される前記制御情報が、前記計算用データのための開始アドレス、オペランドの数、計算方式、前記計算結果のためのライトバックアドレス、及び計算イネーブルフラグを含む、請求項2に記載のデータ計算システム。
- 前記計算方式が、乗累算演算、指数関数、シグモイド関数、正規化線形関数、又はソフトマックス関数のうちの1つを含む、請求項3に記載のデータ計算システム。
- 前記計算イネーブルフラグが有効にされたことを検出した後、前記計算モジュールが前記開始アドレス及び前記オペランドの数に従って前記メモリから前記データを読み出し、前記計算方式に従って前記計算プロセスを実施し、前記ライトバックアドレスに従って前記計算結果を前記メモリに書き戻すように更に構成される、請求項3又は4に記載のデータ計算システム。
- 前記計算モジュールは、前記計算プロセスが完了した後で前記計算イネーブルフラグをリセットするように構成される、請求項5に記載のデータ計算システム。
- 前記計算モジュールが、
結果を生成するために乗累算演算を実行するように構成される乗累算ユニット
を含む、請求項4乃至6の何れか一項に記載のデータ計算システム。 - 前記計算モジュールが、
入力データ又は前記乗累算ユニットからの前記結果に対して正規化線形関数を実行するように構成される正規化線形計算ユニットと、
前記乗累算ユニットからの前記結果又は前記入力データを前記正規化線形計算ユニットへのデータ入力として選択するように構成される第1のマルチプレクサと
を含む、請求項7に記載のデータ計算システム。 - 前記計算モジュールが、
前記乗累算ユニット又は前記正規化線形計算ユニットからの前記結果を前記計算結果として選択するように構成される第2のマルチプレクサ
を含む、請求項8に記載のデータ計算システム。 - 前記メモリ内に記憶される前記データが前記計算プロセス中に更新されない、請求項1乃至9の何れか一項に記載のデータ計算システム。
- 外部プロセッサに通信可能に結合され、前記外部プロセッサから制御情報を受信するように構成される制御レジスタモジュールと、
前記外部プロセッサに関連する外部メモリに通信可能に結合され、前記制御情報に従って前記外部メモリにアクセスし、計算結果をもたらす計算プロセスを実施し、前記計算結果を前記外部メモリに書き戻すように構成される計算モジュールと
を含む、アクセラレータ。 - 前記制御情報が、前記計算用データのための開始アドレス、オペランドの数、計算方式、前記計算結果のためのライトバックアドレス、及び計算イネーブルフラグを含む、請求項11に記載のアクセラレータ。
- 前記計算方式が、乗累算演算、指数関数、シグモイド関数、正規化線形関数、又はソフトマックス関数のうちの1つを含む、請求項12に記載のアクセラレータ。
- 前記計算イネーブルフラグが有効にされたことを検出した後、前記計算モジュールが前記開始アドレス及び前記オペランドの数に従って前記外部メモリから前記データを読み出し、前記計算方式に従って前記計算プロセスを実施し、前記ライトバックアドレスに従って前記計算結果を前記外部メモリに書き戻すように更に構成される、請求項12又は13に記載のアクセラレータ。
- 前記計算モジュールは、前記計算プロセスが完了した後で前記計算イネーブルフラグをリセットするように構成される、請求項14に記載のアクセラレータ。
- 前記計算モジュールが、
結果を生成するために乗累算演算を実行するように構成される乗累算ユニット
を含む、請求項13乃至15の何れか一項に記載のアクセラレータ。 - 前記計算モジュールが、
入力データ又は前記乗累算ユニットからの前記結果に対して正規化線形関数を実行するように構成される正規化線形計算ユニットと、
前記乗累算ユニットからの前記結果又は前記入力データを前記正規化線形計算ユニットへのデータ入力として選択するように構成される第1のマルチプレクサと
を含む、請求項16に記載のアクセラレータ。 - 前記計算モジュールが、
前記乗累算ユニット又は前記正規化線形計算ユニットからの前記結果を前記計算結果として選択するように構成される第2のマルチプレクサ
を含む、請求項17に記載のアクセラレータ。 - 前記メモリ内に記憶される前記データが前記計算プロセス中に更新されない、請求項11乃至18の何れか一項に記載のアクセラレータ。
- データ計算システムのアクセラレータによって実行されるデータ計算方法であって、
計算用データのための開始アドレス、計算方式、及びライトバックアドレスを前記データ計算システムのプロセッサから前記データ計算システムの前記アクセラレータによって受信すること、
前記開始アドレスに従って、前記プロセッサに結合されるメモリに前記アクセラレータによってアクセスすること、
前記計算方式に従って前記データに対して計算プロセスを実行して計算結果をもたらすこと、及び
前記ライトバックアドレスに従って前記計算結果を前記メモリに書き込むこと
を含む、データ計算方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810235312.9 | 2018-03-21 | ||
CN201810235312.9A CN108446096B (zh) | 2018-03-21 | 2018-03-21 | 数据计算系统 |
JP2020546455A JP7381481B2 (ja) | 2018-03-21 | 2019-03-06 | データ計算システム |
PCT/CN2019/077132 WO2019179311A1 (en) | 2018-03-21 | 2019-03-06 | Data computing system |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020546455A Division JP7381481B2 (ja) | 2018-03-21 | 2019-03-06 | データ計算システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2024003111A true JP2024003111A (ja) | 2024-01-11 |
Family
ID=63196016
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020546455A Active JP7381481B2 (ja) | 2018-03-21 | 2019-03-06 | データ計算システム |
JP2023188892A Pending JP2024003111A (ja) | 2018-03-21 | 2023-11-02 | データ計算システム |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020546455A Active JP7381481B2 (ja) | 2018-03-21 | 2019-03-06 | データ計算システム |
Country Status (5)
Country | Link |
---|---|
US (2) | US11243771B2 (ja) |
EP (1) | EP3765956A4 (ja) |
JP (2) | JP7381481B2 (ja) |
CN (1) | CN108446096B (ja) |
WO (1) | WO2019179311A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108446096B (zh) * | 2018-03-21 | 2021-01-29 | 杭州中天微系统有限公司 | 数据计算系统 |
CN110245096B (zh) * | 2019-06-24 | 2023-07-25 | 苏州暴雪电子科技有限公司 | 一种实现处理器直接连接扩展计算模块的方法 |
CN112541581A (zh) * | 2019-09-23 | 2021-03-23 | 阿里巴巴集团控股有限公司 | 一种加速计算单元和加速计算系统 |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04104358A (ja) | 1990-08-23 | 1992-04-06 | Hitachi Ltd | マイクロコンピュータ装置 |
US5742839A (en) | 1992-01-30 | 1998-04-21 | Fujitsu Limited | Coprocessor for performing an arithmetic operation by automatically reading data from an external memory |
JPH10187599A (ja) * | 1996-11-07 | 1998-07-21 | Yamaha Corp | デジタル信号処理装置 |
KR100572945B1 (ko) | 1998-02-04 | 2006-04-24 | 텍사스 인스트루먼츠 인코포레이티드 | 효율적으로 접속 가능한 하드웨어 보조 처리기를 구비하는디지탈 신호 처리기 |
US6219764B1 (en) * | 1998-08-03 | 2001-04-17 | Micron Technology, Inc. | Memory paging control method |
US6526430B1 (en) * | 1999-10-04 | 2003-02-25 | Texas Instruments Incorporated | Reconfigurable SIMD coprocessor architecture for sum of absolute differences and symmetric filtering (scalable MAC engine for image processing) |
CN101782930B (zh) | 2009-01-21 | 2012-08-22 | 国际商业机器公司 | 在多处理器系统上进行分子动力学模拟的方法和装置 |
CN102804136B (zh) * | 2009-06-23 | 2015-03-11 | 精工爱普生株式会社 | 副处理器、集成电路装置及电子设备 |
CN102122275A (zh) * | 2010-01-08 | 2011-07-13 | 上海芯豪微电子有限公司 | 一种可配置处理器 |
CN101794210A (zh) * | 2010-04-07 | 2010-08-04 | 上海交通大学 | 基于fpga的通用矩阵浮点乘法器 |
US9460144B2 (en) | 2012-01-13 | 2016-10-04 | Oracle International Corporation | Lock acceleration |
WO2013128531A1 (ja) | 2012-02-28 | 2013-09-06 | 日本電気株式会社 | 計算機システム、その処理方法、及びコンピュータ可読媒体 |
DE102013212842A1 (de) | 2013-07-02 | 2015-01-08 | Robert Bosch Gmbh | Verfahren zum Betreiben eines Steuergeräts sowie Steuergerät mit einer Modellberechnungseinheit |
US9785444B2 (en) | 2013-08-16 | 2017-10-10 | Analog Devices Global | Hardware accelerator configuration by a translation of configuration data |
CN103677739B (zh) * | 2013-11-28 | 2016-08-17 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种可配置的乘累加运算单元及其构成的乘累加运算阵列 |
US9122514B2 (en) * | 2014-01-07 | 2015-09-01 | International Business Machines Corporation | Administering message acknowledgements in a parallel computer |
US20180046903A1 (en) * | 2016-08-12 | 2018-02-15 | DeePhi Technology Co., Ltd. | Deep processing unit (dpu) for implementing an artificial neural network (ann) |
CN107688469B (zh) | 2016-12-23 | 2020-02-11 | 北京国睿中数科技股份有限公司 | 兼顾通用指令和专用指令的可重构计算装置 |
US11562115B2 (en) * | 2017-01-04 | 2023-01-24 | Stmicroelectronics S.R.L. | Configurable accelerator framework including a stream switch having a plurality of unidirectional stream links |
US10699189B2 (en) * | 2017-02-23 | 2020-06-30 | Cerebras Systems Inc. | Accelerated deep learning |
US10186011B2 (en) * | 2017-04-28 | 2019-01-22 | Intel Corporation | Programmable coarse grained and sparse matrix compute hardware with advanced scheduling |
US11775313B2 (en) * | 2017-05-26 | 2023-10-03 | Purdue Research Foundation | Hardware accelerator for convolutional neural networks and method of operation thereof |
CN107391447A (zh) * | 2017-07-26 | 2017-11-24 | 成都网烁信息科技有限公司 | 一种电脑加速系统及方法 |
CN107622305A (zh) | 2017-08-24 | 2018-01-23 | 中国科学院计算技术研究所 | 用于神经网络的处理器和处理方法 |
CN107527090A (zh) | 2017-08-24 | 2017-12-29 | 中国科学院计算技术研究所 | 应用于稀疏神经网络的处理器和处理方法 |
US11222256B2 (en) * | 2017-10-17 | 2022-01-11 | Xilinx, Inc. | Neural network processing system having multiple processors and a neural network accelerator |
WO2019104695A1 (zh) * | 2017-11-30 | 2019-06-06 | 深圳市大疆创新科技有限公司 | 用于神经网络的运算装置、芯片、设备及相关方法 |
CN108446096B (zh) | 2018-03-21 | 2021-01-29 | 杭州中天微系统有限公司 | 数据计算系统 |
-
2018
- 2018-03-21 CN CN201810235312.9A patent/CN108446096B/zh active Active
-
2019
- 2019-03-06 JP JP2020546455A patent/JP7381481B2/ja active Active
- 2019-03-06 WO PCT/CN2019/077132 patent/WO2019179311A1/en unknown
- 2019-03-06 EP EP19771895.0A patent/EP3765956A4/en active Pending
- 2019-03-06 US US16/479,320 patent/US11243771B2/en active Active
-
2022
- 2022-01-21 US US17/648,659 patent/US11972262B2/en active Active
-
2023
- 2023-11-02 JP JP2023188892A patent/JP2024003111A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220147357A1 (en) | 2022-05-12 |
WO2019179311A1 (en) | 2019-09-26 |
US11972262B2 (en) | 2024-04-30 |
EP3765956A1 (en) | 2021-01-20 |
US11243771B2 (en) | 2022-02-08 |
CN108446096A (zh) | 2018-08-24 |
EP3765956A4 (en) | 2021-04-28 |
JP2021517299A (ja) | 2021-07-15 |
CN108446096B (zh) | 2021-01-29 |
JP7381481B2 (ja) | 2023-11-15 |
US20210055879A1 (en) | 2021-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2024003111A (ja) | データ計算システム | |
KR102492477B1 (ko) | 행렬 곱셈기 | |
US10140251B2 (en) | Processor and method for executing matrix multiplication operation on processor | |
US20110106871A1 (en) | Apparatus and method for performing multiply-accumulate operations | |
WO2019205617A1 (zh) | 一种矩阵乘法的计算方法及装置 | |
KR20210033757A (ko) | 메모리 장치 및 그 동작 방법 | |
CN113590508B (zh) | 动态可重构的内存地址映射方法及装置 | |
CN110348249A (zh) | 一种基于存储器内计算的处理器结构 | |
CN112130901A (zh) | 基于risc-v的协处理器、数据处理方法及存储介质 | |
CN115033188A (zh) | 一种基于zns固态硬盘的存储硬件加速模块系统 | |
CN111860773A (zh) | 处理装置和用于信息处理的方法 | |
US10216679B2 (en) | Semiconductor device and control method thereof | |
TWI754310B (zh) | 純函數語言神經網路加速器系統及電路 | |
CN109948787B (zh) | 用于神经网络卷积层的运算装置、芯片及方法 | |
CN108475188A (zh) | 数据处理方法和设备 | |
WO2020093968A1 (zh) | 卷积处理引擎及控制方法和相应的卷积神经网络加速器 | |
TWI770079B (zh) | 向量產生指令 | |
CN110750300A (zh) | 一种基于忆阻器存储器内处理的混合计算装置 | |
CN113591031A (zh) | 低功耗矩阵运算方法及装置 | |
CN110096307B (zh) | 通信处理器 | |
JP2008102599A (ja) | プロセッサ | |
CN112540793A (zh) | 支持多访存模式的可重构处理单元阵列及控制方法、装置 | |
KR20220143333A (ko) | 분산 sram 아키텍쳐를 가지는 모바일넷 하드웨어 가속기 및 상기 가속기의 채널 정상 데이터 플로우 설계 방법 | |
CN108664272B (zh) | 一种处理器内核结构 | |
CN113867686A (zh) | 运算方法、装置及相关产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231117 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20231117 |