JP2022511581A - フレキシブルケーブル接続に基づく分散型aiトレーニングトポロジー - Google Patents

フレキシブルケーブル接続に基づく分散型aiトレーニングトポロジー Download PDF

Info

Publication number
JP2022511581A
JP2022511581A JP2020536942A JP2020536942A JP2022511581A JP 2022511581 A JP2022511581 A JP 2022511581A JP 2020536942 A JP2020536942 A JP 2020536942A JP 2020536942 A JP2020536942 A JP 2020536942A JP 2022511581 A JP2022511581 A JP 2022511581A
Authority
JP
Japan
Prior art keywords
accelerator
chip
card
connection
cpu
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
JP2020536942A
Other languages
English (en)
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.)
Baidu USA LLC
Original Assignee
Baidu USA LLC
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 Baidu USA LLC filed Critical Baidu USA LLC
Publication of JP2022511581A publication Critical patent/JP2022511581A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • 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/17306Intercommunication techniques
    • 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/17306Intercommunication techniques
    • G06F15/17318Parallel communications techniques, e.g. gather, scatter, reduce, roadcast, multicast, all to all
    • 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/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computer Hardware Design (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Neurology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Multi Processors (AREA)
  • Advance Control (AREA)
  • Bus Control (AREA)

Abstract

【課題】フレキシブルケーブル接続に基づく分散型AIトレーニングトポロジーの提供。【解決手段】データ処理システムは、CPUと、バスを介して前記CPUに接続された複数のアクセラレータカードと、を備え、複数のアクセラレータカードのそれぞれが、前記CPUからDPタスクを受信して実行するデータ処理用のDPアクセラレータを複数有する。複数のアクセラレータカードのうちの少なくとも2つの間は、カード間接続を介して接続され、複数のDPアクセラレータのうちの少なくとも2つの間は、チップ間接続を介して接続される。CPUから受信した要求に応じて、CPUから受信した何れか一つの前記DPタスクを処理するために、何れか一つの前記アクセラレータカード、又は、何れか一つの前記アクセラレータカードにおける何れか一つの前記DPアクセラレータを、有効化または無効化するように、カード間接続及び前記チップ間接続は、それぞれ、動的に起動又は停止可能とされる。【選択図】図8

Description

本開示の実施形態は、概して機械学習に関する。より具体的には、本開示の実施形態は、人工知能(AI)アクセラレータチップトポロジーに関する。
分散型AIトレーニングは、トレーニングプロセス全体を加速し、トレーニング時間を短縮するために、複数のAIアクセラレータチップが同時に動作することを必要とする。したがって、複数のチップを協働させるためにAIアクセラレータチップのトポロジーが必要である。このようなトポロジーは、トレーニングのニーズに応じて、数個のAIアクセラレータチップから数千個のAIアクセラレータチップまでの様々なサイズがある。一般に、小さなトポロジーは、基板上のプリント回路基板(PCB)配線を使用して生成することができる一方、大きなトポロジーは、異なる基板を接続するためにイーサネットを使用して生成することができる。しかし、どちらの方法も、不器用であるか、または多数のハードウェアオーバーヘッドを必要とするため、実施可能ではない。
第1の態様において、本開示の幾つかの実施例は、データ処理システムであって、CPUと、バスを介して前記CPUに接続された複数のアクセラレータカードと、を備え、複数のアクセラレータカードのそれぞれが、前記CPUからDPタスクを受信して実行するデータ処理用のDPアクセラレータを複数有し、前記複数のアクセラレータカードのうちの少なくとも2つの間は、カード間接続を介して接続され、前記複数のDPアクセラレータのうちの少なくとも2つの間は、チップ間接続を介して接続され、前記CPUから受信した要求に応じて、前記CPUから受信した何れか一つの前記DPタスクを処理するために、何れか一つの前記アクセラレータカード、又は、何れか一つの前記アクセラレータカードにおける何れか一つの前記DPアクセラレータを、有効化または無効化するように、前記カード間接続及び前記チップ間接続は、それぞれ、動的に起動又は停止可能とされる、データ処理システムを提供する。
第2の態様において、本開示のいくつかの実施例は、アクセラレータカードであって、バスを介してCPUに接続されたホストインターフェースと、前記CPUからDPタスクを受信して実行する複数のデータ処理DPアクセラレータと、を備え、前記複数のDPアクセラレータのうちの少なくとも2つの間は、チップ間接続を介して接続され、前記CPUから受信した要求に応じて、前記CPUから受信した何れか一つの前記DPタスクを処理するために、何れか一つの前記DPアクセラレータを、有効化または無効化するように、前記チップ間接続は、動的に起動又は停止可能とされる、アクセラレータカードを提供する。
図面は、本発明の実施形態を例示的に示しているが、本発明の実施形態を限定するものではない。図面において、類似の要素に同じ符号が付けられている。
本願実施形態に係る、AIモデルのトレーニング用のシステムの一例を示す図である。 本願実施形態に係るAIモデルのトレーニングにおけるデータ転送の例示的な処理を示す図である。 本願実施形態に係るAIモデルのトレーニングにおけるデータ転送の例示的な処理を示す図である。 本願実施形態に係るAIモデルのトレーニングにおけるデータ転送の例示的な処理を示す図である。 本願実施形態に係るAIモデルのトレーニングにおけるデータ転送の例示的な処理を示す図である。 本願実施形態に係るAIモデルのトレーニングにおけるデータ転送の例示的な処理を示す図である。 本願実施形態に係るAIモデルのトレーニングにおけるデータ転送の例示的な処理を示す図である。 本願実施形態に係る、AIチップトポロジーを生成するための例示的なシステムを示す図である。 本願実施形態に係る例示的なAIチップを示す図である。 本願実施形態に係る例示的なPCB基板を示す図である。 本願実施形態に係る例示的なAIチップトポロジー600を示す図である。 本願実施形態に係るAIモデルのトレーニングの例示的なプロセスを示す。 本願実施形態に係るAIチップトポロジーを生成するための例示的なプロセスを示す図である。
以下、本発明の実施の形態について図面を参照して説明する。以下の説明及び図面は本開示の説明であり、本開示を限定するものと解釈されるべきではない。本開示の様々な実施形態の完全な理解を提供するために、多くの特定の詳細が記載されている。しかしながら、いくつかの場合において、本開示の実施形態の簡潔な説明を提供するために、周知または従来の詳細は記載されていない。
本明細書において「一実施形態」または「実施形態」という言及は、実施形態を用いて説明された特定の特徴、構造、または特徴が、本開示の少なくとも1つの実施形態に含まれてもよいことを意味する。明細書の様々な箇所に現れる「一実施形態において」という語句は、必ずしも同じ実施形態を指すものではない。
本開示において、AIアクセラレータ、AIアクセラレータチップ、チップ等の用語は互換的に使用することができ、それらの各々は、汎用処理ユニット(GPU)の一例であり、汎用処理ユニット(GPU)は、データ処理(DP)アクセラレータの一例である。
一実施態様において、データ処理システムは、中央処理ユニット(CPU)と、バスを介して前記CPUに接続された複数のアクセラレータカードと、を備え、複数のアクセラレータカードのそれぞれが、CPUからDPタスクを受信して実行するデータ処理用のDPアクセラレータを複数有する。複数のアクセラレータカードのうちの少なくとも2つの間は、カード間接続を介して接続され、複数のDPアクセラレータのうちの少なくとも2つの間は、チップ間接続を介して接続される。CPUから受信した要求に応じて、CPUから受信した何れか一つのDPタスクを処理するために、何れか一つのアクセラレータカード、又は、何れか一つのアクセラレータカードにおける何れか一つの前記DPアクセラレータを、有効化または無効化するように、カード間接続及び前記チップ間接続は、それぞれ、動的に起動又は停止可能とされる。
別の実施態様において、アクセラレータカードは、バスを介してCPUに接続されたホストインターフェースと、CPUからDPタスクを受信して実行する複数のデータ処理DPアクセラレータと、を備える。複数のDPアクセラレータのうちの少なくとも2つの間は、チップ間接続を介して接続され、CPUから受信した要求に応じて、CPUから受信した何れか一つの前記DPタスクを処理するために、何れか一つのDPアクセラレータを、有効化または無効化するように、チップ間接続は、動的に起動又は停止可能とされる。
様々な実施形態によれば、AIチップトポロジーを動的に生成するためのシステムおよび方法が記載される。AIアクセラレータチップクラスタ内の基板(アクセラレータカードまたはアクセラレータモジュールとも呼ばれる)間のケーブル接続(チップ間接続またはプロセッサ間接続とも呼ばれる)を動的に起動または停止することによって、異なるサイズのAIトポロジーを生成することができる。チップクラスタは、異なる基板上に設けられた多数のAIチップを含むことができる。各基板は、等しい数のAIチップを含むことができ、ここで、AIチップは、プリント回路基板(PCB)配線または電気配線を介して相互接続される。
例示的な方法において、チップクラスタ内のチップトポロジーを生成するための要求であって、当該チップトポロジーを構成するチップの数を指定する要求を受信する。チップクラスタは、ケーブル接続を介して互いに接続された複数の基板を含み、それぞれの基板に一セットのチップが配置される。当該要求に応じて、チップトポロジーのために指定された、チップの数と各基板上のチップセットの数とに基づいて、チップトポロジーに使用される一セットの基板セットを決定する。基板のセットが決定されると、基板のセット間のケーブル接続をチェックして、ケーブル接続が非アクティブ化されているかどうかを判断する。次に、非アクティブ化されているケーブル接続をアクティブ化して、要求されたチップトポロジーを生成する。
一実施形態において、各チップは、チップとのチップ間接続をアクティブ化または非アクティブ化するように、1つまたは複数のプログラム命令(コマンドまたは信号)を実行するように構成することができる。一実施形態では、それぞれのチップは、AIアクセラレータチップとされる。各基板上のチップセットは、それぞれ等しい数のチップを含む複数の列に配置され、それぞれのチップは、双方向プリント回路基板(PCB)配線を介してその隣接のチップと接続される。
一実施形態において、チップトポロジーは、複数の行および複数の列のチップを含み、各行または各列のチップは、デイジーチェーン方式で接続されることにより双方向の物理的ループを形成する。それぞれの物理的リングにおいて、毎行または毎列の両端のチップは、ケーブル接続を介して互いに接続される。ケーブル接続は、アクセラレータ用のキャッシュコヒーレントインタコネクト(CCIX)接続であってもよい。
一実施形態では、それぞれの基板に、2行に配置された偶数個のチップを含むことができる。各行の端部上のチップは、2つ以上のチップ間ケーブルインターフェースを有することができ、他のチップは、1つ以上のチップ間ケーブルインターフェースを有することができる。各チップは、チップの両側に、それぞれ少なくとも1つのチップ間ケーブルまたはPCB配線インターフェースを有する。
図1は、一実施形態による、AIモデルのトレーニング用のシステムの一例を示す図である。図1に示すように、システムは、複数のサーバ(例えば、サーバA103およびサーバB105)に分散された汎用処理ユニット(GPU)クラスタ101を含み、各サーバは、1つまたは複数のCPUを含み、各CPUは、GPUなどの1つまたは複数のデータ処理(DP)アクセラレータと関連付けられている。
サーバは、イーサネット接続111を介して互いに通信するCPU107およびCPU109を含むことができる。図1に示すシステム例では、各CPUは、PCIe(Peripheral Device Interconnection High Speed)スイッチを介してCPUに接続された複数のGPUを有することができる。例えば、サーバA103において、GPU117、GPU119およびGPU121は、PCIeスイッチA113を介してCPU A107に接続される。サーバB105において、GPU123、GPU125およびGPU127は、PCIe B115を介してCPU B109に接続される。
CPU107およびCPU109は、ニューラルネットワークをトレーニングするためのタスクを協働させるために、イーサネット接続111などのプロセッサ間リンクを介して互いに通信することができる。例えば、ジョブコマンドは、イーサネット接続111を介して各サーバに配信することができる。次に、ジョブコマンドを、サーバ内のCPUから当該CPUに接続されたGPUに配信することができる。ジョブコマンドが配信されると、システム内のGPU間には、対応するチップ間リンク122を介してデータを転送可能とされる。チップ間リンク122には、例えば、アクセラレータ用のキャッシュコヒーレントインタコネクト(CCIX)リンクなど、様々なチップ間相互接続のソリューションが採用できる。図1に示すように、一方向リングトポロジーを使用することができるが、システム内のGPUは、双方向リングトポロジーに配置される。
CCIXは、CCIXアライアンスによって開発されたオープンキャッシュコヒーレンス相互接続アーキテクチャである。CCIXは、標準的なPCIeのキャッシュコヒーレンシを拡張することによって、システム内のCPUなどの中央プロセッサとGPUなどの様々なアクセラレータとの間の通信を簡略化するように設計されている。CCIXは、異種システムアーキテクチャのためのキャッシュコヒーレンスフレームワークを提供する高性能チップ間相互接続アーキテクチャである。システム内の中央処理装置と様々な他のアクセラレータとの間のキャッシュコヒーレンシは常に自動的に維持される。CCIXをサポートする各装置は、少なくとも1つのCCIXポートを含み、CCIXポートは、CCIXの起用されたあらゆる他のデバイスとは、ピン互換性がある。CCIXは、チップ・トゥ・チップ、チップ・トゥ・スイッチ・トゥ・チップ、グリッド、デイジーチェーン、およびリングなどの様々なトポロジーをサポートする。
一実施形態では、GPUは、それぞれのCPUから配信されたデータブロックに対して、パイプライン方式でAIトレーニング動作を実行するように構成される。それぞれのGPUは、さらに、プロセッサ間リンクを介して互いに通信する。GPUは、さらなるデータ処理のために、上流のGPUからの処理結果を受信するように環状に構成されてもよい。それぞれのGPUは、処理結果をその対応する下流の、さらなる処理を実行するためのGPUにさらに送信することができる。したがって、それぞれのGPUは、並列して、配信されたDPオペレーションを実行し、そのDP結果をダウンストリームGPUに送信する。且つ、各GPUは、その上流のGPUから処理結果を受信して、さらなる処理を実行する。
図2A~図2Fは、一実施形態によるAIモデルのトレーニングにおけるデータ転送の例示的なプロセスを示す図である。ここでは、GPU203、205、および207の3つのGPUが示されているが、例示的なプロセスは、トレーニングされるニューラルネットワークの複雑さ、トレーニング用データのサイズ、およびユーザが所望するトレーニングの速度などの複数の要因に応じて、できる限り多くのGPU(例えば、数千個のGPU)を使用することができる。
例示的なシステム上でトレーニングされたニューラルネットワークの例は、結合されるニューロンの集合を含む多層パーセプトロン(MLP)ニューラルネットワークを含む。MLPニューラルネットワーク内のニューロンは、1つの層内の各ニューロンが後続の層内の各ニューロンにパラメータ(例えば、重みおよびバイアス)で結合されると、完全に結合され得る。
ニューラルネットワークモデルのトレーニング中、勾配降下(すなわち、逆伝達)を使用して、ニューラルネットワークモデルの期待値と実際の出力との間の差を最小化するためのパラメータのセットを決定することができる。勾配降下は、損失/誤差関数の勾配を計算するステップと、勾配に応答して既存のパラメータを更新するステップとを含む。このサイクルは、損失関数の極小値に達するまで繰り返される。
一実施形態では、ニューラルネットワークモデルのトレーニング用データセットは、複数のサブセットに分割され、各サブセットは、ニューラルネットワークのトレーニングが複数のGPUによって並行して行われるように、1つのGPU上でニューラルネットワークモデルをトレーニングするために使用される。各GPUは、ニューラルネットワークモデルの完全なコピーを有することができる。
トレーニング用データセットの各サブセットは、複数の等しいサイズのデータブロックに論理的に分割することができる。例示的なプロセスでは、ブロックの数は、GPUの数に等しい。ニューラルネットワークモデルの並列的なトレーニングは、勾配降下の複数の反復を必要とする。毎回の反復に、各GPUは、ネットワークパラメータに対する損失の勾配を計算するために、GPU上のデータに対してニューラルネットワークモデルの順方向伝達を実行し、続いて誤差の逆伝達を実行する。次に、GPUは、互いに通信して、勾配の統計量(例えば、平均値、最大値、または最小値)を計算し、そして、統計量(例えば、平均勾配)を利用して、更新されたパラメータを得ることができる。ニューラルネットワークモデルは、多数のパラメータ(例えば、数十億のパラメータ)を有し、各パラメータは、それぞれ勾配値に関連付けられるようにすることができる。このように、ニューラルネットワークにとって、勾配の大きさは非常に大きく、GPU間で勾配を転送することは、かなり帯域幅を占有する。
再び図2A~図2Fを参照すると、例示的なプロセスは、GPU間のデータ転送による要求の帯域幅を低減するためのアルゴリズムを示す。一実施形態では、本開示で使用される帯域幅とは、所与のネットワーク接続における最大データ転送レートである。当該アルゴリズムは、2つのプロセスを含むことができる。第1のプロセスは、分散規約(Scatter-Reduce)プロセスであり、第2のプロセスは、全凝集(Allgather)プロセスである。Scatter-Reduceプロセス中において、GPUは、各GPUが多数の最終結果ブロックで終了するようにデータを交換することができる。Allgatherプロセス中において、GPUは、すべてのGPUが完全な最終結果で終わるように、これらの結果ブロックを交換することができる。
各GPUは、GPU上のトレーニング用データセットのサブセットを等しいサイズのデータブロックに分割するように構成された1つ以上のアプリケーションを含むことができる。例示的なシステムでは、各GPU上のデータブロックの数は、GPUの数である。ニューラルネットワークモデルのトレーニング中において、各データブロックに対しては、それ自体の勾配のセットを生成することができる。
この例では、上述したように、システム内に3つのGPUが存在するので、それぞれのGPU上のデータブロックの数は3である。GPU#0 203上のトレーニング用データのサブセットから、3組の勾配a215、b231、c237を生成することができ、GPU#1 205上のトレーニング用データのサブセットから、さらに3組の勾配a217、b223、c239を生成することができる。同様に、GPU#2 207上のトレーニング用データのサブセットから、3組の勾配a219、b235、c241が生成される。一実施形態では、各GPU上の異なる勾配セットは、アレイまたは別のデータ構造で記憶されてもよい。
一例として、当該アルゴリズムは、トレーニング用データセットの各サブセットによって生成された勾配を合計するように設計されても良い。これにより、アルゴリズムが完了すると、各GPUは、トレーニング用データセットから生成された勾配の合計を有することになる。
例示的なプロセスにおけるGPUは、Scatter-Reduceプロセス中にN-1回の反復を有することができ、ここで、Nは、システム内のGPUの総数である。このように、例示的なシステムにおけるGPUは、2つの反復を有することができる。毎回の反復時、各GPUは、GPU上の1組の勾配をその右隣に送信するとともに、その左隣から1組の勾配を受信して、当該2組の勾配を加算して1組の新しい勾配とすることができる。各GPUによって送信または受信される勾配の組は、毎回の反復で異なる。n番目のGPUは、n番目の勾配の組が送信されたことによって開始するとともに、(n-1)番目の勾配の組を受信するように、処理を逆行する。
図2A~図2Cは、Scatter-Reduce処理を示す図である。図2Aは、Scatter-Reduceプロセスの第1回の反復におけるデータ伝送を示す。第1の送信および第1の受信が完了した後、各GPUは、2つの異なるGPU上の2組の勾配の合計を表す値を有するアレイ要素を有する。例えば、GPU205における第1の要素a1は、第2のGPU205および第1のGPU203からの勾配の組の合計を含むことができる。図2Bは、Scatter-Reduceプロセスの第2回の反復におけるデータ転送を示しており、Scatter-Reduceプロセスの第1回の反復の完了後の中間和も示す。第2回の反復では、Scatter-Reduceプロセスが続き、そして、Scatter-Reduceプロセスの終了時に(すなわち、この例では第2回の反復の後に)、各GPUは、すべてのGPUに亘る、対応するアレイ要素のすべての勾配の合計を含む一つのアレイ要素を有する。図2Cは、Scatter-Reduce処理終了時の最終状態を示している。
図2D~図2Fは、Allgatherプロセスを示す。当該プロセスは、Scatter-Reduceと同様に行われ、且つ、N-1回の反復を有する。Scatter-Reduceと比べ、受信された勾配が、GPUによって受信された勾配に累積することの代わりに、受信GPU上の対応するアレイ要素内の勾配をカバーするという点で相違する。図2Dは、Allgatherプロセスの第1回の反復におけるデータ転送を示す。図2Eに示すように、第1回の反復が完了した後、各GPUは、すべてのGPUに亘る対応するアレイ要素内のすべての勾配の合計をそれぞれ含む2つのアレイ要素を有する。図2Eは、第2回の反復におけるAllgatherプロセス、すなわち例示的プロセスにおける最終回の反復を示す。図2Fに示すように、Allgatherプロセスの終了時に、GPUは、トレーニング用データセット全体からの完全に蓄積された勾配を有する。例示的なプロセスは、すべてのデータ転送が、離散の反復において同期して起こるので、帯域幅が最適となる。
図3は、一実施形態による、AIチップトポロジーを生成するための例示的なシステムを示す図である。図1に示すように、AIアクセラレータチップクラスタ302は、クラウド環境310内に設けることができる。AIアクセラレータチップクラスタ302は、例えば、基板A304、基板B305、基板C308、および基板N335など、多数のPCB基板を含むことができる。図面に4つしかの基板が示されていないが、AIアクセラレータチップクラスタ302は、任意の数のPCB基板を含むことができる。
チップクラスタ302内のPCB基板の各々は、同じ数のAIチップを含む。この図は、各基板上のAIチップの例を示しており、例えば、基板A304上のAIチップA303、基板B305上のAIチップB311、基板C308上のAIチップC325、基板N335上のAIチップN329がある。各PCB基板において、同じようにチップがレイアウトされ、各チップがPCB配線307、309、313、315、321、323、331、333を用いて互いに接続されている。
例えば、各PCB基板は、2行に配列された偶数個(例えば、8個)のAIチップを含むことができる。各行のAIチップは、PCB配線を用いて順次接続され、1行における各AIチップは、他行の対応するAIチップに接続される。
AIアクセラレータチップクラスタ302内のPCB基板は、ケーブル接続を介して互いに接続することができ、ケーブル接続は、最初は非アクティブの状態とすることができる。各ケーブルの接続される終点は、対応する基板自体ではなく、対応するPCB基板上のAIチップである。各AIチップは、ケーブル接続用またはPCB配線接続用の相互接続インターフェースを複数有することができる。しかし、各AIチップは、別のPCB基板上のAIチップに接続するために用いられる少なくとも1つのケーブル接続用の相互接続インターフェースを有することができる。
一実施形態では、互いに水平となる任意の2つのPCB基板間のケーブル接続333、335、337、および339の数は、PCB基板上のAIチップの行数と同じであり、互いに垂直となる任意の2つのPCB基板間のケーブル接続341、345、347、349、351、および355の数は、PCB基板上のAIチップの列数と等しい。
AIチップ間の各PCB配線はハードワイヤードであり、動的に遮断可能ではない。しかし、PCB基板間の各ケーブル接続(例えば、CCIX接続)は、プログラムで遮断または再接続することができる。ケーブル接続の遮断または再接続は、ケーブル接続に関連する1つまたは複数のPCB基板上で実行される1つまたは複数のプログラム命令によって実行することができる。
図3において、ユーザ301は、所定の数のAIチップを有するAIチップトポロジーの生成要求をAIアクセラレータチップクラスタ302に送信することができる。クラウド環境310をプラットフォーム、即ちサービス(PaaS)として、複数のテナントに提供することができる。ユーザ301は、テナントの一つであってもよい。
この要求は、1つまたは複数のクラウドサーバ上で実行されるトポロジー生成ソフトウェアプログラム312によって受信される。トポロジー生成ロジック312は、要求に含まれる情報を、AIアクセラレータチップクラスタ302内の1つまたは複数のPCB基板によって実行されるプログラム命令のセットに変換するための、所定のアルゴリズムを実現することができる。トポロジー作成ソフトウェアプログラム312は、AIアクセラレータチップクラスタ302内の各PCB基板の状態を追跡することができ、PCB基板の状態は、PCB基板がアイドルであるかビジーであるかである。PCB基板がアイドル状態にあるとは、PCB基板がテナントに使用されていないことである。トポロジー作成ロジック312は、さらに、受信したトポロジー作成要求を達成するために、1つまたは複数のPCB基板をどのように選択するかを決定するための一セットのルールを実現することができる。
例えば、トポロジー生成ソフトウェアプログラム312は、AIアクセラレータチップクラスタ302を走査し、要求されたAIチップトポロジーを生成するために使用される任意の空きPCB基板にマークを付けることができる。選択的には、PCB基板の利用可能な残りの時間が所定の範囲内にあり、且つ、当該PCB基板が、要求されたトポロジーを生成するために選択されたPCB基板により近い位置にある場合、トポロジー生成ソフトウェアプログラム312は、1つまたは複数のPCB基板上で待機してもよい。
説明的な例として、ユーザ301が32-チップトポロジーを有するトポロジーの作成を要求した場合、トポロジー作成ソフトウェアプログラム312は、種々の異なる方法でトポロジーを作成することができる。トポロジーは、基板A304及び基板B305、基板C308及び基板N335、基板A304及び基板C308、基板B305及び基板N335を含むことができる。要求されたトポロジーを生成する際にPCB基板を選択するために使用される所定のアルゴリズムおよび/またはルールに応じて、トポロジー生成ソフトウェアプログラム312は、4つの選択肢のいずれかを選択することができる。
図4は、本実施形態に係るAIチップの一例を示す図である。図4に示すように、AIチップ401は、4つのチップ間相互接続インターフェース402、403、405、407を含むことができる。一実施形態では、AIチップ401は、4つ以上の相互接続インターフェースを有することができる。
各チップ間相互接続インターフェースは、PCIe、CCIX、またはInterlakenなどの任意の業界規格のインターフェースとすることができる。相互接続バス411、415、413、または417は、それぞれの相互接続インターフェースと共に使用することができる。各相互接続バスは、ケーブルまたはPCB配線であってもよく、各相互接続バス上のデータ転送は、一方向または双方向であってもよい。
図5は、実施形態による例示的なPCB基板を示す。図5に示すように、PCB基板501は、偶数個のAIチップ(例えば、8個)501~515を含むことができ、それらは2行に配置され、各行は同じ数のAIチップを有する。一対のAIチップは、PCB配線、ケーブル接続、またはこれら両方に介して接続することができる。例えば、AIチップ501とAIチップ509は、PCB配線とケーブル接続を介して接続される一方、AIチップ503とAIチップ505は、PCB配線のみを介して接続される。
一実施形態では、各行の両端のAIチップ(例えば、AIチップ501、AIチップ507、AIチップ509、およびAIチップ515)は、それぞれ2つの相互接続ケーブルインターフェースを有し、残りのAIチップは、それぞれ1つの相互接続ケーブルインターフェースを有してもよい。
例示的なPCB基板501上のAIチップは、All-ReduceアルゴリズムにおけるAIモデルトレーニングにおけるデータ交換のための2つの双方向物理的リング503および505として構成することができる。各物理的リングは、双方向であるので、2つの物理的リングは、4つの論理リングとして動作することができる。
AIモデルのトレーニングにおいて、特にいくつかのアルゴリズム(例えば、全減算アルゴリズム)において、多数のリング(物理的または論理的リング)は、多数のトレーニングプロセスが並行して実行可能であることを意味し、それにより、AIモデルのトレーニングが加速され、トレーニングの所要の総時間が短縮されることになる。
PCB基板501上のAIチップのレイアウト及びPCB配線とケーブル接続とを混用することで、複数のこのようなPCB基板によって作成されたAIチップトポロジーは、トポロジー上の物理的リングの数を最大化することができるとともに、異なるサイズのトポロジーを作成する柔軟性を維持することができ、過度のハードウェアオーバーヘッドを必要としない。
図6は、実施形態による例示的なAIチップトポロジー600を示す図である。図示のように、16-チップトポロジーは、2つのPCB基板602および604からなり、各PCB基板は、2行に配列された8個のAIチップを含む。
一実施形態では、図5に示されるように、AIチップトポロジーが単一のPCB基板を含む場合、図に示されるように、2つの双方向物理的リングが存在し得る。しかし、図6に示すように、1つ以上のそのようなPCB基板がAIチップトポロジーを生成するために使用される場合、AIチップトポロジーにおける物理的リングの形成方法は異なることがある。
図6では、全体として見ると、トポロジー600は、4列および4行を含むことができる。複数のPCB配線およびケーブル接続を使用して各行を接続して、双方向物理的リングを形成することができる。ケーブル接続は、行の端部にある2つのAIチップを接続するために使用される。リング601~607は、4行のAIチップによって作成された4つの物理的リングを示す。
トポロジー600内の4列のAIチップは、さらに4つの別個の物理的リング609、611、613、615を形成する。しかし、各列について、物理的リングを形成するために複数のケーブル接続が必要とされる。例えば、物理的リング609の場合、第1のケーブル接続617を介して、AIチップ618とAIチップ619が接続され、第2の接続616を介して、AIチップの行端部に位置する2つのAIチップ620とAIチップ621とが接続される。
ケーブル接続とPCB配線の混用により作成可能な16-チップトポロジー600は、サーバラックの電源容量がサポートできる限り、1つのサーバラック内のより大きなトポロジー(例えば、64チップ又は128チップ)に垂直に拡張することができる。単一のサーバラックがその全電源容量に達した後、16-チップトポロジー600は、サーバラック全体にわたって水平方向に拡張することができる。
図7は、実施形態によるAIチップトポロジー700の別の例を示す図である。上述したように、AIチップトポロジーのサイズは、単一のサーバラックの電源容量によって制限され得る。サーバラック内の電力制限を克服するために、図7は、AIチップを複数のサーバラックにわたって水平に横断するトポロジーを示す。
AIチップトポロジー700は、異なるサーバラック内において4つのPCB基板701、703、705および707を含むことができる。例えば、PCB基板701、705を第1のサーバラックに収容し、PCB基板703、707を第2のサーバラックに収容してもよい。サーバラック内のPCB基板の数は、サーバラックの電源容量の限界まで増加させることができる。チップトポロジー700は、より多くのサーバラックに接続されることによって、さらに水平に拡張することもできる。
図8は、一実施形態による、AIチップトポロジーを作成する例示的なプロセス800を示す。プロセス800は、ソフトウェア、ハードウェア、またはそれらの組み合わせを含むことができる処理ロジックによって実行することができる。
図8を参照すると、動作801において、処理ロジックは、同じ数のチップを含む互いに接続された複数の基板を含むチップクラスタにおいて、指定された数のチップを有するチップトポロジーを生成するための要求を受信する。動作803において、当該要求に応答して、処理ロジックは、指定されたチップの数および各基板上のチップの数に基づいて、複数の基板からチップトポロジーを生成するための基板のセットを決定する。動作805において、処理ロジックは、基板のセットから、非アクティブ化されたケーブル接続を特定する。動作807において、処理ロジックは、要求されたチップトポロジーを生成するためにケーブル接続をアクティブ化する。
なお、上述した構成要素の一部または全部は、ソフトウェア、ハードウェア、またはそれらの組み合わせによって実現されてもよい。例えば、そのような構成要素は、永久記憶装置にインストールされて記憶されたソフトウェアとして実装することができ、このソフトウェアは、プロセッサ(図示せず)によってメモリにロードされて実行され、本明細書に記載のプロセスまたは動作全体を実施することができる。あるいは、そのようなコンポーネントは、集積回路(例えば、特定用途向けICまたはASIC)、デジタル信号プロセッサ(DSP)、またはフィールドプログラマブルゲートアレイ(FPGA)などの特定用途向けハードウェアにプログラムまたは組み込まれた実行可能コードとして実装することができ、実行可能コードは、対応するドライバおよび/またはオペレーティングシステムを介してアプリケーションからアクセスすることができる。さらに、そのようなコンポーネントは、1つまたは複数の特定の命令を介してソフトウェアコンポーネントによってアクセス可能な命令セットの一部として、プロセッサまたはプロセッサコア内の特定のハードウェアロジックとして実装することができる。
上述の詳細な説明の一部は、コンピュータメモリ内のデータビットの操作のアルゴリズムおよびシンボル表現に基づいて提示されている。これらのアルゴリズム記述および表現は、データ処理分野の当業者が、当業者に最も効率的にその作業内容を伝えるために使用する方法である。ここで、アルゴリズムは、一般に、所望の結果をもたらす自己適合性動作シーケンスであると考えられる。これらの操作は、物理量を物理的に操作する必要がある操作である。
これらの用語および類似の用語はすべて、適切な物理量と関連付けられ、これらの量に適用される便利なタグのみである。上述の議論から明らかなように、他に明示的に指摘されない限り、以下の特許請求の範囲に記載されているような用語を用いた説明は、コンピュータシステムのレジスタおよびメモリ内の物理的(電子的)量として表されているデータを、コンピュータシステムのメモリまたはレジスタまたは他のそのような情報記憶、送信または表示装置内の物理量として同様に表されている他のデータに変換する、コンピュータシステムまたは同様の電子計算装置の動作およびプロセスを、本明細書全体を通して意味することを理解されたい。
本開示の実施形態は、本明細書の動作を実行するための装置にも関する。このようなコンピュータプログラムは,非一時的なコンピュータ可読媒体に格納される。機械可読媒体は、機械(例えば、コンピュータ)によって読み取り可能な形態で情報を記憶するための任意の機構を含む。例えば、機械可読(例えば、コンピュータ可読)媒体は、機械可読記憶媒体、例えば、読み出し専用メモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリ装置を含む。
前の図に描かれたプロセスまたは方法は、ハードウェア(例えば、回路、専用ロジックなど)、ソフトウェア(例えば、非一時的なコンピュータ可読媒体上に含まれる)、または両方の組み合わせを含む処理ロジックによって実行されてもよい。プロセスまたは方法をいくつかのシーケンス動作に従って上述したが、説明したいくつかの動作は、異なるシーケンスで実行されてもよいことを理解されたい。さらに、いくつかの動作は、連続的ではなく並列に実行されてもよい。
本開示の実施形態は、特定のプログラミング言語を参照して記載されていない。本明細書に記載の本開示の実施形態の教示は、様々なプログラミング言語を使用して実施することができることを理解されたい。
以上、特定の実施形態を参照しながら、本発明について詳解してきた。以下の特許請求の範囲に記載された本開示のより広い趣旨および範囲から逸脱することなく、様々な変更を加えることができることは明らかである。したがって、本明細書および図面は、限定的ではなく例示的なものと解釈されるべきである。

Claims (20)

  1. データ処理システムであって、
    CPUと、
    バスを介して前記CPUに接続された複数のアクセラレータカードと、を備え、
    複数のアクセラレータカードのそれぞれが、前記CPUからDPタスクを受信して実行するデータ処理用のDPアクセラレータを複数有し、前記複数のアクセラレータカードのうちの少なくとも2つの間は、カード間接続を介して接続され、前記複数のDPアクセラレータのうちの少なくとも2つの間は、チップ間接続を介して接続され、
    前記CPUから受信した要求に応じて、前記CPUから受信した何れか一つの前記DPタスクを処理するために、何れか一つの前記アクセラレータカード、又は、何れか一つの前記アクセラレータカードにおける何れか一つの前記DPアクセラレータを、有効化または無効化するように、前記カード間接続及び前記チップ間接続は、それぞれ、動的に起動又は停止可能とされる、
    ことを特徴とするデータ処理システム。
  2. 各前記アクセラレータカードにおける各前記DPアクセラレータは、それぞれのチップ間接続を介して前記アクセラレータカードにおける別のDPアクセラレータと相互接続するために利用可能なチップ間インターフェースを複数有する、
    請求項1に記載のデータ処理システム。
  3. 各前記アクセラレータカードにおける各前記DPアクセラレータは、それぞれのカード間接続を介して他のアクセラレータカードにおける別のDPアクセラレータと相互接続するために利用可能なチップ間インターフェースを複数有する、
    請求項1に記載のデータ処理システム。
  4. 各前記アクセラレータカードにおいて、前記DPアクセラレータが、1つ又は複数のチップ間接続を介して、互いに接続された複数の行および列として配置される、請求項1~3のいずれか一項に記載のデータ処理システム。
  5. 前記複数のアクセラレータカードのうちの第1のアクセラレータカードにおける各行のDPアクセラレータは、それぞれの水平チップ間接続を介して直列接続されることにより、水平アクセラレータリングを形成する、
    請求項4に記載のデータ処理システム。
  6. 第1のアクセラレータカードにおける各列のDPアクセラレータは、一つ又は複数のカード間接続を介して、前記複数のアクセラレータカードのうちの第2のアクセラレータカードの対応する列に接続されることにより、垂直アクセラレータリングを形成する、
    請求項5に記載のデータ処理システム。
  7. 前記第1のアクセラレータカードにおける各列のDPアクセラレータは、それぞれの垂直チップ間接続を介して直列接続されることにより、垂直アクセラレータリングを形成する、
    請求項4に記載のデータ処理システム。
  8. 第1のアクセラレータカードにおける各行のDPアクセラレータは、それぞれのカード間接続を介して、前記アクセラレータカードのうちの第2のアクセラレータカードの対応する行に接続されることにより、水平アクセラレータリングを形成する、
    請求項7に記載のデータ処理システム。
  9. 各前記DPアクセラレータは、人工知能AIアクセラレータチップを備える、請求項1~8のいずれか一項に記載のデータ処理システム。
  10. 前記バスは、ペリフェラル・コンポーネント・インターコネクト・エクスプレス(PCIe)リンクまたはイーサネット接続を含み、前記チップ間接続またはカード間接続は、アクセラレータ用のキャッシュコヒーレントインタコネクト(CCIX)リンクを含む、
    請求項1~9のいずれか一項に記載のデータ処理システム。
  11. アクセラレータカードであって、
    バスを介してCPUに接続されたホストインターフェースと、
    前記CPUからDPタスクを受信して実行する複数のデータ処理DPアクセラレータと、を備え、
    前記複数のDPアクセラレータのうちの少なくとも2つの間は、チップ間接続を介して接続され、
    前記CPUから受信した要求に応じて、前記CPUから受信した何れか一つの前記DPタスクを処理するために、何れか一つの前記DPアクセラレータを、有効化または無効化するように、前記チップ間接続は、動的に起動又は停止可能とされる、
    ことを特徴とするアクセラレータカード。
  12. 各前記DPアクセラレータは、それぞれのチップ間接続を介して前記アクセラレータカードにおける別のDPアクセラレータと相互接続するために利用可能なチップ間インターフェースを複数有する、
    請求項11に記載のアクセラレータカード。
  13. 各前記DPアクセラレータは、それぞれのカード間接続を介して他のアクセラレータカードにおける別のDPアクセラレータと相互接続するために利用可能なチップ間インターフェースを複数有する、
    請求項11に記載のアクセラレータカード。
  14. 前記DPアクセラレータは、1つ又は複数のチップ間接続を介して、互いに接続された複数の行および列として配置される、
    請求項11~13のいずれか一項に記載のアクセラレータカード。
  15. 各行のDPアクセラレータは、それぞれの水平チップ間接続を介して直列接続されることにより、水平アクセラレータリングを形成する、
    請求項14に記載のアクセラレータカード。
  16. 各列のDPアクセラレータは、一つ又は複数のカード間接続を介して、複数のアクセラレータカードのうちの第2のアクセラレータカードの対応する列に接続されることにより、垂直アクセラレータリングを形成する、
    請求項15に記載のアクセラレータカード。
  17. 各列のDPアクセラレータは、それぞれの垂直チップ間接続を介して直列接続されることにより、垂直アクセラレータリングを形成する、
    請求項14に記載のアクセラレータカード。
  18. 各行のDPアクセラレータは、それぞれのカード間接続を介して、複数のアクセラレータカードのうちの第2のアクセラレータカードの対応する行に接続されることにより、水平アクセラレータリングを形成する、
    請求項17に記載のアクセラレータカード。
  19. 各前記DPアクセラレータは、人工知能AIアクセラレータチップを備える、
    請求項11~18のいずれか一項に記載のアクセラレータカード。
  20. 前記バスは、ペリフェラル・コンポーネント・インターコネクト・エクスプレスPCIeリンクまたはイーサネット接続を含み、前記チップ間接続またはカード間接続は、アクセラレータ用のキャッシュコヒーレントインタコネクト(CCIX)リンクを含む、請求項11~19のいずれか一項に記載のアクセラレータカード。
JP2020536942A 2019-11-15 2019-11-15 フレキシブルケーブル接続に基づく分散型aiトレーニングトポロジー Pending JP2022511581A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/118752 WO2021092890A1 (en) 2019-11-15 2019-11-15 Distributed ai training topology based on flexible cable connection

Publications (1)

Publication Number Publication Date
JP2022511581A true JP2022511581A (ja) 2022-02-01

Family

ID=75911676

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020536942A Pending JP2022511581A (ja) 2019-11-15 2019-11-15 フレキシブルケーブル接続に基づく分散型aiトレーニングトポロジー

Country Status (6)

Country Link
US (1) US11615295B2 (ja)
EP (1) EP3841530B1 (ja)
JP (1) JP2022511581A (ja)
KR (1) KR102525329B1 (ja)
CN (1) CN113424198B (ja)
WO (1) WO2021092890A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11934334B2 (en) * 2021-04-29 2024-03-19 Arm Limited CCIX port management for PCI express traffic
WO2023129594A1 (en) * 2021-12-29 2023-07-06 SambaNova Systems, Inc. High-bandwidth power estimator for ai accelerator
US20230385138A1 (en) * 2022-05-25 2023-11-30 Meta Platforms, Inc. Chip-to-chip interconnect with a layered communication architecture

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60140457A (ja) * 1983-12-28 1985-07-25 Hitachi Ltd コンピュータシステム
JPS61156363A (ja) * 1984-12-27 1986-07-16 Toshiba Corp デ−タ処理装置
JPH04344970A (ja) * 1991-05-23 1992-12-01 Nippon Telegr & Teleph Corp <Ntt> ニューラルネット処理装置
JP2001185648A (ja) * 1999-12-24 2001-07-06 Mitsubishi Electric Corp 半導体装置
JP2005524239A (ja) * 2002-04-29 2005-08-11 シリコン・パイプ・インコーポレーテッド ダイレクト・コネクト形信号システム
US20070294454A1 (en) * 2006-06-15 2007-12-20 Radoslav Danilak Motherboard for cost-effective high performance graphics system with two or more graphics processing units
US20100007668A1 (en) * 2008-07-08 2010-01-14 Casparian Mark A Systems and methods for providing scalable parallel graphics rendering capability for information handling systems
JP2012503887A (ja) * 2008-09-29 2012-02-09 インテル コーポレイション マウントされたプロセッサの入出力アーキテクチャ
JP2012252490A (ja) * 2011-06-02 2012-12-20 Renesas Electronics Corp マルチプロセッサおよびそれを用いた画像処理システム
JP2017201517A (ja) * 2016-05-06 2017-11-09 廣達電腦股▲ふん▼有限公司 動的pcieスイッチ再配置システムおよびその方法
JP2019087183A (ja) * 2017-11-10 2019-06-06 富士通株式会社 情報処理装置、演算処理装置及び情報処理装置の制御方法
WO2019147708A1 (en) * 2018-01-24 2019-08-01 Alibaba Group Holding Limited A deep learning accelerator system and methods thereof
US20190294575A1 (en) * 2018-03-26 2019-09-26 Nvidia Corporation Techniques for efficiently synchronizing data transmissions on a network
US20190339981A1 (en) * 2017-07-30 2019-11-07 NeuroBlade, Ltd. Memory-based distributed processor architecture

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8066515B2 (en) * 2004-11-17 2011-11-29 Nvidia Corporation Multiple graphics adapter connection systems
US7525548B2 (en) * 2005-11-04 2009-04-28 Nvidia Corporation Video processing with multiple graphical processing units
US7500041B2 (en) * 2006-06-15 2009-03-03 Nvidia Corporation Graphics processing unit for cost effective high performance graphics system with two or more graphics processing units
US8155022B1 (en) 2009-03-24 2012-04-10 Qlogic, Corporation Method and system for controlling power consumption in network nodes
US9037770B2 (en) * 2011-05-05 2015-05-19 International Business Machines Corporation Accelerator engine emulation over an interconnect link
CN103105895A (zh) * 2011-11-15 2013-05-15 辉达公司 计算机***及其显示卡及该***进行图形处理的方法
US10540588B2 (en) * 2015-06-29 2020-01-21 Microsoft Technology Licensing, Llc Deep neural network processing on hardware accelerators with stacked memory
US10169275B2 (en) 2015-11-27 2019-01-01 International Business Machines Corporation System, method, and recording medium for topology-aware parallel reduction in an accelerator
US10528321B2 (en) * 2016-12-07 2020-01-07 Microsoft Technology Licensing, Llc Block floating point for neural network implementations
US11501152B2 (en) * 2017-05-05 2022-11-15 Intel Corporation Efficient learning and using of topologies of neural networks in machine learning
US9936577B1 (en) * 2017-09-13 2018-04-03 Wieson Technologies Co., Ltd. Dual-channel flexible circuit bridge connector and dual graphics card system using the same
US11263162B2 (en) * 2017-12-20 2022-03-01 Intel Corporation System decoder for training accelerators
US11270201B2 (en) * 2017-12-29 2022-03-08 Intel Corporation Communication optimizations for distributed machine learning
US10728091B2 (en) 2018-04-04 2020-07-28 EMC IP Holding Company LLC Topology-aware provisioning of hardware accelerator resources in a distributed environment
US10802995B2 (en) * 2018-07-26 2020-10-13 Xilinx, Inc. Unified address space for multiple hardware accelerators using dedicated low latency links
US11025544B2 (en) * 2019-06-07 2021-06-01 Intel Corporation Network interface for data transport in heterogeneous computing environments
CN110222005A (zh) * 2019-07-15 2019-09-10 北京一流科技有限公司 用于异构架构的数据处理***及其方法
CN110347636B (zh) * 2019-07-15 2024-04-30 北京一流科技有限公司 数据执行体及其数据处理方法

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60140457A (ja) * 1983-12-28 1985-07-25 Hitachi Ltd コンピュータシステム
JPS61156363A (ja) * 1984-12-27 1986-07-16 Toshiba Corp デ−タ処理装置
JPH04344970A (ja) * 1991-05-23 1992-12-01 Nippon Telegr & Teleph Corp <Ntt> ニューラルネット処理装置
JP2001185648A (ja) * 1999-12-24 2001-07-06 Mitsubishi Electric Corp 半導体装置
JP2005524239A (ja) * 2002-04-29 2005-08-11 シリコン・パイプ・インコーポレーテッド ダイレクト・コネクト形信号システム
US20070294454A1 (en) * 2006-06-15 2007-12-20 Radoslav Danilak Motherboard for cost-effective high performance graphics system with two or more graphics processing units
US20100007668A1 (en) * 2008-07-08 2010-01-14 Casparian Mark A Systems and methods for providing scalable parallel graphics rendering capability for information handling systems
JP2012503887A (ja) * 2008-09-29 2012-02-09 インテル コーポレイション マウントされたプロセッサの入出力アーキテクチャ
JP2012252490A (ja) * 2011-06-02 2012-12-20 Renesas Electronics Corp マルチプロセッサおよびそれを用いた画像処理システム
JP2017201517A (ja) * 2016-05-06 2017-11-09 廣達電腦股▲ふん▼有限公司 動的pcieスイッチ再配置システムおよびその方法
US20190339981A1 (en) * 2017-07-30 2019-11-07 NeuroBlade, Ltd. Memory-based distributed processor architecture
JP2019087183A (ja) * 2017-11-10 2019-06-06 富士通株式会社 情報処理装置、演算処理装置及び情報処理装置の制御方法
WO2019147708A1 (en) * 2018-01-24 2019-08-01 Alibaba Group Holding Limited A deep learning accelerator system and methods thereof
US20190294575A1 (en) * 2018-03-26 2019-09-26 Nvidia Corporation Techniques for efficiently synchronizing data transmissions on a network

Also Published As

Publication number Publication date
US20210174174A1 (en) 2021-06-10
EP3841530A4 (en) 2021-10-13
EP3841530B1 (en) 2023-11-08
KR20210061304A (ko) 2021-05-27
WO2021092890A1 (en) 2021-05-20
KR102525329B1 (ko) 2023-04-24
CN113424198B (zh) 2023-08-29
CN113424198A (zh) 2021-09-21
EP3841530A1 (en) 2021-06-30
US11615295B2 (en) 2023-03-28

Similar Documents

Publication Publication Date Title
KR102175044B1 (ko) 인공 신경망 역방향 트레이닝 실행용 장치와 방법
CN107315571B (zh) 一种用于执行全连接层神经网络正向运算的装置和方法
JP6816027B2 (ja) 多目的の並列処理アーキテクチャ
JP7074831B2 (ja) ネットワークオンチップによるデータ処理方法及び装置
US11010313B2 (en) Method, apparatus, and system for an architecture for machine learning acceleration
JP2022511581A (ja) フレキシブルケーブル接続に基づく分散型aiトレーニングトポロジー
KR102162749B1 (ko) 뉴럴 네트워크 프로세서
JP7451614B2 (ja) オンチップの計算ネットワーク
US20200117990A1 (en) High performance computing system for deep learning
CN113469355B (zh) 分布式***中的多模型训练管道
CN111656339B (zh) 存储器装置及其控制方法
CN111630487B (zh) 用于神经网络处理的共享存储器的集中式-分布式混合组织
CN111630505A (zh) 深度学习加速器***及其方法
JP7256811B2 (ja) アドバンストインタコネクト技術を利用してaiトレーニングを加速するための方法及びシステム
JP7011627B2 (ja) 人工知能チップ及び人工知能チップに用いられる命令実行方法
CN117687956B (zh) 多加速卡异构服务器及资源链路重构方法
US11409839B2 (en) Programmable and hierarchical control of execution of GEMM operation on accelerator
US9087036B1 (en) Methods and apparatuses for time annotated transaction level modeling
US10162913B2 (en) Simulation device and simulation method therefor
KR102373802B1 (ko) 신경망 연산 효율 증대를 위한 신경망 가속기 및 그의 동작 방법
Mao et al. LrGAN: A compact and energy efficient PIM-Based architecture for GAN training
WO2022088171A1 (en) Neural processing unit synchronization systems and methods
CN117768545A (zh) 一种考虑通信开销的分布式任务调度方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201126

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20211018

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20211018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220428

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220628