JP2021513172A - グラフィックス処理ユニット上の高性能スパース三角解 - Google Patents
グラフィックス処理ユニット上の高性能スパース三角解 Download PDFInfo
- Publication number
- JP2021513172A JP2021513172A JP2020554425A JP2020554425A JP2021513172A JP 2021513172 A JP2021513172 A JP 2021513172A JP 2020554425 A JP2020554425 A JP 2020554425A JP 2020554425 A JP2020554425 A JP 2020554425A JP 2021513172 A JP2021513172 A JP 2021513172A
- Authority
- JP
- Japan
- Prior art keywords
- elements
- completion
- array
- value
- completion flag
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/3009—Thread control instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Complex Calculations (AREA)
- Advance Control (AREA)
Abstract
【選択図】図8
Description
Claims (22)
- スパース三角行列を圧縮スパース行(CSR)データセットとして格納することと、
第1のベクトル内の複数の要素毎に、
前記要素について、前記第1のベクトル内の1つ以上の先行要素のセットを識別することであって、前記要素の値は、前記1つ以上の先行要素の各々に依存する、ことと、
前記1つ以上の先行要素の全ての値が解かれたことを完了アレイが示すことに応じて、前記行列の行内の1つ以上の要素、及び、前記行に対応する積値に基づいて、前記要素の値を計算することと、
前記完了アレイにおいて、前記要素が解かれたことを示す、前記要素の第1の完了フラグをアサートすることと、
によって、前記要素の値を計算することと、を含む、
方法。 - 前記行列の要素を前記CSRデータセットの値アレイに格納することと、
前記CSRデータセットの列アレイにおいて、前記値アレイに格納された前記要素毎に前記行列の列を識別することと、
前記CSRデータセットの行ポインタアレイにおいて、前記行列の各々の行内の前記要素を識別することと、をさらに含む、
請求項1の方法。 - 前記複数の要素毎に、前記要素の値を計算するためのスレッドを開始することをさらに含み、
前記スレッドは、並列に実行される複数のスレッドのうち1つのスレッドである、
請求項1の方法。 - 前記複数のスレッド毎に、
前記完了アレイ内の第2の完了フラグを監視するために前記スレッドにおいて実行されるスピンループの反復回数をカウントすることであって、前記第2の完了フラグは、1つの前記先行要素に関連付けられている、ことと、
前記反復回数が制限を超えたことに応じて、
前記スピンループを終了することと、
複数の並列処理スレッドの全てが完了した場合に、実行される子カーネルをエンキューすることと、
前記子カーネルにおいて新たなスレッド内の前記完了フラグを監視することと、をさらに含む、
請求項3の方法。 - 子開始フラグをチェックすることであって、前記子カーネルをエンキューすることは、前記子開始フラグがデアサートされた場合に実行される、ことと、
前記子カーネルをエンキューすることに関連して、前記子開始フラグをアサートすることと、をさらに含む、
請求項4の方法。 - 前記複数の要素毎に、
第1のスピンループを実行して、前記完了アレイ内の第1の完了フラグを監視することであって、前記第1の完了フラグは、前記CSRデータセットの列アレイ内の第1の位置において指定されており、前記列アレイ内の前記第1の位置は、前記要素に対応する行ポインタによって示されている、ことと、
前記第1の完了フラグがアサートされ、前記列アレイ内の第2の位置が前記スパース三角行列の非対角線要素に対応すると判別したことに応じて、第2のスピンループを実行して、前記完了アレイ内の第2の完了フラグを監視することであって、前記第2の完了フラグは、前記列アレイ内の前記第2の位置において指定されている、ことと、をさらに含む、
請求項1の方法。 - 行ポインタアレイ内の前記行ポインタの位置は、前記ベクトル内の前記要素の位置に対応しており、
前記行ポインタは、前記列アレイ内の前記第1の位置のインデックスであり、
前記列アレイの前記第1の位置は、前記完了アレイの前記完了フラグのインデックスを格納する、
請求項6の方法。 - 前記複数の要素毎に、
前記先行要素の各々の完了フラグを格納することと、
前記先行要素の前記完了フラグの中で最高値を有する完了フラグをインクリメントすることによって、前記要素の前記完了フラグの値を決定することと、
前記要素の前記完了フラグの決定された値を、前記要素に対応する位置の前記完了アレイに格納することによって、前記要素の前記完了フラグをアサートすることと、をさらに含む、
請求項1の方法。 - 第2のベクトル内の複数の要素毎に、前記完了アレイ内の前記要素に対応する前記完了フラグの値に基づいて、前記要素の階層を決定することと、
決定された前記階層に応じた順序で前記第2のベクトル内の各要素の値を計算することであって、同一の階層内の前記複数の要素のうち少なくとも2つの要素の値は、並列に計算される、ことと、をさらに含む、
請求項8の方法。 - 前記CSRデータセットは、メモリシステムに格納され、
前記複数の要素毎に、前記要素の値は、前記メモリシステムに接続されたソルバー回路において計算される、
請求項1の方法。 - スピンループ回路を使用して、前記完了アレイから前記第1の完了フラグを読み出すことをさらに含み、
前記完了アレイは、メモリシステムに格納されており、
前記完了アレイの前記第1の完了フラグをアサートすることは、前記スピンループ回路と前記メモリシステムとに接続されたソルバー回路によって実行される、
請求項1の方法。 - スパース三角行列を圧縮スパース行(CSR)データセットとして格納するように構成されたメモリと、
前記メモリに接続された処理ユニットと、を備え、
前記処理ユニットは、
第1のベクトル内の複数の要素毎に、
前記要素について、前記第1のベクトル内の1つ以上の先行要素のセットを識別することであって、前記要素の値は、前記1つ以上の先行要素の各々に依存する、ことと、
前記1つ以上の先行要素の全ての値が解かれたことを完了アレイが示すことに応じて、前記行列の行内の1つ以上の要素、及び、前記行に対応する積値に基づいて、前記要素の値を計算することと、
前記完了アレイにおいて、前記要素が解かれたことを示す、前記要素の完了フラグをアサートすることと、
によって、前記要素の値を計算する、ように構成されている、
コンピューティングデバイス。 - 前記CSRデータセットは、
前記行列の要素を格納するように構成された値アレイと、
前記値アレイに格納された前記要素の各々についての前記行列の列を識別するように構成された列アレイと、
前記行列の各々の行内の前記要素を識別するように構成された行ポインタアレイと、をさらに含む、
請求項12のコンピューティングデバイス。 - 前記処理ユニットは、
前記ベクトル内の1つの前記要素の値を計算するために複数の並列スレッドのスレッドをそれぞれ実行するように構成された複数のプロセッシングコアを含む、
請求項12のコンピューティングデバイス。 - 前記複数のプロセッシングコアの各々は、
前記スレッドにおいてスピンループを実行することによって、前記完了アレイ内の完了フラグを監視することと、
前記スピンループの反復回数が所定の制限を超えたことに応じて、
前記スピンループを終了することと、
複数の並列処理スレッドの全てが完了した場合に、前記完了フラグを監視するための新たなスレッドを実行することと、
を行うように構成されている、
請求項14のコンピューティングデバイス。 - 前記処理ユニットは、
第1のスピンループを実行して前記完了アレイ内の第1の完了フラグを監視することであって、前記第1の完了フラグは、前記CSRデータセットの列アレイ内の第1の位置において指定されており、前記列アレイ内の前記第1の位置は、第1のベクトル内の前記複数の要素のうち1つに対応する行ポインタによって示されている、ことと、
前記第1の完了フラグがアサートされたと判別し、前記列アレイ内の第2の位置が前記スパース三角行列の非対角線要素に対応すると判別したことに応じて、第2のスピンループを実行して前記完了アレイ内の第2の完了フラグを監視することであって、前記第2の完了フラグは、前記列アレイ内の前記第2の位置において指定されている、ことと、
を行うように構成された複数のプロセッシングコアを含む、
請求項12のコンピューティングデバイス。 - 前記メモリ内の完了アレイをさらに備え、前記完了アレイは、前記複数の要素毎に完了フラグを格納するように構成されており、
前記処理ユニットは、前記複数の要素毎に、
前記先行要素の前記完了フラグの中で最高値をインクリメントすることによって、前記要素の前記完了フラグの値を決定することと、
前記要素の前記完了フラグの決定された値を、前記要素に対応する位置の前記完了アレイに格納することによって、前記要素の前記完了フラグをアサートすることと、
を行うように構成されている、
請求項12のコンピューティングデバイス。 - 前記処理ユニットは、
第2のベクトル内の複数の要素毎に、前記完了アレイ内の前記要素に対応する前記完了フラグの値に基づいて、前記要素の階層を決定することと、
決定された前記階層に応じた順序で前記第2のベクトル内の各要素の値を計算することであって、同一の階層内の前記複数の要素のうち少なくとも2つの要素の値は、並列に計算される、ことと、
を行うように構成されている、
請求項17のコンピューティングデバイス。 - スパース三角行列を圧縮スパース行(CSR)データセットとして格納するように構成されたメモリシステムと、
前記メモリシステムに接続された1つ以上の処理ユニットのセットと、を備え、
前記処理ユニットのセット内の各処理ユニットは、
第1のベクトル内の複数の要素毎に、
前記要素について、前記第1のベクトル内の1つ以上の先行要素のセットを識別することであって、前記要素の値は、前記1つ以上の先行要素の各々に依存する、ことと、
前記1つ以上の先行要素の全ての値が解かれたことを完了アレイが示すことに応じて、前記行列の行内の1つ以上の要素、及び、前記行に対応する積値に基づいて、前記要素の値を計算することと、
前記完了アレイにおいて、前記要素が解かれたことを示す、前記要素の完了フラグをアサートすることと、
によって、前記要素の値を計算するように構成されている、
コンピューティングシステム。 - 前記処理ユニットのセット内の各処理ユニットは、
複数の並列スレッドのうち少なくとも1つを実行するように構成されており、前記複数の並列スレッドの各々は、前記複数の要素のうち1つの値を計算する、
請求項19のコンピューティングシステム。 - 前記処理ユニットのセット内の各処理ユニットは、単一の集積回路ダイ上に複数のプロセッシングコアを含み、前記複数のプロセッシングコアの各々は、前記複数の並列スレッドのうち1つを実行するように構成されている、
請求項20のコンピューティングシステム。 - 前記処理ユニットのセット内の各処理ユニットは、前記処理ユニットのセット内の他の処理ユニットとは別の集積回路ダイ上のグラフィックス処理ユニット(GPU)である、
請求項19のコンピューティングシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/958,265 | 2018-04-20 | ||
US15/958,265 US10691772B2 (en) | 2018-04-20 | 2018-04-20 | High-performance sparse triangular solve on graphics processing units |
PCT/US2019/014475 WO2019203908A1 (en) | 2018-04-20 | 2019-01-22 | High-performance sparse triangular solve on graphics processing units |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021513172A true JP2021513172A (ja) | 2021-05-20 |
JP7109576B2 JP7109576B2 (ja) | 2022-07-29 |
Family
ID=65352166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020554425A Active JP7109576B2 (ja) | 2018-04-20 | 2019-01-22 | グラフィックス処理ユニット上の高性能スパース三角解 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10691772B2 (ja) |
EP (1) | EP3782051A1 (ja) |
JP (1) | JP7109576B2 (ja) |
KR (1) | KR102355990B1 (ja) |
CN (1) | CN112074830B (ja) |
WO (1) | WO2019203908A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10691772B2 (en) * | 2018-04-20 | 2020-06-23 | Advanced Micro Devices, Inc. | High-performance sparse triangular solve on graphics processing units |
US10936697B2 (en) * | 2018-07-24 | 2021-03-02 | Advanced Micro Devices, Inc. | Optimized and scalable sparse triangular linear systems on networks of accelerators |
US11921784B2 (en) * | 2021-05-13 | 2024-03-05 | Advanced Micro Devices, Inc. | Flexible, scalable graph-processing accelerator |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06236255A (ja) * | 1992-01-06 | 1994-08-23 | Intel Corp | 並列桁上げ発生ネットワーク、並列加算器ネットワーク、桁上げ発生モジュール、マルチビット加算器ネットワークおよびモジュラー桁上げ伝ぱんユニット |
JP2008544610A (ja) * | 2005-06-10 | 2008-12-04 | デジタル ファウンテン, インコーポレイテッド | さまざまな符号クラスの符号化および復号化への応用を有するインプレース変換 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6694343B2 (en) * | 2001-02-08 | 2004-02-17 | International Business Machines Corporation | Method for solving a large sparse triangular system of linear equations |
WO2004006443A1 (en) * | 2002-07-03 | 2004-01-15 | Hughes Electronics Corporation | Bit-interleaved coded modulation using low density parity check (ldpc) codes |
US8775495B2 (en) * | 2006-02-13 | 2014-07-08 | Indiana University Research And Technology | Compression system and method for accelerating sparse matrix computations |
US8364739B2 (en) * | 2009-09-30 | 2013-01-29 | International Business Machines Corporation | Sparse matrix-vector multiplication on graphics processor units |
WO2011156247A2 (en) * | 2010-06-11 | 2011-12-15 | Massachusetts Institute Of Technology | Processor for large graph algorithm computations and matrix operations |
CN104461467B (zh) * | 2013-09-25 | 2018-05-04 | 广州中国科学院软件应用技术研究所 | 针对SMP集群系统采用MPI和OpenMP混合并行提高计算速度的方法 |
CN104461466B (zh) * | 2013-09-25 | 2018-09-21 | 广州中国科学院软件应用技术研究所 | 基于MPI和OpenMP混合编程模型并行计算提高计算速度的方法 |
US10061747B2 (en) * | 2014-05-07 | 2018-08-28 | Seagate Technology Llc | Storage of a matrix on a storage compute device |
US9697176B2 (en) * | 2014-11-14 | 2017-07-04 | Advanced Micro Devices, Inc. | Efficient sparse matrix-vector multiplication on parallel processors |
US9760538B2 (en) * | 2014-12-22 | 2017-09-12 | Palo Alto Research Center Incorporated | Computer-implemented system and method for efficient sparse matrix representation and processing |
US10572568B2 (en) * | 2018-03-28 | 2020-02-25 | Intel Corporation | Accelerator for sparse-dense matrix multiplication |
US10691772B2 (en) * | 2018-04-20 | 2020-06-23 | Advanced Micro Devices, Inc. | High-performance sparse triangular solve on graphics processing units |
US10936697B2 (en) * | 2018-07-24 | 2021-03-02 | Advanced Micro Devices, Inc. | Optimized and scalable sparse triangular linear systems on networks of accelerators |
-
2018
- 2018-04-20 US US15/958,265 patent/US10691772B2/en active Active
-
2019
- 2019-01-22 KR KR1020207032177A patent/KR102355990B1/ko active IP Right Grant
- 2019-01-22 EP EP19704146.0A patent/EP3782051A1/en active Pending
- 2019-01-22 WO PCT/US2019/014475 patent/WO2019203908A1/en active Application Filing
- 2019-01-22 JP JP2020554425A patent/JP7109576B2/ja active Active
- 2019-01-22 CN CN201980030089.7A patent/CN112074830B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06236255A (ja) * | 1992-01-06 | 1994-08-23 | Intel Corp | 並列桁上げ発生ネットワーク、並列加算器ネットワーク、桁上げ発生モジュール、マルチビット加算器ネットワークおよびモジュラー桁上げ伝ぱんユニット |
JP2008544610A (ja) * | 2005-06-10 | 2008-12-04 | デジタル ファウンテン, インコーポレイテッド | さまざまな符号クラスの符号化および復号化への応用を有するインプレース変換 |
Also Published As
Publication number | Publication date |
---|---|
CN112074830A (zh) | 2020-12-11 |
US10691772B2 (en) | 2020-06-23 |
EP3782051A1 (en) | 2021-02-24 |
KR20210002521A (ko) | 2021-01-08 |
CN112074830B (zh) | 2022-06-21 |
WO2019203908A1 (en) | 2019-10-24 |
JP7109576B2 (ja) | 2022-07-29 |
US20190325005A1 (en) | 2019-10-24 |
KR102355990B1 (ko) | 2022-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ozdal et al. | Energy efficient architecture for graph analytics accelerators | |
US10515135B1 (en) | Data format suitable for fast massively parallel general matrix multiplication in a programmable IC | |
JP2016119084A (ja) | 効率的な疎行列表現及び処理のためのコンピュータ実装システム及び方法 | |
US20130226535A1 (en) | Concurrent simulation system using graphic processing units (gpu) and method thereof | |
JP7109576B2 (ja) | グラフィックス処理ユニット上の高性能スパース三角解 | |
US20170185700A1 (en) | Selective Execution For Partitioned Parallel Simulations | |
US9910714B2 (en) | Scriptable dynamic load balancing in computer systems | |
Song et al. | Sextans: A streaming accelerator for general-purpose sparse-matrix dense-matrix multiplication | |
JP2020537785A (ja) | ホスト通信されるマージされた重みと層単位命令のパッケージとを使用するニューラルネットワークアクセラレータによる多層ニューラルネットワーク処理 | |
TWI827792B (zh) | 多路徑神經網路、資源配置的方法及多路徑神經網路分析器 | |
EP2657842B1 (en) | Workload optimization in a multi-processor system executing sparse-matrix vector multiplication | |
CN111695672A (zh) | 用于提高ai引擎mac利用率的方法 | |
Corral et al. | Execution of a parallel edge-based Navier–Stokes solver on commodity graphics processor units | |
Bartezzaghi et al. | An explicit dynamics GPU structural solver for thin shell finite elements | |
US20210312014A1 (en) | Asymmetric allocation of sram and data layout for efficient matrix-matrix multiplication | |
US10936697B2 (en) | Optimized and scalable sparse triangular linear systems on networks of accelerators | |
US11036827B1 (en) | Software-defined buffer/transposer for general matrix multiplication in a programmable IC | |
US11921784B2 (en) | Flexible, scalable graph-processing accelerator | |
US11249910B2 (en) | Initialization and management of class of service attributes in runtime to optimize deep learning training in distributed environments | |
Xiao et al. | A parallel multi-unit resource deadlock detection algorithm with O (log2 (min (m, n))) overall run-time complexity | |
Saule et al. | An out-of-core task-based middleware for data-intensive scientific computing | |
US11630667B2 (en) | Dedicated vector sub-processor system | |
Somers | Acceleration of Block-Aware Matrix Factorization on Heterogeneous Platforms | |
Bedi et al. | Big Data Analysis with Dataset Scaling in Yet another Resource Negotiator (YARN) | |
WO2022240463A1 (en) | Flexible, scalable graph-processing accelerator |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20201214 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20201214 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20201214 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20210428 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210511 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210806 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20211102 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20220202 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220315 |
|
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: 20220621 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220719 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7109576 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |