JP7256811B2 - アドバンストインタコネクト技術を利用してaiトレーニングを加速するための方法及びシステム - Google Patents

アドバンストインタコネクト技術を利用してaiトレーニングを加速するための方法及びシステム Download PDF

Info

Publication number
JP7256811B2
JP7256811B2 JP2020536955A JP2020536955A JP7256811B2 JP 7256811 B2 JP7256811 B2 JP 7256811B2 JP 2020536955 A JP2020536955 A JP 2020536955A JP 2020536955 A JP2020536955 A JP 2020536955A JP 7256811 B2 JP7256811 B2 JP 7256811B2
Authority
JP
Japan
Prior art keywords
gpu
compressed data
data block
gpus
data
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
JP2020536955A
Other languages
English (en)
Other versions
JP2022504995A (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.)
Baidu com Times Technology Beijing Co Ltd
Kunlunxin Technology Beijing Co Ltd
Baidu USA LLC
Original Assignee
Baidu com Times Technology Beijing Co Ltd
Kunlunxin Technology Beijing Co Ltd
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 com Times Technology Beijing Co Ltd, Kunlunxin Technology Beijing Co Ltd, Baidu USA LLC filed Critical Baidu com Times Technology Beijing Co Ltd
Publication of JP2022504995A publication Critical patent/JP2022504995A/ja
Application granted granted Critical
Publication of JP7256811B2 publication Critical patent/JP7256811B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F9/3802Instruction prefetching
    • G06F9/3812Instruction prefetching with instruction modification, e.g. store into instruction stream
    • 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
    • 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
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8015One dimensional arrays, e.g. rings, linear arrays, buses
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • G06F9/30178Runtime instruction translation, e.g. macros of compressed or encrypted instructions
    • 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
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • 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

Landscapes

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

Description

本開示の実施形態は、概して機械学習に関する。より具体的には、本開示の実施形態は、ニューラルネットワークトレーニングに関する。
複雑な問題を解決するために、ニューラルネットワークはますます複雑になる。複雑なニューラルネットワークのトレーニングの際に、複雑な深層学習アルゴリズム及びより多くの帯域幅が必要であるため、トレーニング時間、コスト、消費電力が増やすことになる。トレーニングを加速するために、高級なサーバ(例えば、より複雑なインタフェースを有する高速なサーバまたはサーバクラスタ)を利用して、計算および通信を改善し、高価なハードウェアのコストを削減する。しかし、従来の解決手段では、性能およびコストの点で依然として挑戦がある。
第1の態様によれば、本開示のいくつかの実施形態は、データ処理(DP)アクセラレータを用いて、人工知能(AI)モデルをトレーニングするための、コンピュータにより実施される方法であって、CPUにより配信された複数のデータブロックを含むトレーニングデータセットに基づいて前記AIモデルをトレーニングするための要求を、前記CPUから受信するステップと、論理リングに配置された複数の汎用処理ユニット(GPU)によって複数回のDP反復を実行して、前記AIモデルをトレーニングするステップと、を含み、前記複数回のDP反復は、各回のDP反復のに対し、第1のDPサイクルにおいて、前記複数のGPUは、それぞれ、前記複数のデータブロックの一つに対して、並行して第1の所定のDP操作を実行し、それぞれの第1のDP結果を生成し、第2のDPサイクルにおいて、前記複数のGPUは、それぞれ、プロセッサ間リンクを介して、それぞれの第1のDP結果を、更に処理するために論理リング内の下流のGPUに転送する、ことを含む、コンピュータにより実施される方法を提供する。
第2の態様によれば、本開示のいくつかの実施形態は、データ処理システムであって、少なくとも一つのCPUと、前記CPUに接続された複数の汎用処理ユニット(GPU)と、を含み、前記複数のGPUのそれぞれは、前記CPUから配信された人工知能AIデータ処理(DP)操作を実行するように構成され、前記操作は、CPUにより配信された複数のデータブロックを含むトレーニングデータセットに基づいて前記AIモデルをトレーニングするための要求を、前記CPUから受信するステップと、論理リングに配置された複数の汎用処理ユニット(GPU)によって複数回のDP反復を実行して、前記AIモデルをトレーニングするステップと、を含み、前記複数回のDP反復は、各回のDP反復のに対し、第1のDPサイクルにおいて、前記複数のGPUは、それぞれ、前記複数のデータブロックの一つに対して、並行して第1の所定のDP操作を実行し、それぞれの第1のDP結果を生成し、第2のDPサイクルにおいて、前記複数のGPUは、それぞれ、プロセッサ間リンクを介して、それぞれの第1のDP結果を、更に処理するために論理リング内の下流のGPUに転送する、ことを含む、データ処理システムを提供する。
第3の態様によれば、本開示のいくつかの実施形態は、指令が記憶された非一時的な機械可読媒体であって、前記指令は、プロセッサによって実行されると、前記プロセッサに人工知能AIトレーニングの操作を実行させ、前記操作は、CPUにより配信された複数のデータブロックを含むトレーニングデータセットに基づいて前記AIモデルをトレーニングするための要求を、前記CPUから受信するステップと、論理リングに配置された複数の汎用処理ユニット(GPU)によって複数回のDP反復を実行して、前記AIモデルをトレーニングするステップと、を含み、前記複数回のDP反復は、各回のDP反復のに対し、第1のDPサイクルにおいて、前記複数のGPUは、それぞれ、前記複数のデータブロックの一つに対して、並行して第1の所定のDP操作を実行し、それぞれの第1のDP結果を生成し、第2のDPサイクルにおいて、前記複数のGPUは、それぞれ、プロセッサ間リンクを介して、それぞれの第1のDP結果を、更に処理するために論理リング内の下流のGPUに転送する、ことを含む、非一時的な機械可読媒体を提供する。
第4の態様によれば、本開示のいくつかの実施形態は、コンピュータプログラムであって、前記コンピュータプログラムがプロセッサにより実行されると、第1の態様に記載の方法を実現させるコンピュータプログラムを提供する。
図面は、本発明の実施形態を例示的に示しているが、本発明の実施形態を限定するものではない。図面において、類似の要素に同じ符号が付けられている。
本願実施形態に係る、AIモデルのトレーニング用のシステムの一例を示す図である。 図2A~図2F本願実施形態に係るAIモデルのトレーニングにおけるデータ転送の例示的なプロセスを示す図である。 図2A~図2Fのプロセスの変形例を示すフローチャートである。 本願実施形態による、データ圧縮、データ操作、および相互接続バスの例示的アーキテクチャを示す図である。 一実施形態によるゼロサム圧縮技術を示す図である。 一実施形態に係る圧縮データに対する操作の例を示す図である。 一実施形態によるAIモデルトレーニングの例示的なプロセスを示す図である。
以下、本発明の実施の形態について図面を参照して説明する。以下の説明及び図面は本開示の説明であり、本開示を限定するものと解釈されるべきではない。本開示の様々な実施形態の完全な理解を提供するために、多くの特定の詳細が記載されている。しかしながら、いくつかの場合において、本開示の実施形態の簡潔な説明を提供するために、周知または従来の詳細は記載されていない。
本明細書において「一実施形態」または「実施形態」という言及は、実施形態を用いて説明された特定の特徴、構造、または特徴が、本開示の少なくとも1つの実施形態に含まれてもよいことを意味する。明細書の様々な箇所に現れる「一実施形態において」という語句は、必ずしも同じ実施形態を指すものではない。
様々な実施形態によれば、アドバンストインタコネクト技術を利用して人工知能(AI)トレーニングを加速するための方法およびシステムが提供される。本開示に記載の実施形態によれば、ソフトウェア及びハードウェアコンポーネントを利用することにより、相互接続通信帯域幅の要求、消費電力を大幅に低減させ、且つトレーニング時間を低減させ、これにより、精度損失がない状況でトレーニング性能を向上させる。分散システムにおいてシステムのデータ圧縮及び解凍を用いてAIモデルトレーニングを行うとともに、効率的な全減少(All-Reduce )アルゴリズムを併用する。
一実施形態によれば、AIモデルトレーニングのコンピュータにより実施される方法は、プロセッサクラスタで、分散規約(Scatter-Reduce)プロセスにおいて、複数回の反復を実行することを含み、それぞれのプロセッサは、グラフィックス処理ユニット(GPU)であってもよい。ニューラルネットワークモデルをトレーニングするために、プロセッサは、論理リングとして配置され、それぞれのプロセッサは、複数のデータブロックを有し、それぞれのデータブロックは、ニューラルネットワークモデル内のパラメータのセットまたはパラメータのセットを更新するための勾配のセットをそれぞれ表すようにしてもよい。
各回の反復において、プロセッサは、論理リングにおける前のプロセッサから、圧縮データブロックを受信し、受信した圧縮データブロックと、現在プロセッサで生成された圧縮データブロックとに対して、操作を実行して、データブロックを演算し、演算されたデータブロックを論理リング内の後続のプロセッサに送信する。複数回の反復が終了すると、複数のプロセッサ上の各データブロックは、すべて圧縮されて操作されたことになる。この方法は、複数のプロセッサのそれぞれにおいて、圧縮データブロックを識別する操作をさらに含み、ここで、圧縮データブロックは、複数のプロセッサの対応するデータブロックから算出されたものである。
一実施形態では、識別された圧縮データブロックは、論理リング内の他のプロセッサのそれぞれに配信され、そのプロセッサ上で解凍され、ニューラルネットワークモデル内のパラメータを更新するに使用される。プロセッサは、分散型AIモデルトレーニングシステムの異なるシステム内の中央処理装置(CPU)に添付可能である。一実施形態では、各プロセッサは、ゼロ値圧縮技法を使用してデータブロックを圧縮および解凍するためのハードウェアベースまたはソフトウェアベースの圧縮モジュールを含んでも良い。圧縮データブロックは、ビットマスク部分と圧縮データ部分とを有するデータ構造によって表すことができ、ビットマスクは、データブロック内の非ゼロ値の位置を示すビットを含む。
一実施形態によれば、中央処理装置(CPU)からAIトレーニングのための要求を受信すると、論理リングとして配置された汎用処理装置(GPU)の各々は、CPUから配信されたデータブロックに対してデータ処理(DP)操作をパイプライン方式で繰り返し実行するように構成される。各GPUは、CPUに対してDPアクセラレータとして操作する。毎回の反復について、第1のDPサイクルにおいて、複数のGPUは、それぞれ、データブロックのうちの1つに対して、並行して第1の所定のDP操作(例えば、データ圧縮)を実行し、それぞれのDP結果を生成する。第2のDPサイクルにおいて、複数のGPUは、それぞれ、対応するプロセッサ間リンクを介して、それぞれのDP結果を論理リング内の対応する下流のGPUに転送し、そこでさらに処理する。説明のために、GPUをDPアクセラレータの例として使用するが、他のタイプのプロセッサまたは処理ロジックをDPアクセラレータとして使用してもよい。
一実施形態では、第2のDPサイクル中に、各GPUは、対応するプロセッサ間リンクを介して、論理リング内の対応する上流GPUから処理結果をも受信し、受信された処理結果は、GPUで更なる処理を実行するに用いられる。一実施形態では、第3のDPサイクル中に、複数のGPUの各々は、自身によって処理された第1のデータブロック(例えば、処理結果)と、上流のGPUから受信した第2のデータブロック(例えば、上流のGPUによる処理結果)とに対して、第2の所定のDP操作(例えば、加算などの結合演算)を同時に実行する。一実施形態では、第4のDPサイクル中に、複数のGPUの各々は、データ解凍操作などのさらなるDP操作を実行する。
図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を介してデータを転送可能とされる。チップ間リンク112には、例えば、アクセラレータ用のキャッシュコヒーレントインタコネクト(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によって並行して行われるように、GPUのうちの1つ上でニューラルネットワークモデルをトレーニングするために使用される。各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組の勾配a 219、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は、図2A~図2Fの処理の変形例を示すフローチャートである。一実施形態では、図3に示される例示的なプロセスを使用して、ニューラルネットワークパラメータを更新するための勾配をニューラルネットワークモデルのトレーニング中に転送することができる。ここで、分散サーバ間で数十メガバイトのデータが転送される必要があるとともに、協働して操作する必要もある。これは、性能及び遅延を改善できる効率的なハードウェア及びソフトウェアを必要とする。
一実施形態では、例示的なプロセスは、All-Reduceアルゴリズム、を利用し、且つ、ソフトウェアとハードウェアとの協調設計により、性能および遅延を改善する。ソフトウェアとハードウェアとの協調設計とは、所望の機能を実現するために、ハードウェアとソフトウェアを同時に設計することをいう。この例示的なプロセスは、クラスタ内のGPUを接続するために使用されるアクセラレータのキャッシュコヒーレンスインタコネクト(CCIX)などのハードウェアコンポーネントと、圧縮データに基づくハードウェア計算を可能にするゼロ値圧縮モジュールおよび他の圧縮モジュールなどのソフトウェアモジュールを使用する。この例示的なプロセスは、効率的なAll-Reduceプロセスを実行するように設計された分散システムでシステムデータ圧縮を使用する。これにより、より速くトレーニングデータセットの異なるサブセットから生成された勾配を累積して各GPUに分配することができ、よって、AIモデルトレーニングをより速くすることができる。
図3において、左段は、図2A~図2Fに詳細に記載された典型的なAll-Reduceプロセス302を示し、右段は、分散システム上でシステム圧縮を使用した改善されたAll-Reduceプロセスを示す。図3は、一例として、論理リングを形成するように配置されている3つのGPUを使用している。
典型的なAll-Reduceプロセス302および改善されたAll -Reduceプロセスにおいて、CPU間で転送されるデータブロックは、データ構造(例えば、アレイ)に格納され、且つ、データブロックは、ニューラルネットワークモデルをトレーニングするために使用されるトレーニングデータセットのサブセットの異なるブロックから生成された勾配であってもよい。それぞれのGPUは、トレーニングされるニューラルネットワークモデルの完全なコピーを有することができる。勾配は、ニューラルネットワークモデルのパラメータを更新するためにGPU間で渡される。
一実施形態では、各GPU上のデータブロックは、Scatter-Reduceプロセスの第1回の反復または第1の処理サイクルにおいて圧縮モジュールにより圧縮されてもよく、当該圧縮モジュールは、ハードウェア上で実施されてもよく、ソフトウェアモジュールとして実施されてもよい。例えば、操作301、315、329では、GPU#0 203上のデータブロックa、GPU#1 205上のデータブロックb、GPU#2 207上のデータブロックcがそれぞれ圧縮される。
圧縮データブロックは、次の処理サイクルにおいて隣接のGPUに送信されてもよい。例えば、操作303において、GPU#0 203上の圧縮データブロックをGPU#1 205に送信してもよく、操作317において、GPU#1 205上の圧縮データブロックをGPU#2 207に送信してもよく、操作331において、GPU#2 207上の圧縮データブロックをGPU#0 203に送信してもよい。
一実施形態では、圧縮データブロックが隣接のGPUに送信されると同時に、各GPU上の異なるデータブロックが圧縮され、上述のように受信された圧縮データに付加されてもよい。当該例示的な実施形態では、合計操作を例に挙げているが、他の操作(例えば、乗算、演繹、及び数学的平均など)を用いてもよい。
例えば、操作305において、GPU#0 203上のデータブロックcは圧縮されて、GPU#2 207から受信された圧縮データブロックcに付加されてもよい。操作319において、GPU#1 205上のデータブロックaは圧縮されて、GPU#0 203から受信された圧縮データブロックaに付加されてもよい。操作333において、GPU#2 207上のデータブロックbが圧縮されて、GPU#1 205から受信した圧縮データブロックbに追加される。
上記のプロセスは、Scatter-Reduceプロセスの残りの反復ごとに繰り返すことができる。反復の回数は、GPUの数から1を引いた数であってもよい。このように、改善されたAll-ReduceプロセスにおけるScatter-Reduceプロセス305は、2回の反復を有することができる。残りの反復のそれぞれにおいて、各GPUは、元の圧縮データブロックをGPU上で送るのではなく、圧縮データブロックの合計を複数のGPUから次のGPUに送ることができる。
例えば、第2回の反復において、操作307において、GPU#0 203は、圧縮データブロックcと圧縮データブロックcとの合計をGPU#1 205に送信することができる。操作321において、GPU#1 205は、圧縮データブロックaと圧縮データブロックaとの合計をGPU#2 207に送信することができる。操作335において、GPU#2 207は、圧縮データブロックbと圧縮データブロックbとの合計をGPU#0 203に送信することができる。
一実施形態では、圧縮データブロックの合計が隣接するGPUに送信されると同時に、各GPUは、GPU上の残りのデータブロックを圧縮して、この前論理リング内の前のGPUから受信した圧縮データブロックの合計に圧縮データブロックに付加されてもよい。例えば、操作309において、GPU#0 202上のデータブロックbが圧縮され、圧縮データブロックbおよびbの合計に付加されてもよい。操作323において、GPU#1 205上のデータブロックcは、圧縮され、圧縮データブロックc0およびcの合計に追加されてもよい。操作337において、GPU#2 207上のデータブロックaは、圧縮されて、圧縮データブロックa0およびa1の合計に追加されてもよい。
したがって、Scatter-Reduceプロセスの終了時には、例示的なプロセスでは、各GPUは、アレイ内のすべてのGPUに亘る対応する位置からの圧縮データブロックの合計を有する。
Allgatherプロセス中に、各GPUは、圧縮データブロックの合計をアレイ内の対応する位置から他のGPUに配信してもよい。その結果、Allgatherプロセスの終了時に、各GPUは、全ての圧縮データブロックの合計のコピーを有することになる。その後、操作313、327、および341に示されるように、各GPUは、圧縮された合計を解凍してもよい。各GPU上の解凍された合計を使用して、GPU上のニューラルネットワークモデルのコピーのパラメータを更新することができる。
図4は、一実施形態による、データ圧縮、データ操作、および相互接続バスの例示的アーキテクチャを示す。
図4のグラフは、生(RAW)データブロック405および407を圧縮し、圧縮しされたデータブロックを相互接続バス416および418を介して転送し、圧縮データに対して操作413および419を実行し、圧縮データを生(RAW)データへ解凍する、データフローを示す。
図3に示すように、各GPU上で、圧縮モジュールと解凍モジュールの対が一対使用されてもよい。例えば、GPU A401上では、圧縮モジュール412および解凍モジュール409が使用され、GPU B403上では、圧縮モジュール417および解凍モジュール415が使用されてもよい。
圧縮モジュール412および417には、任意の圧縮アルゴリズムを使用することができる。圧縮アルゴリズムの例として、ゼロ値圧縮アルゴリズム/技法があり、以下の開示において詳細に説明される。ゼロ値比が50%である場合、ゼロ値圧縮アルゴリズムを採用することで、50%に近いデータ転送の帯域幅を節約することができる。相互接続バスと圧縮データに対する様々な操作とが組み合わせられる場合、帯域幅のメリットは50%を超えることができる。
図5は、一実施形態によるゼロ圧縮技術を示す。図5において、マトリクス513は、ニューラルネットワークモデルをトレーニングするための元の4×4データアレイである。データ構造510は、ゼロ値圧縮技術を使用したマトリクス513の圧縮形式を示している。データ構造510は、例えば、タイプフィールド501、長さフィールド503、ビットマスクフィールド505、および圧縮データフィールド507などの複数のフィールドを含む。マトリクス513およびデータ構造510は、圧縮511および解凍509を使用して相互に変換することができる。
一実施形態では、タイプフィールド501は、マトリクス513内の値のデータタイプを表す。データタイプの例として、浮動小数点数(FP)32、FP16、および整数(INT)8が挙げられる。長さは、バイトで、ビットマスクフィールド505と圧縮データフィールド507との合計サイズを表し、又は、一定のサイズのビットマスクバイトを有する圧縮データフィールド507のサイズを表す。ビットマスクフィールド505は、行列513内の特定の位置における非ゼロ値を表すために「1」に設定され、ゼロ値を表すために「0」に設定される。圧縮データフィールド507は、正しいアラインメント/オフセットを有する非ゼロ値データのみを含む。ビットマスクフィールドは、非ゼロで値を4×4データアレイ513内の元の位置に書き戻すために、解凍モジュール(例えば、図4の解凍モジュール409または415)によって使用されてもよい。
図6は、本実施形態に係る圧縮データに対する操作の例を示す図である。図6に示すように、合計操作を例として、2つの圧縮データブロックに対してどのように操作するかを説明する。
一実施形態では、圧縮データ617は、マトリクスA613の圧縮形式でマトリクスA613を表すデータ構造であり、圧縮データ619は、マトリクスB615の圧縮形式でマトリクスB615を表すデータ構造である。これらの2つの構造は、図5に示される圧縮技術により生成され、解凍モジュール(例えば、解凍モジュール409または415)により、それぞれマトリクスA613およびマトリクスB615に解凍される。
一実施形態では、2つの圧縮されたマトリクス613および615をその圧縮形式で合計するために、ハードウェア圧縮モジュール(例えば、図4の圧縮モジュール411または417)は、まず、2つの圧縮データ構造617および619をパイプライン化して、一方のデータ構造内のビットマスクフィールド内のビットを他方のデータ構造のビットマスクフィールド内のビットと比較し、比較した結果621を出力することができる。
GPU間でデータを圧縮形式で転送することによって、データ転送に必要な帯域幅を低減することができる。さらに、圧縮データブロックは、その非圧縮形式より少ないメモリを占有し、操作中にメモリから読み出され、メモリに書き込まれるビットが少ないので、圧縮データブロックの操作に必要なメモリを低減することができる。
例えば、合計操作は、2回の読み出しおよび1回の書き込みを必要とすることがある。メモリから読み書きされるデータが圧縮された形式であるため、合計操作に必要なメモリを低減することができる。
図7は、一実施形態によるAIモデルトレーニングの例示的なプロセス700を示す。プロセス700は、ソフトウェア、ハードウェア、またはそれらの組み合わせを含む処理ロジックによって実行することができる。
再び図7を参照すると、操作701において、論理リングとして配置された複数のプロセッサにおいて、複数回の反復を実行して、ニューラルネットワークモデルをトレーニングし、それぞれのプロセッサは、複数のデータブロックを含む。操作702において、複数回の反復のそれぞれに対し、複数のプロセッサのうちの1つが、論理リング内の前のプロセッサから、圧縮データブロックを受信し、受信した圧縮データブロックと当該プロセッサ上で生成された圧縮データブロックとに対して操作を実行して、データブロックを算出し、算出したデータブロックを論理リング内の後続のプロセッサに送信する。操作703において、複数のプロセッサの各々において、複数のプロセッサからの対応するデータブロックに基づいて算出された圧縮データブロックを識別する。識別されたデータブロックは、他のプロセッサのそれぞれに配信され、そこに解凍されて、ニューラルネットワークモデルのパラメータの更新などのAIモデルのトレーニングに用いられる。
なお、上述した構成要素の一部または全部は、ソフトウェア、ハードウェア、またはそれらの組み合わせによって実現されてもよい。例えば、そのような構成要素は、永久記憶装置にインストールされて記憶されたソフトウェアとして実装することができ、このソフトウェアは、プロセッサ(図示せず)によってメモリにロードされて実行され、本明細書に記載のプロセスまたは操作全体を実施することができる。あるいは、そのようなコンポーネントは、集積回路(例えば、特定用途向けICまたはASIC)、デジタル信号プロセッサ(DSP)、またはフィールドプログラマブルゲートアレイ(FPGA)などの特定用途向けハードウェアにプログラムまたは組み込まれた実行可能コードとして実装することができ、実行可能コードは、対応するドライバおよび/またはオペレーティングシステムを介してアプリケーションからアクセスすることができる。さらに、そのようなコンポーネントは、1つまたは複数の特定の命令を介してソフトウェアコンポーネントによってアクセス可能な命令セットの一部として、プロセッサまたはプロセッサコア内の特定のハードウェアロジックとして実装することができる。
上述の詳細な説明の一部は、コンピュータメモリ内のデータビットの操作のアルゴリズムおよびシンボル表現に基づいて提示されている。これらのアルゴリズム記述および表現は、データ処理分野の当業者が、当業者に最も効率的にその作業内容を伝えるために使用する方法である。ここで、アルゴリズムは、一般に、所望の結果をもたらす自己適合性操作シーケンスであると考えられる。これらの操作は、物理量を物理的に操作する必要がある操作である。
これらの用語および類似の用語はすべて、適切な物理量と関連付けられ、これらの量に適用される便利なタグのみである。上述の議論から明らかなように、他に明示的に指摘されない限り、以下の特許請求の範囲に記載されているような用語を用いた説明は、コンピュータシステムのレジスタおよびメモリ内の物理的(電子的)量として表されているデータを、コンピュータシステムのメモリまたはレジスタまたは他のそのような情報記憶、送信または表示装置内の物理量として同様に表されている他のデータに変換する、コンピュータシステムまたは同様の電子計算装置の操作およびプロセスを、本明細書全体を通して意味することを理解されたい。
本開示の実施形態は、本明細書の操作を実行するための装置にも関する。このようなコンピュータプログラムは、非一時的なコンピュータ可読媒体に格納される。機械可読媒体は、機械(例えば、コンピュータ)によって読み取り可能な形態で情報を記憶するための任意の機構を含む。例えば、機械可読(例えば、コンピュータ可読)媒体は、機械可読記憶媒体、例えば、読み出し専用メモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリ装置を含む。
前の図に描かれたプロセスまたは方法は、ハードウェア(例えば、回路、専用ロジックなど)、ソフトウェア(例えば、非一時的なコンピュータ可読媒体上に含まれる)、または両方の組み合わせを含む処理ロジックによって実行されてもよい。プロセスまたは方法は、いくつかのシーケンス操作に従って上述したが、説明したいくつかの操作は、異なるシーケンスで実行されてもよいことを理解されたい。さらに、いくつかの操作は、連続的ではなく並列に実行されてもよい。
本開示の実施形態は、特定のプログラミング言語を参照して記載されていない。本明細書に記載の本開示の実施形態の教示は、様々なプログラミング言語を使用して実施することができることを理解されたい。
以上、特定の実施形態を参照しながら、本発明について詳解してきた。以下の特許請求の範囲に記載された本開示のより広い趣旨および範囲から逸脱することなく、様々な変更を加えることができることは明らかである。したがって、本明細書および図面は、限定ではなく例示的なものと解釈されるべきである。

Claims (6)

  1. データ処理(DP)アクセラレータを用いて、人工知能(AI)モデルをトレーニングするための、コンピュータにより実施される方法であって、
    CPUにより配信された複数のデータブロックを含むトレーニングデータセットに基づいて前記AIモデルをトレーニングするための要求を、前記CPUから受信するステップと、
    論理リングに配置された複数の汎用処理ユニット(GPU)によって複数回のDP反復を実行して、前記AIモデルをトレーニングするステップと、を含み、
    前記複数回のDP反復は、
    各回のDP反復に対し、
    第1のDPサイクルにおいて、前記複数のGPUは、それぞれ、前記複数のデータブロックの一つに対して、データ圧縮操作を並行して実行し、それぞれの第1の圧縮データブロックを生成し、
    第2のDPサイクルにおいて、前記複数のGPUは、それぞれ、プロセッサ間リンクを介して、それぞれの第1の圧縮データブロックを、更に処理するために論理リング内の下流のGPUに転送し、そして、それぞれ、対応するプロセッサ間リンク或いはCCIX接続を介して、前記論理リング内の上流GPUから、当該上流GPUがデータ圧縮操作を実行して生成した第2の圧縮データブロックを、さらに処理するために受信し、
    第3のDPサイクルにおいて、前記複数のGPUは、それぞれ、現在のGPUによって処理される第1の圧縮データブロックと、対応する上流のGPUによって処理され、当該GPUから受信された第2の圧縮データブロックとに対して、合計操作を実行して、第1のDP結果を生成
    第4のDPサイクルにおいて、前記複数のGPUは、それぞれ、前記第1のDP結果に対して、データ解凍操作を実行し、解凍して得られたデータブロックは、次回のDP反復に用いられる、ことを含み、
    記合計操作は、前記第1の圧縮データブロックと第2の圧縮データブロックとをパイプライン化して、一方の圧縮データブロックのビットマスクフィールド内のビットを他方の圧縮データブロックのビットマスクフィールド内のビットと比較し、比較した結果を出力する操作である、コンピュータにより実施される方法。
  2. 前記データブロックの少なくとも一部は、前記AIモデルのトレーニングの一部として生成されたパラメータまたは勾配を表す、請求項1に記載の方法。
  3. 前記データ圧縮操作は、1つまたは複数のデータブロックを、ビットマスク部分および圧縮データ部分を有するデータ構造に圧縮するゼロ値圧縮アルゴリズムを使用して実行され、前記ビットマスク部分は、前記データブロックにおける非ゼロ値の位置を示すビットを含む、
    請求項1に記載の方法。
  4. データ処理システムであって、
    少なくとも一つのCPUと、
    前記CPUに接続された複数の汎用処理ユニット(GPU)と、を含み、
    前記複数のGPUのそれぞれは、前記CPUから配信された人工知能AIデータ処理(DP)操作を実行するように構成され、
    前記操作は、
    CPUにより配信された複数のデータブロックを含むトレーニングデータセットに基づいてAIモデルをトレーニングするための要求を、前記CPUから受信するステップと、
    論理リングに配置された複数の汎用処理ユニット(GPU)によって複数回のDP反復を実行して、前記AIモデルをトレーニングするステップと、を含み、
    前記複数回のDP反復は、
    各回のDP反復に対し、
    第1のDPサイクルにおいて、前記複数のGPUは、それぞれ、前記複数のデータブロックの一つに対して、データ圧縮操作を並行して実行し、それぞれの第1の圧縮データブロックを生成し、
    第2のDPサイクルにおいて、前記複数のGPUは、それぞれ、プロセッサ間リンクを介して、それぞれの第1の圧縮データブロックを、更に処理するために論理リング内の下流のGPUに転送し、そして、それぞれ、対応するプロセッサ間リンク或いはCCIX接続を介して、前記論理リング内の上流GPUから、当該上流GPUがデータ圧縮操作を実行して生成した第2の圧縮データブロックを、さらに処理するために受信し、
    第3のDPサイクルにおいて、前記複数のGPUは、それぞれ、現在のGPUによって処理される第1の圧縮データブロックと、対応する上流のGPUによって処理され、当該GPUから受信された第2の圧縮データブロックとに対して、合計操作を実行して、第1のDP結果を生成
    第4のDPサイクルにおいて、前記複数のGPUは、それぞれ、前記第1のDP結果に対して、データ解凍操作を実行し、解凍して得られたデータブロックは、次回のDP反復に用いられる、ことを含み、
    記合計操作は、前記第1の圧縮データブロックと第2の圧縮データブロックとをパイプライン化して、一方の圧縮データブロックのビットマスクフィールド内のビットを他方の圧縮データブロックのビットマスクフィールド内のビットと比較し、比較した結果を出力する操作である、データ処理システム。
  5. 指令が記憶された非一時的な機械可読媒体であって、
    前記指令は、プロセッサによって実行されると、前記プロセッサに人工知能AIトレーニングの操作を実行させ、前記操作は、
    CPUにより配信された複数のデータブロックを含むトレーニングデータセットに基づいてAIモデルをトレーニングするための要求を、前記CPUから受信するステップと、
    論理リングに配置された複数の汎用処理ユニット(GPU)によって複数回のDP反復を実行して、前記AIモデルをトレーニングするステップと、を含み、
    前記複数回のDP反復は、
    各回のDP反復に対し、
    第1のDPサイクルにおいて、前記複数のGPUは、それぞれ、前記複数のデータブロックの一つに対して、データ圧縮操作を並行して実行し、それぞれの第1の圧縮データブロックを生成し、
    第2のDPサイクルにおいて、前記複数のGPUは、それぞれ、プロセッサ間リンクを介して、それぞれの第1の圧縮データブロックを、更に処理するために論理リング内の下流のGPUに転送し、そして、それぞれ、対応するプロセッサ間リンク或いはCCIX接続を介して、前記論理リング内の上流GPUから、当該上流GPUがデータ圧縮操作を実行して生成した第2の圧縮データブロックを、さらに処理するために受信し、
    第3のDPサイクルにおいて、前記複数のGPUは、それぞれ、現在のGPUによって処理される第1の圧縮データブロックと、対応する上流のGPUによって処理され、当該GPUから受信された第2の圧縮データブロックとに対して、合計操作を実行して、第1のDP結果を生成
    第4のDPサイクルにおいて、前記複数のGPUは、それぞれ、前記第1のDP結果に対して、データ解凍操作を実行し、解凍して得られたデータブロックは、次回のDP反復に用いられる、ことを含み、
    記合計操作は、前記第1の圧縮データブロックと第2の圧縮データブロックとをパイプライン化して、一方の圧縮データブロックのビットマスクフィールド内のビットを他方の圧縮データブロックのビットマスクフィールド内のビットと比較し、比較した結果を出力する操作である、非一時的な機械可読媒体。
  6. コンピュータプログラムであって、
    前記コンピュータプログラムがプロセッサにより実行されると、前記請求項1乃至の何れか一項に記載の方法を実現させるコンピュータプログラム。
JP2020536955A 2019-10-12 2019-10-12 アドバンストインタコネクト技術を利用してaiトレーニングを加速するための方法及びシステム Active JP7256811B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/110814 WO2021068243A1 (en) 2019-10-12 2019-10-12 Method and system for accelerating ai training with advanced interconnect technologies

Publications (2)

Publication Number Publication Date
JP2022504995A JP2022504995A (ja) 2022-01-14
JP7256811B2 true JP7256811B2 (ja) 2023-04-12

Family

ID=75437678

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020536955A Active JP7256811B2 (ja) 2019-10-12 2019-10-12 アドバンストインタコネクト技術を利用してaiトレーニングを加速するための方法及びシステム

Country Status (6)

Country Link
US (1) US11544067B2 (ja)
EP (1) EP3830764A4 (ja)
JP (1) JP7256811B2 (ja)
KR (1) KR102472282B1 (ja)
CN (1) CN113272854A (ja)
WO (1) WO2021068243A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240185587A1 (en) * 2021-08-16 2024-06-06 Baidu.Com Times Technology (Beijing) Co., Ltd. Hardware adaptive multi-model scheduling
CN114153590A (zh) * 2021-10-19 2022-03-08 广州文远知行科技有限公司 一种大规模仿真与模型推导方法、装置、设备及存储介质
CN114764942B (zh) * 2022-05-20 2022-12-09 清华大学深圳国际研究生院 一种难正负样本在线挖掘方法和人脸识别方法
CN115250253B (zh) * 2022-06-22 2024-02-27 西南交通大学 带宽感知的归约处理方法以及ai模型的训练方法
EP4361891A1 (en) * 2022-10-31 2024-05-01 Imagination Technologies Limited Implementing a scatter function on a neural network accelerator
CN118568066A (zh) * 2023-02-28 2024-08-30 中兴通讯股份有限公司 时序数据压缩方法、采集方法、设备及可读存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010521728A (ja) 2007-03-15 2010-06-24 リニア アルジェブラ テクノロジーズ リミテッド データ圧縮のための回路及びこれを用いるプロセッサ
JP2011511986A (ja) 2008-02-11 2011-04-14 リニア アルジェブラ テクノロジーズ リミテッド プロセッサ
US20160321776A1 (en) 2014-06-20 2016-11-03 Tencent Technology (Shenzhen) Company Limited Model Parallel Processing Method and Apparatus Based on Multiple Graphic Processing Units
US20180239992A1 (en) 2017-02-22 2018-08-23 Arm Limited Processing artificial neural network weights
US20180293691A1 (en) 2017-04-09 2018-10-11 Intel Corporation Machine learning sparse computation mechanism
US20190197420A1 (en) 2017-12-22 2019-06-27 Intel Corporation Compression for deep learning in case of sparse values mapped to non-zero value
CN209044577U (zh) 2018-12-27 2019-06-28 北京盛博协同科技有限责任公司 综合显示控制模块
US20190312772A1 (en) 2018-04-04 2019-10-10 EMC IP Holding Company LLC Topology-aware provisioning of hardware accelerator resources in a distributed environment

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0784966A (ja) 1993-08-06 1995-03-31 Toshiba Corp データ処理装置
CN104035751B (zh) * 2014-06-20 2016-10-12 深圳市腾讯计算机系统有限公司 基于多图形处理器的数据并行处理方法及装置
CN104899641B (zh) * 2015-05-25 2018-07-13 杭州朗和科技有限公司 深度神经网络学习方法、处理器和深度神经网络学习系统
US10763893B2 (en) * 2016-07-20 2020-09-01 Georges Harik Method for data compression
CN108229687B (zh) 2016-12-14 2021-08-24 腾讯科技(深圳)有限公司 数据处理方法、数据处理装置及电子设备
KR102457463B1 (ko) * 2017-01-16 2022-10-21 한국전자통신연구원 희소 파라미터를 사용하는 압축 신경망 시스템 및 그것의 설계 방법
CN110582748A (zh) * 2017-04-07 2019-12-17 英特尔公司 用于提升用于深度学习的深度神经网络的方法和系统
US10403003B2 (en) 2017-04-24 2019-09-03 Intel Corporation Compression mechanism
US10922606B2 (en) 2017-06-13 2021-02-16 International Business Machines Corporation Multi-directional reduction in large scale deep-learning
US10726335B2 (en) * 2017-10-26 2020-07-28 Uber Technologies, Inc. Generating compressed representation neural networks having high degree of accuracy
US11270201B2 (en) * 2017-12-29 2022-03-08 Intel Corporation Communication optimizations for distributed machine learning
US10474495B2 (en) * 2018-01-08 2019-11-12 Accenture Global Solutions Limited Utilizing an artificial intelligence model determined for a target domain based on a dataset associated with a source domain
CN110134636B (zh) * 2018-02-09 2023-04-18 中兴通讯股份有限公司 模型训练方法、服务器和计算机可读存储介质
CN110197275B (zh) * 2018-02-27 2020-08-04 上海寒武纪信息科技有限公司 集成电路芯片装置及相关产品
CN109214512B (zh) * 2018-08-01 2021-01-22 中兴飞流信息科技有限公司 一种深度学习的参数交换方法、装置、服务器及存储介质
US11295236B2 (en) * 2018-12-10 2022-04-05 International Business Machines Corporation Machine learning in heterogeneous processing systems
US11501160B2 (en) * 2019-03-28 2022-11-15 International Business Machines Corporation Cloud computing data compression for allreduce in deep learning

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010521728A (ja) 2007-03-15 2010-06-24 リニア アルジェブラ テクノロジーズ リミテッド データ圧縮のための回路及びこれを用いるプロセッサ
JP2011511986A (ja) 2008-02-11 2011-04-14 リニア アルジェブラ テクノロジーズ リミテッド プロセッサ
US20160321776A1 (en) 2014-06-20 2016-11-03 Tencent Technology (Shenzhen) Company Limited Model Parallel Processing Method and Apparatus Based on Multiple Graphic Processing Units
US20180239992A1 (en) 2017-02-22 2018-08-23 Arm Limited Processing artificial neural network weights
US20180293691A1 (en) 2017-04-09 2018-10-11 Intel Corporation Machine learning sparse computation mechanism
US20190197420A1 (en) 2017-12-22 2019-06-27 Intel Corporation Compression for deep learning in case of sparse values mapped to non-zero value
US20190312772A1 (en) 2018-04-04 2019-10-10 EMC IP Holding Company LLC Topology-aware provisioning of hardware accelerator resources in a distributed environment
CN209044577U (zh) 2018-12-27 2019-06-28 北京盛博协同科技有限责任公司 综合显示控制模块

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Andrew Gibiansky,Bringing HPC Techniques to Deep Learning,2017年02月21日,[検索日 2022年01月14日],インターネット<URL:https://andrew.gibiansky.com/blog/machine-learning/baidu-allreduce/>
小島郁太郎,サーバーのアクセラレーションをスムーズに、CCIXBS1.0がリリース,日経xTECH,2018年06月25日, [検索日 2022年01月14日] インターネット<URL:https://xtech.nikkei.com/atcl/nxt/column/18/00001/00636/>

Also Published As

Publication number Publication date
JP2022504995A (ja) 2022-01-14
WO2021068243A1 (en) 2021-04-15
EP3830764A1 (en) 2021-06-09
US11544067B2 (en) 2023-01-03
CN113272854A (zh) 2021-08-17
US20210318878A1 (en) 2021-10-14
EP3830764A4 (en) 2021-06-09
KR102472282B1 (ko) 2022-11-29
KR20210044180A (ko) 2021-04-22

Similar Documents

Publication Publication Date Title
JP7256811B2 (ja) アドバンストインタコネクト技術を利用してaiトレーニングを加速するための方法及びシステム
US11893424B2 (en) Training a neural network using a non-homogenous set of reconfigurable processors
CN106991477B (zh) 一种人工神经网络压缩编码装置和方法
US11308398B2 (en) Computation method
US20190087708A1 (en) Neural network processor with direct memory access and hardware acceleration circuits
CN109358900B (zh) 支持离散数据表示的人工神经网络正向运算装置和方法
CN111860811B (zh) 一种用于执行人工神经网络全连接层正向运算的装置和方法
US11847395B2 (en) Executing a neural network graph using a non-homogenous set of reconfigurable processors
WO2017185394A1 (zh) 一种用于执行全连接层神经网络反向训练的装置和方法
US11551028B2 (en) Structured weight based sparsity in an artificial neural network
CN111310904A (zh) 一种用于执行卷积神经网络训练的装置和方法
US20210201110A1 (en) Methods and systems for performing inference with a neural network
US20200081744A1 (en) Hardware environment and method of performing matrix multiplication in artificial intelligence applications
CN114402293A (zh) 具有持续且异步更新的流水线式神经网络处理
CN113330466A (zh) 涉及混合量子机器、量子信息技术的方面和/或其他特征的系统和方法
US20190138922A1 (en) Apparatus and methods for forward propagation in neural networks supporting discrete data
CN114450699A (zh) 由处理单元实现的方法、可读存储介质和处理单元
US12067479B2 (en) Heterogeneous deep learning accelerator
US20220076095A1 (en) Multi-level sparse neural networks with dynamic rerouting
CN111886593B (zh) 数据处理系统和数据处理方法
CN115461757A (zh) 具有单独存储器存取连接的深度学习加速器和随机存取存储器
CN110825514A (zh) 人工智能芯片以及用于人工智能芯片的指令执行方法
JP2022511581A (ja) フレキシブルケーブル接続に基づく分散型aiトレーニングトポロジー
WO2017177446A1 (zh) 支持离散数据表示的人工神经网络反向训练装置和方法
CN118014022A (zh) 面向深度学习的fpga通用异构加速方法及设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201130

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201130

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20211018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220125

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220809

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221108

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: 20230314

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230331

R150 Certificate of patent or registration of utility model

Ref document number: 7256811

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150