JP2021507384A - ニューラルネットワークプロセッサのためのオンチップ通信システム - Google Patents

ニューラルネットワークプロセッサのためのオンチップ通信システム Download PDF

Info

Publication number
JP2021507384A
JP2021507384A JP2020532981A JP2020532981A JP2021507384A JP 2021507384 A JP2021507384 A JP 2021507384A JP 2020532981 A JP2020532981 A JP 2020532981A JP 2020532981 A JP2020532981 A JP 2020532981A JP 2021507384 A JP2021507384 A JP 2021507384A
Authority
JP
Japan
Prior art keywords
node
tile
connectors
communication system
bus
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
Application number
JP2020532981A
Other languages
English (en)
Inventor
チェン,ジャン
Original Assignee
アリババ グループ ホウルディング リミテッド
アリババ グループ ホウルディング リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アリババ グループ ホウルディング リミテッド, アリババ グループ ホウルディング リミテッド filed Critical アリババ グループ ホウルディング リミテッド
Publication of JP2021507384A publication Critical patent/JP2021507384A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17375One dimensional, e.g. linear array, ring
    • 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/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (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)
  • Mathematical Physics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Hardware Design (AREA)
  • Neurology (AREA)
  • Multi Processors (AREA)

Abstract

本開示は、ニューラルネットワークプロセッサのためのオンチップ通信システムと、処理デバイスと、オンチップ通信システムの動作方法とを提供する。本システムは、グローバル信号を生成するように構成されたクラスタマネージャと、クラスタマネージャと結合されたタイルアレイ内の複数のタイルユニットであって、それぞれが2つのコネクタと、2つのコネクタ間に接続された1つのノードとを含む複数のタイルユニットとを含み得る。

Description

関連出願の相互参照
[1] 本開示は参照のためその内容すべてを本明細書に援用する2017年12月22日出願の米国仮特許出願第62/610,127号及び2018年5月15日出願の米国特許出願第15/980,685号からの優先権の利益を主張する。
背景
[2] 画像認識、音声/スピーチ認識及び機械翻訳などのニューラルネットワークベース深層学習アプリケーションに関する指数関数的成長に伴い、市販品CPU/GPUベースプラットホームはもはや、性能、電力効率及び経済的拡張可能性の観点で、ますます増加する計算要求を支援するための好適な計算基板ではない。ニューラルネットワークベース深層学習アプリケーションを加速するためにニューラルネットワークプロセッサを開発することは、確立されたチップメーカ、新興会社、及び大きなインターネット会社を含む多くの事業区分にわたり著しい牽引力を得てきた。
[3] ニューラルネットワークプロセッサの従来の相互接続ファブリックは通常、ルータの上位に構築される。ルータは所与のファブリックトポロジー上の任意のタイプの通信を支援し得る。例えば、ルータは、すべてのタイプの通信のための機能モジュールと、入力及び出力パケットを一時的に保持するための多数のバッファとを含むように設計され得る。したがって、すべてのタイプの通信のための機能モジュール及び多数のバッファは著しいオンチップ資源を消費し、しかも、機能モジュール及びバッファの大部分はニューラルネットワーク処理に使用され得ない。さらに、従来の相互接続ファブリックは効果的な区画化及び分離を支援しない。
開示の概要
[4] 本開示の実施形態はニューラルネットワークプロセッサのためのオンチップ通信システムを提供する。本システムは、グローバル信号を生成するように構成されたクラスタマネージャ、バス、及びバスを介しクラスタマネージャと通信可能に結合された複数のタイルユニットを含み、各タイルユニットは第1組のコネクタと、第1組のコネクタのコネクタ間に接続された少なくとも1つのノードとを含み、少なくとも1つのノードはグローバル信号を取得するように構成される。
[5] 本開示のいくつかの実施形態はさらに、第1の端子を介し第1の組のコネクタのうちの1つと、第2の端子を介し第1の組のコネクタの別の1つとに結合された処理デバイスを提供する。本処理デバイスは、第1の端子と第2の端子との間に接続されるとともに第1の端子と第2の端子との間でデータ信号を伝達するように構成されたバイパスバス、第1の端子と第2の端子との間に接続されるとともにデータ信号をバッファするように構成されたバッファバス、及びモード信号に従ってバイパスバス及びバッファバスのうちの1つを有効にするように構成された1つ又は複数のマルチプレクサを含み得る。
[6] 本開示のいくつかの実施形態はまた、オンチップ通信システムの動作方法を提供する。オンチップ通信システムは、クラスタマネージャと、バスを介しクラスタマネージャと通信可能に結合されたタイルアレイ内の複数のタイルユニットとを含み得る。本方法は、タスクを受信すること;クラスタマネージャと結合されたタイルアレイの利用可能タイルユニットを判断することであって、各タイルユニットは、第1の組のコネクタと、第1の組のコネクタ間に接続された少なくとも1つのノードとを含む、判断すること;タイルアレイの利用可能タイルユニットに従ってグローバル信号を生成すること;及びグローバル信号に基づき利用可能タイルユニットをリングトポロジーの状態に接続することを含み得る。
図面の簡単な説明
[7] 本開示のいくつかの実施形態及び様々な態様は以下の詳細な説明及び添付図面に示される。添付図面内に示される様々な特徴は原寸に比例して描かれていない。
[8]本開示の実施形態による例示的オンチップアーキテクチャを示す。 [9]本開示の実施形態による例示的オンチップ通信システムのブロック図を示す。 [10]本開示の実施形態による例示的タイルユニットのブロック図を示す。 [11]本開示の実施形態によるオンチップ通信システムの例示的ノードのブロック図を示す。 [12]本開示の実施形態によるオンチップ通信システムの例示的コネクタのブロック図を示す。 [13]本開示の実施形態による例示的リングトポロジーを示す。 [14]本開示の実施形態による例示的資源取得操作のフローチャートである。 [15]本開示の実施形態による例示的部分的計算操作のフローチャートを示す。 [16]本開示の実施形態によるオンチップ通信システムを使用する例示的リダクション演算を示す。 [17]本開示の実施形態による例示的な再構成されたリングトポロジーの概要図を示す。 [18]本開示の実施形態によるオンチップ通信システムを使用する例示的同報通信操作を示す。 [19]本開示の実施形態によるホームタイル列の例示的接続の概要図を示す。 [20]本開示の実施形態によるタイル行の別の例示的接続の概要図を示す。
詳細な説明
[21] 本開示の特定の態様が以下にさらに詳細に説明される。参照により援用される用語及び/又は定義と矛盾する場合、本明細書において提供される用語及び定義が統制する。
[22] 本開示の実施形態はニューラルネットワークプロセッサのためのオンチップ通信システムを提供する。
[23] 開示される実施形態は、従来の解決策内に存在する欠点に対処する弾性ルータレス(elastic router-less)相互接続ファブリックを提供する。本明細書において説明される実施形態は、柔軟ルータレス(flexible routerless)オンチップ通信システム及びその作動機構を提供する。ノード全体にわたり連携制御を使用することにより、ニューラルネットワークプロセッサは、通信ファブリック内のルータを回避し、人工ニューラルネットワーク処理により必要とされる通信パターンを効率的に支援し得る。
[24] 図1は、本開示の実施形態による例示的オンチップアーキテクチャ100を示す。図1に示すように、オンチップアーキテクチャ100は、オンチップ通信システム102、オフチップメモリ104、メモリコントローラ106、直接メモリアクセス(DMA:direct memory access)ユニット108、ジョイントテストアクショングループ(JTAG:Joint Test Action Group)/テストアクセスエンド(TAP:Test Access End)コントローラ110、バス112、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe:peripheral component interconnect express)114などを含み得る。伝達されたデータに基づきオンチップ通信システム102がアルゴリズムの操作を行い得るということが理解される。
[25] オンチップ通信システム102は、グローバルマネージャ1022及び複数のタイル1024を含み得る。グローバルマネージャ1022は、タイル1024と連携するために少なくとも1つのクラスタマネージャを含み得る。例えば、各クラスタマネージャは、タイルのアレイに関連付けられ得る。図1に示すように、グローバルマネージャ1022は、タイルの2つのアレイと連携するために2つのクラスタマネージャを含み得る。タイル1024は、グローバルマネージャ1022の制御下で、伝達されたデータに対し演算(例えばアルゴリズム計算)を行うように構成され得る。
[26] オフチップメモリ104は、読み出し専用メモリ(ROM:read-only memory)、消去可能プログラマブル読み出し専用メモリ(EPROM:erasable programmable read-only memory)などを含み得る。オフチップメモリ104は、1つ又は複数のプロセッサ内に集積化されたオンチップメモリと比較して、遅いアクセス速度で大量のデータを格納するように構成され得る。
[27] メモリコントローラ106は、1つ又は複数のメモリデバイスを読み出し、書き込み、又はリフレッシュし得る。メモリデバイスはオンチップメモリ及びオフチップメモリを含み得る。例えば、メモリデバイスは、スタティックランダムアクセスメモリ(SRAM:static random-access memory)、電気的消去可能プログラマブル読み出し専用メモリ(EEPROM)、消去可能プログラマブル読み出し専用メモリ(EPROM)、プログラマブル読み出し専用メモリ(PROM:programmable read-only memory)、読み出し専用メモリ(ROM)、磁気メモリ、フラッシュメモリ、若しくは磁気又は光ディスクなどのいずれかのタイプの揮発性若しくは不揮発性メモリデバイス、又はそれらの組合せとして実現され得る。
[28] DMAユニット108はメモリアドレスを生成し、メモリ読み出し又は書き込みサイクルを開始し得る。DMAユニット108は、1つ又は複数のプロセッサにより書き込まれ読み出され得るいくつかのハードウェアレジスタを含み得る。レジスタは、メモリアドレスレジスタ、バイトカウントレジスタ、及び1つ又は複数の制御レジスタを含み得る。これらのレジスタは、ソース、送付先、転送の方向(入力/出力(I/O)デバイスから読み出す又はI/Oデバイスへ書き込む)、転送ユニットのサイズ、及び/又は1回のバーストで転送すべきバイトの数のうちのいくつかの組合せを規定し得る。
[29] JTAG/TAPコントローラ110は、システムアドレス及びデータバスへの直接外部アクセスを必要としない低オーバヘッドアクセスのためのシリアル通信インターフェース(例えばJTAGインターフェース)を実現する専用デバッグポートを規定し得る。JTAG/TAPコントローラ110はまた、様々な部分のチップ論理レベル及びデバイス能力を提示する一組のテストレジスタへアクセスするためのプロトコルを実装するオンチップテストアクセスインターフェース(例えばTAPインターフェース)を規定し得る。
[30] バス112は、イントラチップバス及びインターチップバスを含み得る。イントラチップバスは、オンチップ通信システム102、オフチップメモリ104、メモリコントローラ106、DMAユニット108、JTAG/TAPコントローラ110、及びPCIeインターフェース114などの、オンチップアーキテクチャ100のすべての内部部品を互いに接続し得る。インターチップバスはチップ間の接続を提供し得る。
[31] PCIeインターフェース114は、複数のエンドポイントにわたる同時アクセスに関する固有制限無しに、任意の2つのエンドポイント間の全二重通信を支援し得る。
[32] 図2は、本開示の実施形態による例示的オンチップ通信システム102のブロック図を示す。
[33] 図2に示すように、オンチップ通信システム102は、クラスタマネージャ202及びタイルアレイ204を含み得る。
[34] クラスタマネージャ202は、タイルアレイ204を編成するためのグローバル信号を生成するように構成され得る。クラスタマネージャ202は、グローバルバスを介しタイルユニットへ接続され得る。オンチップ通信システム102が2つ以上のクラスタマネージャを含み得るということが理解される。例えば、図2に示すように、支援される複数のタスクの数に基づき、2つのクラスタマネージャ202、206がオンチップ通信システム102上に設けられ得る。
[35] 各クラスタマネージャ(例えば202)は、グローバルバスを介しグローバル信号を送信し得る。グローバル信号は初期クラスタ区分セットアップ及び操作命令に使用され得る。各クラスタマネージャ(例えば202)は、タイルアレイ(例えば204)と関連付けられ得、1つ又は複数のタイルアレイはメッシュアレイを形成し得る。例えば、クラスタマネージャ202、206に関連付けられたタイルアレイが一緒に編成される場合は、4タイル×4タイルメッシュアレイが図2に示すように形成され得る。メッシュアレイはN行及びM列を含み得るということが理解される。ここで、N及びMは任意の正の整数であり得る。
[36] タイルアレイ204は、クラスタマネージャ202と通信可能に結合された複数のタイルユニットを含み得、2つのタイルユニットは、タイル2042などのタイルを形成し得る。図3Aは、本開示の実施形態による例示的タイルユニット300のブロック図を示す。
[37] 図3Aに示すように、タイルユニット300は、一組のコネクタのうちのコネクタ302及びコネクタ304へ通信可能に結合された少なくとも1つのノード306を含み得る。ノード306は、コネクタ302、304それぞれと接続される2つの端子を含み得る。各タイルは2つのタイルユニットを含むので、各タイル(タイル2042など)は、図2に示すように2つのノード及び4つのコネクタを含み得る。ノード306の詳細は以下にさらに説明される。
[38] 図3Bは、本開示の実施形態によるオンチップ通信システムの例示的ノード306のブロック図を示す。
[39] ノード306は、第1の端子330を介しコネクタ302に、第2の端子332を介しコネクタ304に、及び第3の端子334を介しオンチップ通信システム102の残りの要素に通信可能に結合され得る。いくつかの実施形態では、第1の端子330及び第2の端子332は、データ信号を送受信するためにコネクタ302、304と接続され得、第3の端子334は、グローバルバスを介しグローバル信号を受信するためにクラスタマネージャ202と接続され得る。
[40] ノード306はさらに、バイパスバス312、バッファバス314、及びマルチプレクサ316を含み得る。
[41] バイパスバス312は、第1の端子330と第2の端子332との間に接続され得、第1の端子330と第2の端子332との間でデータ信号を伝達するように構成され得る。第1の端子330及び第2の端子332はオンチップ通信システム102の他のタイルユニットと接続され得るので、バイパスバス312は、オンチップ通信システム102の残りの要素へ又は単純にバイパスノード306へデータを同報通信するために使用され得る。
[42] バッファバス314はまた、第1の端子330と第2の端子332との間に接続され得、データ信号をバッファするためにファースト・イン・ファースト・アウト(FIFO:First-In-First-Out)バッファを含み得る。FIFOバッファはノード306により処理されるデータを格納するために使用され得る。
[43] マルチプレクサ316は、モード信号に従ってバイパスバス312及びバッファバス314のうちの1つを有効にし得る。いくつかの実施形態では、マルチプレクサ316は2つの多重化デバイスを含み得る。例えば、図3Bに示すように、ノード306は、それぞれがバイパスバス312とバッファバス314との両方へ接続される2つの多重化デバイスを含み得る。マルチプレクサ316は、例えばバイパスバス312及びバッファバス314のうちの1つを有効にする機能を実現するために、4つの金属酸化膜半導体(MOS)電界効果トランジスタ(FET)を含み得るということが理解される。したがって、マルチプレクサ316は様々なやり方で実現され得、したがって図3Bの例示的構造により制限されなくてもよい。マルチプレクサ316により、ノード306はバイパスモードとバッファモードとで切り替わり得る。
[44] ノード306はさらに、データ信号に基づき1つ又は複数の操作を行うための算術論理ユニット(ALU:arithmetic logic unit)318を含み得る。ALUユニット318は、バイパスバス312とバッファバス314との両方と通信可能に結合され得る。例えば、ALUユニット318は、バイパスバス312と接続された送信ユニット320を含み得、送信イネーブル信号(TX_EN)に従ってデータをバイパスバス312へ送信するように構成され得る。ALUユニット318は、バイパスバス312と接続された受信ユニット322をさらに含み得、受信イネーブル信号(RX_EN)に従ってデータをバイパスバス312から受信するように構成され得る。送信ユニット320は、バイパスバス312と接続されたレジスタと、レジスタとALUユニット318との間に接続されたスイッチとを含み得る。いくつかの実施形態では、スイッチは、送信イネーブル信号がオンである場合にALUユニット318がデータをレジスタへ送信することを許容し、送信イネーブル信号がオフである場合にALUユニット318がバイパスバス312からの影響を無くすことを許容する3ステートバッファであり得る。同様に、受信ユニット322もまた、バイパスバス312と接続されたレジスタと、レジスタとALUユニット318との間に接続されたスイッチとを含み得る。いくつかの実施形態では、スイッチは、受信イネーブル信号がオンの場合にALUユニット318がレジスタからのデータを受信することを許容し、受信イネーブル信号がオフである場合にALUユニット318が受信ユニット322からの影響を無くすことを許容する3ステートバッファであり得る。したがって、このようなスイッチが埋め込まれたコネクタは、ALUユニットとデータを送受信することと、ALUユニットをバイパスすることとを動的に切り替え得る。
[45] ALUユニット318の受信ユニット322はまた、受信イネーブル信号に従ってバッファバス314からデータを受信するようにバッファバス314と接続され得るということが理解される。いくつかの実施形態では、ALUユニット318の送信ユニット320はまた、データをバッファバス314へ送信するためにバッファバス314と接続され得る。
[46] 送信ユニット320及び受信ユニット322と、バイパスバス312及びバッファバス314との接続は、明瞭性のために図3Bには示されない。
[47] バイパスバス312又はバッファバス314の1つだけが有効にされ得るので、ALUユニット318は、バイパスバス312又はバッファバス314のいずれかからデータを受信し得る。いくつかの実施形態では、マルチプレクサ316がバッファバス314を有効にし、且つ受信イネーブル信号がオンであると、ALUユニット318は、FIFOバッファからデータを受信し、次にこのデータを処理し得る。いくつかの実施形態では、マルチプレクサ316がバイパスバス312を有効にし、且つ受信イネーブル信号がオンであると、ALUユニット318は、バイパスバス312からデータを受信し、次にこのデータを処理し得る。
[48] ノード306はさらに、第3の端子334を介し取得されるグローバル信号に従って、送信イネーブル信号、受信イネーブル信号、及びモード信号を生成するように構成された制御ユニット324を含み得る。いくつかの実施形態では、制御ユニット324はさらに、コネクタを構成するための選択(SEL)信号を生成し得る。図3Bでは制御ユニット324はノード306の埋め込み部品であるが、制御ユニット324はまた3つ以上のノードにより共有される部品であり得る。
[49] 図3Cは、本開示の実施形態によるオンチップ通信システムの例示的コネクタ302のブロック図を示す。上に論述したように、タイルユニットは、少なくとも1つのノードと、2つの動的コネクタ(例えば302、304)とを含み得る。2つのコネクタ(例えば302、304)は互いに同一であり得る。したがって、1つの例示的コネクタ302だけが図3Cを参照してここでは説明されることになる。
[50] コネクタ302は、4つの端子(331、333、335、337)と、端子331、333、端子333、335、及び端子333、337間の3つの接続部の開閉を制御する3つの転送ゲート(339、341、343)とを含み得る。
[51] 上に論述したように、1つのタイルは2つのタイルユニットを含み得る。いくつかの実施形態では、端子331、333は、同じタイル内の他のタイルユニットのコネクタとの接続のための内部端子であり得る。2つのタイルユニットを接続することにより、例えば、2つのタイルユニットの2つのノードは、コネクタを介し互いに接続され、2つのノードリングを形成し得る。端子335、337は別のタイルとの接続のための外部端子であり得る。少なくとも2つのタイルを接続することにより、マルチノードリングが形成され得る。したがって、少なくとも1つのタイルのコネクタの接続及び切断は、多様な操作のために様々なノードの間でデータを渡すように様々なノードリングを生成し得る。タイルの接続はリングトポロジーと呼ばれ得る。
[52] コネクタの接続及び切断はゲートにより制御され得る。いくつかの実施形態では、ゲート339は、ノード306と、同じタイル内の別のタイルユニットの別の組のコネクタのコネクタ308と通信可能に結合され得る。ゲート341は、コネクタ308と、隣接タイル内のさらに別のタイルユニットのさらに別の組のコネクタのコネクタと通信可能に結合され得る。ゲート343は、ノード306と、さらに別の組のコネクタのコネクタと通信可能に結合され得る。SEL信号が「1」に設定されると、ゲート339は有効にされ、端子331と端子333とを接続し、ゲート341は無効にされ、端子331と端子335とを切断し、ゲート343も無効にされ、端子333と端子337とを切断する。SEL信号が「0」に設定されると、ゲート339は無効にされ、端子331と端子333とを切断し、ゲート341は有効にされ、端子331と端子335とを接続し、ゲート343も有効にされ、端子333と端子337とを切断する。
[53] したがって、制御ユニット324により生成されたSEL信号を適用することにより、コネクタ(例えば302、304)は、同じタイル内の若しくは別のタイルからの別のコネクタと接続/切断する、及び/又はコネクタと結合されたノードと接続/切断するように構成され得る。したがって、タイルのリングトポロジーはSEL信号に従って形成され得る。
[54] 図4は、本開示の実施形態による例示的リングトポロジー400を示す。上に論述したように、各クラスタマネージャ202は、複数のタイルを含むタイルアレイに関連付けられ得、1つ又は複数のタイルアレイはメッシュアレイを形成し得る。図4は2つのタイルアレイからなるメッシュアレイを示す。タイル401〜415を含む第1のタイルアレイは実線により示され、第2のタイルアレイは破線により示される。第1のタイルアレイと第2のタイルアレイは似ている又は同じであるので、タイル401〜415を含む第1のタイルアレイだけが以下のように説明されることになる。
[55] 図4において、メッシュアレイは3つのタイプのタイルを含み得る。第1のタイプはタイルアレイの境界におけるタイルを含み(例えばタイル401〜415)、第2のタイプはメッシュアレイの境界におけるタイルを含み(例えばタイル401〜409、415)、第3のタイプはタイルアレイの境界とメッシュアレイの境界との両方におけるタイルを含む(例えば401〜409、415)。
[56] メッシュアレイは所与のチップに関して固定されるので、各ノードはX−Y座標をハードコード化することによりその物理的位置を知らされ得る。しかし、割り振られたリング接続内の相対的位置は、クラスタマネージャにより割り振られた資源ビットマスク内のタイルの位置を定位することにより獲得され得る。
[57] 本開示のいくつかの実施形態では、オンチップタイル及びそれらの接続部はオンザフライで柔軟に再構成され得る。例えば、SEL信号を制御することにより、1つのタイルは、隣のタイルへの接続部を開放又は切断し得る。これは、タイルアレイが効率的な部分的計算操作、同報通信、リダクション演算、及び資源取得操作を支援するように自身を動的に再構成することを許容する。例えば、図4に示すように、タイル401〜415は直列に連続的に接続される。
[58] この再構成を支援するために、資源取得操作が行われ得る。図5は本開示の実施形態による例示的資源取得操作500のフローチャートである。例えば、資源取得操作500はオンチップ通信システム(例えばオンチップ通信システム102)により行われ得る。
[59] 工程502では、オンチップ通信システムは、オンチップアーキテクチャからタスクを受信し得る。いくつかの実施形態では、オンチップ通信システムのクラスタマネージャ(例えば図2のクラスタマネージャ202)がタスクを受信し得る。タスクはニューラル処理タスクであり得る。タイル数の観点での所与の資源必要要件を有する新規タスクがドライバから来ると、フリーのクラスタが識別され得、このタスクを受信し得る。フリーのクラスタマネージャが識別され得なければ、このタスクは排除され得る。
[60] 工程504では、オンチップ通信システム(例えばクラスタマネージャ)が、タスクのためのタイルアレイの利用可能タイルユニットを判断し得る。オンチップ通信システム102は複数のタスクを同時に処理し得るので、タイルアレイの一部分が以前のタスクにより既に占拠されてしまうということが起こり得る。利用可能タイルユニットの数がタスクにより要求される数より大きければ、タスクは受け入れられ得、そうでなければタスクは排除される。
[61] タスクが受け入れられれば、工程506では、オンチップ通信システム(例えばクラスタマネージャ)が、タイルアレイの利用可能タイルユニットに従ってグローバル信号を生成し得る。例えば、グローバル信号は、タイルアレイの利用可能タイルユニットを指示する資源ビットマスクに照らして生成され得る。資源ビットマスクは、メッシュアレイ全体にわたる利用可能タイルユニットを記録するためにクラスタマネージャにより一括して管理され得る。タスクが終了すると、対応クラスタマネージャは、資源ビットマスク内の対応ビットを設定解除することにより資源を解放し得る。様々なクラスタマネージャからの資源ビットマスクに対する操作は、競合状態を回避するためにシリアライズされ得る。
[62] 工程508では、オンチップ通信システム(例えばクラスタマネージャ)は、グローバル信号に基づき利用可能タイルユニットをリングトポロジーの状態に接続し得る。いくつかの実施形態では、オンチップ通信システム102は、グローバル信号をタイルアレイの利用可能タイルユニットへ送信し得る。例えば、グローバル信号は、クラスタマネージャ202のクラスタ識別子(ID)を含み得、クラスタマネージャ202は、資源ビットマスクと共にグローバル信号をグローバルバスを介し利用可能タイルユニットへ送信し得る。利用可能タイルユニットがグローバル信号を受信した後、利用可能タイルユニットの各ノード内の制御ユニット324は、受信されたグローバル信号が制御ユニット324に属するかどうかを見るために、クラスタID及び資源ビットマスクをそれ自身のノードIDに対し照査し得る。受信されたグローバル信号が制御ユニット324に属する場合、制御ユニット324は、さらにメッシュアレイ内のその位置を判断し得る。この位置情報に基づき、制御ユニット324はさらに、各ノードに属する2つの隣接コネクタを構成するためにグローバル信号に基づきSEL信号を生成し得る。SEL信号に従って、タイルは図4に示すようなリングトポロジー400の状態に接続され得る。
[63] さらに、前述の工程を使用して確立されたリングトポロジー400により、クラスタマネージャ202はさらに、タスクに基づき利用可能タイルユニットのノードの中からホームノードを判断し得る。例えば、クラスタマネージャ202は、リングの中央に在るノードをホームノードとして判断し得る。ホームノードが中央ノードではないということも可能である。例えば、図4に示すように、タイル407の下位のノードがホームノード(HN:home node)である。
[64] リングトポロジー400の確立後、様々な操作がオンチップ通信システム102を使用して行われ得る。このような例示的操作は、部分的計算操作、リダクション演算、同報通信操作などを含み得る。これらの操作はさらに以下に説明される。
[65] 図6は本開示の実施形態による例示的部分的計算操作600のフローチャートを示す。リングトポロジー400が確立された後、リングトポロジー400は、ニューラルネットワーク層の部分的計算操作600に使用され得る。例えば、部分的計算操作600はオンチップ通信システム102により行われ得る。
[66] 工程602では、オンチップ通信システムは、重み行列に基づきノードの重み付けを生成し得る。一般的に、ニューラルネットワークは層で編成され得る。各層はその入力に対し計算を行い、出力を生成し得る。層の出力は、さらなる処理のために次の層に渡され得る。例えば、前の層の出力が次の層の入力であり得る。計算を行うために、各層は重み付けを割り当てられ得、ニューラルネットワークの重み行列は、層へ割り当てられるすべての重み付けを含み得る。重み行列は、ニューラルネットワークの構造とタスクの性質とに従って生成され得る。例えば、重み行列は、リングトポロジー400に従って区分化され得る。重み行列を区分化することにより、各ノードは、計算に必要な対応重み付けを取得し得る。
[67] 工程604では、オンチップ通信システムは、タスクをノードのサブタスクへ区分化し得る。各ノード(例えば図3Aのノード306)は、バッファバスを活性化し、FIFOバッファ内のサブタスクのデータを、計算のためにALUユニットにロードし得る。タスクを区分化するために、タスクは、一方向に一度にリングトポロジー400に沿って1ノード移動され得る。方向は時計回りであってもよいし、反時計回りであってもよい。いくつかの実施形態では、タスクの移動中、各ノードは、前のノードに既に割り振られたデータを受信し得る。例えば、計算が2つの行列(例えば、重み行列及びタスクに関連付けられた行列)の乗算である場合、各ノードは、行列積内の要素を生成し得る。次式1を参照して、例えば、X11〜X23は重み付けを示すことができ、Y11〜Y32はデータを示すことができ、ノード306は、Z21の部分的結果を生成することができる。ノード306は、前のノードに既に割り振られた可能性のあるZ11のデータと同じデータ(すなわちY11、Y21、Y31)を取得するということに注意すべきである。
[68] 重み付け及びサブタスクのデータに基づき、各ノードは、割り当てられた層出力の部分的結果を計算し得る。したがって、工程606では、オンチップ通信システムの各ノードは、重み付け及びサブタスクに基づきノードの部分的結果を判断し得る。この判断は計算を介し行われ得る。部分的結果を判断することにより、最終出力は、入力データの各区分がリングトポロジー400全体にわたり横断された後に生成され得る。
[69] 図7は、本開示の実施形態によるオンチップ通信システム(例えば図2のオンチップ通信システム102)を使用する例示的リダクション演算700を示す。
[70] 工程702では、リングトポロジー(例えば図4のリングトポロジー400)が確立され、すべてのノードが自身の値を計算し終えた後、オンチップ通信システムは、リダクション命令をクラスタマネージャを介しノード(例えば図3Aのノード306)へ送信し得る。いくつかの実施形態では、リダクション命令は、グローバルバスを介しノード306の制御ユニット324へクラスタIDと共に送信され得る。ノード306の制御ユニット324は、リダクション命令がノード306に関連付けられているかどうかを判断するために、リダクション命令とクラスタIDとを検証し得る。
[71] 工程704では、オンチップ通信システムは、複数のノードリングを生成するためにリングトポロジーを再構成し得る。いくつかの実施形態では、オンチップ通信システム102は、リングトポロジー400内のタイルを互いに切断し、複数のノードリングを形成するためにタイルを再構成し得る。図8は、本開示の実施形態による例示的な再構成されたリングトポロジー800の概要図を示す。図8に示すように、タイル401〜415の以前の接続(点線(例えば802)により示される)が切断される。各タイル内の2つのタイルユニットは、2ノードリングを形成するために接続される。1つのタイル内の2つのタイルユニットは、上位ノード及び下位ノードを含み得る。いくつかの実施形態では、接続は3個以上のタイルにわたって確立され得、再構成されたノードリングは3個以上のタイルを含み得る。例えば、図8に示すように、タイル413、415の4つのノードが4ノードリングを形成するために接続され得る。6ノードリングも同様に形成され得るということが理解される。したがって、ノードリングは、2ノードリング、4ノードリング、6ノードリングなどであり得る。
[72] 図7に戻って参照すると、工程706では、オンチップ通信システムは、各ノードリング内のバイパスバスを使用して部分的結果を第1のノードから第2のノードへ送信し得る。各ノードは計算を行って部分的結果を含み得るので、部分的リダクションは、部分的結果を生成するために第1及び第2のノードの格納データ(例えば重み付け)に対し行われ得る。これらの部分的結果はさらに、一括して処理され得る。いくつかの実施形態では、部分的結果は第2のノードへ送信され、一括して処理され得る。図8に示すように、部分的結果は、タイル401の上位ノードからタイル401の下位ノードへ送信され得る。データは下位ノードから上位ノードへ同様に送信され得るということが理解される。
[73] いくつかの実施形態では、データは、第1のタイルの下位ノードから第2のタイルの下位ノードへ送信され得、第2のタイルの下位ノードは、ノードリング内の他のノードよりホームノードに近い。例えば、図8に示すように、タイル407の下位ノードはホームノードとして設定され得、したがって、データは、接続部804を介しタイル415の下位ノードからタイル413の下位ノードへ送信され得る。ノードリングがホームノードを含む場合は、データはホームノードへ送信され得るということが理解される。したがって、データをホームノードにより近いノードへ送信することにより、データは最終的にホームノードへ伝達され得る。
[74] 工程708では、オンチップ通信システムは、第2のノードに対しリダクション演算を行い得る。例えば、部分的結果を上位ノードから下位ノードへ送信することにより、下位ノードは部分的リダクションを下位ノードに対し行い得る。部分的リダクションはタイルアレイのすべてのタイルに対し並列に行われ得る。リングトポロジーの再構成を繰り返すことにより、ノード間のデータ送信、送信されたデータの操作、部分的リダクションのすべての部分的結果が、ホームノードにより収集され得、ホームノードは最終リダクションを行い得る。リングトポロジーの再構成はタスクに関連付けられ得る。いくつかの実施形態では、複数の2ノードリングが、部分的リダクション演算を並列に処理するために最初に形成され得る。例えば、各2ノードリングはタイル401〜415の2つのノードをそれぞれ含み得る。結果は上に論述したように複数の2ノードリングの下位ノード内に格納され得る。次に、複数の4ノードリングは、前の2ノードリング内の下位ノード内に格納される結果に対しリダクション演算をさらに行うように形成され得、結果はホームノードにより近いいくつかの下位ノード内に格納され得る。例えば、図8を参照すると、4ノードリングは、一対のタイル401、403、一対のタイル405、407、一対のタイル409、411及び一対のタイル413、415を含むリングを含み得る。次に、複数の6ノードリングが、4ノードリングにより生成される結果を送信し処理するために形成され得る。例えば、6ノードリングはタイル403、405、407のリングを含み得、したがって、前の4ノードリング(例えばタイル403の下位ノード)内に格納された結果はさらなる処理のためにホームノード(例えばタイル407の下位ノード)へ送信され得る。再構成はタイルアレイのタスク及びスケールへ適応化され得るということが理解される。
[75] 図9は、本開示の実施形態によるオンチップ通信システム(例えば図2の102のオンチップ通信システム)を使用する例示的同報通信操作900を示す。例えば、図7を参照して上に論述したように、ホームノードは最終リダクション演算を行い得る。例えば、ホームノードのALUユニットが最終リダクションを行い得る。最終リダクションが行われた後、リダクション結果は、ホームノードの送信ユニット(例えば図3Bの送信ユニット320)内にロードされ得る。次に、オンチップ通信システムは最終結果を同報通信するために同報通信操作900を行い得る。同報通信操作900の前に、同報通信操作900に関与するすべてのタイルの接続はリセットされ得るということが理解される。例えば、タイル間の接続は壊され得、各タイルのノードは2ノードリングの状態に接続され得る。
[76] 工程902では、オンチップ通信システムは、同報通信命令をノードへ送信し得る。いくつかの実施形態では、ホームノードが最終結果を送信ユニット320内にロードした後、同報通信命令がグローバルバスを介しクラスタIDと共にノードへ送信され得る。各ノードの制御ユニット324はクラスタIDに従って同報通信命令を検証し得る。したがって、各ノードは同報通信命令がクラスタIDに関連付けられているかどうかを判断し得る。
[77] 工程904では、オンチップ通信システムは、ノード(例えばノード306)の位置情報を判断し得る。ノードの位置情報は、同報通信操作900の命令を生成するために使用され得る。例えば、同報通信操作900は、同報通信操作900のためのノードのコネクタ及びバス選択を制御する一系列の連携制御信号を含み得る。これらの制御信号は、ノード及びその隣接ノードの位置に従って隣接ノードのコネクタと接続又は切断するためにノードの各コネクタの動作シーケンスを含み得る。いくつかのノードだけが同報通信操作900に利用可能であるので、いくつかの隣接ノードのコネクタは利用可能でない状態があり得る。したがって、ノード(例えば306)の位置情報は、メッシュアレイ内のメッシュアレイ位置情報及びリングトポロジー400内の相対的位置を含み得る。
[78] 工程906では、オンチップ通信システムは、ホームノードからデータを受信するために、ホームノードを含むホームタイル列のタイル同士を接続し得る。タイルアレイはタイル列及びタイル行を含み得、ホームノードを含むタイル列はホームタイル列と呼ばれ得る。図10Aは、本開示の実施形態によるホームタイル列の例示的接続1000の概要図を示す。図10Aに示すように、タイル407の下位ノードはホームノード(HN)であり、したがってホームタイル列はタイル407、409を含み得る。オンチップ通信システム102は、タイル407、409のノード(例えばタイル409のノード、タイル407の上位ノード)がホームノードからデータを受信し得るように、タイル407、409とホームノードとを接続し得る。タイルの非ホームノードだけがホームノードへ接続され得、データをホームノードから受信し得るということが理解される。
[79] いくつかの実施形態では、ホームノード以外のノード(例えばタイル409のノード、タイル407の上位ノード)は、各ノードのバイパスバスがホームノードのバイパスバスへ接続され得るように、各ノードのバイパスバスを有効にし得る。ホームノードの送信ユニット内に格納されたデータは、受信イネーブル信号を適用し送信イネーブル信号を否定することにより、他のノードにより受信され得る。一方、ホームノードの送信イネーブル信号は有効にされ得る。したがって、ホームノード内に格納されたデータはホームノードのバイパスバス内にロードされ得、ホームノード以外のノードは、ロードされたバイパスバスから送信データを受信し得る。
[80] 工程908では、オンチップ通信システムは、ホームタイル列の各タイルと同タイルに対応する行内のタイルとを接続し得る。いくつかの実施形態では、工程908の前に、オンチップ通信システムはホームタイル列のノードを切断し得る。図10Bは、本開示の実施形態によるタイル行の例示的接続1010の概要図を示す。上に論述したように、ホームタイル列はタイル407、409を含み得、タイル407、409は行1012、1014それぞれに対応し得る。行1012はタイル401〜407を含み得、行1014はタイル409〜415を含み得る。したがって、オンチップ通信システム102は、タイル401〜407を互いに接続し、タイル409〜415を互いに接続し得る。同様に、オンチップ通信システム102は、タイル列のタイル407、409内に格納されたデータがタイルの残りへ同報通信され得るように、これらのタイルのバイパスバスを有効にし得る。
[81] 同報通信操作900のためにタイル行がタイル列の代わりに使用される可能性があり、逆も同様であるということが理解される。例えば、工程906では、ホームタイル列のタイルよりむしろホームタイル行のタイルが接続され得る。したがって、工程908では、タイル列のタイルが接続され得る。
[82] 開示された実施形態は、従来の解決策内に存在する欠点に対処する弾性ルータレス相互接続ファブリックを提供する。本明細書に説明される実施形態は柔軟なルータレスオンチップ通信システム及びその作動機構を提供する。ノード全体にわたる連携制御を使用することにより、本システムは、通信ファブリック内のルータを完全に回避し得、人工ニューラルネットワーク処理により必要とされるすべての通信パターンを効率的に支援し得る。
[83] 第1に、提案されたオンチップ通信システムはルータレスであり得、ルータにより引き起こされる非効率性を無くし得る。オンチップ通信システムのノード内のファースト・イン・ファースト・アウト(FIFO)バッファは、データが算術論理ユニット(ALU)により直接使用され得る場所である。連携制御を使用することにより、オンチップ通信システムは、信用ベースフロー制御も、ルーティングテーブル検索も、仮想レーン管理も必要とせず、デッドロックフリーである。加えて、ルータ自体が存在しないので、データはバラバラにされヘッダ及びテイルと共にパケット内にカプセル化される必要はない。
[84] 第2に、オンチップ通信システム内のバイパスバスは、同報通信能力を提供するだけでなく、ノードがポイント・ツー・ポイントデータ転送のためにバイパスされることも許容する。したがって、本通信システムは、データが一度に1ホップで転送される必要がある従来のメッシュネットワークと比較して、より効率的であり且つ拡張可能である。
[85] 第3に、各タイル内の動的コネクタ及び中央集中型クラスタマネージャにより、オンチップ資源は効果的且つ柔軟に区分化され得る。したがって、マルチタスクが直接支援され得る。さらに、プロセッサがニューラルネットワークの様々な層を経由するので、各区分内で、実際のタイル使用は、計算要求変動に従って自然に拡大又は縮小され得る。これは、能動的区分内のそれらの非活性タイル上のクロックゲート/パワーゲートを使用して、効率をさらに改善する機会を提供する。
[86] 本開示の他の態様及び実施形態は、本明細書の考察と本明細書において開示された実施形態の実行から当業者にとって明白となる。
[87] 本明細書及びその中の例は例示的にすぎないと考えられ得、本開示の真の範囲と精神は以下の特許請求の範囲により指示されるということが意図されている。

Claims (29)

  1. 人工ニューラルネットワークプロセッサのためのオンチップ通信システムであって、前記オンチップ通信システムは、
    グローバル信号を生成するように構成されたクラスタマネージャ;
    バス;及び
    前記バスを介し前記クラスタマネージャと通信可能に結合された複数のタイルユニット
    を含み、各タイルユニットは、第1の組のコネクタと、前記第1の組のコネクタの少なくとも2つのコネクタ間に接続された少なくとも1つのノードとを含み、前記少なくとも1つのノードは前記グローバル信号を取得するように構成される、オンチップ通信システム。
  2. 前記ノードはさらに、前記バスを介し取得される前記グローバル信号に基づき、送信イネーブル信号、受信イネーブル信号、及びモード信号のうちの少なくとも1つを生成するように構成された制御ユニットを含む、請求項1に記載のオンチップ通信システム。
  3. 前記ノードは、第1の端子を介し前記第1の組のコネクタの第1のコネクタへ、及び第2の端子を介し前記第1の組のコネクタの第2のコネクタへ通信可能に結合され、前記ノードはさらに、
    前記第1の端子と前記第2の端子との間に接続されるとともに前記第1の端子と前記第2の端子との間でデータ信号を伝達するように構成されたバイパスバス;
    前記第1の端子と前記第2の端子との間に接続されるとともに前記データ信号をバッファするように構成されたバッファバス;及び
    前記ノードの前記構成に基づく前記モード信号に従って前記バイパスバス及び前記バッファバスのうちの1つを有効にするように構成された1つ又は複数のマルチプレクサを含む、請求項2に記載のオンチップ通信システム。
  4. 前記ノードはさらに、前記データ信号に基づき1つ又は複数の操作を行うように構成された算術論理ユニット(ALU)を含み、前記ALUは前記バイパスバス及び前記バッファバスと通信可能に結合される、請求項3に記載のオンチップ通信システム。
  5. 前記ノードはさらに、前記バイパスバスと結合されるとともに前記送信イネーブル信号に従ってデータを前記バイパスバスへ送信するように構成された送信ユニット;及び前記バイパスバスと結合されるとともに前記受信イネーブル信号に従ってデータを前記バイパスバスから受信するように構成された受信ユニットを含む、請求項3又は4に記載のオンチップ通信システム。
  6. 前記受信ユニットはさらに、前記受信イネーブル信号に従ってデータを前記バッファバスから受信するために前記バッファバスと結合される、請求項3〜5のいずれか一項に記載のオンチップ通信システム。
  7. 前記制御ユニットはさらに、前記グローバル信号に基づく選択信号を生成するように構成され、前記選択信号は前記第1の組のコネクタの1つ又は複数のコネクタを構成する、請求項2〜6のいずれか一項に記載のオンチップ通信システム。
  8. 前記第1の組のコネクタの前記1つ又は複数のコネクタはさらに、
    前記ノードと第2の組のコネクタのコネクタとに通信可能に結合された第1のゲート;
    前記ノードと第3の組のコネクタのコネクタとに通信可能に結合された第2のゲート;及び
    前記第2も組のコネクタの前記コネクタと前記第3の組のコネクタの前記コネクタとに通信可能に結合された第3のゲートを含む、請求項7に記載のオンチップ通信システム。
  9. 前記第1のゲートは前記選択信号がアサートされると有効にされるように構成され、
    前記第2のゲートは前記選択信号がアサートされると有効にされるように構成され、
    前記第3のゲートは前記選択信号がディスアサートされると有効にされるように構成される、請求項8に記載のオンチップ通信システム。
  10. 前記クラスタマネージャはさらに、
    タスクを受信し;
    前記タスクのためにタイルアレイの利用可能タイルユニットを判断し;
    前記タイルアレイの利用可能タイルユニットに従って前記グローバル信号を生成し;
    前記グローバル信号に基づき前記利用可能タイルユニットをリングトポロジーの状態に接続するように構成される、請求項7〜9のいずれか一項に記載のオンチップ通信システム。
  11. 前記利用可能タイルユニットは、
    前記利用可能タイルユニットの位置情報を生成し;
    前記位置情報に基づき前記選択信号を生成し;
    前記選択信号に基づき、前記利用可能タイルユニットの前記コネクタ同士を接続することにより、前記リングトポロジーを確立するように構成される、請求項10に記載のオンチップ通信システム。
  12. 前記クラスタマネージャはさらに、
    重み行列に基づき前記リングトポロジーのノードの重み付けを生成し;
    前記タスクを前記ノードのサブタスクに区分し;
    前記重み付け及び前記サブタスクに基づき前記ノードの部分的結果を判断するように構成される、請求項10又は11に記載のオンチップ通信システム。
  13. 前記クラスタマネージャはさらに、前記タスクに基づき前記利用可能タイルユニットのノードの中からホームノードを判断するように構成される、請求項10〜12のいずれか一項に記載のオンチップ通信システム。
  14. 前記クラスタマネージャはさらに:
    リダクション命令を前記リングトポロジーのノードへ送信し;
    それぞれのノードリングが第1のノード及び第2のノードを含む複数のノードリングを生成するために前記リングトポロジーを再構成し;
    前記部分的結果を前記第1のノードから前記第2のノードへ送信し;
    リダクション演算を前記第2のノードに対し行うように構成される、請求項13に記載のオンチップ通信システム。
  15. 前記第2のノードは前記ノードリング内の他のノードより前記ホームノードに近い、請求項14に記載のオンチップ通信システム。
  16. 互いに接続された2つのタイルユニットが前記タイルアレイのタイルを形成し、前記クラスタマネージャはさらに:
    同報通信命令を前記利用可能タイルユニットの前記ノードへ送信し;
    前記利用可能タイルユニットの前記ノードの位置情報を判断し;
    前記ホームノードからデータを受信するために前記ホームノードを含むホームタイル列の非ホームノードを接続し;
    前記ホームタイル列の各タイルと、当該タイルに対応する行内のタイルとを接続するように構成される、請求項13〜15のいずれか一項に記載のオンチップ通信システム。
  17. 第1の端子を介し第1の組のコネクタのうちの1つと、第2の端子を介し前記第1の組のコネクタの別の1つとに通信可能に結合された処理デバイスであって、
    前記第1の端子と前記第2の端子との間に接続されるとともに前記第1の端子と前記第2の端子との間でデータ信号を伝達するように構成されたバイパスバス;
    前記第1の端子と前記第2の端子との間に接続されるとともに前記データ信号をバッファするように構成されたバッファバス;及び
    モード信号に従って前記バイパスバス及び前記バッファバスのうちの1つを有効にするように構成された1つ又は複数のマルチプレクサを含む処理デバイス。
  18. 前記データ信号に基づき1つ又は複数の操作を行うように構成された算術論理ユニット(ALU)をさらに含み、前記ALUは前記バイパスバス及び前記バッファバスと通信可能に結合される、請求項17に記載の処理デバイス。
  19. 前記バイパスバスと接続されるとともに送信イネーブル信号に従ってデータを前記バイパスバスへ送信するように構成された送信ユニット;及び
    前記バイパスバスと接続されるとともに受信イネーブル信号に従ってデータを前記バイパスバスから受信するように構成された受信ユニットをさらに含む、請求項18に記載の処理デバイス。
  20. 前記受信ユニットはさらに、前記受信イネーブル信号に従ってデータを前記バッファバスから受信するために前記バッファバスと接続される、請求項19に記載の処理デバイス。
  21. グローバル信号に基づき、前記送信イネーブル信号、前記受信イネーブル信号、及び前記モード信号を生成するように構成された制御ユニットをさらに含む、請求項19又は20に記載の処理デバイス。
  22. 前記第1の組のコネクタの各コネクタはさらに:
    前記処理デバイスと、第2の組のコネクタのコネクタとに通信可能に結合された第1のゲート;
    前記処理デバイスと、第3の組のコネクタのコネクタとに通信可能に結合された第2のゲート;及び
    前記第2の組のコネクタの前記コネクタと、前記第3の組のコネクタの前記コネクタとに通信可能に結合された第3のゲートを含む、請求項17〜21のいずれか一項に記載の処理デバイス。
  23. クラスタマネージャと、バスを介し前記クラスタマネージャと通信可能に結合されたタイルアレイ内の複数のタイルユニットとを含むオンチップ通信システムの動作方法であって、前記方法は、
    タスクを受信することと;
    前記クラスタマネージャと結合された前記タイルアレイの利用可能タイルユニットを判断することであって、各タイルユニットは、第1の組のコネクタと、前記第1の組のコネクタ間に接続された少なくとも1つのノードとを含む、判断することと;
    前記タイルアレイの前記利用可能タイルユニットに従ってグローバル信号を生成することと;
    前記グローバル信号に基づき前記利用可能タイルユニットをリングトポロジーの状態に接続することとを含む方法。
  24. 前記利用可能タイルユニットの位置情報を生成することと;
    前記位置情報に基づき選択信号を生成することと;
    前記選択信号に基づき、前記利用可能タイルユニットの前記コネクタ同士を接続することにより、前記リングトポロジーを確立することとをさらに含む、請求項23に記載の方法。
  25. 重み行列に基づき前記リングトポロジーのノードの重み付けを生成することと;
    前記タスクを前記ノードのサブタスクに区分することと;
    前記重み付け及び前記サブタスクに基づき前記ノードの部分的結果を判断することとをさらに含む、請求項24に記載の方法。
  26. 前記タスクに基づき前記利用可能タイルユニットのノードの中からホームノードを判断することをさらに含む、請求項25に記載の方法。
  27. リダクション命令を前記リングトポロジーのノードへ送信することと;
    複数のノードリングを生成するために前記リングトポロジーを再構成することであって、各ノードリングは第1のノード及び第2のノードを含む、再構成することと;
    前記部分的結果を前記第1のノードから前記第2のノードへ送信することと;
    リダクション演算を前記第2のノードに対し行うこととをさらに含む、請求項26に記載の方法。
  28. 前記第2のノードは前記ノードリング内の他のノードより前記ホームノードに近い、請求項27に記載の方法。
  29. 互いに接続された2つのタイルユニットが前記タイルアレイのタイルを形成し、前記方法は、
    同報通信命令を前記利用可能タイルユニットの前記ノードへ送信することと;
    前記利用可能タイルユニットの前記ノードの位置情報を判断することと;
    前記ホームノードからデータを受信するために前記ホームノードを含むホームタイル列の非ホームノードを接続することと;
    前記ホームタイル列の各タイルと、当該タイルに対応する行内のタイルとを接続することとを含む、請求項26〜28のいずれか一項に記載の方法。
JP2020532981A 2017-12-22 2018-12-21 ニューラルネットワークプロセッサのためのオンチップ通信システム Pending JP2021507384A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762610127P 2017-12-22 2017-12-22
US62/610,127 2017-12-22
US15/980,685 2018-05-15
US15/980,685 US10872291B2 (en) 2017-12-22 2018-05-15 On-chip communication system for neural network processors
PCT/US2018/067276 WO2019126740A1 (en) 2017-12-22 2018-12-21 An on-chip communication system for neural network processors

Publications (1)

Publication Number Publication Date
JP2021507384A true JP2021507384A (ja) 2021-02-22

Family

ID=66950416

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020532981A Pending JP2021507384A (ja) 2017-12-22 2018-12-21 ニューラルネットワークプロセッサのためのオンチップ通信システム

Country Status (5)

Country Link
US (2) US10872291B2 (ja)
EP (1) EP3729337A4 (ja)
JP (1) JP2021507384A (ja)
CN (1) CN111357016B (ja)
WO (1) WO2019126740A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10872291B2 (en) 2017-12-22 2020-12-22 Alibaba Group Holding Limited On-chip communication system for neural network processors
US11295205B2 (en) * 2018-09-28 2022-04-05 Qualcomm Incorporated Neural processing unit (NPU) direct memory access (NDMA) memory bandwidth optimization

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0913797B1 (en) 1997-11-03 2001-05-30 Fulmar N.V. A lock management system
US6725307B1 (en) 1999-09-23 2004-04-20 International Business Machines Corporation Method and system for controlling data transfers with physical separation of data functionality from address and control functionality in a distributed multi-bus multiprocessor system
EP1573694A2 (de) * 2002-12-10 2005-09-14 Infineon Technologies AG Flächen-verkleidungsmodul, flächen-verkleidungsmodul-anordnung und verfahren zum bestimmen eines abstands von flächen-verkleidungsmodulen der flächen-verkleidungsmodul-anordnung zu mindestens einer referenzposition, prozessor-anordnung, textilgewebestruktur und flächen-verkleidungstruktur
US7392331B2 (en) 2004-08-31 2008-06-24 Micron Technology, Inc. System and method for transmitting data packets in a computer system having a memory hub architecture
US8390325B2 (en) 2006-06-21 2013-03-05 Element Cxi, Llc Reconfigurable integrated circuit architecture with on-chip configuration and reconfiguration
US8594110B2 (en) * 2008-01-11 2013-11-26 Mosaid Technologies Incorporated Ring-of-clusters network topologies
US8307116B2 (en) * 2009-06-19 2012-11-06 Board Of Regents Of The University Of Texas System Scalable bus-based on-chip interconnection networks
US10078620B2 (en) 2011-05-27 2018-09-18 New York University Runtime reconfigurable dataflow processor with multi-port memory access module
US9705630B2 (en) * 2014-09-29 2017-07-11 The Royal Institution For The Advancement Of Learning/Mcgill University Optical interconnection methods and systems exploiting mode multiplexing
CN106203619B (zh) * 2015-05-29 2022-09-13 三星电子株式会社 数据优化的神经网络遍历
US10417555B2 (en) 2015-05-29 2019-09-17 Samsung Electronics Co., Ltd. Data-optimized neural network traversal
WO2016199151A2 (en) * 2015-06-10 2016-12-15 Mobileye Vision Technologies Ltd. Image processor and methods for processing an image
US20160379109A1 (en) * 2015-06-29 2016-12-29 Microsoft Technology Licensing, Llc Convolutional neural networks on hardware accelerators
US10614354B2 (en) * 2015-10-07 2020-04-07 Altera Corporation Method and apparatus for implementing layers on a convolutional neural network accelerator
US10726328B2 (en) * 2015-10-09 2020-07-28 Altera Corporation Method and apparatus for designing and implementing a convolution neural net accelerator
US11475269B2 (en) * 2015-12-15 2022-10-18 Analog Devices, Inc. Convolutional neural network
US10657216B2 (en) 2016-02-29 2020-05-19 Oregon State University Routerless networks-on-chip
WO2017201627A1 (en) * 2016-05-26 2017-11-30 The Governing Council Of The University Of Toronto Accelerator for deep neural networks
US20190303743A1 (en) * 2016-08-13 2019-10-03 Intel Corporation Apparatuses, methods, and systems for neural networks
US10515046B2 (en) * 2017-07-01 2019-12-24 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator
US10872291B2 (en) 2017-12-22 2020-12-22 Alibaba Group Holding Limited On-chip communication system for neural network processors

Also Published As

Publication number Publication date
EP3729337A1 (en) 2020-10-28
CN111357016A (zh) 2020-06-30
WO2019126740A1 (en) 2019-06-27
US11205109B2 (en) 2021-12-21
CN111357016B (zh) 2023-07-25
US20210064962A1 (en) 2021-03-04
EP3729337A4 (en) 2021-03-10
US20190197389A1 (en) 2019-06-27
US10872291B2 (en) 2020-12-22

Similar Documents

Publication Publication Date Title
US7581081B2 (en) Systems and methods for software extensible multi-processing
US7917729B2 (en) System on chip IC with subsystem of multiple processing cores switch coupled to network protocol device and bus bridge to local system bus
US10282338B1 (en) Configuring routing in mesh networks
US7613900B2 (en) Systems and methods for selecting input/output configuration in an integrated circuit
US8151088B1 (en) Configuring routing in mesh networks
US8930618B2 (en) Smart memory
US7958341B1 (en) Processing stream instruction in IC of mesh connected matrix of processors containing pipeline coupled switch transferring messages over consecutive cycles from one link to another link or memory
US10206175B2 (en) Communications fabric with split paths for control and data packets
US9280513B1 (en) Matrix processor proxy systems and methods
CN111630505A (zh) 深度学习加速器系统及其方法
US11205109B2 (en) On-chip communication system for neural network processors
JP2021507386A (ja) ニューラルネットワーク処理のための共用メモリの集中型−分散型混合構成
US9727499B2 (en) Hardware first come first serve arbiter using multiple request buckets
US7206889B2 (en) Systems and methods for enabling communications among devices in a multi-cache line size environment and disabling communications among devices of incompatible cache line sizes
US8131975B1 (en) Matrix processor initialization systems and methods
US7870365B1 (en) Matrix of processors with data stream instruction execution pipeline coupled to data switch linking to neighbor units by non-contentious command channel / data channel
US20240020261A1 (en) Peer-to-peer route through in a reconfigurable computing system
US20230280907A1 (en) Computer System Having Multiple Computer Devices Each with Routing Logic and Memory Controller and Multiple Computer Devices Each with Processing Circuitry
US20230283547A1 (en) Computer System Having a Chip Configured for Memory Attachment and Routing
CN116821044B (zh) 处理系统、访存方法及计算机可读存储介质
US20240073129A1 (en) Peer-to-peer communication between reconfigurable dataflow units
US20240073136A1 (en) Reconfigurable dataflow unit with remote read/write functionality
US20240070111A1 (en) Reconfigurable dataflow unit with streaming write functionality
US20240070106A1 (en) Reconfigurable dataflow unit having remote fifo management functionality
US9268600B2 (en) Picoengine pool transactional memory architecture