論文の概要: An approach to performance portability through generic programming
- arxiv url: http://arxiv.org/abs/2311.05038v1
- Date: Wed, 8 Nov 2023 21:54:43 GMT
- ステータス: 処理完了
- システム内更新日: 2023-11-10 16:45:53.876260
- Title: An approach to performance portability through generic programming
- Title(参考訳): 汎用プログラミングによるパフォーマンスポータビリティへのアプローチ
- Authors: Andreas Hadjigeorgiou, Christodoulos Stylianou, Michele Weiland, Dirk
Jacob Verschuur, Jacob Finkenrath
- Abstract要約: この研究は、低レベルおよび冗長なプログラミングツールを、C++のテンプレートメタプログラミングに基づく高レベルな汎用アルゴリズムに統合するための設計アプローチを説明する。
これにより、HPCのハードウェアの多様化期間において、科学ソフトウェアは保守性と効率が向上する。
- 参考スコア(独自算出の注目度): 0.0
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: The expanding hardware diversity in high performance computing adds enormous
complexity to scientific software development. Developers who aim to write
maintainable software have two options: 1) To use a so-called data locality
abstraction that handles portability internally, thereby,
performance-productivity becomes a trade off. Such abstractions usually come in
the form of libraries, domain-specific languages, and run-time systems. 2) To
use generic programming where performance, productivity and portability are
subject to software design. In the direction of the second, this work describes
a design approach that allows the integration of low-level and verbose
programming tools into high-level generic algorithms based on template
meta-programming in C++. This enables the development of performance-portable
applications targeting host-device computer architectures, such as CPUs and
GPUs. With a suitable design in place, the extensibility of generic algorithms
to new hardware becomes a well defined procedure that can be developed in
isolation from other parts of the code. That allows scientific software to be
maintainable and efficient in a period of diversifying hardware in HPC. As
proof of concept, a finite-difference modelling algorithm for the acoustic wave
equation is developed and benchmarked using roofline model analysis on Intel
Xeon Gold 6248 CPU, Nvidia Tesla V100 GPU, and AMD MI100 GPU.
- Abstract(参考訳): 高性能コンピューティングにおけるハードウェアの多様性の拡大は、科学ソフトウェア開発に膨大な複雑さをもたらす。
保守可能なソフトウェアを書こうとする開発者には2つの選択肢がある。
1) 内部でポータビリティを扱ういわゆるデータローカリティ抽象化を使用すると、パフォーマンス-生産性がトレードオフとなる。
このような抽象化は通常、ライブラリ、ドメイン固有言語、ランタイムシステムの形式で行われる。
2) パフォーマンス、生産性、ポータビリティがソフトウェア設計の対象となる汎用プログラミングを使用する。
第二の方向では、C++のテンプレートメタプログラミングに基づく高レベルな汎用アルゴリズムに低レベルおよび冗長なプログラミングツールを統合できる設計アプローチについて記述する。
これにより、CPUやGPUといったホストデバイスコンピュータアーキテクチャをターゲットにしたパフォーマンス対応アプリケーションの開発が可能になる。
適切な設計により、ジェネリックアルゴリズムを新しいハードウェアに拡張することは、コードの他の部分と独立して開発できる、明確に定義された手順となる。
これにより、HPCのハードウェアの多様化期間において、科学ソフトウェアは保守性と効率が向上する。
概念実証として,Intel Xeon Gold 6248 CPU,Nvidia Tesla V100 GPU,AMD MI100 GPUの屋上モデル解析を用いて,音響波動方程式の有限差モデルアルゴリズムを開発し,ベンチマークを行った。
関連論文リスト
- Specx: a C++ task-based runtime system for heterogeneous distributed architectures [0.0]
Specxは、C++で書かれたタスクベースのランタイムシステムである。
現代のC++で記述されたタスクベースのランタイムシステムであるSpecxを紹介する。
論文 参考訳(メタデータ) (2023-08-30T11:41:30Z) - SEER: Super-Optimization Explorer for HLS using E-graph Rewriting with
MLIR [0.3124884279860061]
高レベル合成(英: High-level synthesis, HLS)とは、ソフトウェアプログラムを高レベル言語で自動的に低レベルなハードウェア記述に変換するプロセスである。
本稿では、任意のソフトウェアプログラムをHLS効率の良いコードに自動的に書き換えるHLSの超最適化手法を提案する。
この結果から,SEERは元のプログラムの1.4倍の範囲で最大38倍の性能を達成できることがわかった。
論文 参考訳(メタデータ) (2023-08-15T09:05:27Z) - 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) - QParallel: Explicit Parallelism for Programming Quantum Computers [62.10004571940546]
並列量子プログラミングのための言語拡張を提案する。
QParallelは、現在の量子プログラミング言語における並列性に関する曖昧さを取り除く。
並列化によって最も利益を上げるサブルーチンを識別し,並列領域の配置にプログラマを誘導するツールを提案する。
論文 参考訳(メタデータ) (2022-10-07T16:35:16Z) - StreamBlocks: A compiler for heterogeneous dataflow computing (technical
report) [1.5293427903448022]
この作業では、オープンソースのコンパイラとランタイムであるStreamBlocksを導入し、CALデータフロープログラミング言語を使用して、プラットフォーム間で計算処理を分割する。
StreamBlocksは、最高のハードウェア/ソフトウェアパーティションを特定するためのプロファイル誘導ツールを使用して、デザインスペースの探索をサポートする。
論文 参考訳(メタデータ) (2021-07-20T08:46:47Z) - Extending C++ for Heterogeneous Quantum-Classical Computing [56.782064931823015]
qcorはC++とコンパイラの実装の言語拡張で、異種量子古典プログラミング、コンパイル、単一ソースコンテキストでの実行を可能にする。
我々の研究は、量子言語で高レベルな量子カーネル(関数)を表現できる、第一種C++コンパイラを提供する。
論文 参考訳(メタデータ) (2020-10-08T12:49:07Z) - 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) - 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) - Towards High Performance, Portability, and Productivity: Lightweight
Augmented Neural Networks for Performance Prediction [0.0]
カーネル変種ハードウェアの任意の組み合わせのための軽量な拡張ニューラルネットワークを提案する。
従来のフィードフォワードニューラルネットワークよりもはるかに優れた、3%の低いMAPEが得られるのです。
私たちの変分選択アプローチは、Halideの実装で、Halideの自動スケジューリングよりも最大1.7倍のスピードアップを得るために使用できます。
論文 参考訳(メタデータ) (2020-03-17T02:19:54Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。