[go: up one dir, main page]

JP7256811B2 - Method and system for accelerating AI training using advanced interconnect technology - Google Patents

Method and system for accelerating AI training using advanced interconnect technology 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
Japanese (ja)
Other versions
JP2022504995A (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 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/en
Application granted granted Critical
Publication of JP7256811B2 publication Critical patent/JP7256811B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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/0495Quantised networks; Sparse networks; Compressed networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/09Supervised learning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/098Distributed learning, e.g. federated learning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Computer Hardware Design (AREA)
  • Advance Control (AREA)
  • Complex Calculations (AREA)
  • Multi Processors (AREA)

Description

本開示の実施形態は、概して機械学習に関する。より具体的には、本開示の実施形態は、ニューラルネットワークトレーニングに関する。 Embodiments of the present disclosure relate generally to machine learning. More specifically, embodiments of the present disclosure relate to neural network training.

複雑な問題を解決するために、ニューラルネットワークはますます複雑になる。複雑なニューラルネットワークのトレーニングの際に、複雑な深層学習アルゴリズム及びより多くの帯域幅が必要であるため、トレーニング時間、コスト、消費電力が増やすことになる。トレーニングを加速するために、高級なサーバ(例えば、より複雑なインタフェースを有する高速なサーバまたはサーバクラスタ)を利用して、計算および通信を改善し、高価なハードウェアのコストを削減する。しかし、従来の解決手段では、性能およびコストの点で依然として挑戦がある。 Neural networks are becoming increasingly complex to solve complex problems. Complex deep learning algorithms and more bandwidth are required when training complex neural networks, resulting in increased training time, cost and power consumption. To accelerate training, a high-end server (eg, a fast server or server cluster with a more complex interface) is utilized to improve computation and communication and reduce the cost of expensive hardware. However, conventional solutions remain challenging in terms of performance and cost.

第1の態様によれば、本開示のいくつかの実施形態は、データ処理(DP)アクセラレータを用いて、人工知能(AI)モデルをトレーニングするための、コンピュータにより実施される方法であって、CPUにより配信された複数のデータブロックを含むトレーニングデータセットに基づいて前記AIモデルをトレーニングするための要求を、前記CPUから受信するステップと、論理リングに配置された複数の汎用処理ユニット(GPU)によって複数回のDP反復を実行して、前記AIモデルをトレーニングするステップと、を含み、前記複数回のDP反復は、各回のDP反復のに対し、第1のDPサイクルにおいて、前記複数のGPUは、それぞれ、前記複数のデータブロックの一つに対して、並行して第1の所定のDP操作を実行し、それぞれの第1のDP結果を生成し、第2のDPサイクルにおいて、前記複数のGPUは、それぞれ、プロセッサ間リンクを介して、それぞれの第1のDP結果を、更に処理するために論理リング内の下流のGPUに転送する、ことを含む、コンピュータにより実施される方法を提供する。 According to a first aspect, some embodiments of the present disclosure are a computer-implemented method for training an artificial intelligence (AI) model using a data processing (DP) accelerator, comprising: receiving a request from the CPU to train the AI model based on a training data set comprising a plurality of data blocks delivered by the CPU; and a plurality of general purpose processing units (GPUs) arranged in a logical ring. and training the AI model by performing multiple DP iterations by: each perform a first predetermined DP operation on one of said plurality of data blocks in parallel to produce a respective first DP result; and in a second DP cycle, said plurality of each of the GPUs of is forwarding, via an inter-processor link, each first DP result to a GPU downstream in the logical ring for further processing. do.

第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に転送する、ことを含む、データ処理システムを提供する。 According to a second aspect, some embodiments of the present disclosure are a data processing system comprising at least one CPU and a plurality of general purpose processing units (GPUs) coupled to said CPU, Each of the plurality of GPUs is configured to perform an artificial intelligence AI data processing (DP) operation delivered by the CPU, the operation being performed on a training data set comprising a plurality of blocks of data delivered by the CPU. and performing multiple DP iterations by a plurality of general purpose processing units (GPUs) arranged in a logical ring to train the AI model based on and training, wherein the plurality of DP iterations, for each DP iteration, in a first DP cycle, the plurality of GPUs each train for one of the plurality of data blocks. , executing a first predetermined DP operation in parallel to generate a respective first DP result, and in a second DP cycle, the plurality of GPUs each, via an inter-processor link, each A data processing system is provided, including forwarding a first DP result to a GPU downstream in a logical ring for further processing.

第3の態様によれば、本開示のいくつかの実施形態は、指令が記憶された非一時的な機械可読媒体であって、前記指令は、プロセッサによって実行されると、前記プロセッサに人工知能AIトレーニングの操作を実行させ、前記操作は、CPUにより配信された複数のデータブロックを含むトレーニングデータセットに基づいて前記AIモデルをトレーニングするための要求を、前記CPUから受信するステップと、論理リングに配置された複数の汎用処理ユニット(GPU)によって複数回のDP反復を実行して、前記AIモデルをトレーニングするステップと、を含み、前記複数回のDP反復は、各回のDP反復のに対し、第1のDPサイクルにおいて、前記複数のGPUは、それぞれ、前記複数のデータブロックの一つに対して、並行して第1の所定のDP操作を実行し、それぞれの第1のDP結果を生成し、第2のDPサイクルにおいて、前記複数のGPUは、それぞれ、プロセッサ間リンクを介して、それぞれの第1のDP結果を、更に処理するために論理リング内の下流のGPUに転送する、ことを含む、非一時的な機械可読媒体を提供する。 According to a third aspect, some embodiments of the present disclosure are a non-transitory machine-readable medium having instructions stored thereon, said instructions, when executed by a processor, giving said processor artificial intelligence. causing an AI training operation to be performed, said operation receiving a request from said CPU to train said AI model based on a training data set comprising a plurality of data blocks delivered by said CPU; training the AI model by executing multiple DP iterations by multiple general purpose processing units (GPUs) located in a , in a first DP cycle, each of said plurality of GPUs performs a first predetermined DP operation in parallel on one of said plurality of data blocks, and outputs a respective first DP result to generating, and in a second DP cycle, each of the plurality of GPUs forwards, via an inter-processor link, a respective first DP result to a GPU downstream in the logical ring for further processing; To provide a non-transitory machine-readable medium comprising:

第4の態様によれば、本開示のいくつかの実施形態は、コンピュータプログラムであって、前記コンピュータプログラムがプロセッサにより実行されると、第1の態様に記載の方法を実現させるコンピュータプログラムを提供する。 According to a fourth aspect, some embodiments of the present disclosure provide a computer program for implementing the method according to the first aspect when said computer program is executed by a processor. do.

図面は、本発明の実施形態を例示的に示しているが、本発明の実施形態を限定するものではない。図面において、類似の要素に同じ符号が付けられている。
本願実施形態に係る、AIモデルのトレーニング用のシステムの一例を示す図である。 図2A~図2F本願実施形態に係るAIモデルのトレーニングにおけるデータ転送の例示的なプロセスを示す図である。 図2A~図2Fのプロセスの変形例を示すフローチャートである。 本願実施形態による、データ圧縮、データ操作、および相互接続バスの例示的アーキテクチャを示す図である。 一実施形態によるゼロサム圧縮技術を示す図である。 一実施形態に係る圧縮データに対する操作の例を示す図である。 一実施形態によるAIモデルトレーニングの例示的なプロセスを示す図である。
The drawings illustrate, by way of example, embodiments of the invention and are not intended to limit embodiments of the invention. In the drawings, similar elements are numbered the same.
1 illustrates an example system for training an AI model, according to embodiments herein; FIG. 2A-2F illustrate an exemplary process of data transfer in training an AI model in accordance with embodiments herein. FIG. 2F is a flow chart showing a variation of the process of FIGS. 2A-2F; FIG. FIG. 3 illustrates an exemplary architecture for data compression, data manipulation, and interconnection buses, according to embodiments herein; FIG. 4 illustrates a zero-sum compression technique according to one embodiment; FIG. 4 is a diagram illustrating an example of operations on compressed data according to one embodiment; FIG. 4 illustrates an exemplary process of AI model training according to one embodiment;

以下、本発明の実施の形態について図面を参照して説明する。以下の説明及び図面は本開示の説明であり、本開示を限定するものと解釈されるべきではない。本開示の様々な実施形態の完全な理解を提供するために、多くの特定の詳細が記載されている。しかしながら、いくつかの場合において、本開示の実施形態の簡潔な説明を提供するために、周知または従来の詳細は記載されていない。 BEST MODE FOR CARRYING OUT THE INVENTION Hereinafter, embodiments of the present invention will be described with reference to the drawings. The following description and drawings are illustrative of the disclosure and should not be construed as limiting the disclosure. Many specific details are described in order to provide a thorough understanding of various embodiments of the disclosure. However, in some cases well known or conventional details have not been described in order to provide a concise description of the embodiments of the disclosure.

本明細書において「一実施形態」または「実施形態」という言及は、実施形態を用いて説明された特定の特徴、構造、または特徴が、本開示の少なくとも1つの実施形態に含まれてもよいことを意味する。明細書の様々な箇所に現れる「一実施形態において」という語句は、必ずしも同じ実施形態を指すものではない。 References herein to "one embodiment" or "an embodiment" may include a particular feature, structure, or feature described using an embodiment in at least one embodiment of the disclosure means that The appearances of the phrase "in one embodiment" in various places in the specification are not necessarily all referring to the same embodiment.

様々な実施形態によれば、アドバンストインタコネクト技術を利用して人工知能(AI)トレーニングを加速するための方法およびシステムが提供される。本開示に記載の実施形態によれば、ソフトウェア及びハードウェアコンポーネントを利用することにより、相互接続通信帯域幅の要求、消費電力を大幅に低減させ、且つトレーニング時間を低減させ、これにより、精度損失がない状況でトレーニング性能を向上させる。分散システムにおいてシステムのデータ圧縮及び解凍を用いてAIモデルトレーニングを行うとともに、効率的な全減少(All-Reduce )アルゴリズムを併用する。 According to various embodiments, methods and systems are provided for accelerating artificial intelligence (AI) training utilizing advanced interconnect technology. Embodiments described in the present disclosure significantly reduce interconnect communication bandwidth requirements, power consumption, and reduce training time by utilizing software and hardware components, thereby reducing accuracy loss. Improve training performance in situations where there is no AI model training is performed in a distributed system using system data compression and decompression, combined with an efficient All-Reduce algorithm.

一実施形態によれば、AIモデルトレーニングのコンピュータにより実施される方法は、プロセッサクラスタで、分散規約(Scatter-Reduce)プロセスにおいて、複数回の反復を実行することを含み、それぞれのプロセッサは、グラフィックス処理ユニット(GPU)であってもよい。ニューラルネットワークモデルをトレーニングするために、プロセッサは、論理リングとして配置され、それぞれのプロセッサは、複数のデータブロックを有し、それぞれのデータブロックは、ニューラルネットワークモデル内のパラメータのセットまたはパラメータのセットを更新するための勾配のセットをそれぞれ表すようにしてもよい。 According to one embodiment, a computer-implemented method of AI model training includes performing multiple iterations in a Scatter-Reduce process on a cluster of processors, each processor running a graphics It may also be a processing unit (GPU). To train the neural network model, the processors are arranged in a logical ring, each processor having a plurality of data blocks, each data block providing a set of parameters or sets of parameters within the neural network model. Each may represent a set of gradients to update.

各回の反復において、プロセッサは、論理リングにおける前のプロセッサから、圧縮データブロックを受信し、受信した圧縮データブロックと、現在プロセッサで生成された圧縮データブロックとに対して、操作を実行して、データブロックを演算し、演算されたデータブロックを論理リング内の後続のプロセッサに送信する。複数回の反復が終了すると、複数のプロセッサ上の各データブロックは、すべて圧縮されて操作されたことになる。この方法は、複数のプロセッサのそれぞれにおいて、圧縮データブロックを識別する操作をさらに含み、ここで、圧縮データブロックは、複数のプロセッサの対応するデータブロックから算出されたものである。 In each iteration, the processor receives a compressed data block from a previous processor in the logical ring, performs an operation on the received compressed data block and on the compressed data block currently generated by the processor, It operates on data blocks and transmits the operated data blocks to subsequent processors in the logical ring. After multiple iterations, each block of data on multiple processors has all been compressed and manipulated. The method further includes, in each of the plurality of processors, identifying compressed data blocks, where the compressed data blocks were computed from corresponding data blocks of the plurality of processors.

一実施形態では、識別された圧縮データブロックは、論理リング内の他のプロセッサのそれぞれに配信され、そのプロセッサ上で解凍され、ニューラルネットワークモデル内のパラメータを更新するに使用される。プロセッサは、分散型AIモデルトレーニングシステムの異なるシステム内の中央処理装置(CPU)に添付可能である。一実施形態では、各プロセッサは、ゼロ値圧縮技法を使用してデータブロックを圧縮および解凍するためのハードウェアベースまたはソフトウェアベースの圧縮モジュールを含んでも良い。圧縮データブロックは、ビットマスク部分と圧縮データ部分とを有するデータ構造によって表すことができ、ビットマスクは、データブロック内の非ゼロ値の位置を示すビットを含む。 In one embodiment, the identified compressed data blocks are distributed to each of the other processors in the logical ring, decompressed thereon, and used to update parameters within the neural network model. Processors can be attached to central processing units (CPUs) in different systems of the distributed AI model training system. In one embodiment, each processor may include a hardware- or software-based compression module for compressing and decompressing data blocks using zero-value compression techniques. A compressed data block can be represented by a data structure having a bitmask portion and a compressed data portion, where the bitmask contains bits that indicate the location of non-zero values within the data block.

一実施形態によれば、中央処理装置(CPU)からAIトレーニングのための要求を受信すると、論理リングとして配置された汎用処理装置(GPU)の各々は、CPUから配信されたデータブロックに対してデータ処理(DP)操作をパイプライン方式で繰り返し実行するように構成される。各GPUは、CPUに対してDPアクセラレータとして操作する。毎回の反復について、第1のDPサイクルにおいて、複数のGPUは、それぞれ、データブロックのうちの1つに対して、並行して第1の所定のDP操作(例えば、データ圧縮)を実行し、それぞれのDP結果を生成する。第2のDPサイクルにおいて、複数のGPUは、それぞれ、対応するプロセッサ間リンクを介して、それぞれのDP結果を論理リング内の対応する下流のGPUに転送し、そこでさらに処理する。説明のために、GPUをDPアクセラレータの例として使用するが、他のタイプのプロセッサまたは処理ロジックをDPアクセラレータとして使用してもよい。 According to one embodiment, upon receiving a request for AI training from a central processing unit (CPU), each of the general purpose processing units (GPUs) arranged in a logical ring processes data blocks delivered by the CPU. It is configured to repeatedly execute data processing (DP) operations in a pipeline fashion. Each GPU operates as a DP accelerator with respect to the CPU. For each iteration, in the first DP cycle, the multiple GPUs each perform a first predetermined DP operation (e.g., data compression) in parallel on one of the data blocks; Generate respective DP results. In the second DP cycle, the multiple GPUs each forward their respective DP results via corresponding inter-processor links to corresponding downstream GPUs in the logical ring for further processing there. For purposes of explanation, a GPU is used as an example of a DP accelerator, but other types of processors or processing logic may be used as DP accelerators.

一実施形態では、第2のDPサイクル中に、各GPUは、対応するプロセッサ間リンクを介して、論理リング内の対応する上流GPUから処理結果をも受信し、受信された処理結果は、GPUで更なる処理を実行するに用いられる。一実施形態では、第3のDPサイクル中に、複数のGPUの各々は、自身によって処理された第1のデータブロック(例えば、処理結果)と、上流のGPUから受信した第2のデータブロック(例えば、上流のGPUによる処理結果)とに対して、第2の所定のDP操作(例えば、加算などの結合演算)を同時に実行する。一実施形態では、第4のDPサイクル中に、複数のGPUの各々は、データ解凍操作などのさらなるDP操作を実行する。 In one embodiment, during the second DP cycle, each GPU also receives processing results from corresponding upstream GPUs in the logical ring via corresponding inter-processor links, and the received processing results are sent to GPUs is used to perform further processing. In one embodiment, during the third DP cycle, each of the multiple GPUs receives a first data block processed by it (e.g., processing results) and a second data block received from the upstream GPU ( a second predetermined DP operation (eg, a join operation such as an addition) simultaneously. In one embodiment, during the fourth DP cycle, each of the multiple GPUs performs a further DP operation, such as a data decompression operation.

図1は、一実施形態による、AIモデルのトレーニング用のシステムの一例を示す図である。図1に示すように、システムは、複数のサーバ(例えば、サーバA103およびサーバB105)に分散された汎用処理ユニット(GPU)クラスタ101を含み、各サーバは、1つまたは複数のCPUを含み、各CPUは、GPUなどの1つまたは複数のデータ処理(DP)アクセラレータと関連付けられている。 FIG. 1 illustrates an example system for training AI models, according to one embodiment. As shown in FIG. 1, the system includes a general purpose processing unit (GPU) cluster 101 distributed across multiple servers (e.g., Server A 103 and Server B 105), each server including one or more CPUs; Each CPU is associated with one or more data processing (DP) accelerators, such as GPUs.

サーバは、イーサネット接続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に接続される。 The server may include CPU 107 and CPU 109 communicating with each other via Ethernet connection 111 . In the example system shown in FIG. 1, each CPU may have multiple GPUs connected to it via Peripheral Device Interconnection High Speed (PCIe) switches. For example, in server A103, GPU117, GPU119 and GPU121 are connected to CPU A107 via PCIe switch A113. In server B105, GPU123, GPU125 and GPU127 are connected to CPU B109 via PCIe B115.

CPU107およびCPU109は、ニューラルネットワークをトレーニングするためのタスクを協働させるために、イーサネット接続111などのプロセッサ間リンクを介して互いに通信することができる。例えば、ジョブコマンドは、イーサネット接続111を介して各サーバに配信することができる。次に、ジョブコマンドを、サーバ内のCPUから当該CPUに接続されたGPUに配信ることができる。ジョブコマンドが配信られると、システム内のGPU間には、対応するチップ間リンク122を介してデータを転送可能とされる。チップ間リンク112には、例えば、アクセラレータ用のキャッシュコヒーレントインタコネクト(CCIX)リンクなど、様々なチップ間相互接続のソリューションが採用できる。図1に示すように、一方向リングトポロジーを使用することができるが、システム内のGPUは、双方向リングトポロジーに配置される。 CPU 107 and CPU 109 can communicate with each other via an inter-processor link, such as Ethernet connection 111, to coordinate tasks for training the neural network. For example, job commands can be delivered to each server via Ethernet connection 111 . Job commands can then be delivered from a CPU in the server to a GPU connected to that CPU. When the job command is delivered, data can be transferred between the GPUs in the system via the corresponding inter-chip links 122 . Inter-chip links 112 may employ a variety of inter-chip interconnect solutions such as, for example, cache coherent interconnect (CCIX) links for accelerators. As shown in FIG. 1, a unidirectional ring topology can be used, but the GPUs in the system are arranged in a bidirectional ring topology.

CCIXは、CCIXアライアンスによって開発されたオープンキャッシュコヒーレンス相互接続アーキテクチャである。CCIXは、標準的なPCIeのキャッシュコヒーレンシを拡張することによって、システム内のCPUなどの中央プロセッサとGPUなどの様々なアクセラレータとの間の通信を簡略化するように設計されている。CCIXは、異種システムアーキテクチャのためのキャッシュコヒーレンスフレームワークを提供する高性能チップ間相互接続アーキテクチャである。システム内の中央処理装置と様々な他のアクセラレータとの間のキャッシュコヒーレンシは常に自動的に維持される。CCIXをサポートする各装置は、少なくとも1つのCCIXポートを含み、CCIXポートは、CCIXの起用されたあらゆる他のデバイスとは、ピン互換性がある。CCIXは、チップ・トゥ・チップ、チップ・トゥ・スイッチ・トゥ・チップ、グリッド、デイジーチェーン、およびリングなどの様々なトポロジーをサポートする。 CCIX is an open cache coherence interconnect architecture developed by the CCIX Alliance. CCIX is designed to simplify communication between a central processor, such as a CPU, and various accelerators, such as GPUs, in a system by extending standard PCIe's cache coherency. CCIX is a high performance chip-to-chip interconnect architecture that provides a cache coherence framework for heterogeneous system architectures. Cache coherency between the central processing unit and various other accelerators in the system is always automatically maintained. Each device that supports CCIX includes at least one CCIX port, which is pin-compatible with any other CCIX-enabled device. CCIX supports various topologies such as chip-to-chip, chip-to-switch-to-chip, grid, daisy chain, and ring.

一実施形態では、GPUは、それぞれのCPUから配信されたデータブロックに対して、パイプライン方式でAIトレーニング動作を実行するように構成される。それぞれのGPUは、さらに、プロセッサ間リンクを介して互いに通信する。GPUは、さらなるデータ処理のために、上流のGPUからの処理結果を受信するように環状に構成されてもよい。それぞれのGPUは、処理結果をその対応する下流の、さらなる処理を実行するためのGPUにさらに送信することができる。したがって、それぞれのGPUは、並列して、配信られたDP操作を実行し、そのDP結果をダウンストリームGPUに送信する。且つ、各GPUは、その上流のGPUから処理結果を受信して、さらなる処理を実行する。 In one embodiment, the GPUs are configured to perform AI training operations in a pipeline fashion on data blocks delivered from each CPU. Each GPU also communicates with each other via an inter-processor link. GPUs may be configured in a loop to receive processing results from upstream GPUs for further data processing. Each GPU may further send processing results to its corresponding downstream GPU for performing further processing. Thus, each GPU performs the distributed DP operations in parallel and sends the DP results to downstream GPUs. Each GPU also receives processing results from its upstream GPU and performs further processing.

図2A~図2Fは、一実施形態によるAIモデルのトレーニングにおけるデータ転送の例示的なプロセスを示す図である。ここでは、GPU203、205、および207の3つのGPUが示されているが、例示的なプロセスは、トレーニングされるニューラルネットワークの複雑さ、トレーニング用データのサイズ、およびユーザが所望するトレーニングの速度などの複数の要因に応じて、できる限り多くのGPU(例えば、数千個のGPU)を使用することができる。 2A-2F illustrate an exemplary process of data transfer in training an AI model according to one embodiment. Although three GPUs are shown here, GPUs 203, 205, and 207, an exemplary process is the complexity of the neural network to be trained, the size of the data for training, and the speed of training desired by the user. As many GPUs as possible (eg, thousands of GPUs) can be used, depending on a number of factors.

例示的なシステム上でトレーニングされたニューラルネットワークの例は、結合されるニューロンの集合を含む多層パーセプトロン(MLP)ニューラルネットワークを含む。MLPニューラルネットワーク内のニューロンは、1つの層内の各ニューロンが後続の層内の各ニューロンにパラメータ(例えば、重みおよびバイアス)で結合されると、完全に結合され得る。 Examples of neural networks trained on the exemplary system include multi-layer perceptron (MLP) neural networks comprising a set of connected neurons. Neurons in an MLP neural network may be fully connected when each neuron in one layer is connected to each neuron in subsequent layers by parameters (eg, weights and biases).

ニューラルネットワークモデルのトレーニング中、勾配降下(すなわち、逆伝達)を使用して、ニューラルネットワークモデルの期待値と実際の出力との間の差を最小化するためのパラメータのセットを決定することができる。勾配降下は、損失/誤差関数の勾配を計算するステップと、勾配に応答して既存のパラメータを更新するステップとを含む。このサイクルは、損失関数の極小値に達するまで繰り返される。 During training of a neural network model, gradient descent (i.e. back transfer) can be used to determine a set of parameters to minimize the difference between the expected and actual output of the neural network model. . Gradient descent involves computing the slope of a loss/error function and updating existing parameters in response to the slope. This cycle is repeated until a local minimum of the loss function is reached.

一実施形態では、ニューラルネットワークモデルのトレーニング用データセットは、複数のサブセットに分割され、各サブセットは、ニューラルネットワークのトレーニングが複数のGPUによって並行して行われるように、GPUのうちの1つ上でニューラルネットワークモデルをトレーニングするために使用される。各GPUは、ニューラルネットワークモデルの完全なコピーを有することができる。 In one embodiment, a neural network model training data set is divided into multiple subsets, each subset being distributed on one of the GPUs so that training of the neural network is performed by multiple GPUs in parallel. used to train neural network models. Each GPU can have a complete copy of the neural network model.

トレーニング用データセットの各サブセットは、複数の等しいサイズのデータブロックに論理的に分割することができる。例示的なプロセスでは、ブロックの数は、 GPUの数に等しい。ニューラルネットワークモデルの並列的なトレーニンは、勾配降下の複数の反復を必要とする。毎回の反復に、各GPUは、ネットワークパラメータに対する損失の勾配を計算するために、GPU上のデータに対してニューラルネットワークモデルの順方向伝達を実行し、続いて誤差の逆伝達を実行する。次に、GPUは、互いに通信して、勾配の統計量(例えば、平均値、最大値、または最小値)を計算し、そして、統計量(例えば、平均勾配)を利用して、更新されたパラメータを得ることができる。ニューラルネットワークモデルは、多数のパラメータ(例えば、数十億のパラメータ)を有し、各パラメータは、それぞれ勾配値に関連付けられるようにすることができる。このように、ニューラルネットワークにとって、勾配の大きさは非常に大きく、GPU間で勾配を転送することは、かなり帯域幅を占有する。 Each subset of the training data set can be logically divided into multiple equally sized data blocks. In the exemplary process, the number of blocks equals the number of GPUs. Parallel training of neural network models requires multiple iterations of gradient descent. At each iteration, each GPU performs forward propagation of the neural network model on the data on the GPU, followed by back propagation of the error, to compute the gradient of the loss versus the network parameters. The GPUs then communicate with each other to compute a gradient statistic (e.g., mean, maximum, or minimum), and utilize the statistic (e.g., mean gradient) to update the parameters can be obtained. A neural network model may have a large number of parameters (eg, billions of parameters), each associated with a respective gradient value. Thus, for neural networks, the magnitude of gradients is very large and transferring gradients between GPUs takes up considerable bandwidth.

再び図2A~図2Fを参照すると、例示的なプロセスは、GPU間のデータ転送による要求の帯域幅を低減するためのアルゴリズムを示す。一実施形態では、本開示で使用される帯域幅とは、所与のネットワーク接続における最大データ転送レートである。当該アルゴリズムは、2つのプロセスを含むことができる。第1のプロセスは、分散規約(Scatter-Reduce)プロセスであり、第2のプロセスは、全凝集(Allgather)プロセスである。Scatter-Reduceプロセス中において、GPUは、各GPUが多数の最終結果ブロックで終了するようにデータを交換することができる。Allgatherプロセス中において、GPUは、すべてのGPUが完全な最終結果で終わるように、これらの結果ブロックを交換することができる。 Referring again to FIGS. 2A-2F, the exemplary process shows algorithms for reducing the bandwidth required by data transfers between GPUs. In one embodiment, bandwidth as used in this disclosure is the maximum data transfer rate over a given network connection. The algorithm can include two processes. The first process is the Scatter-Reduce process and the second process is the Allgather process. During the Scatter-Reduce process, GPUs can exchange data such that each GPU ends up with a number of final result blocks. During the Allgather process, GPUs can exchange these result blocks so that all GPUs end up with a complete final result.

各GPUは、GPU上のトレーニング用データセットのサブセットを等しいサイズのデータブロックに分割するように構成された1つ以上のアプリケーションを含むことができる。例示的なシステムでは、各GPU上のデータブロックの数は、GPUの数である。ニューラルネットワークモデルのトレーニング中において、各データブロックに対しては、それ自体の勾配のセットを生成することができる。 Each GPU may include one or more applications configured to divide a subset of the training data set on the GPU into equally sized blocks of data. In an exemplary system, the number of data blocks on each GPU is the number of GPUs. During training of the neural network model, each data block can generate its own set of gradients.

この例では、上述したように、システム内に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上の異なる勾配セットは、アレイまたは別のデータ構造で記憶されてもよい。 In this example, as mentioned above, there are three GPUs in the system, so the number of data blocks on each GPU is three. From the subset of training data on GPU #0 203, we can generate 3 sets of gradients a 0 215, b 0 231, c 0 237, and from the subset of training data on GPU #1 205, 3 more A set of gradients a 1 217, b 1 223, c 1 239 can be generated. Similarly, from a subset of training data on GPU#2 207, three sets of gradients a 2 219, b 2 235, c 2 241 are generated. In one embodiment, the different gradient sets on each GPU may be stored in an array or another data structure.

一例として、当該アルゴリズムは、トレーニング用データセットの各サブセットによって生成された勾配を合計するように設計されても良い。これにより、アルゴリズムが完了すると、各GPUは、トレーニング用データセットから生成された勾配の合計を有することになる。 As an example, the algorithm may be designed to sum the gradients produced by each subset of the training dataset. Thus, when the algorithm is complete, each GPU will have a sum of gradients generated from the training dataset.

例示的なプロセスにおけるGPUは、Scatter-Reduceプロセス中にN-1回の反復を有することができ、ここで、Nは、システム内のGPUの総数である。このように、例示的なシステムにおけるGPUは、2つの反復を有することができる。毎回の反復時、各GPUは、GPU上の1組の勾配をその右隣に送信するとともに、その左隣から1組の勾配を受信して、当該2組の勾配を加算して1組の新しい勾配とすることができる。各GPUによって送信または受信される勾配の組は、毎回の反復に異なる。n番目のGPUは、n番目の勾配の組が送信されたことによって開始するとともに、(n-1)番目の勾配の組を受信するように、処理を逆行する。 A GPU in the exemplary process can have N−1 iterations during the Scatter-Reduce process, where N is the total number of GPUs in the system. Thus, the GPU in the exemplary system can have two iterations. On each iteration, each GPU sends a set of gradients on the GPU to its right neighbor, receives a set of gradients from its left neighbor, and adds the two sets of gradients to produce a set of It can be a new gradient. The set of gradients sent or received by each GPU is different for each iteration. The nth GPU begins with the nth set of gradients being sent and reverses the process to receive the (n-1)th set of gradients.

図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処理終了時の最終状態を示している。 2A to 2C are diagrams showing the Scatter-Reduce processing. FIG. 2A shows data transmission in the first iteration of the Scatter-Reduce process. After the first transmission and first reception are completed, each GPU has an array element with values representing the sum of two sets of gradients on two different GPUs. For example, a first element a1 in GPU 205 may include the sum of gradient sets from second GPU 205 and first GPU 203 . FIG. 2B shows the data transfer in the second iteration of the Scatter-Reduce process and also shows the intermediate sum after the completion of the first iteration of the Scatter-Reduce process. In the second iteration, the Scatter-Reduce process follows, and at the end of the Scatter-Reduce process (i.e., after the second iteration in this example), each GPU has a corresponding It has one array element containing the sum of all the gradients of the array elements. FIG. 2C shows the final state at the end of the Scatter-Reduce process.

図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は、トレーニング用データセット全体からの完全に蓄積された勾配を有する。例示的なプロセスは、すべてのデータ転送が、離散の反復において同期して起こるので、帯域幅が最適となる。 Figures 2D-2F illustrate the Allgather process. The process is similar to Scatter-Reduce and has N−1 iterations. Compared to Scatter-Reduce, it differs in that the received gradient covers the gradient in the corresponding array element on the receiving GPU instead of accumulating on the gradient received by the GPU. FIG. 2D shows data transfer in the first iteration of the Allgather process. After the first iteration is complete, each GPU has two array elements each containing the sum of all gradients in the corresponding array element across all GPUs, as shown in FIG. 2E. FIG. 2E shows the Allgather process in the second iteration, the final iteration in the exemplary process. As shown in FIG. 2F, at the end of the Allgather process, the GPU has fully accumulated gradients from the entire training dataset. The exemplary process is bandwidth optimized because all data transfers occur synchronously in discrete iterations.

図3は、図2A~図2Fの処理の変形例を示すフローチャートである。一実施形態では、図3に示される例示的なプロセスを使用して、ニューラルネットワークパラメータを更新するための勾配をニューラルネットワークモデルのトレーニング中に転送することができる。ここで、分散サーバ間で数十メガバイトのデータが転送される必要があるとともに、協働して操作する必要もある。これは、性能及び遅延を改善できる効率的なハードウェア及びソフトウェアを必要とする。 FIG. 3 is a flow chart showing a modification of the processing of FIGS. 2A-2F. In one embodiment, the exemplary process illustrated in FIG. 3 can be used to transfer gradients for updating neural network parameters during training of the neural network model. Here, tens of megabytes of data need to be transferred between distributed servers, and they also need to operate cooperatively. This requires efficient hardware and software that can improve performance and latency.

一実施形態では、例示的なプロセスは、All-Reduceアルゴリズム、を利用し、且つ、ソフトウェアとハードウェアとの協調設計により、性能および遅延を改善する。ソフトウェアとハードウェアとの協調設計とは、所望の機能を実現するために、ハードウェアとソフトウェアを同時に設計することをいう。この例示的なプロセスは、クラスタ内のGPUを接続するために使用されるアクセラレータのキャッシュコヒーレンスインタコネクト(CCIX)などのハードウェアコンポーネントと、圧縮データに基づくハードウェア計算を可能にするゼロ値圧縮モジュールおよび他の圧縮モジュールなどのソフトウェアモジュールを使用する。この例示的なプロセスは、効率的なAll-Reduceプロセスを実行するように設計された分散システムでシステムデータ圧縮を使用する。これにより、より速くトレーニングデータセットの異なるサブセットから生成された勾配を累積して各GPUに分配することができ、よって、AIモデルトレーニングをより速くすることができる。 In one embodiment, the exemplary process utilizes an All-Reduce algorithm and improves performance and latency through software and hardware co-design. Co-design of software and hardware means designing hardware and software at the same time in order to realize a desired function. This exemplary process includes hardware components such as the accelerator's cache coherence interconnect (CCIX) used to connect GPUs in the cluster, and a zero-value compression module that enables hardware computations based on compressed data. and using software modules such as compression modules. This exemplary process uses system data compression in a distributed system designed to perform an efficient All-Reduce process. This allows gradients generated from different subsets of the training data set to be accumulated and distributed to each GPU faster, thus making AI model training faster.

図3において、左段は、図2A~図2Fに詳細に記載された典型的なAll-Reduceプロセス302を示し、右段は、分散システム上でシステム圧縮を使用した改善されたAll-Reduceプロセスを示す。図3は、一例として、論理リングを形成するように配置されている3つのGPUを使用している。 In FIG. 3, the left row shows the exemplary All-Reduce process 302 detailed in FIGS. 2A-2F, and the right row shows the improved All-Reduce process using system compression on distributed systems. indicates FIG. 3 uses, as an example, three GPUs arranged to form a logical ring.

典型的なAll-Reduceプロセス302および改善されたAll -Reduceプロセスにおいて、CPU間で転送されるデータブロックは、データ構造(例えば、アレイ)に格納され、且つ、データブロックは、ニューラルネットワークモデルをトレーニングするために使用されるトレーニングデータセットのサブセットの異なるブロックから生成された勾配であってもよい。それぞれのGPUは、トレーニングされるニューラルネットワークモデルの完全なコピーを有することができる。勾配は、ニューラルネットワークモデルのパラメータを更新するためにGPU間で渡される。 In the typical All-Reduce process 302 and the improved All-Reduce process, blocks of data transferred between CPUs are stored in data structures (e.g., arrays), and the blocks of data are used to train a neural network model. may be gradients generated from different blocks of a subset of the training data set used to Each GPU can have a complete copy of the neural network model being trained. Gradients are passed between GPUs to update the parameters of the neural network model.

一実施形態では、各GPU上のデータブロックは、Scatter-Reduceプロセスの第1回の反復または第1の処理サイクルにおいて圧縮モジュールにより圧縮されてもよく、当該圧縮モジュールは、ハードウェア上で実施されてもよく、ソフトウェアモジュールとして実施されてもよい。例えば、操作301、315、329では、GPU#0 203上のデータブロックa、GPU#1 205上のデータブロックb、GPU#2 207上のデータブロックcがそれぞれ圧縮される。 In one embodiment, data blocks on each GPU may be compressed in the first iteration or first processing cycle of the Scatter-Reduce process by a compression module, which is implemented in hardware. may be implemented as software modules. For example, in operations 301, 315, and 329, data block a0 on GPU#0 203, data block b1 on GPU#1 205, and data block c2 on GPU#2 207 are compressed, respectively.

圧縮データブロックは、次の処理サイクルにおいて隣接のGPUに送信されてもよい。例えば、操作303において、GPU#0 203上の圧縮データブロックをGPU#1 205に送信してもよく、操作317において、GPU#1 205上の圧縮データブロックをGPU#2 207に送信してもよく、操作331において、GPU#2 207上の圧縮データブロックをGPU#0 203に送信してもよい。 Compressed data blocks may be sent to neighboring GPUs in the next processing cycle. For example, in operation 303 a compressed data block on GPU #0 203 may be sent to GPU #1 205, and in operation 317 a compressed data block on GPU #1 205 may be sent to GPU #2 207. Well, in operation 331 the compressed data block on GPU #2 207 may be sent to GPU #0 203 .

一実施形態では、圧縮データブロックが隣接のGPUに送信されると同時に、各GPU上の異なるデータブロックが圧縮され、上述のように受信された圧縮データに付加されてもよい。当該例示的な実施形態では、合計操作を例に挙げているが、他の操作(例えば、乗算、演繹、及び数学的平均など)を用いてもよい。 In one embodiment, compressed data blocks may be sent to neighboring GPUs at the same time that different data blocks on each GPU are compressed and appended to the received compressed data as described above. Although the exemplary embodiment exemplifies a summation operation, other operations (eg, multiplication, deduction, mathematical averaging, etc.) may be used.

例えば、操作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に追加される。 For example, at operation 305 , data block c 0 on GPU # 0 203 may be compressed and appended to compressed data block c 2 received from GPU # 2 207 . At operation 319 , data block a 1 on GPU # 1 205 may be compressed and appended to compressed data block a 0 received from GPU # 0 203 . At operation 333 , data block b 2 on GPU # 2 207 is compressed and added to compressed data block b 1 received from GPU # 1 205 .

上記のプロセスは、Scatter-Reduceプロセスの残りの反復ごとに繰り返すことができる。反復の回数は、GPUの数から1を引いた数であってもよい。このように、改善されたAll-ReduceプロセスにおけるScatter-Reduceプロセス305は、2回の反復を有することができる。残りの反復のそれぞれにおいて、各GPUは、元の圧縮データブロックをGPU上で送るのではなく、圧縮データブロックの合計を複数のGPUから次のGPUに送ることができる。 The above process can be repeated for each remaining iteration of the Scatter-Reduce process. The number of iterations may be the number of GPUs minus one. Thus, the Scatter-Reduce process 305 in the improved All-Reduce process can have two iterations. In each of the remaining iterations, each GPU may send the sum of the compressed data blocks from multiple GPUs to the next GPU instead of sending the original compressed data block on the 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に送信することができる。 For example, in the second iteration, GPU # 0 203 may send the sum of compressed data block c 0 and compressed data block c 2 to GPU # 1 205 in operation 307 . At operation 321 , GPU # 1 205 may send the sum of compressed data block a 0 and compressed data block a 1 to GPU # 2 207 . At operation 335 , GPU # 2 207 may send the sum of compressed data block b 1 and compressed data block b 2 to 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の合計に追加されてもよい。 In one embodiment, while the sum of the compressed data blocks is being sent to neighboring GPUs, each GPU compresses the remaining data blocks on the GPU to match the compressed data received from the previous GPU in this previous logical ring. The sum of the data blocks may be added to the compressed data blocks. For example, in operation 309, data block b0 on GPU #0 202 may be compressed and added to the sum of compressed data blocks b1 and b2 . In operation 323, data block c1 on GPU #1 205 may be compressed and added to the sum of compressed data blocks c0 and c2 . In operation 337, data block a2 on GPU #2 207 may be compressed and added to the sum of compressed data blocks a0 and a1.

したがって、Scatter-Reduceプロセスの終了時には、例示的なプロセスでは、各GPUは、アレイ内のすべてのGPUに亘る対応する位置からの圧縮データブロックの合計を有する。 Thus, at the end of the Scatter-Reduce process, in the exemplary process each GPU has a sum of compressed data blocks from corresponding locations across all GPUs in the array.

Allgatherプロセス中に、各GPUは、圧縮データブロックの合計をアレイ内の対応する位置から他のGPUに配信してもよい。その結果、Allgatherプロセスの終了時に、各GPUは、全ての圧縮データブロックの合計のコピーを有することになる。その後、操作313、327、および341に示されるように、各GPUは、圧縮された合計を解凍してもよい。各GPU上の解凍された合計を使用して、GPU上のニューラルネットワークモデルのコピーのパラメータを更新することができる。 During the Allgather process, each GPU may distribute sums of compressed data blocks from corresponding locations in the array to other GPUs. As a result, at the end of the Allgather process, each GPU will have a copy of the sum of all compressed data blocks. Each GPU may then decompress the compressed sum, as shown in operations 313 , 327 and 341 . The uncompressed sums on each GPU can be used to update the parameters of the copy of the neural network model on the GPU.

図4は、一実施形態による、データ圧縮、データ操作、および相互接続バスの例示的アーキテクチャを示す。 FIG. 4 shows an exemplary architecture for data compression, data manipulation, and an interconnect bus, according to one embodiment.

図4のグラフは、生(RAW)データブロック405および407を圧縮し、圧縮しされたデータブロックを相互接続バス416および418を介して転送し、圧縮データに対して操作413および419を実行し、圧縮データを生(RAW)データへ解凍する、データフローを示す。 The graph of FIG. 4 illustrates compressing raw data blocks 405 and 407, transferring the compressed data blocks over interconnect buses 416 and 418, and performing operations 413 and 419 on the compressed data. , decompressing compressed data into RAW data.

図3に示すように、各GPU上で、圧縮モジュールと解凍モジュールの対が一対使用されてもよい。例えば、GPU A401上では、圧縮モジュール412および解凍モジュール409が使用され、GPU B403上では、圧縮モジュール417および解凍モジュール415が使用されてもよい。 As shown in FIG. 3, a pair of compression and decompression modules may be used on each GPU. For example, on GPU A 401 compression module 412 and decompression module 409 may be used, and on GPU B 403 compression module 417 and decompression module 415 may be used.

圧縮モジュール412および417には、任意の圧縮アルゴリズムを使用することができる。圧縮アルゴリズムの例として、ゼロ値圧縮アルゴリズム/技法があり、以下の開示において詳細に説明される。ゼロ値比が50%である場合、ゼロ値圧縮アルゴリズムを採用することで、50%に近いデータ転送の帯域幅を節約することができる。相互接続バスと圧縮データに対する様々な操作とが組み合わせられる場合、帯域幅のメリットは50%を超えることができる。 Any compression algorithm can be used in compression modules 412 and 417 . Examples of compression algorithms include zero-value compression algorithms/techniques, which are described in detail in the following disclosure. If the zero-value ratio is 50%, employing a zero-value compression algorithm can save nearly 50% of the data transfer bandwidth. Bandwidth benefits can exceed 50% when the interconnect bus and various operations on compressed data are combined.

図5は、一実施形態によるゼロ圧縮技術を示す。図5において、マトリクス513は、ニューラルネットワークモデルをトレーニングするための元の4×4データアレイである。データ構造510は、ゼロ値圧縮技術を使用したマトリクス513の圧縮形式を示している。データ構造510は、例えば、タイプフィールド501、長さフィールド503、ビットマスクフィールド505、および圧縮データフィールド507などの複数のフィールドを含む。マトリクス513およびデータ構造510は、圧縮511および解凍509を使用して相互に変換することができる。 FIG. 5 illustrates a zero compression technique according to one embodiment. In FIG. 5, matrix 513 is the original 4×4 data array for training the neural network model. Data structure 510 shows the compressed form of matrix 513 using zero-value compression techniques. Data structure 510 includes multiple fields such as, for example, type field 501 , length field 503 , bitmask field 505 , and compressed data field 507 . Matrix 513 and data structure 510 can be converted to each other using compression 511 and decompression 509 .

一実施形態では、タイプフィールド501は、マトリクス513内の値のデータタイプを表す。データタイプの例として、浮動小数点数(FP)32、FP16、および整数(INT)8が挙げられる。長さは、バイトで、ビットマスクフィールド505と圧縮データフィールド507との合計サイズを表し、又は、一定のサイズのビットマスクバイトを有する圧縮データフィールド507のサイズを表す。ビットマスクフィールド505は、行列513内の特定の位置における非ゼロ値を表すために「1」に設定され、ゼロ値を表すために「0」に設定される。圧縮データフィールド507は、正しいアラインメント/オフセットを有する非ゼロ値データのみを含む。ビットマスクフィールドは、非ゼロで値を4×4データアレイ513内の元の位置に書き戻すために、解凍モジュール(例えば、図4の解凍モジュール409または415)によって使用されてもよい。 In one embodiment, type field 501 represents the data type of the values in matrix 513 . Examples of data types include floating point (FP) 32, FP 16, and integer (INT) 8. The length, in bytes, represents the total size of bitmask field 505 and compressed data field 507, or represents the size of compressed data field 507 with bitmask bytes of a fixed size. Bitmask field 505 is set to '1' to represent a non-zero value at a particular location in matrix 513 and to '0' to represent a zero value. Compressed data field 507 contains only non-zero valued data with correct alignment/offset. The bitmask field may be used by a decompression module (eg, decompression module 409 or 415 of FIG. 4) to write non-zero values back to their original locations in 4×4 data array 513 .

図6は、本実施形態に係る圧縮データに対する操作の例を示す図である。図6に示すように、合計操作を例として、2つの圧縮データブロックに対してどのように操作するかを説明する。 FIG. 6 is a diagram showing an example of operations on compressed data according to this embodiment. As shown in FIG. 6, we take the summation operation as an example to illustrate how to operate on two compressed data blocks.

一実施形態では、圧縮データ617は、マトリクスA613の圧縮形式でマトリクスA613を表すデータ構造であり、圧縮データ619は、マトリクスB615の圧縮形式でマトリクスB615を表すデータ構造である。これらの2つの構造は、図5に示される圧縮技術により生成され、解凍モジュール(例えば、解凍モジュール409または415)により、それぞれマトリクスA613およびマトリクスB615に解凍される。 In one embodiment, compressed data 617 is a data structure representing matrix A 613 in the compressed form of matrix A 613, and compressed data 619 is a data structure representing matrix B 615 in the compressed form of matrix B 615. These two structures are generated by the compression technique shown in FIG. 5 and decompressed by a decompression module (eg, decompression module 409 or 415) into matrix A 613 and matrix B 615, respectively.

一実施形態では、2つの圧縮されたマトリクス613および615をその圧縮形式で合計するために、ハードウェア圧縮モジュール(例えば、図4の圧縮モジュール411または417)は、まず、2つの圧縮データ構造617および619をパイプライン化して、一方のデータ構造内のビットマスクフィールド内のビットを他方のデータ構造のビットマスクフィールド内のビットと比較し、比較した結果621を出力することができる。 In one embodiment, to sum the two compressed matrices 613 and 615 in their compressed form, a hardware compression module (eg, compression module 411 or 417 in FIG. 4) first creates two compressed data structures 617 and 619 can be pipelined to compare the bits in the bitmask field in one data structure with the bits in the bitmask field of the other data structure and output the result 621 of the comparison.

GPU間でデータを圧縮形式で転送することによって、データ転送に必要な帯域幅を低減することができる。さらに、圧縮データブロックは、その非圧縮形式より少ないメモリを占有し、操作中にメモリから読み出され、メモリに書き込まれるビットが少ないので、圧縮データブロックの操作に必要なメモリを低減することができる。 By transferring data between GPUs in compressed form, the bandwidth required for data transfer can be reduced. In addition, compressed data blocks occupy less memory than their uncompressed forms, and fewer bits are read from and written to memory during operation, thus reducing the memory required to manipulate compressed data blocks. can.

例えば、合計操作は、2回の読み出しおよび1回の書き込みを必要とすることがある。メモリから読み書きされるデータが圧縮された形式であるため、合計操作に必要なメモリを低減することができる。 For example, a sum operation may require two reads and one write. Because the data read and written from memory is in compressed form, the memory required for sum operations can be reduced.

図7は、一実施形態によるAIモデルトレーニングの例示的なプロセス700を示す。プロセス700は、ソフトウェア、ハードウェア、またはそれらの組み合わせを含む処理ロジックによって実行することができる。 FIG. 7 shows an exemplary process 700 of AI model training according to one embodiment. Process 700 may be performed by processing logic including software, hardware, or a combination thereof.

再び図7を参照すると、操作701において、論理リングとして配置された複数のプロセッサにおいて、複数回の反復を実行して、ニューラルネットワークモデルをトレーニングし、それぞれのプロセッサは、複数のデータブロックを含む。操作702において、複数回の反復のそれぞれに対し、複数のプロセッサのうちの1つが、論理リング内の前のプロセッサから、圧縮データブロックを受信し、受信した圧縮データブロックと当該プロセッサ上で生成された圧縮データブロックとに対して操作を実行して、データブロックを算出し、算出したデータブロックを論理リング内の後続のプロセッサに送信する。操作703において、複数のプロセッサの各々において、複数のプロセッサからの対応するデータブロックに基づいて算出された圧縮データブロックを識別する。識別されたデータブロックは、他のプロセッサのそれぞれに配信され、そこに解凍されて、ニューラルネットワークモデルのパラメータの更新などのAIモデルのトレーニングに用いられる。 Referring again to FIG. 7, at operation 701, a neural network model is trained by performing multiple iterations on multiple processors arranged as a logical ring, each processor containing multiple data blocks. At operation 702, for each of the plurality of iterations, one of the plurality of processors receives a compressed data block from a previous processor in the logical ring and combines the received compressed data block with the compressed data block generated on that processor. It performs operations on the compressed data blocks to compute data blocks and transmits the computed data blocks to subsequent processors in the logical ring. In operation 703, in each of the plurality of processors, a compressed data block computed based on corresponding data blocks from the plurality of processors is identified. The identified data blocks are distributed to each of the other processors, where they are decompressed and used for AI model training, such as updating parameters of neural network models.

なお、上述した構成要素の一部または全部は、ソフトウェア、ハードウェア、またはそれらの組み合わせによって実現されてもよい。例えば、そのような構成要素は、永久記憶装置にインストールされて記憶されたソフトウェアとして実装することができ、このソフトウェアは、プロセッサ(図示せず)によってメモリにロードされて実行され、本明細書に記載のプロセスまたは操作全体を実施することができる。あるいは、そのようなコンポーネントは、集積回路(例えば、特定用途向けICまたはASIC)、デジタル信号プロセッサ(DSP)、またはフィールドプログラマブルゲートアレイ(FPGA)などの特定用途向けハードウェアにプログラムまたは組み込まれた実行可能コードとして実装することができ、実行可能コードは、対応するドライバおよび/またはオペレーティングシステムを介してアプリケーションからアクセスすることができる。さらに、そのようなコンポーネントは、1つまたは複数の特定の命令を介してソフトウェアコンポーネントによってアクセス可能な命令セットの一部として、プロセッサまたはプロセッサコア内の特定のハードウェアロジックとして実装することができる。 Some or all of the components described above may be realized by software, hardware, or a combination thereof. For example, such components may be implemented as software installed and stored on a permanent storage device, which software is loaded into memory and executed by a processor (not shown) and described herein. The entire described process or operation can be performed. Alternatively, such components execute programmed or embedded in application-specific hardware such as an integrated circuit (e.g., an application-specific IC or ASIC), a digital signal processor (DSP), or a field-programmable gate array (FPGA). It can be implemented as executable code, which can be accessed by applications through corresponding drivers and/or operating systems. Further, such components may be implemented as specific hardware logic within a processor or processor core as part of an instruction set accessible by software components via one or more specific instructions.

上述の詳細な説明の一部は、コンピュータメモリ内のデータビットの操作のアルゴリズムおよびシンボル表現に基づいて提示されている。これらのアルゴリズム記述および表現は、データ処理分野の当業者が、当業者に最も効率的にその作業内容を伝えるために使用する方法である。ここで、アルゴリズムは、一般に、所望の結果をもたらす自己適合性操作シーケンスであると考えられる。これらの操作は、物理量を物理的に操作する必要がある操作である。 Some of the above detailed descriptions are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the ways used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. Here an algorithm is generally considered to be a self-adapting sequence of operations that produces a desired result. These operations are those requiring physical manipulations of physical quantities.

これらの用語および類似の用語はすべて、適切な物理量と関連付けられ、これらの量に適用される便利なタグのみである。上述の議論から明らかなように、他に明示的に指摘されない限り、以下の特許請求の範囲に記載されているような用語を用いた説明は、コンピュータシステムのレジスタおよびメモリ内の物理的(電子的)量として表されているデータを、コンピュータシステムのメモリまたはレジスタまたは他のそのような情報記憶、送信または表示装置内の物理量として同様に表されている他のデータに変換する、コンピュータシステムまたは同様の電子計算装置の操作およびプロセスを、本明細書全体を通して意味することを理解されたい。 All these and similar terms are only convenient tags to be associated with and applied to appropriate physical quantities. It should be clear from the discussion above that, unless expressly indicated otherwise, descriptions using terms such as those in the following claims refer to physical (electronic) operations within the registers and memory of a computer system. a computer system that converts data represented as physical quantities into other data similarly represented as physical quantities within the memory or registers of a computer system or other such information storage, transmission or display device, or It should be understood that similar electronic computing device operations and processes are meant throughout this specification.

本開示の実施形態は、本明細書の操作を実行するための装置にも関する。このようなコンピュータプログラムは、非一時的なコンピュータ可読媒体に格納される。機械可読媒体は、機械(例えば、コンピュータ)によって読み取り可能な形態で情報を記憶するための任意の機構を含む。例えば、機械可読(例えば、コンピュータ可読)媒体は、機械可読記憶媒体、例えば、読み出し専用メモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリ装置を含む。 Embodiments of the present disclosure also relate to apparatus for performing the operations herein. Such computer programs are stored on non-transitory computer-readable media. A machine-readable medium includes any mechanism for storing information in a form readable by a machine (eg, a computer). For example, a machine-readable (eg, computer-readable) medium includes a machine-readable storage medium, such as read-only memory (“ROM”), random-access memory (“RAM”), magnetic disk storage media, optical storage media, flash memory devices. including.

前の図に描かれたプロセスまたは方法は、ハードウェア(例えば、回路、専用ロジックなど)、ソフトウェア(例えば、非一時的なコンピュータ可読媒体上に含まれる)、または両方の組み合わせを含む処理ロジックによって実行されてもよい。プロセスまたは方法は、いくつかのシーケンス操作に従って上述したが、説明したいくつかの操作は、異なるシーケンスで実行されてもよいことを理解されたい。さらに、いくつかの操作は、連続的ではなく並列に実行されてもよい。 The processes or methods depicted in the preceding figures may be implemented by processing logic including hardware (e.g., circuits, dedicated logic, etc.), software (e.g., contained on non-transitory computer-readable media), or a combination of both. may be performed. Although the process or method has been described above according to some sequence of operations, it should be understood that some of the operations described may be performed in different sequences. Moreover, some operations may be performed in parallel rather than serially.

本開示の実施形態は、特定のプログラミング言語を参照して記載されていない。本明細書に記載の本開示の実施形態の教示は、様々なプログラミング言語を使用して実施することができることを理解されたい。 Embodiments of the present disclosure are not described with reference to any particular programming language. It should be appreciated that the teachings of the embodiments of the disclosure described herein may be implemented using a variety of programming languages.

以上、特定の実施形態を参照しながら、本発明について詳解してきた。以下の特許請求の範囲に記載された本開示のより広い趣旨および範囲から逸脱することなく、様々な変更を加えることができることは明らかである。したがって、本明細書および図面は、限定ではなく例示的なものと解釈されるべきである。 The invention has been described in detail above with reference to specific embodiments. It will be evident that various changes can be made without departing from the broader spirit and scope of this disclosure as set forth in the following claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.

Claims (6)

データ処理(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の圧縮データブロックとをパイプライン化して、一方の圧縮データブロックのビットマスクフィールド内のビットを他方の圧縮データブロックのビットマスクフィールド内のビットと比較し、比較した結果を出力する操作である、コンピュータにより実施される方法。
1. A computer-implemented method for training an artificial intelligence (AI) model using a data processing (DP) accelerator, comprising:
receiving a request from the CPU to train the AI model based on a training data set containing a plurality of data blocks distributed by the CPU;
performing multiple DP iterations by multiple general purpose processing units (GPUs) arranged in a logical ring to train the AI model;
The multiple DP iterations are
For each DP iteration ,
In a first DP cycle, each of the plurality of GPUs performs a data compression operation in parallel on one of the plurality of data blocks to generate a respective first compressed data block ;
In a second DP cycle, each of the plurality of GPUs forwards, via an interprocessor link, a respective first compressed data block to a GPU downstream in the logical ring for further processing; and each receive, via a corresponding interprocessor link or CCIX connection, from an upstream GPU in the logical ring for further processing a second compressed data block generated by the upstream GPU performing a data compression operation; death,
In the third DP cycle, each of the plurality of GPUs processes the first compressed data block processed by the current GPU and the second compressed data block processed by the corresponding upstream GPU and received from that GPU. performing a summation operation on the blocks to produce a first DP result;
In a fourth DP cycle, the plurality of GPUs each perform a data decompression operation on the first DP result, and the data blocks obtained by decompression are used for the next DP iteration. including
The summing operation pipelines the first compressed data block and the second compressed data block such that the bits in the bitmask field of one compressed data block are replaced by the bits in the bitmask field of the other compressed data block. A computer-implemented method that is an operation that compares the bits of and outputs the result of the comparison.
前記データブロックの少なくとも一部は、前記AIモデルのトレーニングの一部として生成されたパラメータまたは勾配を表す、請求項1に記載の方法。 2. The method of claim 1, wherein at least some of the data blocks represent parameters or gradients generated as part of training the AI model. 前記データ圧縮操作は、1つまたは複数のデータブロックを、ビットマスク部分および圧縮データ部分を有するデータ構造に圧縮するゼロ値圧縮アルゴリズムを使用して実行され、前記ビットマスク部分は、前記データブロックにおける非ゼロ値の位置を示すビットを含む、
請求項1に記載の方法。
The data compression operation is performed using a zero-value compression algorithm that compresses one or more data blocks into a data structure having a bitmask portion and a compressed data portion, wherein the bitmask portion is a containing bits indicating the positions of non-zero values,
The method of claim 1.
データ処理システムであって、
少なくとも一つの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の圧縮データブロックとをパイプライン化して、一方の圧縮データブロックのビットマスクフィールド内のビットを他方の圧縮データブロックのビットマスクフィールド内のビットと比較し、比較した結果を出力する操作である、データ処理システム。
A data processing system,
at least one CPU;
a plurality of general purpose processing units (GPUs) connected to the CPU;
each of the plurality of GPUs is configured to perform artificial intelligence AI data processing (DP) operations delivered from the CPU;
Said operation is
receiving a request from the CPU to train an AI model based on a training data set containing a plurality of data blocks distributed by the CPU;
performing multiple DP iterations by multiple general purpose processing units (GPUs) arranged in a logical ring to train the AI model;
The multiple DP iterations are
For each DP iteration ,
In a first DP cycle, each of the plurality of GPUs performs a data compression operation in parallel on one of the plurality of data blocks to generate a respective first compressed data block ;
In a second DP cycle, each of the plurality of GPUs forwards, via an interprocessor link, a respective first compressed data block to a GPU downstream in the logical ring for further processing; and each receive, via a corresponding interprocessor link or CCIX connection, from an upstream GPU in the logical ring for further processing a second compressed data block generated by the upstream GPU performing a data compression operation; death,
In the third DP cycle, each of the plurality of GPUs processes the first compressed data block processed by the current GPU and the second compressed data block processed by the corresponding upstream GPU and received from that GPU. performing a summation operation on the blocks to produce a first DP result;
In a fourth DP cycle, the plurality of GPUs each perform a data decompression operation on the first DP result, and the data blocks obtained by decompression are used for the next DP iteration. including
The summing operation pipelines the first compressed data block and the second compressed data block such that the bits in the bitmask field of one compressed data block are replaced by the bits in the bitmask field of the other compressed data block. A data processing system that is an operation that compares the bits in and outputs the result of the comparison.
指令が記憶された非一時的な機械可読媒体であって、
前記指令は、プロセッサによって実行されると、前記プロセッサに人工知能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の圧縮データブロックとをパイプライン化して、一方の圧縮データブロックのビットマスクフィールド内のビットを他方の圧縮データブロックのビットマスクフィールド内のビットと比較し、比較した結果を出力する操作である、非一時的な機械可読媒体。
A non-transitory machine-readable medium having instructions stored thereon,
The instructions, when executed by a processor, cause the processor to perform operations of artificial intelligence AI training, the operations comprising:
receiving a request from the CPU to train an AI model based on a training data set containing a plurality of data blocks distributed by the CPU;
performing multiple DP iterations by multiple general purpose processing units (GPUs) arranged in a logical ring to train the AI model;
The multiple DP iterations are
For each DP iteration ,
In a first DP cycle, each of the plurality of GPUs performs a data compression operation in parallel on one of the plurality of data blocks to generate a respective first compressed data block ;
In a second DP cycle, each of the plurality of GPUs forwards, via an interprocessor link, a respective first compressed data block to a GPU downstream in the logical ring for further processing; and each receive, via a corresponding interprocessor link or CCIX connection, from an upstream GPU in the logical ring for further processing a second compressed data block generated by the upstream GPU performing a data compression operation; death,
In the third DP cycle, each of the plurality of GPUs processes the first compressed data block processed by the current GPU and the second compressed data block processed by the corresponding upstream GPU and received from that GPU. performing a summation operation on the blocks to produce a first DP result;
In a fourth DP cycle, the plurality of GPUs each perform a data decompression operation on the first DP result, and the data blocks obtained by decompression are used for the next DP iteration. including
The summing operation pipelines the first compressed data block and the second compressed data block such that the bits in the bitmask field of one compressed data block are replaced by the bits in the bitmask field of the other compressed data block. A non-transitory machine-readable medium that is an operation that compares the bits of and outputs the result of the comparison.
コンピュータプログラムであって、
前記コンピュータプログラムがプロセッサにより実行されると、前記請求項1乃至の何れか一項に記載の方法を実現させるコンピュータプログラム。
A computer program,
A computer program for implementing the method of any one of claims 1 to 3 when said computer program is executed by a processor.
JP2020536955A 2019-10-12 2019-10-12 Method and system for accelerating AI training using advanced interconnect technology Active JP7256811B2 (en)

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 (en) 2022-01-14
JP7256811B2 true JP7256811B2 (en) 2023-04-12

Family

ID=75437678

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020536955A Active JP7256811B2 (en) 2019-10-12 2019-10-12 Method and system for accelerating AI training using advanced interconnect technology

Country Status (6)

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

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118119963A (en) * 2021-08-16 2024-05-31 百度时代网络技术(北京)有限公司 Hardware Adaptive Multi-Model Scheduling
CN114153590B (en) * 2021-10-19 2025-05-09 广州文远知行科技有限公司 A large-scale simulation and model derivation method, device, equipment and storage medium
CN114218127B (en) * 2021-12-10 2025-07-15 中山大学 A deep learning data management method on a hybrid memory multi-core CPU system
CN114707651A (en) * 2022-04-01 2022-07-05 上海燧原科技有限公司 A method, device, device and medium for topology selection of reduction operation
CN114764942B (en) * 2022-05-20 2022-12-09 清华大学深圳国际研究生院 Difficult positive and negative sample online mining method and face recognition method
CN115250253B (en) * 2022-06-22 2024-02-27 西南交通大学 Reduction processing method for bandwidth perception and training method for AI model
EP4361889A1 (en) * 2022-10-31 2024-05-01 Imagination Technologies Limited Implementing a scatter function on a neural network accelerator
CN118568066A (en) * 2023-02-28 2024-08-30 中兴通讯股份有限公司 Time series data compression method, collection method, device and readable storage medium
CN116644785A (en) * 2023-05-05 2023-08-25 硒钼科技(北京)有限公司 Training method of physical basic model
US12395187B2 (en) * 2023-08-18 2025-08-19 Mediatek, Inc. Computer architecture with data decompression support for neural network computing
US20250298717A1 (en) * 2024-03-20 2025-09-25 Maxeler Technologies Ltd. Deep learning data compression using multiple hardware accelerator architectures

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010521728A (en) 2007-03-15 2010-06-24 リニア アルジェブラ テクノロジーズ リミテッド Circuit for data compression and processor using the same
JP2011511986A (en) 2008-02-11 2011-04-14 リニア アルジェブラ テクノロジーズ リミテッド Processor
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 (en) 2018-12-27 2019-06-28 北京盛博协同科技有限责任公司 Synthetical display control module
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 (en) * 1993-08-06 1995-03-31 Toshiba Corp Data processing device
CN104035751B (en) * 2014-06-20 2016-10-12 深圳市腾讯计算机系统有限公司 Data parallel processing method based on multi-graphics processor and device
CN104899641B (en) 2015-05-25 2018-07-13 杭州朗和科技有限公司 Deep neural network learning method, processor and deep neural network learning system
US10763893B2 (en) * 2016-07-20 2020-09-01 Georges Harik Method for data compression
CN108229687B (en) * 2016-12-14 2021-08-24 腾讯科技(深圳)有限公司 Data processing method, data processing device and electronic equipment
KR102457463B1 (en) * 2017-01-16 2022-10-21 한국전자통신연구원 Compressed neural network system using sparse parameter and design method thereof
CN110582748A (en) * 2017-04-07 2019-12-17 英特尔公司 Method and system for improving deep neural networks for deep learning
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 (en) * 2018-02-09 2023-04-18 中兴通讯股份有限公司 Model training method, server, and computer-readable storage medium
CN110197275B (en) * 2018-02-27 2020-08-04 上海寒武纪信息科技有限公司 Integrated circuit chip devices and related products
CN109214512B (en) * 2018-08-01 2021-01-22 中兴飞流信息科技有限公司 Deep learning parameter exchange method, device, server and storage medium
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 (en) 2007-03-15 2010-06-24 リニア アルジェブラ テクノロジーズ リミテッド Circuit for data compression and processor using the same
JP2011511986A (en) 2008-02-11 2011-04-14 リニア アルジェブラ テクノロジーズ リミテッド Processor
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 (en) 2018-12-27 2019-06-28 北京盛博协同科技有限责任公司 Synthetical display control module

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 (en) 2022-01-14
KR20210044180A (en) 2021-04-22
US20210318878A1 (en) 2021-10-14
EP3830764A1 (en) 2021-06-09
EP3830764A4 (en) 2021-06-09
WO2021068243A1 (en) 2021-04-15
KR102472282B1 (en) 2022-11-29
US11544067B2 (en) 2023-01-03
CN113272854B (en) 2024-12-31
CN113272854A (en) 2021-08-17

Similar Documents

Publication Publication Date Title
JP7256811B2 (en) Method and system for accelerating AI training using advanced interconnect technology
CN106991477B (en) Artificial neural network compression coding device and method
CN111860811B (en) Device and method for executing full-connection layer forward operation of artificial neural network
US10872290B2 (en) Neural network processor with direct memory access and hardware acceleration circuits
CN114450699B (en) Method implemented by processing unit, readable storage medium and processing unit
CN111340200B (en) Device and method for performing forward operation of artificial neural network
CN107729990A (en) Support the device and method for being used to perform artificial neural network forward operation that discrete data represents
CN107341541A (en) An apparatus and method for performing fully connected layer neural network training
US20220076095A1 (en) Multi-level sparse neural networks with dynamic rerouting
CN108090565A (en) Accelerated method is trained in a kind of convolutional neural networks parallelization
CN111860812A (en) An apparatus and method for performing convolutional neural network training
CN107301453A (en) Artificial neural network forward operation device and method supporting discrete data representation
CN114402293A (en) Pipelined neural network processing with continuous and asynchronous updates
US20210201110A1 (en) Methods and systems for performing inference with a neural network
CN113330466A (en) Systems and methods involving aspects and/or other features of hybrid quantum machines, quantum information techniques
US20250111217A1 (en) Data layout conscious processing in memory architecture for executing neural network model
US11500680B2 (en) Systolic array-friendly data placement and control based on masked write
CN113424198B (en) Distributed AI training topology based on flexible cable connection
CN120218190B (en) Distributed training method and system, electronic device and storage medium
CN114556260A (en) Apparatus and system for performing neural networks
WO2017177446A1 (en) Discrete data representation-supporting apparatus and method for back-training of artificial neural network
CN116583853A (en) Implementation of artificial neural network computation using multiple deep learning accelerators
CN111078286B (en) Data communication method, computing system and storage medium
CN111198714B (en) Retraining method and related product
CN109325582B (en) Computing device and method for binary neural network

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