論文の概要: Optimal Kernel Orchestration for Tensor Programs with Korch
- arxiv url: http://arxiv.org/abs/2406.09465v1
- Date: Thu, 13 Jun 2024 04:44:38 GMT
- ステータス: 処理完了
- システム内更新日: 2024-06-17 17:44:16.382616
- Title: Optimal Kernel Orchestration for Tensor Programs with Korch
- Title(参考訳): Korchを用いたテンソルプログラムのための最適カーネルオーケストレーション
- Authors: Muyan Hu, Ashwin Venkatram, Shreyashri Biswas, Balamurugan Marimuthu, Bohan Hou, Gabriele Oliaro, Haojie Wang, Liyan Zheng, Xupeng Miao, Jidong Zhai,
- Abstract要約: カーネルオーケストレーションは、ディープニューラルネットワーク(DNN)のさまざまなオペレータで定義された計算を、現代的なハードウェアプラットフォーム上でGPUカーネルの実行にマッピングするタスクである。
本稿では,テンソルプログラムのための最適なカーネルオーケストレーション戦略を発見するプログラムであるKorchを提案する。
- 参考スコア(独自算出の注目度): 13.143585283794902
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: Kernel orchestration is the task of mapping the computation defined in different operators of a deep neural network (DNN) to the execution of GPU kernels on modern hardware platforms. Prior approaches optimize kernel orchestration by greedily applying operator fusion, which fuses the computation of multiple operators into a single kernel, and miss a variety of optimization opportunities in kernel orchestration. This paper presents Korch, a tensor program optimizer that discovers optimal kernel orchestration strategies for tensor programs. Instead of directly fusing operators, Korch first applies operator fission to decompose tensor operators into a small set of basic tensor algebra primitives. This decomposition enables a diversity of fine-grained, inter-operator optimizations. Next, Korch optimizes kernel orchestration by formalizing it as a constrained optimization problem, leveraging an off-the-shelf binary linear programming solver to discover an optimal orchestration strategy, and generating an executable that can be directly deployed on modern GPU platforms. Evaluation on a variety of DNNs shows that Korch outperforms existing tensor program optimizers by up to 1.7x on V100 GPUs and up to 1.6x on A100 GPUs. Korch is publicly available at https://github.com/humuyan/Korch.
- Abstract(参考訳): カーネルオーケストレーションは、ディープニューラルネットワーク(DNN)のさまざまなオペレータで定義された計算を、現代的なハードウェアプラットフォーム上でGPUカーネルの実行にマッピングするタスクである。
以前のアプローチでは、複数の演算子の計算を単一のカーネルに融合させ、カーネルオーケストレーションにおけるさまざまな最適化機会を逃す、演算子融合を適用してカーネルオーケストレーションを最適化していた。
本稿では、テンソルプログラムのための最適なカーネルオーケストレーション戦略を発見するテンソルプログラムオプティマイザであるKorchを提案する。
コルチは作用素を直接融合させる代わりに、まず作用素フィッションを適用して、テンソル作用素を基本テンソル代数原始体の小さな集合に分解する。
この分解により、細かな演算子間最適化が可能となる。
次にKorch氏は、カーネルオーケストレーションを制約付き最適化問題として形式化し、既製のバイナリリニアプログラミング解決器を活用して、最適なオーケストレーション戦略を発見し、現代的なGPUプラットフォームに直接デプロイ可能な実行ファイルを生成することで、カーネルオーケストレーションを最適化する。
さまざまなDNNの評価によると、KorchはV100 GPUでは最大1.7倍、A100 GPUでは最大1.6倍、既存のテンソルプログラムオプティマイザより優れている。
Korchはhttps://github.com/humuyan/Korch.comで公開されている。
関連論文リスト
- Explore as a Storm, Exploit as a Raindrop: On the Benefit of Fine-Tuning Kernel Schedulers with Coordinate Descent [48.791943145735]
カーネルの品質を向上しながら,Ansorの検索時間を短縮する可能性を示す。
このアプローチを、Ansorが生成した最初の300のカーネルに適用する。
この結果は20の有名なディープラーニングモデルで再現されている。
論文 参考訳(メタデータ) (2024-06-28T16:34:22Z) - 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) - ALT: Breaking the Wall between Graph and Operator Level Optimizations
for Deep Learning Compilation [38.8918502461244]
ALTはディープモデルのためのグラフと演算子レベルの共同最適化を行うコンパイラである。
JOGは、単一の演算子の性能とエンドツーエンドの推論性能の両方の観点から、最先端のコンパイラ(例えばAnsor)よりも大幅に優れている。
論文 参考訳(メタデータ) (2022-10-22T11:09:36Z) - Efficient Dataset Distillation Using Random Feature Approximation [109.07737733329019]
本稿では,ニューラルネットワークガウス過程(NNGP)カーネルのランダム特徴近似(RFA)を用いた新しいアルゴリズムを提案する。
我々のアルゴリズムは、KIP上で少なくとも100倍のスピードアップを提供し、1つのGPUで実行できる。
RFA蒸留 (RFAD) と呼ばれる本手法は, 大規模データセットの精度において, KIP や他のデータセット凝縮アルゴリズムと競合して動作する。
論文 参考訳(メタデータ) (2022-10-21T15:56:13Z) - OLLIE: Derivation-based Tensor Program Optimizer [13.23204410403652]
導出型テンソルプログラムOLLIEを提案する。
我々は,既存のテンソル式をA100 GPUで最大2.73$times$ (1.46$times$)、V100 GPUで最大2.68$times$1$times$で上回ることができることを示す。
論文 参考訳(メタデータ) (2022-08-02T14:38:58Z) - A Unified Framework for Implicit Sinkhorn Differentiation [58.56866763433335]
暗黙の微分によってシンクホーン層の解析勾配を求めるアルゴリズムを提案する。
特にGPUメモリなどのリソースが不足している場合には,計算効率が向上する。
論文 参考訳(メタデータ) (2022-05-13T14:45:31Z) - The CoRa Tensor Compiler: Compilation for Ragged Tensors with Minimal
Padding [14.635810503599759]
CoRaはテンソルコンパイラで、ユーザはタグ付きテンソル演算子の効率的なコードを簡単に生成できる。
我々は,ラッジテンソル上での各種演算子およびトランスモデルのエンコーダ層上でのCoRaの評価を行った。
論文 参考訳(メタデータ) (2021-10-19T19:39:04Z) - Kernel methods through the roof: handling billions of points efficiently [94.31450736250918]
カーネル法は、非パラメトリック学習に対するエレガントで原則化されたアプローチを提供するが、今のところ大規模な問題ではほとんど利用できない。
最近の進歩は、最適化、数値線形代数、ランダム射影など、多くのアルゴリズム的アイデアの利点を示している。
ここでは、これらの取り組みをさらに進めて、GPUハードウェアを最大限に活用する解決器を開発し、テストする。
論文 参考訳(メタデータ) (2020-06-18T08:16:25Z) - Kernel Operations on the GPU, with Autodiff, without Memory Overflows [5.669790037378094]
KeOpsライブラリは、数学的公式によってエントリが与えられるテンソルに対して、高速でメモリ効率のよいGPUサポートを提供する。
KeOpsは、カーネルおよび幾何学的アプリケーションのためのテンソル中心ライブラリの大きなボトルネックであるメモリ消費を緩和する。
KeOpsは、最適化されたC++/CUDAスキームと、Python(NumpyとPyTorch)、Matlab、Rのバインダーを組み合わせる。
論文 参考訳(メタデータ) (2020-03-27T08:54:10Z) - PolyScientist: Automatic Loop Transformations Combined with Microkernels
for Optimization of Deep Learning Primitives [55.79741270235602]
深層学習カーネル開発のためのハイブリッドソリューションを開発する。
我々は、高度な多面体技術を用いて、パフォーマンスのために外部ループを自動的に調整する。
論文 参考訳(メタデータ) (2020-02-06T08:02:34Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。