論文の概要: Tackling the Matrix Multiplication Micro-kernel Generation with Exo
- arxiv url: http://arxiv.org/abs/2310.17408v2
- Date: Fri, 27 Oct 2023 08:28:03 GMT
- ステータス: 処理完了
- システム内更新日: 2023-10-30 10:38:56.820866
- Title: Tackling the Matrix Multiplication Micro-kernel Generation with Exo
- Title(参考訳): Exoによるマトリックス乗算マイクロカーネルの生成
- Authors: Adri\'an Castell\'o, Julian Bellavita, Grace Dinh, Yuka Ikarashi,
H\'ector Mart\'inez
- Abstract要約: 新しいハードウェアごとに専用のマイクロカーネルを生成するためのステップバイステップの手順を提案する。
ハードウェアターゲットは、その命令の簡潔なライブラリベースの記述によって完全に指定されるため、生成したコードの移植性も向上する。
- 参考スコア(独自算出の注目度): 0.5517652814152908
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: The optimization of the matrix multiplication (or GEMM) has been a need
during the last decades. This operation is considered the flagship of current
linear algebra libraries such as BLIS, OpenBLAS, or Intel OneAPI because of its
widespread use in a large variety of scientific applications. The GEMM is
usually implemented following the GotoBLAS philosophy, which tiles the GEMM
operands and uses a series of nested loops for performance improvement. These
approaches extract the maximum computational power of the architectures through
small pieces of hardware-oriented, high-performance code called micro-kernel.
However, this approach forces developers to generate, with a non-negligible
effort, a dedicated micro-kernel for each new hardware.
In this work, we present a step-by-step procedure for generating
micro-kernels with the Exo compiler that performs close to (or even better
than) manually developed microkernels written with intrinsic functions or
assembly language. Our solution also improves the portability of the generated
code, since a hardware target is fully specified by a concise library-based
description of its instructions.
- Abstract(参考訳): 行列乗法(gem)の最適化は、過去数十年間、必要とされてきた。
この操作は、blis、openblas、intel oneapiのような現在の線形代数ライブラリのフラッグシップであると考えられている。
GEMMは通常、GotoBLASの哲学に従って実装され、GEMMのオペランドをタイル化し、一連のネストループを使用してパフォーマンスを改善している。
これらの手法は、マイクロカーネルと呼ばれるハードウェア指向の高性能な小さなコードを通してアーキテクチャの最大計算能力を抽出する。
しかし、このアプローチによって開発者は、新しいハードウェアごとに専用のマイクロカーネルを作成せざるを得ない。
本稿では,組み込み関数やアセンブリ言語で記述された手作業によるマイクロカーネルに近い(あるいはそれ以上に)実行を行うexoコンパイラを用いて,マイクロカーネルを生成するステップバイステップの手順を提案する。
ハードウェアターゲットは簡潔なライブラリベースの命令記述によって完全に指定されるため、このソリューションは生成されたコードのポータビリティも改善します。
関連論文リスト
- Towards a high-performance AI compiler with upstream MLIR [34.89141656581549]
本研究では,オープンソースのコンパイラパスを用いたコンパイルフローを提案し,忍者パフォーマンスを実現するためのフレームワークを構築する。
この流れを,Packing と PyTorch の Linalg-on-Tensor における入射IR を用いた概念実証 MLIR プロジェクトで実証する。
論文 参考訳(メタデータ) (2024-04-15T10:35:50Z) - Hybrid programming-model strategies for GPU offloading of electronic
structure calculation kernels [2.4898174182192974]
PROGRESSは電子構造解析のためのライブラリである。
電子構造カーネルに対する線形代数演算を実装している。
本稿では,これらの実装における汎用戦略について述べる。
論文 参考訳(メタデータ) (2024-01-24T19:38:01Z) - Automatic Generators for a Family of Matrix Multiplication Routines with
Apache TVM [0.20971479389679337]
我々は、GotoBLAS2、BLIS、OpenBLASといった一般的な線形代数ライブラリのアプローチに従うアルゴリズム群を生成する。
我々はまた、Apache TVMフレームワークを活用して、GEMM用のプロセッサ固有のマイクロカーネルを完全に引き出す。
論文 参考訳(メタデータ) (2023-10-31T10:36:26Z) - Use Your INSTINCT: INSTruction optimization for LLMs usIng Neural bandits Coupled with Transformers [66.823588073584]
大規模言語モデル (LLM) は命令追従能力に優れ、様々なアプリケーションで優れた性能を発揮している。
最近の研究は、ブラックボックスLLMに与えられる命令を自動的に最適化するために、クエリ効率のよいベイズ最適化(BO)アルゴリズムを用いている。
NNサロゲートによりBOのGPを置換し,ブラックボックスLLMの命令を最適化するニューラルバンディットアルゴリズムを提案する。
論文 参考訳(メタデータ) (2023-10-02T02:01:16Z) - 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) - Enabling Retargetable Optimizing Compilers for Quantum Accelerators via
a Multi-Level Intermediate Representation [78.8942067357231]
我々は、最適化され、再ターゲット可能で、事前コンパイルが可能なマルチレベル量子古典中間表現(IR)を提案する。
ゲートベースのOpenQASM 3言語全体をサポートし、共通量子プログラミングパターンのカスタム拡張と構文の改善を提供します。
私たちの研究は、通常のPythonのアプローチよりも1000倍高速で、スタンドアロンの量子言語コンパイラよりも5~10倍高速なコンパイル時間を実現しています。
論文 参考訳(メタデータ) (2021-09-01T17:29:47Z) - A Case Study of LLVM-Based Analysis for Optimizing SIMD Code Generation [0.0]
本稿では,新しいARM A64FXプロセッサをターゲットとした DCA++ アプリケーションをチューニングするために,LLVM ベースのツールを使用する手法を提案する。
これらのコード変更を適用することで、コードスピードは1.98X増加し、A64FXプロセッサ上で78GFlopsを達成した。
論文 参考訳(メタデータ) (2021-06-27T22:38:16Z) - SMASH: Sparse Matrix Atomic Scratchpad Hashing [0.0]
本稿では,行単位の製品アプローチに基づく新しいSpGEMMカーネルの実装を提案する。
我々は原子インストラクションを利用して中間部分積を生成時にマージする。
我々のカーネルは競合するアプローチと比較して9.4倍のスピードアップを達成することができる。
論文 参考訳(メタデータ) (2021-05-29T00:22:50Z) - Kernel methods through the roof: handling billions of points efficiently [94.31450736250918]
カーネル法は、非パラメトリック学習に対するエレガントで原則化されたアプローチを提供するが、今のところ大規模な問題ではほとんど利用できない。
最近の進歩は、最適化、数値線形代数、ランダム射影など、多くのアルゴリズム的アイデアの利点を示している。
ここでは、これらの取り組みをさらに進めて、GPUハードウェアを最大限に活用する解決器を開発し、テストする。
論文 参考訳(メタデータ) (2020-06-18T08:16:25Z) - PolyDL: Polyhedral Optimizations for Creation of High Performance DL
primitives [55.79741270235602]
本稿では,Deep Learningプリミティブの高性能実装を自動的に生成するコンパイラアルゴリズムを提案する。
我々は多面体モデルを用いた新しいデータ再利用分析アルゴリズムを開発した。
また、このようなハイブリッドコンパイラとライブラリ使用の最小限のアプローチが、最先端のパフォーマンスをもたらすことを示す。
論文 参考訳(メタデータ) (2020-06-02T06:44:09Z) - PolyScientist: Automatic Loop Transformations Combined with Microkernels
for Optimization of Deep Learning Primitives [55.79741270235602]
深層学習カーネル開発のためのハイブリッドソリューションを開発する。
我々は、高度な多面体技術を用いて、パフォーマンスのために外部ループを自動的に調整する。
論文 参考訳(メタデータ) (2020-02-06T08:02:34Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。