JP6920170B2 - プロセッサ、及び複数のメモリ装置を含む分散計算システム内のワークフローを制御する方法 - Google Patents

プロセッサ、及び複数のメモリ装置を含む分散計算システム内のワークフローを制御する方法 Download PDF

Info

Publication number
JP6920170B2
JP6920170B2 JP2017204599A JP2017204599A JP6920170B2 JP 6920170 B2 JP6920170 B2 JP 6920170B2 JP 2017204599 A JP2017204599 A JP 2017204599A JP 2017204599 A JP2017204599 A JP 2017204599A JP 6920170 B2 JP6920170 B2 JP 6920170B2
Authority
JP
Japan
Prior art keywords
dpu
memory devices
memory
work
host
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.)
Active
Application number
JP2017204599A
Other languages
English (en)
Other versions
JP2018073414A5 (ja
JP2018073414A (ja
Inventor
ニゥ,ディ−ミン
チェン リィ,シュアング
チェン リィ,シュアング
ブレナン,ボブ
ティ マラディ,クリシュナ
ティ マラディ,クリシュナ
ゼング,ホング−ゾング
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2018073414A publication Critical patent/JP2018073414A/ja
Publication of JP2018073414A5 publication Critical patent/JP2018073414A5/ja
Application granted granted Critical
Publication of JP6920170B2 publication Critical patent/JP6920170B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7821Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)

Description

本発明に係る実施形態の1つの側面は、複数のメモリ装置を含むプロセッサに係り、特に、複数のメモリ装置の各々がDRAM基盤プロセシング装置(DPU、DRAM−based processing unit)を形成するDPUクラスタの拡張アーキテクチャを具現するプロセッサに係る。
本発明の実施形態の他の1つの側面は、分散計算システム内のワークフローを制御する方法に係り、特に、複数のメモリ装置の各々がDPUを形成するDPUクラスタの拡張アーキテクチャにおける分散計算システム内のワークフローを制御する方法に係る。
DPU(DRAM基盤プロセシング装置)は、例えばGPU(graphics processing unit)及びASIC(application specific integrated circuit)のような他のプロセッサ(processor)及び/又はグラフィック加速器(graphics accelerators)に対する代替加速器として使用され得る。DPUに対応する新しいエコシステム(ecosystem)には、DPUのための向上された又は最適のマッピング(mapping)及びスケジューリング(scheduling)を達成するために設計されたドライバ(driver)及びライブラリ(library)が提供される必要がある。
DPUは再構成可能(reconfigurable)であり、プログラム可能(programmable)である。例えば、DRAMセルによって提供されるロジックは、例えば加算器、乗算器等の相異なる演算を提供するように構成(又は再構成)され得る。例えば、DPUは若干の変更を伴うが、「3T1C」(セル当たり、3つのトランジスタと1つのキャパシタ)型、又は、「1T1C」(セル当たり、1つのトランジスタ、1つのキャパシタ)型の)DRAMプロセス及び構造に基づく。DPUは普通、特定の計算(コンピューティング)ロジック(例えば、加算器)を含まないので、その代わりにメモリセルが計算のために使用される。
現在の各DPUは、例えば16GB(giga−byte)容量を有し、チップ上に8M(8百万)個のコンピューティング装置を有するが、それでも、例えば各DPUは10億個のニューロンを含む人間の脳にはるかに及ばない。例えば、人間の脳と類似なニューラルネットワーク(NN:neural network)を具現するためには数百から数千個のDPUが必要とする。
しかし、このような膨大なDPUを駆使して人間の脳と類似なニューラルネットワークを可能にする多重DPU拡張アーキテクチャは従来、実現していなかった。
本発明は上述した技術的課題を解決するためのものであって、本発明の目的は、人間の脳と類似なニューラルネットワークの具現に向けた、多重DPU(DRAM基盤プロセシング装置)のための拡張アーキテクチャを具現するプロセッサと、その際の分散計算システム内のワークフローを制御する方法を提供することにある。
CPU/GPUの拡張と比較して、DPUの拡張はメモリ(例えば、DIMM)の拡張とより類似し、より多数の集積(統合)の支援が可能である。また、通信オーバヘッドが削減されるか、或いは最小化される。
本発明の例示的な実施形態に係るプロセッサは、複数のメモリ装置を含み、前記複数のメモリ装置の各々は、複数のプログラム可能なメモリセルを含み、前記複数のメモリ装置の各々は、メモリの1つとして、計算装置として、又はハイブリッドメモリ計算装置(hybrid memory−computation unit)として動作するように再構成されるように構成され、前記複数のメモリ装置は、ストレージ要件または計算要件の内の少なくとも1つに基づいて、メモリ、計算装置、及びハイブリッドメモリ計算装置として動作するように再構成されるように構成され、複数のメモリコントローラをさらに含み、前記複数のメモリコントローラの各々は、1つ以上の前記複数のメモリ装置を制御するように構成され、前記複数のメモリ装置間のワークフロー(work flow)をルーティング(routing)するための複数のルータ(router)をさらに含むことを特徴とする
複数のメモリ装置の少なくとも1つはホストから作業を受信するように構成されることができる。
複数のメモリ装置は複数のメモリ装置に対する作業分割、複数のメモリ装置へのデータ分配(distribution)、複数のメモリ装置からのデータ収集、又は複数のメモリ装置への作業分配の内の少なくとも1つを遂行するように構成されたホストによって制御されるように構成されることができる。
プロセッサはメモリ装置作業マッピング情報を格納するように構成される格納装置をさらに含むことができる。
複数のメモリ装置の各々はDRAMを含むことができる。
計算装置として構成される前記複数のメモリ装置は、遂行に利用できる計算装置がないか、又は、作業全体を遂行することができない場合、それぞれが作業の対応する部分を実行するように構成されることができる。
複数のメモリ装置は拡張可能なクラスタアーキテクチャ内に配置されることができる。
数のルータの内の少なくとも1つは、前記複数のメモリコントローラの内の該当する1つのメモリコントローラに埋め込まれることができる。
本発明の例示的な実施形態に係って、複数のメモリ装置を含む分散計算システム内のワークフロー(work flow)を制御する方法において1つ以上の前記メモリ装置によって遂行される作業(job)を含む前記ワークフローを受信する段階と、前記ワークフローに従って、前記複数のメモリ装置の内の1つによって前記作業又は前記作業の一部を遂行する段階と、前記作業又は前記作業の一部の完了後に、前記複数のメモリ装置の内の前記1つによって、前記ワークフローの残りの部分を前記複数のメモリ装置の内の他の1つに転送する段階と、を含み、前記複数のメモリ装置は、メモリの1つ、計算装置、及びハイブリッドメモリ計算装置として動作するように構成されるもの、及び、ストレージ要件または計算要件の内の少なくとも1つに基づいて、メモリの1つ、計算装置、及びハイブリッドメモリ計算装置の異なるものとして動作するように再構成されるように構成される
ワークフローは作業要請を受信するホストによって生成され、そして複数のメモリ装置の内の少なくとも1つに提供されることができる。
ワークフローは複数のメモリ装置の内の1つ以上によって生成されることができる。
方法は資源(resources)の可用性(availability)に応じて、1つ以上の前記メモリ装置を、計算装置として、又は、メモリとして再構成する段階をさらに含むことができる。
非同期式通信プロトコルが複数のメモリ装置間の通信に使用されることができる。
ワークフローの前記残りの部分は、前記ワークフロー内の全ての作業が完了するか、或いは失敗して終了する時まで、前記複数のメモリ装置の内の次のメモリ装置に送信されることができる。
複数のメモリ装置の内の1つが作業を全体的に完了できなければ、作業は分割されることができる。
本発明の例示的な実施形態に係って、複数のメモリ装置を含む分散計算システム内のワークフロー(work flow)を制御する方法において、前記複数のメモリ装置の内の1つによって第1作業を遂行するための第1要請をホストから受信する段階と、前記複数のメモリ装置の内の前記1つによって前記第1作業を遂行する段階と、前記第1作業の結果を前記複数の装置の内の前記1つから前記ホストに提供する段階と、第2作業を遂行するために、前記複数のメモリ装置の内の他の1つによって、前記ホストから第2要請を受信する段階と、を含み、前記複数のメモリ装置は、前記第1要請に対応するストレージ要件または計算要件の内の少なくとも1つに基づいて、メモリの1つ、計算装置、及びハイブリッドメモリ計算装置として再構成されるように構成され、前記複数のメモリ装置は、前記第2要請に対応するストレージ要件または計算要件の内の少なくとも1つに基づいて、再構成されるように構成される
複数のメモリ装置の内の他の1つは、ホストから第1作業の結果をさらに受信することができる。
分散計算システムは、前記第1作業及び第2作業を送信し、前記第1作業及び前記第2作業の結果を読み取るように構成されるホストをさらに含むことができる。

本発明の実施形態に係るプロセッサは、含まれる複数のメモリ装置の各々が、メモリ(即ち、従来のメモリ装置)として、計算装置として、又はハイブリッドメモリ計算装置として動作するように構成可能である。
また、本発明の実施形態に係る複数のメモリ装置を含む分散された計算システム内のワークフローを制御する方法は、複数のメモリ装置の中で1つ以上が遂行するべき作業を含むワークフローを受信する段階と、ワークフローに応じて作業又は作業の一部を遂行する段階と、作業又は作業の一部の完了の後にワークフローの中で残りを複数のメモリ装置の中で他の1つに送る段階と、を含む。
従って、人間の脳と類似なニューラルネットワーク能力を提供できる、多重DPUのための拡張アーキテクチャを具現するプロセッサと、その際の分散計算システム内のワークフローを制御する方法が提供される。
本発明のこれら及び他の特徴及び側面は明細書、請求項、及び添付図面を参照して認識され、理解されるべきである。
本発明の例示的な実施形態に係るコンピュータプロセシングアーキテクチャの概略ブロック図である。 本発明の例示的な実施形態に係る分散されたDPUクラスタアーキテクチャの図式のブロック図である。 本発明の例示的な実施形態に係って埋め込まれたルータを有する分散されたDPUクラスタアーキテクチャの図式のブロック図である。 ホストによる中央集中式制御が具現された本発明の例示的な実施形態に係ってホストによる分散されたDPUクラスタ制御の順序図である。 ホストが各計算段階で積極的な役割を果たす本発明の例示的な実施形態に係る分散されたDPUクラスタ制御の順序図である。 アドホック制御が具現された本発明の例示的な実施形態に係る分散されたDPUクラスタ制御の順序図である。
本発明の実施形態は複数のDPU(DRAM−based processing unit(DRAM基盤プロセシング装置))のための方法及び連関された構造に係り、複数のDPUの各々はDPUクラスタアーキテクチャ(cluster architecture)内のノード(node)として構成される。本発明の多様な実施形態に係って、各DPUはノードとして言及されるか、又は(複数のDPUを含む)各DPUモジュールがノードとして言及される。例示的な実施形態で、各ノードは多重DPUモジュールの集合を含む。例えば、ノードは複数のDPUモジュールを有するサーバを含み、ここで、各DPUモジュールは多重DPU(又はDPU装置)を有する。DPUは一般的な大規模並列プロセッサ(massively parallel processors)又はプロセシングを提供できる均一に融合(merged)されたメモリ及び加速器プール(pool)を構成する。各ノード内の資源はハードウェア(例えば、算術演算・論理装置(Arithmetic Logic Unit;ALU)の数)によって制限される。
本発明の例示的な実施形態に係るコンピュータプロセシングアーキテクチャ(又はシステム)は複数のメモリ装置(例えば、DPU)を含むプロセッサとして言及され、ここでメモリ装置の各々は3T1C型メモリセル及び/又は1T1C型メモリセルを含む複数のメモリセルを含む。例示的な実施形態に係って、システムの資源要求に基づいて及び/又はユーザー設計/嗜好に基づいて、メモリとして、計算装置として、又はハイブリッドメモリ計算装置として動作するように、実質的に同一の構造を有するメモリ装置を用いて構成(及び/又は、再構成)できるという柔軟性が提供される。
図1は本発明の例示的な実施形態に係るコンピュータプロセシングアーキテクチャ100(又はシステムアーキテクチャ)の概略ブロック図である。
コンピュータプロセシングアーキテクチャ100はソフトウェアスタック(software stack)がその上で動作するように生成されるハードウェア150(又はハードウェアレイヤ(layer))を含む。コンピュータプロセシングアーキテクチャ100はディープラーニング(deep learning)を加速するように構成可能であり,ニューラルネットワーク(neural network、NN)をエミュレート(emulate)、或いは、シミュレート(simulate)可能である。
ハードウェア150は、例えばGPUモジュール(GPU module)152、TPUモジュール(tensor processing unit module;TPU module)154、DPUモジュール156、及び多重DPUモジュール158を含む。GPUモジュール152及びTPUモジュール154の各々は、GPU又はTPUを各々含み、複数の支援チップを含む。TPUは、例えばASIC上で具現され、マシンラーニング(machine learning)向けに構成されるか、或いは最適化される。例示的な実施形態に係って、DPUは当業者に公知されたTPU又はGPUのような他の加速器と同様に作動する。
図1に示されたDPUモジュールは2つの形態因子(form factor)を有する。第1因子はPCIe(Peripheral Component Interconnect Express)バス上のDPUモジュール156であり、第2因子はDIMM(Dual In−line Memory Module)バス上の多重DPUモジュール158である。図1では、DPUモジュール156が単一のDPU装置を有する場合が示されたが、DPUモジュール156は一般に1つ以上の埋込形DPUを含むPCIe装置である。同じく図1では、多重DPUモジュール158が多重のDPU装置を有する場合が示されたが、多重DPUモジュール158は1つ以上の埋込形DPUを含むDIMMである。
コンピュータプロセシングアーキテクチャ100のハードウェア150内のDPUモジュールはPCIe装置及び/又はDIMMに制限されず、SoC(System on Chip)装置又はDPUを含む他の類型のメモリ装置を含む場合があることが理解されなければならない。DPUのコンピューティングセルアレイ(computing cell arrays)は、「3T1C)」(3つのトランジスタと、1つのキャパシタ)型DRAMコンピューティングセルトポグラフィ(topography)、及び/又は、「1T1C」(1つのトランジスタと、1つのキャパシタ)型DRAMコンピューティングセルポグラフィを含んで構成され得る。
図1に示されたハードウェア150はGPUモジュール152、TPUモジュール154、DPUモジュール156、及び多重DPUモジュール158の各々を1つずつ有するが、他の実施形態において、ハードウェアはGPUモジュール、TPUモジュール、DPUモジュール、及び/又は多重DPUモジュールの任意の他の適切な組合せを含む。例えば、一実施形態において、ハードウェアはDPUモジュール及び/又は多重DPUモジュールのみを含む。
ソフトウェアスタック110は「1つ以上のライブラリ及びドライバ」140(例えば、「ライブラリ及びドライバ」レイヤ)、1つ以上のフレームワーク(framework)130(例えば、フレームワークレイヤ)、及び1つ以上のアプリケーション(application)120(例えば、アプリケーションレイヤ)を含む。ここで1つ以上のライブラリは、例えばCUDA(登録商標)ディープニューラルネットワークライブラリ(CUDA(登録商標) Deep Neural Network library;cuDNN)のような、NVIDIA(登録商標)社から供給され利用可能であるニューラルネットワークライブラリ(Neural Network Library;NNL)142を含む。このNML(142)は、ディープニューラルネットワーク(DNN)に対するプリミティブ(primitives)のGPU加速ライブラリ(GPU−accelerated library)であり、GPUモジュール152を動作させるために使用される。
CUDA(登録商標)及びNVIDIA(登録商標)は、NVidia社(NVidia Corporation、Santa Clara、CA)の登録商標である。もちろん、本発明の実施形態に係って、任意の他の適切、且つ商業的に利用可能な、及び/又は、注文製作した(custom−made)NNL(ニューラルネットワークライブラリ)がCUDA(登録商標)ディープNNLの代わりに、又はCUDA(登録商標)ディープNNLに加えて使用される。また1つ以上のドライバはTPUモジュール154を駆動するためのTPUドライバ144を含む。
1つ以上の実施形態に係る1つ以上の「ライブラリ及びドライバ」140はDPUハードウェア(例えば、DPUモジュール156、及び/又は多重DPUモジュール158)を支援するためのDPUライブラリ145及びDPUドライバ147を含む。DPUコンパイラ(DPU compiler)149はDPUモジュール156及び/又は多重DPUモジュール158を動作させるためのDPUライブラリ145及びDPUドライバ147を利用して生成されたルーチン(routines)をコンパイルするのに使用される。本発明の例示的な実施形態に係って、1つ以上のDPU装置を含む加速器を活性化するために、DPUドライバ147はTPUドライバ144と非常に類似している。DPUライブラリ145は、例えばアプリケーションレイヤ120で動作する相異なる(複数の)アプリケーションに対してハードウェア150内のDPU内の各サブアレイに対する最適のマッピング機能、資源割当機能、及びスケジューリング機能を提供するように構成される。
一実施形態において、DPUライブラリ145は移動、加算、乗算等のような演算を含むフレームワークレイヤ130のための高級の(high−level)アプリケーションプログラミングインタフェイス(application programming interface;API)を提供する。例えば、DPUライブラリ145は、また加速化されたディープラーニングプロセスのために適用できるフォワード(forward)及びバックワード(backward)コンヴォリューション(convolution、畳み込み)、プーリング(pooling)、正規化(normalization)、及び活性レイヤのような、しかし、これに制限されない、標準型ルーチンの具現を含む。一実施形態において、DPUライブラリ145はコンヴォリューションニューラルネットワーク(convolution neural network;CNN)の全体コンヴォリューションレイヤに対する計算をマッピングするAPI類似機能を含む。また、DPUライブラリ145はコンヴォリューションレイヤ計算の、DPUへのマッピングを最適化するためにAPI類似機能を含む。
DPUライブラリ145は、またタスク(task)、バッチ(batch)、出力チャネル、ピクセル(pixel)、入力チャネル、コンヴォリューション(畳み込み)カーネル(kernel))内の任意の個別の又は多重の並列処理(parallelism)を、チップ、バンク(bank)、サブアレイ(sub−array)及び/又はマット(mat)レベルで対応するDPU並列処理にマッピングすることによって、資源割当を改善するか、或いは最適化するためのAPI類似機能を含む。また、DPUライブラリ145は、初期化段階及び/又はランタイムにおいて性能(即ち、データ移動フロー(flow))とパワー消費の間のトレードオフを図る最適のDPU構成を提供するAPI類似機能を含む。
DPUライブラリ145によって提供される他のAPI類似機能は、バンク当たり活性サブアレイの数、及び活性サブアレイ当たりの入力特徴マップの数の設定、特徴マップの分割、及び/又はコンヴォリューションカーネルの再使用方式、等のデザインノブ類型(design−knob−type)の機能を含む。続いて、他のAPI類似機能は各サブアレイに対してコンヴォリューションコンピューティング(convolution computing)、チャネル要約(channel sum up)、及び/又はデータディスパッチ(data dispatching)のような特定タスクを割当することによって追加的な資源割当最適化を提供する。オペランドが整数と確率的な数の間で変換されれば、DPUライブラリ145は精度の制約を充足させながら、オーバヘッド(overhead)を減少させるか、或いは最小化するAPI類似機能を含む。精度が予想より低い場合、DPUライブラリ145は確率的な表現のための追加ビットを利用して値を再び計算するか、又はCPUのような他のハードウェアにそのタスクをオフロード(offload、委託)するAPI類似機能を含む。
DPUライブラリ145は、またDPU内の活性化されたサブアレイを同時に(又は一斉に)スケジューリングし、そしてコンピューティング演算によってデータ移動が隠されるようにデータ移動をスケジューリングするAPI類似機能を含む。
DPUライブラリ145の他の側面は、さらなるDPU開発のための拡張インタフェイスを含む。一実施形態において、DPUライブラリ145は標準類型の演算(即ち、加算、乗算、最大/最小、等)以外のNOR及びシフト(shift)ロジック型の演算を利用して機能を直接的にプログラムするためのインタフェイスを提供する。拡張インタフェイスは、またDPUライブラリ145によって特別に支援されない動作がライブラリ及びドライバレイヤ140でコントローラSoC、CPU(central processing unit)/GPU要素、及び/又はCPU/TPU要素にオフロードされるようにインタフェイスを提供する。DPUライブラリ145のその他の側面はDPUメモリがコンピューティングのために使用されていない時にメモリの拡張としてDPUのメモリを使用するためにAPI類似機能を提供する。
DPUドライバ147はDPUハードウェアレイヤをシステムに統合するためにハードウェアレイヤ150でのDPU、DPUライブラリ145、及び上位レイヤでのオペレーティングシステム(operating system;OS)の間のインタフェイス連結を提供するように構成される。即ち、DPUドライバ147はDPUをシステムOS及びDPUライブラリ145に露出される。一実施形態において、DPUドライバ147は初期化におけるDPU制御を提供する。一実施形態において、DPUドライバ147は、DRAM型のアドレス又はDRAM型のアドレスシークェンスの形を用いて命令語をDPUに送信し、DPUへの及びDPUからのデータ移動を制御する。DPUドライバ147はDPU−CPU及び/又はDPU−GPU通信を処理すると共に多重DPU通信を提供する。
DPUコンパイラ149はDPUライブラリ145からのDPUコードを、DPUドライバ147によって使用されるメモリアドレスの形のDPU命令語にコンパイルしてDPUを制御する。DPUコンパイラ149によって生成されたDPU命令語は、DPU内の1つ及び/又は2つの行で動作する単一命令語、ベクトル命令語、及び/又は、集合(gathered)ベクトル型の動作中読出し(read−on−operation)命令語である。
DPUモジュール156は、例えば通信のためにPCIeインタフェイス(I/F)を使用し、そして多重DPUモジュール158は通信のためにDIMMインタフェイス(I/F)を使用する。DPUモジュール156はDPUに加えてコントローラ及び1つ以上のDRAMチップ/モジュールを含む。多重DPUモジュール158は2以上のDPUを制御するように構成されたコントローラを含む。
例えば、多重DPUモジュール158内のDPUは分散されたDPUクラスタアーキテクチャを有するように構成され、その場合、プロセシング又は作業(job)が1つ以上のDPUの間に分散されるか、或いは共有されるようにDPUが配置される。例えば、多重DPUモジュールは人間の脳と類似なニューラルネットワーク能力(capacity)を提供できるクラスタアーキテクチャを有する。ニューラルネットワーク能力を提供するために、クラスタアーキテクチャは複数のDPUモジュール、複数の多重DPUモジュール、及び/又は、複数のDPUノードから構成される。ここで、複数のDPUモジュールの各々は多重DPUを含み、複数のDPUノードの各々は複数の多重DPUモジュールを含む。クラスタアーキテクチャ内のDPUの各々は、全部がメモリ(DRAM)として、全部が計算装置として、又はその組み合わせ(例えば、ハイブリッドメモリ計算装置)として、構成される。
よって以下、DPU及びメモリ(DRAM)を総称する場合、DPU/DRAMという。
フレームワーク130は第1マシンラーニング・ソフトウェアライブラリ・フレームワーク(machine learning software library framework)132、第2マシンラーニング・ソフトウェアライブラリ・フレームワーク134を含み、及び/又は、当業者に公知の、1つ以上の他のDPUを活性化するオープンソースフレームワーク(open source frameworks)136に拡張できる。例示的な実施形態で、既存のマシンラーニングライブラリはフレームワークに使用される。例えば、フレームワークはタッチ7(Touch7)及び/又はテンソルフロー(Tensor Flow)、又は当業者に公知の任意の他の適切な単数又は複数のフレームワークを含む。
例示的な実施形態で、フレームワークレイヤ130は、ライブラリ及びドライバレイヤ140及びハードウェアレイヤ150に対する使いやすいインタフェイス(user−friendly interface)を提供するように構成される。一実施形態において、フレームワークレイヤ130は使いやすいインタフェイスを提供し、アプリケーションレイヤ120における広い範囲のアプリケーションと互換性があり、DPUハードウェアレイヤ150をユーザーに対して透明にする。
他の実施形態において、フレームワークレイヤ130は、定量化機能(quantitation functions)をタッチ7類型のアプリケーション及びテンソルフロー類型のアプリケーションなどの、しかし、これに制限されない、従来の方法に加えるフレームワーク拡張を含む。一実施形態において、フレームワークレイヤ130は定量化機能をトレーニングアルゴリズム(training algorithm)に加えることを含む。他の実施形態において、フレームワークレイヤ130は、除算、乗算及び平方根の既存のバッチ正規化(batch−normalization)方法を無効(override)にして、除算、乗算及び平方根のシフト近似方法(shift approximated methods)を提供する。
続いて、更に他の実施形態において、フレームワークレイヤ130は、ユーザーが計算のために使用されるビット数を設定可能にする拡張を提供する。その他の実施形態において、フレームワークレイヤ130は、多重DPU向けのAPIをDPUライブラリ及びドライバレイヤ140からフレームワークレイヤ130に取り込む(wrap)能力を提供し、その結果、ユーザーはハードウェアレイヤにおいて多重GPUの使用と同様に多重DPUを使用できる。フレームワーク130のその他の特徴はユーザーがハードウェアレイヤ150においてDPU又はGPUの中で何れか1つに機能の割当を可能にする。
フレームワークの上にはイメージタッグ(image tag)122、セルフドライブアルゴリズム(self−drive algorithm)124、人工知能(artificial intelligence)126、及び/又は音声研究/認識128を含む1つ以上のアプリケーション120、及び/又は当業者に公知された任意の他の適切、且つ望ましいアプリケーションが具現される。
一部の実施形態において、ホストは作業を分割し、DPUクラスタアーキテクチャ内の各々の分割区画に対してデータ/作業を分配/収集する。一部の実施形態において、1つ以上のルータ(router)はDIMMコントローラの内部に埋め込まれ、非同期式通信プロトコル(asynchronous communication protocol)に従って動作する。他の実施形態において、ルータはDIMM又は他のメモリコントローラの外部に(又は、DIMM又は他のメモリコントローラから分離して)設置される。
本発明の実施形態が主にDRAM(例えば、3T1C又は1T1C型DRAM)に関して説明されたが、本発明はこれに制限されない。例えば、一部の実施形態において、任意の他の適切なメモリがメモリ基盤プロセシング装置(例えば、メモリ装置)を生成するためにDRAMの代わりに使用される。
加速器のプール及びメモリのプールを含む従来一般的なアーキテクチャにおいて、ホストが普通加速器及びメモリの間にインタフェイスを提供する。ホストが加速器及びメモリの間に介在するこのようなアーキテクチャでは、それ故、ホストが加速器及びメモリの間の隘路(bottleneck)となる場合がある。
このような隘路現象を減少させ、防止するために、本発明に係る例示的な実施形態において、ホストは加速器及びメモリの間に位置しない。代わりに、加速器は複数のDPUを利用して具現される。例えば、各、多重DPUモジュールは複数のDPU及びSoCとして具現されるDPUコントローラを含む。また、複数の(多重)DPUモジュールは一緒にDPUルータに連結される。DPUルータはDPUコントローラと同一のSoCにより具現される。しかし、本発明はこれに制限されず、コントローラ兼ルータはDPUコントローラを含むSoCの外部に具現され得る。また、(多重)DPUモジュールの各々はDPUルータを含むか、又は1つのDPUルータは2つ以上の(多重)DPUモジュールによって共有され得る。
図2は本発明の例示的な実施形態に係る分散されたDPUクラスタアーキテクチャ200の図式のブロック図である。
図2の分散されたDPUクラスタアーキテクチャ200で、複数の多重DPUモジュール202、204、208及びDRAMモジュール206はコントローラ及びルータ210、212、214、216を通じて互いに連結される。本実施形態ではDRAMモジュール206のみがメモリとして構成された場合が示されたが、本発明はこれに制限されず、任意のDPU/DRAMモジュールがメモリとして、計算装置として(又は、プロセシング装置/プロセッサ)、又はハイブリッド格納/計算装置として具現可能である。DPUモジュール及びDRAMモジュールは、機能的には各々、加速器(計算装置)及びメモリモジュール(メモリ)とも言及するけれども、それらは実質的に互いに同一のハードウェア構造を有し、多重DPUモジュール及びDRAMモジュールは計算及び格納のために各々異なって構成されたDPU(又はメモリ装置)として看做される。また、例示的な実施形態に係って、DPUの各々は加速器としての(計算のために)又はメモリとして(格納のために)機能をするように再構成されるか、又は加速器及びメモリの機能の双方を有するように再構成される。

よって以下、多重DPUモジュール及びDRAMモジュールを総称する場合、煩雑さを避けて、DPU/DRAMモジュールという。
ホスト220は、またコントローラ及びルータ214の中で1つを通じて全DPU/DRAMモジュールと連結される。アーキテクチャ200は、全てのワーク(work、例えば作業)がホスト220によって生成される、ホスト中心アーキテクチャ(host centric architecture)と称する。ここで、ホスト220はどの資源がネットワーク上にあるかが分かり、そして特定命令又は命令及びワークロード(workload)を1つ以上のコントローラ及びルータ210、212、214、216を通じて特定DPUに送信する。例示的な実施形態において、各DPUは計算及び格納の何れかのみを遂行するが、スケジューリング及びマッピングと関連された全てのタスク(task)を遂行するのはホストの責任であるので、性能はホスト220に制限される可能性がある。
例えば、多重の、DPU/DRAMモジュールが1つのサーバ/コンピュータ/ノード(以下、これらを総称してノードという)内に位置すれば、DPU/DRAMモジュールは直接的に互いに通信できる。同一のサーバ/コンピュータ/ノード内に位置しないDPU/DRAMモジュールに対して、それは1つ以上のルータ及び/又はスイッチ(例えば、コントローラ及びルータ210、212、214、216を通じて互いに通信し、これはインタネットのような、1つ以上の通信経路を通じて遂行される。
DPU/DRAMモジュールの各々は、例えば多重DPUモジュール202−1は同一のDPUコントローラ(例えば、コントローラSoC)に連結された複数のDPUを含む。同一のDPUモジュール上のDPUはバス(bus)基盤の連結(例えば、階層バス基盤の連結)であるDIMM内部連結を通じてDPUコントローラに連結される。このような理由で、同一の多重DPUモジュール上のこれらのDPUは、該同一の多重DPUモジュールに搭載されたDIMM上コントローラSoCによって制御される。ここで、DPU内のコントローラSoCは命令/データを受信し、DPUモジュール内のDPUを管理する責任がある。
DPUモジュールは、該DPUモジュールがメモリコントローラに連結されるDIMM相互間の連結を通じて互いに連結され、前記メモリコントローラは何れかのコントローラ及びルータ中のルータに連結される。ルータはDPU/DRAMモジュールをメモリ/加速器ネットワークに連結する。
図2の分散されたDPUクラスタアーキテクチャで、例えばメモリと加速器との間のインタフェイスにおける隘路現象は、このような、均一に融合されたメモリ及び加速器のプールを提供することによって防止される。例えば、ホスト220がネットワークのエッジでコントローラ及びルータ214に連結されることによって、メモリと加速器との間の、ホスト220に起因する隘路現象はほとんど又は全くない。
例えば、メモリ(格納装置)及び加速器(計算装置)のプールは柔軟なネットワーク連結を有する。また、各ノードは加速器(DPU)又はメモリ(DRAM)の中で何れか1種類を含んで構成される。一部の実施形態において、各ノードは加速器及びメモリの特徴の双方を含む加速器とメモリのハイブリッド(accelerator−memory hybrid)として動作する。例えば、各ノードは多重のDPUモジュールの集合であり、複数の多重DPUモジュールを有するサーバを含み、ここで各多重DPUモジュールは多重のDPUを含む。

以下、これらの、単数又は複数の多重DPUモジュール、及び/又は単数又は複数のDRAMモジュールを含むノードを、DPU/DRAMノードと総称する。
このような理由で、本発明の1つ以上の例示的な実施形態に係る分散されたDPUクラスタアーキテクチャで、均一に融合されたメモリ兼加速器のプールが、一般的な大規模並列(massively parallel)プロセッサを生成するために提供される。ここで、各DPU/DRAMノードの資源はハードウェア(例えば、ALUの数等)によって制限される。即ち、ALUの制限された数は、そのDPU/DRAMノードが提供できる最大メモリ容量又は最大計算容量(能力)を決定する。
DPUクラスタアーキテクチャは再構成可能なメモリ/計算資源を提供し、そして各DPU/DRAMノード内の全ての資源は、その全てをメモリ(格納装置)として、その全てを計算装置として、又はその全てをメモリ及び計算装置の組み合せ(即ち、ハイブリッド)として構成される。この方法によれば、各DPU/DRAMノードにおける格納及び/又は計算要求に応じて各DPU/DRAMノード内の全ての資源が構成に寄与するので、格納及び/又は計算資源の浪費は防止されるか、又は減少される。これはDPU/DRAMノードの各々がその使用中に、より多い格納資源又はより多い計算資源の提供を必要とするか、又はユーザーが望むか、に応じて構成されるか、或いは再構成できるからある。
図3は本発明の例示的な実施形態に係って、コントローラSoC内に埋め込まれたルータを有する、分散されたDPUクラスタアーキテクチャ300の図式のブロック図である。図3のアーキテクチャ300はルータ(図示せず)が各DPU/DRAMモジュール内のコントローラSoCに結合されており、各DPU/DRAMモジュールがそのままノードを形成し、格別なコントローラ及びルータを要しない点で図2のアーキテクチャ200と異なる。分散されたDPUクラスタアーキテクチャ300も、またホスト中心アーキテクチャであると称し得る。
図2のDPUクラスタアーキテクチャと類似に、図3においても、加速器プール及びメモリプールの間のインタフェイスに位置するホストがないので、加速器プール及びメモリプールの間のインタフェイスでの隘路現象は減少されるか、或いは防止される。図3の分散されたDPUクラスタアーキテクチャ300に応じて、複数のDPU/DRAMモジュール302、304、306、312、314、316、322、324、326、332、334、336が行及び列に配置される。DPU/DRAMモジュールの中で1つ(図では、DPUモジュール312)がネットワークのエッジでホスト350と連結されるので、ホスト350の介在によって生じる隘路現象は小さいか、或いはない。
本発明の例示的な実施形態に係るホスト中心アーキテクチャで、最初にホストは異なる多重DPUモジュール(以下、本段落では「DPU」と略記する)の各々に対してワーク又はワークの一部を生成する。例えば、第1ワーク(又は第1ワークの一部)は第1「DPU」に割当され、そして第2ワーク(又は第2ワークの一部)は第2「DPU」に割当される。その次に、ホストはワークフロー(workflow)の第1ワークを第1「DPU」に送信する。ワークフローは、また第2「DPU」に送信されるべき第2ワークを含む。第1「DPU」が自分のワークを終了する時、第1「DPU」は(ホストによってマッピングされた/スケジュールされた)次の段階がどこにあるかを知っているので、第1「DPU」は結果をホストに再び送信せず、第2「DPU」に直接送信する。例えば、第1「DPU」がそのワークを終了する時、第1「DPU」は中間データ(又は中間結果)を他の計算のために第2「DPU」に直接送信する。
それ故、第1「DPU」が中間データをホストに再び送信し、ホストが受信された中間データを第2「DPU」に送信する必要がない。斯くして、図3のDPUクラスタアーキテクチャにおいては、各「DPU」が直接、DPU/DRAMノードを形成し、ホスト無しで互いに通信できる。例えば、ホストは第1「DPU」に対してデータを第2「DPU」に転送(forward)する単数又は複数の命令を送信するだけで良く、データを移動するのはコントローラSoCの責任である。これはホストがネットワーク内の全ての資源を知っているので、例示的な実施形態に係る図2及び図3のホスト中心アーキテクチャ内で可能であり、マッピング及びスケジューリングを遂行するのはホストの責任である。このような理由で、ホストは計算の各段階に関与する必要はない。本発明の一部の他の例示的な実施形態に係って、ネットワーク上のどの装置もネットワークがどのようにして生成されたか、又はネットワーク上のどの資源が利用可能であるかを常に承知する必要が無いようなシステムアーキテクチャが提供される。
図3に示されたように、DPU/DRAMモジュールの中で1つ(即ち、DRAMモジュール324)のみがメモリとして構成され、反面に、DPU/DRAMモジュールの中で残りは多重DPUモジュール(プロセシング/計算モジュール、又は計算モジュール)として構成される。他の実施形態において、DPU/DRAMモジュールの中で1つ以上はメモリモジュール又はハイブリッド計算/メモリモジュールとして構成される。DPU/DRAMモジュールの各々は複数のDPU及びDPUコントローラ(即ち、コントローラSoC)を含み、このようにすることによって、DPU/DRAMモジュールの各々は多重DPUモジュール又はDRAMモジュールとして構成又は再構成される。また、同一のDPU/DRAMモジュール内で、全てのDPU/DRAMが実質的に互いに同一であるハードウェアを有しても、DPUの中で1つ以上はメモリ(格納装置)として構成され、反面に、DPUの中で他の1つ以上は計算装置(プロセシング/計算装置)として構成される。
例えば、一部の実施形態で、ルータはDIMMコントローラSoC内に共に具現される。その場合、適切なDIMM相互間の通信を保障するために非同期式通信プロトコルが使用され、ここでは例えばハンドシェーク(handshake)が使用される。他の実施形態においては、DDR(double data rate)のような、同期式プロトコルが使用される。ホスト350がDPUモジュールの間ではなく、ネットワークの一端に位置しているが故に、ホスト帯域幅の使用がより少なくなり、ホストによってもたらされていた如何なる隘路現象も減少されるか、或いは除去される。
一部の例示的な実施形態において、DPU/DRAMモジュール、即ち、多重DPUモジュール及び/又はDRAMモジュールが分散されたDPUクラスタアーキテクチャに配置されるが、それらは依然としてホストにより集中制御される。このような実施形態で、ホストは各DPU/DRAMモジュールへの作業マッピング情報(job mapping information)を維持する。作業マッピング情報はソフトウェア及び/又はドライバの形態をとる。ネットワークにおいて、ニューラルネットワーク変数及び他の有用なデータはクラスタ内のノードの中の1つであるDRAMノードに格納される。
本発明の例示的な実施形態に係って、2つの別々の、ホスト中心アーキテクチャ/構成が提供される。第1ホスト中心アーキテクチャでは、ホストはワークフロー内の全てのワークロードを第1多重DPUモジュール(以下、本段落でも「DPU」と略記する)に送信し、第1「DPU」はワークロードの残り及び/又は結果を第2「DPU」に送信する。第2「DPU」は計算を遂行し、結果及びワークフロー内のワークロードの残りを第3「DPU」に送信する。
第2ホスト中心アーキテクチャでは、各段階で、ホストはデータを再び読み出し、次のワークを生成し、次のワークを中間データ(例えば、以前に単数又は複数の「DPU」により遂行された計算の結果)と共に次の単数又は複数の「DPU」に送信する。他の例示的な実施形態では、1つ以上の「DPU」がホストによるマッピング/スケジューリング無しで作業を含むワークフローを生成することが可能であり、そしてホストを甚だしくは必要としないアドホック(ad hoc)制御が提供される。前述した例示的な実施形態の各々は図1、図2、及び図3で説明された適切なシステム/ハードウェアアーキテクチャを利用して具現できる。
図4はホストによる中央集中式制御が具現された本発明の例示的な実施形態に係って、ホストによる分散されたDPUクラスタ制御の順序図である。
図4の段階400で、ホストは作業要請を受信する。段階402で、ホストはメモリに格納されたDPU/DRAM作業マッピングテーブルを確認する。作業マッピングテーブル確認過程で、ホストはDPU/DRAM資源の中から、作業の変数を格納するDRAMを探す。例えば、ニューラルネットワーク(NN)アプリケーションのために、ホストはNN変数を有するDRAMを探す。ホストは、また使用可能なDPU資源を探す。
段階404で、DPUが個別的に作業を終了できない場合、ホストは作業を2つ以上のDPU資源に割当するように分割する。例えば、作業は第1作業、第2作業等に分割され、それは2つ以上の相異なるDPU資源に、例えば第1作業は第1DPU資源に、第2作業は第2DPU資源に、・・・、というように割当される。
段階406で、ホストはワークフローを生成する。例えば、ホストは各作業及び/又は作業の各分割された部分に対してDPU/DRAM資源番号及び作業番号からなるペア(対)情報(例えば、(Resource#、Job#))を割当する。例えば、ワークフロー(WF)は次のフォーマットを有する;WF=[(Resource1、Job1)、(Resource2、Job2)、(Resource3、Job3)、…、(ResourceN、JobN)、(Host、Done)]、等。ここで作業は該DPU/DRAM資源番号が指定するDPU/DRAM又はDPU/DRAMモジュールを基準とする。本発明に係る例示的な実施形態において、ワークフローは当業者に公知の任意の他の適切なフォーマットを援用できる。
段階408で、ホストはワークフローをホストに連結された、指定されたDPU/DRAMモジュール又は指定されたDPU/DRAMを含むDPU/DRAMモジュールに送信する。

以下では、DPU/DRAMモジュール(多重DPUモジュール又はDRAMモジュール)及びそのDPU/DRAMを一括して、DPU資源という。

段階410で、DPU資源はワークフローパッケージ(work flow package)を読み出す。ワークフローの先頭にあるペア情報に指定されたDPU資源が現在のDPU資源と一致すれば、それ(現在のDPU資源)はワークフローの先頭の作業を遂行し、その次にワークフローからペア情報(Resource#、Job#)を除去する。その次に、ワークフローの残りは1つ以上の他のDPU資源に送信される。一致しなければ、DPU資源はワークフローを次のペア情報(resource#、job#)に指定された資源である第1のDPU資源に向かって送る。しかし、本発明は特定の方式に制限されず、当業者に公知された任意の適切な方式が使用ができる。ワークフローが完了されれば、ホストは全ての作業が終了されたか否かを判別し、これは全てのペア(resource#、job#)が、#=0から#=Nまで、終了されたことを意味する。
図5はホストが各計算段階で積極的な役割を果たす本発明の例示的な実施形態に係る分散されたDPUクラスタ制御の順序図である。
図5の段階500で、ホストはワーク要請をDPU資源に送信し、その次に段階502で、ホストはDPU資源から計算の結果を読み出すか、又はDPU資源は計算の結果をホストに返送する。その次に、段階504でホストはワーク要請及び/又はDPU資源からの結果を次のDPU資源に送信し、段階506で次のDPU資源から計算の結果を読み出し、段階508で全ての作業が完了される時までこのような方式に進行される。このようなホスト中心アーキテクチャで、ホストは各計算段階に関与し、ワークフロー及びDPUの間のデータフローをさらに能動的に制御する。
上記、図4及び図5の順序図で説明されたホスト中心アーキテクチャの中央集中式制御と異なり、本発明の1つ以上の例示的な実施形態に係る分散されたDPUクラスタアーキテクチャは、アドホック方式に制御され、その場合、中央集中式制御は、無いか、若しくは有っても小さいか、又は最小である。
図6はアドホック制御が具現された本発明の例示的な実施形態に係る分散されたDPUクラスタ制御の順序図である。例えば、一部の例示的な実施形態に係るアドホック制御メカニズムにおいては、図6の段階600に示されたように各DPU資源が作業(又は作業のワークフロー)を生成する。また、資源テーブルを必要とせず、DPU/DRAM作業マッピング情報をメモリ内に格納する要求はない。
このようなアドホック方式によれば、段階602に示されたように作業(又は作業のワークフロー)を生成するDPU資源(例えば、DPU0)は作業又は作業の一部を終了し、その次に段階604に示されたように残りの作業及び/又は作業の一部を(例えば、ワークフローの残り)ルーティング情報と共に1つ以上の隣接DPU資源(例えば、次のDPU、又はDPU1、2、3、等)に送信する。その次に、段階606で、次の単数又は複数のDPUは作業及び/又は作業の一部を終了する。段階608に示されたように作業(又は作業の一部)を終了し、残りの作業(又は作業の一部)を送信するプロセッサは全ての作業が完了されるか、或いは作業割当が失敗(例えば、DPU資源がさらに以上使用可能でない場合)する時まで繰り返される。
アドホック制御の特徴の一つは、ホストサーバが不要で、大きなクラスタ情報を維持する必要がなく、巨大なクラスタ(例えば、人間の脳のニューラルネットワークと類似な大きさのニューラルネットワークを生成するためには、既存のネットワーク内において利用可能なDPUの総能力の100倍から1000倍を有するクラスタ)が支援できる、ことである。
しかし、制御が中央集中式ではないならば、資源管理は最適化されない可能性があり、結局失敗する可能性がある。失敗の重要性は概してアプリケーションに依存する。一部のアプリケーションに対して失敗は重大な場合があるが、他のアプリケーションでは重大ではない場合がある。例えば、人間の脳の行動(behavior)を模倣する人工知能(AI)アプリケーションにおいて、それは、何かを記憶しているか、又はそれを記憶していないことがある。また、或る時点ではに何かを記憶するが、他の時点ではそれを記憶できない。本発明の実施形態に係るDPUシステムアーキテクチャは大規模ニューラルネットワークアプリケーションに使用されれば、或る程度の失敗は許容可能であり得る。
その他の実施形態において、分散されたDPUクラスタアーキテクチャはハイブリッド中央集中式及びアドホック制御に従って動作する。例えば、DPUモジュール及び/又は多重DPUモジュールの一部はホストによって制御され、反面にDPUモジュール及び/又は多重DPUモジュールの他のものはアドホック方式に制御される。他の例では、DPU及び/又はDPUモジュールの少なくとも一部はそれらの制御が中央集中式制御及びアドホック制御の間を望む通りに、又は必要に応じて切り替わるように再構成されることができる。
従って、本発明の実施形態は複数のDRAM基盤プロセシング装置(DPUs)が配置され、人間の脳と類似なニューラルネットワーク能力を提供できる分散されたアーキテクチャを有するクラスタアーキテクチャに係る。DPUクラスタは再構成可能なメモリ/計算資源を提供し、このようにすることによってDPUノード内の全ての資源は、全てがメモリ(格納器)として、全てが計算器(加速器)として、又は全てが、メモリと計算器の結合された装置(即ち、ハイブリッドメモリ計算装置)として構成される。
ホスト中心アーキテクチャを有する一部の実施形態において、各分割のためにホストは作業を分割するか、及び/又はデータ/作業を分配/収集する。ここで、ホストは作業を終了し、残りの作業及び/又は結果データを他のDPU資源に送信するためにDPU資源に対するワークフローを生成し、送信するか、又はホストは受信することによって、各計算段階を制御し、作業と共に結果データを他のDPU資源に送信することができる。他の実施形態において、クラスタアーキテクチャの制御は1つ以上のDPU資源が作業/ワークフローを生成し、作業を完了し、及び/又は作業/ワークフローの残りをネットワーク内の他のDPU資源に送信するアドホックとして提供される。他の実施形態において、中央集中式制御及びアドホック制御のハイブリッドはDPU/DRAMクラスタアーキテクチャを制御するために具現される。ルータは非同期式通信プロトコルに応じて動作し、DIMMコントローラの内部に埋め込まれ得る。
たとえここで第1、第2、第3等の用語は多様な要素、成分、領域、層、及び/又はセクションを説明するために使用されるが、このような要素、成分、領域、層、及び/又はセクションはこのような用語によって制限されないことと理解されるべきである。このような用語は他の要素、成分、領域、層、又はセクションから1つの要素、構成、領域、層又はセクションを区別するために使用される。従って、後述する第1要素、成分、領域、層、又はセクションは本発明の思想及び範囲を逸脱しなく、第2要素、成分、領域、層、又はセクションを指称することができる。
例えば、本明細書で説明された本発明の実施形態に係って関連ある装置又は成分(又は関連ある装置又は成分)は任意の適切なハードウェア(例えば、ASIC(application−specific integrated circuit))、ファームウェア(例えば、DSP又はFPGA)、ソフトウェア、又はソフトウェア、ファームウェア、及びハードウェアの適切な組合せを利用して具現されることができる。例えば、関連ある装置の多様な成分は1つの集積回路(integrated circuit;IC)又は分離されたICチップに形成されることができる。また、関連ある装置の多様な成分はフレキシブル印刷回路フィルム(flexible printed circuit film)、TCP(tape carrier package)、PCB(printed circuit board)に具現されるか、又は1つ以上の回路及び/又は他の装置として同じ基板上に形成されることができる。また、関連ある装置の多様な成分は1つ以上のプロセッサで実行され、1つ以上のコンピューティング装置で、本明細書で説明された多様な機能を遂行するためにコンピュータプログラム命令語を実行し、他のシステム成分と相互作用するプロセス又はスレッド(thread)である。コンピュータプログラム命令語は、例えばRAM(random access memory)のような、標準メモリ装置を利用してコンピューティング装置で具現されることができるメモリに格納される。コンピュータプログラム命令語は、例えばCD−ROM、フラッシュドライブ(flash drive)等のような他の一時的ではない(non−transitory)コンピュータ読出し可能媒体に格納されることができる。また、本発明の当業者は本発明の例示的な実施形態の思想及び範囲を逸脱しなく、多様なコンピューティング装置の機能は1つのコンピューティング装置に統合されるか、集積されるか、又は特定コンピューティング装置の機能は1つ以上の他のコンピューティング装置にわたって分散されることを認識されることができる。
また、1つの要素、構成要素、領域、層、及び/又はセクションが2つの要素、構成要素、領域、層、及び/又はセクションの間であることと言及されれば、2つの要素、構成要素、領域、層、及び/又はセクションの間に単なる要素、構成要素、領域、層、及び/又はセクションがあるか、又は1つ以上の間の要素、構成要素、領域、層、及び/又はセクションがまた存在することができることが理解されるべきである。
本明細書で使用された用語は特定実施形態を説明するためのことであり、本発明を制限しようとすることと意図されない。本明細書で使用されたように、単数形態は文脈の上に明確に異なりに示していない限り、複数形態も含むように意図される。“構成される”、“構成されている”、“含む”、及び“含んでいる”用語が本明細書で使用されれば、記述された特徴、整数、段階、動作、要素、及び/又は構成要素の存在を明示するが、1つ以上の特徴、整数、段階、動作、要素、要素、構成要素、及び/又はこれらのグループの存在を不可にしないこととさらに理解されるべきである。
本明細書で使用されたように、“及び/又は”という用語は1つ以上の連関された列挙された項目の任意のこと又は全ての組み合せを含む。“少なくとも1つ”、“中で1つ”、及び“から選択された”のような表現は要素の全体リストを修正し、そしてリストの個別要素を修正しない。また、本発明の実施形態を記述する時、“することができる”の使用は“本発明の1つ以上の実施形態”を意味する。また、“例示”の用語は例又は図面を意味する。
本明細書で使用されたように、“使用”、“使用される”、及び“使用された”用語は“利用”、“利用される”、及び“利用された”用語と密接なことと各々看做されることができる。
本発明の1つ以上の実施形態に関して説明された特徴は本発明の他の実施形態の特徴と共に使用するために可能することができる。例えば、第3実施形態が本明細書で明確に説明されなくとも、第1実施形態において説明された特徴は第3実施形態を形成するために第2実施形態において説明された特徴と結合されることができる。
当業者ならば、本発明に係る手順がハードウェア、ファームウェア(例えば、ASICを通じて)、又はソフトウェア、ファームウェア、及び/又はハードウェアの任意の組み合せを通じて実行できることをまた認識しなければならない。また、本発明に係る手順の段階のシークェンスは固定されず、当業者によって認識されているように、任意の望むシークェンスに変更され得る。変更されたシークェンスは全ての段階又は段階の部分を含み得る。
特定な具体的な実施形態に関して本発明が説明されたが、当業者は説明された実施形態の変形を考案するのに難しくないことであり、本発明の範囲及び思想から逸脱されることは決していない。また、多様な分野の当業者に、本明細書で説明された発明の自体は他の応用のための他の課題及び適応の解法を提案する。本発明及び本発明の思想及び範囲を逸脱しなく、開示の目的に本明細書で選択された発明の実施形態として作られる本発明の変更及び修正のそのような全ての使用を請求の範囲に含ませることが出願人の意図である。従って、本発明の本実施形態は制限的ではなく、全ての側面を説明するためのものとして看做され、本発明の範囲は添付された請求項及びこれらの等価物によって示される。
100 コンピュータプロセシングアーキテクチャ
110 ソフトウェアスタック
120 アプリケーション(レイヤ)
122 イメージタッグ(image tag)
124 セルフドライブアルゴリズム(self−drive algorithm)
126 人工知能(artificial intelligence)
128 音声研究/認識
130 フレームワーク(レイヤ)
140 ライブラリ及びドライバ(レイヤ)
142 NNL、ニューラルネットワークライブラリ
149 DPUコンパイラ
150 ハードウェア(レイヤ)
152 GPUモジュール
154 TPUモジュール
156 DPUモジュール
158 多重DPUモジュール
200 (分散された)DPUクラスタアーキテクチャ
202、204、208,202−1 DPUモジュール
206 DRAMモジュール
210、212、214、216 コントローラ及びルータ
220 ホスト
300 コントローラSoC内に埋め込まれたルータを有する、分散されたDPUクラスタアーキテクチャ
302、304、306,312,314,316,322,326、332、334,336 DPUモジュール
324 DRAMモジュール
350 ホスト
400 ホストによる分散されたDPUクラスタ制御の順序図
500 ホストがより積極的な役割、ホストによる分散されたDPUクラスタ制御の順序図
600 アドホック制御が具現された本発明の例示的な実施形態に係る分散されたDPUクラスタ制御の順序図である。
ALU Arithmetic Logic Unit、算術演算・論理装置
API Application programming interface、アプリケーションプログラミングインタフェイス
ASIC Application Specific Integrated Circuit、専用集積回路
CNN Convolution Neural Network、畳み込み神経ネットワーク
cuDNN CUDA(登録商標) Deep Neural Network library
DIMM Dual In−line Memory Module、デュアルインラインメモリモジュール
DPU DRAM−based Processing Unit、DRAM基盤プロセッシング装置
GPU Graphics Processing Unit、グラフィクスプロセッシング装置
NNL Neural Network Library、ニューラルネットワークライブラリ
SoC System on Chip、システムオンチップ

Claims (18)

  1. 複数のメモリ装置を含み、
    前記複数のメモリ装置の各々は、複数のプログラム可能なメモリセルを含み、
    前記複数のメモリ装置の各々は、メモリの1つとして、計算装置として、又はハイブリッドメモリ計算装置(hybrid memory−computation unit)として動作するように再構成されるように構成され、
    前記複数のメモリ装置は、ストレージ要件または計算要件の内の少なくとも1つに基づいて、メモリ、計算装置、及びハイブリッドメモリ計算装置として動作するように再構成されるように構成され、
    複数のメモリコントローラをさらに含み、
    前記複数のメモリコントローラの各々は、1つ以上の前記複数のメモリ装置を制御するように構成され、
    前記複数のメモリ装置間のワークフロー(work flow)をルーティング(routing)するための複数のルータ(router)をさらに含むことを特徴とするプロセッサ。
  2. 前記複数のメモリ装置の少なくとも1つは、ホストから作業(job)を受信するように構成されることを特徴とする請求項1に記載のプロセッサ。
  3. 前記複数のメモリ装置は、前記複数のメモリ装置に対する作業分割、前記複数のメモリ装置へのデータ分配(distribution)、前記複数のメモリ装置からのデータ収集、又は前記複数のメモリ装置への作業分配の内の少なくとも1つを遂行するように構成されたホストによって制御されるように構成されることを特徴とする請求項1に記載のプロセッサ。
  4. メモリ装置作業マッピング(memory unit−job mapping)情報を格納するように構成される格納装置をさらに含むことを特徴とする請求項1に記載のプロセッサ。
  5. 前記複数のメモリ装置の各々は、DRAMを含むことを特徴とする請求項1に記載のプロセッサ。
  6. 計算装置として構成される前記複数のメモリ装置は、遂行に利用できる計算装置がないか、又は、作業全体を遂行することができない場合、それぞれが作業の対応する部分を実行するように構成されることを特徴とする請求項1に記載のプロセッサ。
  7. 前記複数のメモリ装置は、拡張可能なクラスタアーキテクチャ内に配置されることを特徴とする請求項1に記載のプロセッサ。
  8. 前記複数のルータの内の少なくとも1つは、前記複数のメモリコントローラの内の該当する1つのメモリコントローラに埋め込まれることを特徴とする請求項1に記載のプロセッサ。
  9. 複数のメモリ装置を含む分散計算システム内のワークフロー(work flow)を制御する方法において、
    1つ以上の前記メモリ装置によって遂行される作業(job)を含む前記ワークフローを受信する段階と、
    前記ワークフローに従って、前記複数のメモリ装置の内の1つによって前記作業又は前記作業の一部を遂行する段階と、
    前記作業又は前記作業の一部の完了後に、前記複数のメモリ装置の内の前記1つによって、前記ワークフローの残りの部分を前記複数のメモリ装置の内の他の1つに転送する段階と、を含み、
    前記複数のメモリ装置は、メモリの1つ、計算装置、及びハイブリッドメモリ計算装置として動作するように構成されるもの、及び、ストレージ要件または計算要件の内の少なくとも1つに基づいて、メモリの1つ、計算装置、及びハイブリッドメモリ計算装置の異なるものとして動作するように再構成されるように構成されることを特徴とする方法。
  10. 前記ワークフローは、作業要請を受信するホストによって生成され、
    前記複数のメモリ装置の内の少なくとも1つに提供されることを特徴とする請求項9に記載の方法。
  11. 前記ワークフローは、前記複数のメモリ装置の内の1つ以上によって生成されることを特徴とする請求項9に記載の方法。
  12. 資源(resources)の可用性(availability)に応じて、1つ以上の前記メモリ装置を、計算装置として、又は、メモリとして再構成する段階をさらに含むことを特徴とする請求項9に記載の方法。
  13. 非同期式通信プロトコルが前記複数のメモリ装置間の通信に使用されることを特徴とする請求項9に記載の方法。
  14. 前記ワークフローの前記残りの部分は、前記ワークフロー内の全ての作業が完了するか、或いは失敗して終了する時まで、前記複数のメモリ装置の内の次のメモリ装置に送信されることを特徴とする請求項9に記載の方法。
  15. 前記複数のメモリ装置の内の1つが前記作業を全体的に完了できなければ、前記作業は、分割されることを特徴とする請求項9に記載の方法。
  16. 複数のメモリ装置を含む分散計算システム内のワークフロー(work flow)を制御する方法において、
    前記複数のメモリ装置の内の1つによって第1作業を遂行するための第1要請をホストから受信する段階と、
    前記複数のメモリ装置の内の前記1つによって前記第1作業を遂行する段階と、
    前記第1作業の結果を前記複数の装置の内の前記1つから前記ホストに提供する段階と、
    第2作業を遂行するために、前記複数のメモリ装置の内の他の1つによって、前記ホストから第2要請を受信する段階と、を含み、
    前記複数のメモリ装置は、前記第1要請に対応するストレージ要件または計算要件の内の少なくとも1つに基づいて、メモリの1つ、計算装置、及びハイブリッドメモリ計算装置として再構成されるように構成され、
    前記複数のメモリ装置は、前記第2要請に対応するストレージ要件または計算要件の内の少なくとも1つに基づいて、再構成されるように構成されることを特徴とする方法。
  17. 前記複数のメモリ装置の内の前記他の1つは、前記ホストから前記第1作業の前記結果をさらに受信することを特徴とする請求項16に記載の方法。
  18. 前記分散計算システムは、前記第1作業及び第2作業を送信し、前記第1作業及び前記第2作業の結果を読み取るように構成されるホストをさらに含むことを特徴とする請求項16に記載の方法。
JP2017204599A 2016-10-27 2017-10-23 プロセッサ、及び複数のメモリ装置を含む分散計算システム内のワークフローを制御する方法 Active JP6920170B2 (ja)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
US201662413973P 2016-10-27 2016-10-27
US201662413977P 2016-10-27 2016-10-27
US62/413,977 2016-10-27
US62/413,973 2016-10-27
US201662414426P 2016-10-28 2016-10-28
US62/414,426 2016-10-28
US201762485370P 2017-04-13 2017-04-13
US62/485,370 2017-04-13
US15/595,887 US10732866B2 (en) 2016-10-27 2017-05-15 Scaling out architecture for DRAM-based processing unit (DPU)
US15/595,887 2017-05-15

Publications (3)

Publication Number Publication Date
JP2018073414A JP2018073414A (ja) 2018-05-10
JP2018073414A5 JP2018073414A5 (ja) 2020-12-03
JP6920170B2 true JP6920170B2 (ja) 2021-08-18

Family

ID=62021367

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017204599A Active JP6920170B2 (ja) 2016-10-27 2017-10-23 プロセッサ、及び複数のメモリ装置を含む分散計算システム内のワークフローを制御する方法

Country Status (5)

Country Link
US (3) US10732866B2 (ja)
JP (1) JP6920170B2 (ja)
KR (1) KR102253582B1 (ja)
CN (1) CN108009119B (ja)
TW (1) TWI714803B (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11163707B2 (en) * 2018-04-23 2021-11-02 International Business Machines Corporation Virtualization in hierarchical cortical emulation frameworks
EP3798850A4 (en) * 2018-06-27 2022-03-23 Shanghai Cambricon Information Technology Co., Ltd ON-CHIP CODE BREAKPOINT DEBUG METHOD, ON-CHIP PROCESSOR AND CHIP BREAKPOINT DEBUG SYSTEM
US10915470B2 (en) * 2018-07-23 2021-02-09 SK Hynix Inc. Memory system
JP7060720B2 (ja) * 2018-10-18 2022-04-26 シャンハイ カンブリコン インフォメーション テクノロジー カンパニー リミテッド ネットワークオンチップによるデータ処理方法及び装置
US11327808B2 (en) * 2018-11-13 2022-05-10 Western Digital Technologies, Inc. Decentralized data processing architecture
US10884664B2 (en) 2019-03-14 2021-01-05 Western Digital Technologies, Inc. Executable memory cell
US10884663B2 (en) 2019-03-14 2021-01-05 Western Digital Technologies, Inc. Executable memory cells
US11157692B2 (en) * 2019-03-29 2021-10-26 Western Digital Technologies, Inc. Neural networks using data processing units
CN111857061A (zh) * 2019-04-28 2020-10-30 北京国电智深控制技术有限公司 一种计算任务实现方法、装置及系统、存储介质
TWI742774B (zh) * 2020-07-22 2021-10-11 財團法人國家實驗研究院 運算系統及其主機資源分配方法
CN116204456A (zh) * 2021-11-30 2023-06-02 华为技术有限公司 数据访问方法及计算设备
CN114201421B (zh) * 2022-02-17 2022-05-10 苏州浪潮智能科技有限公司 一种数据流处理方法、存储控制节点及可读存储介质
CN116069480B (zh) * 2023-04-06 2023-06-13 杭州登临瀚海科技有限公司 一种处理器及计算设备

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1540996A (en) * 1975-05-12 1979-02-21 Plessey Co Ltd Associative processors
US5765011A (en) 1990-11-13 1998-06-09 International Business Machines Corporation Parallel processing system having a synchronous SIMD processing with processing elements emulating SIMD operation using individual instruction streams
US5708836A (en) * 1990-11-13 1998-01-13 International Business Machines Corporation SIMD/MIMD inter-processor communication
EP0570729A3 (en) 1992-05-22 1994-07-20 Ibm Apap i/o programmable router
CN1120373A (zh) 1993-03-17 1996-04-10 蔡卡得公司 基于随机存储存贮器(ram)的可配置阵列
US5847577A (en) 1995-02-24 1998-12-08 Xilinx, Inc. DRAM memory cell for programmable logic devices
US6026478A (en) 1997-08-01 2000-02-15 Micron Technology, Inc. Split embedded DRAM processor
US6760833B1 (en) * 1997-08-01 2004-07-06 Micron Technology, Inc. Split embedded DRAM processor
JPH11338767A (ja) 1998-05-22 1999-12-10 Mitsubishi Heavy Ind Ltd 画像処理用機能メモリ装置
US6424658B1 (en) 1999-01-29 2002-07-23 Neomagic Corp. Store-and-forward network switch using an embedded DRAM
AU5490200A (en) 1999-06-30 2001-01-31 Sun Microsystems, Inc. Active dynamic random access memory
US6555398B1 (en) * 1999-10-22 2003-04-29 Magic Corporation Software programmable multiple function integrated circuit module
US20030105799A1 (en) 2001-12-03 2003-06-05 Avaz Networks, Inc. Distributed processing architecture with scalable processing layers
AU2003289844A1 (en) 2002-09-06 2004-05-13 Pact Xpp Technologies Ag Reconfigurable sequencer structure
US6947348B2 (en) 2003-07-15 2005-09-20 International Business Machines Corporation Gain cell memory having read cycle interlock
US7752380B2 (en) * 2003-07-31 2010-07-06 Sandisk Il Ltd SDRAM memory device with an embedded NAND flash controller
US20110026323A1 (en) 2009-07-30 2011-02-03 International Business Machines Corporation Gated Diode Memory Cells
US7401261B1 (en) * 2003-12-19 2008-07-15 Unisys Corporation Automatic analysis of memory operations using panel dump file
US8478947B2 (en) * 2005-07-05 2013-07-02 Arm Limited Memory controller
US8301833B1 (en) 2007-06-01 2012-10-30 Netlist, Inc. Non-volatile memory module
US8694776B2 (en) * 2007-12-21 2014-04-08 Spansion Llc Authenticated memory and controller slave
US8341362B2 (en) 2008-04-02 2012-12-25 Zikbit Ltd. System, method and apparatus for memory with embedded associative section for computations
US8238173B2 (en) 2009-07-16 2012-08-07 Zikbit Ltd Using storage cells to perform computation
US9047351B2 (en) * 2010-04-12 2015-06-02 Sandisk Enterprise Ip Llc Cluster of processing nodes with distributed global flash memory using commodity server technology
US8566669B2 (en) 2010-07-07 2013-10-22 Ocz Technology Group Inc. Memory system and method for generating and transferring parity information
US8379433B2 (en) 2010-09-15 2013-02-19 Texas Instruments Incorporated 3T DRAM cell with added capacitance on storage node
KR20140085468A (ko) 2011-10-28 2014-07-07 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 행 시프팅 시프트가능 메모리
JP6106043B2 (ja) 2013-07-25 2017-03-29 ルネサスエレクトロニクス株式会社 半導体集積回路装置
US9921980B2 (en) 2013-08-12 2018-03-20 Micron Technology, Inc. Apparatuses and methods for configuring I/Os of memory for hybrid memory modules
WO2015070110A2 (en) * 2013-11-07 2015-05-14 Netlist, Inc. Hybrid memory module and system and method of operating the same
US9455020B2 (en) 2014-06-05 2016-09-27 Micron Technology, Inc. Apparatuses and methods for performing an exclusive or operation using sensing circuitry
GB2530261B (en) * 2014-09-16 2016-08-03 Ibm Memory and processor hierarchy to improve power efficiency
US9954533B2 (en) 2014-12-16 2018-04-24 Samsung Electronics Co., Ltd. DRAM-based reconfigurable logic
US9697877B2 (en) 2015-02-05 2017-07-04 The Board Of Trustees Of The University Of Illinois Compute memory
JP5974133B1 (ja) * 2015-03-20 2016-08-23 株式会社東芝 メモリシステム
US10430618B2 (en) * 2015-10-09 2019-10-01 George Mason University Vanishable logic to enhance circuit security
CN105573959B (zh) * 2016-02-03 2018-10-19 清华大学 一种计算存储一体的分布式计算机

Also Published As

Publication number Publication date
KR20180046363A (ko) 2018-05-08
TWI714803B (zh) 2021-01-01
CN108009119B (zh) 2023-04-11
US10732866B2 (en) 2020-08-04
US20240211149A1 (en) 2024-06-27
KR102253582B1 (ko) 2021-05-18
CN108009119A (zh) 2018-05-08
TW201816595A (zh) 2018-05-01
JP2018073414A (ja) 2018-05-10
US20200363966A1 (en) 2020-11-19
US11934669B2 (en) 2024-03-19
US20180121120A1 (en) 2018-05-03

Similar Documents

Publication Publication Date Title
JP6920170B2 (ja) プロセッサ、及び複数のメモリ装置を含む分散計算システム内のワークフローを制御する方法
US11934883B2 (en) Computer cluster arrangement for processing a computation task and method for operation thereof
US11687763B2 (en) Method, apparatus and computer program to carry out a training procedure in a convolutional neural network
US7647590B2 (en) Parallel computing system using coordinator and master nodes for load balancing and distributing work
Iserte et al. An study of the effect of process malleability in the energy efficiency on GPU-based clusters
WO2021174222A1 (en) Halo: a hardware-agnostic accelerator orchestration software framework for heterogeneous computing systems
US20220044101A1 (en) Collaborative sensor data processing by deep learning accelerators with integrated random access memory
Aghapour Integrated ARM big
US20240176759A1 (en) Machine learning parallelization method using host cpu with multi-socket structure and apparatus therefor
KR102506622B1 (ko) 뉴럴 프로세싱 장치의 퍼포먼스 측정 방법 및 퍼포먼스 측정 장치
Agut et al. Towards Efficient Neural Network Model Parallelism on Multi-FPGA Platforms
US11720417B2 (en) Distributed inferencing using deep learning accelerators with integrated random access memory
US20230259486A1 (en) Neural processing unit synchronization systems and methods
US20240054075A1 (en) Neural processing device and load/store method of neural processing device
KR20240094125A (ko) 다중 소켓 구조의 호스트 cpu를 이용한 기계학습 병렬화 방법 및 이를 위한 장치
CN115469993A (zh) 映射方法、映射装置、众核系统、计算机可读介质
CN116069684A (zh) 用于存储器内计算体系结构的硬件-软件共同设计的多播
Wen et al. Dynamic Co-operative Intelligent Memory
CN111630505A (zh) 深度学习加速器系统及其方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20180214

AA79 Non-delivery of priority document

Free format text: JAPANESE INTERMEDIATE CODE: A24379

Effective date: 20180306

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180308

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201022

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201022

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20201022

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210217

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20210303

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210309

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210608

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210629

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210726

R150 Certificate of patent or registration of utility model

Ref document number: 6920170

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150