論文の概要: Flexible Performant GEMM Kernels on GPUs
- arxiv url: http://arxiv.org/abs/2009.12263v4
- Date: Mon, 22 Nov 2021 09:33:21 GMT
- ステータス: 処理完了
- システム内更新日: 2022-10-14 23:33:30.377034
- Title: Flexible Performant GEMM Kernels on GPUs
- Title(参考訳): GPU上のフレキシブルなパフォーマンスGEMMカーネル
- Authors: Thomas Faingnaert, Tim Besard, Bjorn De Sutter
- Abstract要約: 科学的なJuliaプログラミング言語内でGEMMをプログラムするための抽象化とインタフェースを3セット提示する。
インターフェースと抽象化は、研究者のニーズとJuliaの機能のために、十分な関心事と柔軟性の分離を実現するために共同設計されている。
- 参考スコア(独自算出の注目度): 2.0711877803169134
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: General Matrix Multiplication or GEMM kernels take centre place in high
performance computing and machine learning. Recent NVIDIA GPUs include GEMM
accelerators, such as NVIDIA's Tensor Cores. Their exploitation is hampered by
the two-language problem: it requires either low-level programming which
implies low programmer productivity or using libraries that only offer a
limited set of components. Because rephrasing algorithms in terms of
established components often introduces overhead, the libraries' lack of
flexibility limits the freedom to explore new algorithms. Researchers using
GEMMs can hence not enjoy programming productivity, high performance, and
research flexibility at once.
In this paper we solve this problem. We present three sets of abstractions
and interfaces to program GEMMs within the scientific Julia programming
language. The interfaces and abstractions are co-designed for researchers'
needs and Julia's features to achieve sufficient separation of concerns and
flexibility to easily extend basic GEMMs in many different ways without paying
a performance price. Comparing our GEMMs to state-of-the-art libraries cuBLAS
and CUTLASS, we demonstrate that our performance is in the same ballpark of the
libraries, and in some cases even exceeds it, without having to write a single
line of code in CUDA C++ or assembly, and without facing flexibility
limitations.
- Abstract(参考訳): GEMMカーネル(General Matrix Multiplication)は、高性能コンピューティングと機械学習の中心となるカーネルである。
最近のNVIDIA GPUには、NVIDIAのTensor CoresのようなGEMMアクセラレータが含まれる。
プログラマの生産性が低いことを暗示する低レベルプログラミングか、限られたコンポーネントセットのみを提供するライブラリを使うかのどちらかが必要です。
確立されたコンポーネントの観点からアルゴリズムを言い換えると、しばしばオーバーヘッドが発生するため、ライブラリの柔軟性の欠如により、新しいアルゴリズムを探索する自由が制限される。
したがって、GEMMを使用する研究者は、プログラミングの生産性、高性能、そして研究の柔軟性を一度に享受できない。
本稿ではこの問題を解決する。
科学的なJuliaプログラミング言語内でGEMMをプログラムするための抽象化とインタフェースを3セット提示する。
インターフェースと抽象化は研究者のニーズとJuliaの機能のために共同設計され、基本的なGEMMをさまざまな方法で容易に拡張できるような懸念と柔軟性の十分な分離を実現している。
GEMMを最先端のライブラリ cuBLAS や CUTLASS と比較すると、我々のパフォーマンスはライブラリの同じ球場にあり、時にはCUDA C++ やアセンブリに1行のコードを書かなくても、柔軟性の制限に直面することなく、それを超えるものさえあります。
関連論文リスト
- Designing and Implementing a Generator Framework for a SIMD Abstraction Library [53.84310825081338]
SIMD抽象化ライブラリを生成するための新しいエンドツーエンドフレームワークであるTSLGenを提案する。
私たちのフレームワークは既存のライブラリに匹敵するもので、同じパフォーマンスを実現しています。
論文 参考訳(メタデータ) (2024-07-26T13:25:38Z) - Benchmarking Predictive Coding Networks -- Made Simple [48.652114040426625]
まず,性能と簡易性を重視したPCXというライブラリを提案する。
私たちはPCXを使って、コミュニティが実験に使用する大規模なベンチマークを実装しています。
論文 参考訳(メタデータ) (2024-07-01T10:33:44Z) - Hierarchical Resource Partitioning on Modern GPUs: A Reinforcement Learning Approach [1.076745840431781]
本稿では,階層的分割のセットアップと,与えられたジョブ集合からの協調スケジューリンググループの選択を包括的に協調する手法を提案する。
これにより、時間共有スケジューリングに比べて最大スループットが1.87倍向上する。
論文 参考訳(メタデータ) (2024-05-14T16:40:06Z) - An approach to performance portability through generic programming [0.0]
この研究は、低レベルおよび冗長なプログラミングツールを、C++のテンプレートメタプログラミングに基づく高レベルな汎用アルゴリズムに統合するための設計アプローチを説明する。
これにより、HPCのハードウェアの多様化期間において、科学ソフトウェアは保守性と効率が向上する。
論文 参考訳(メタデータ) (2023-11-08T21:54:43Z) - Tackling the Matrix Multiplication Micro-kernel Generation with Exo [0.5517652814152908]
新しいハードウェアごとに専用のマイクロカーネルを生成するためのステップバイステップの手順を提案する。
ハードウェアターゲットは、その命令の簡潔なライブラリベースの記述によって完全に指定されるため、生成したコードの移植性も向上する。
論文 参考訳(メタデータ) (2023-10-26T14:09:57Z) - FusionAI: Decentralized Training and Deploying LLMs with Massive
Consumer-Level GPUs [57.12856172329322]
我々は、巨大な未使用のコンシューマレベルのGPUをアンロックする分散システムを構想する。
このシステムは、CPUとGPUメモリの制限、ネットワーク帯域幅の低さ、ピアとデバイスの多様性など、重要な課題に直面している。
論文 参考訳(メタデータ) (2023-09-03T13:27:56Z) - Harnessing Deep Learning and HPC Kernels via High-Level Loop and Tensor Abstractions on CPU Architectures [67.47328776279204]
この研究は、効率的でポータブルなDeep LearningとHigh Performance Computingカーネルを開発するためのフレームワークを導入している。
1)プロセッシングプリミティブ(TPP)を用いた計算コアの表現と,2)高レベルな宣言的手法でTPPのまわりの論理ループの表現の2つのステップでカーネルの開発を分解する。
我々は、スタンドアロンカーネルと、さまざまなCPUプラットフォームにおける最先端実装よりも優れたエンドツーエンドワークロードを使用して、このアプローチの有効性を実証する。
論文 参考訳(メタデータ) (2023-04-25T05:04:44Z) - Towards making the most of NLP-based device mapping optimization for
OpenCL kernels [5.6596607119831575]
我々は、加速されたOpenCLカーネルのための最適なデバイス選択(CPUまたはGPU)の問題に取り組むCummins et al.、すなわちDeeptuneの開発を拡張した。
ソースコードの文脈情報を拡張した4つの異なるモデルを提案する。
実験の結果,提案手法はCumminsらの手法を上回り,予測精度を最大4%向上させることがわかった。
論文 参考訳(メタデータ) (2022-08-30T10:20:55Z) - PolyDL: Polyhedral Optimizations for Creation of High Performance DL
primitives [55.79741270235602]
本稿では,Deep Learningプリミティブの高性能実装を自動的に生成するコンパイラアルゴリズムを提案する。
我々は多面体モデルを用いた新しいデータ再利用分析アルゴリズムを開発した。
また、このようなハイブリッドコンパイラとライブラリ使用の最小限のアプローチが、最先端のパフォーマンスをもたらすことを示す。
論文 参考訳(メタデータ) (2020-06-02T06:44:09Z) - MPLP++: Fast, Parallel Dual Block-Coordinate Ascent for Dense Graphical
Models [96.1052289276254]
この研究は、人気のあるDual Block-Coordinate Ascent原則に基づく新しいMAP-solverを導入している。
驚いたことに、性能の低い解法に小さな変更を加えることで、既存の解法を大きなマージンで大幅に上回る新しい解法MPLP++を導出します。
論文 参考訳(メタデータ) (2020-04-16T16:20:53Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。