論文の概要: Learning to Parallelize in a Shared-Memory Environment with Transformers
- arxiv url: http://arxiv.org/abs/2204.12835v1
- Date: Wed, 27 Apr 2022 10:39:52 GMT
- ステータス: 処理完了
- システム内更新日: 2022-04-28 18:59:23.843379
- Title: Learning to Parallelize in a Shared-Memory Environment with Transformers
- Title(参考訳): トランスフォーマーを用いた共有メモリ環境における並列化の学習
- Authors: Re'em Harel, Yuval Pinter, Gal Oren
- Abstract要約: OpenMPは共有メモリ並列化スキームを実装する最も包括的なAPIである。
多くのソース・トゥ・ソース(S2S)コンパイラが長年にわたって作成され、OpenMPディレクティブをコードに自動的に挿入するタスクをこなしてきた。
本研究では,S2Sコンパイラを完全に置き換えるために,ML技術,特に自然言語処理(NLP)の最近の進歩を活用することを提案する。
- 参考スコア(独自算出の注目度): 3.340971990034025
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: In past years, the world has switched to many-core and multi-core shared
memory architectures.
As a result, there is a growing need to utilize these architectures by
introducing shared memory parallelization schemes to software applications.
OpenMP is the most comprehensive API that implements such schemes,
characterized by a readable interface. Nevertheless, introducing OpenMP into
code is challenging due to pervasive pitfalls in management of parallel shared
memory. To facilitate the performance of this task, many source-to-source (S2S)
compilers have been created over the years, tasked with inserting OpenMP
directives into code automatically.
In addition to having limited robustness to their input format, these
compilers still do not achieve satisfactory coverage and precision in locating
parallelizable code and generating appropriate directives.
In this work, we propose leveraging recent advances in ML techniques,
specifically in natural language processing (NLP), to replace S2S compilers
altogether.
We create a database (corpus), Open-OMP, specifically for this goal. Open-OMP
contains over 28,000 code snippets, half of which contain OpenMP directives
while the other half do not need parallelization at all with high probability.
We use the corpus to train systems to automatically classify code segments in
need of parallelization, as well as suggest individual OpenMP clauses.
We train several transformer models, named PragFormer, for these tasks, and
show that they outperform statistically-trained baselines and automatic S2S
parallelization compilers in both classifying the overall need for an OpenMP
directive and the introduction of private and reduction clauses.
Our source code and database are available at:
https://github.com/Scientific-Computing-Lab-NRCN/PragFormer.
- Abstract(参考訳): 過去数年間、世界はマルチコアとマルチコアの共有メモリアーキテクチャに切り替えてきた。
その結果,ソフトウェアアプリケーションに共有メモリ並列化方式を導入することで,これらのアーキテクチャを活用する必要性が高まっている。
OpenMPはこのようなスキームを実装した最も包括的なAPIであり、可読性のあるインターフェースが特徴である。
それでも、並列共有メモリ管理における広範な落とし穴のため、コードにOpenMPを導入することは難しい。
このタスクの実行を容易にするために、OpenMPディレクティブをコードに自動的に挿入する多くのソース・トゥ・ソース(S2S)コンパイラが長年にわたって作成されてきた。
入力形式に対するロバスト性に制限があるのに加えて、これらのコンパイラは、並列化可能なコードの配置と適切なディレクティブの生成において、十分なカバレッジと精度を達成できない。
本研究では,S2Sコンパイラを完全に置き換えるために,ML技術,特に自然言語処理(NLP)の最近の進歩を活用することを提案する。
この目標のために、オープンompのデータベース(corpus)を作成します。
Open-OMPには28,000以上のコードスニペットがあり、その半数はOpenMPディレクティブを含んでおり、残りの半分は高い確率で並列化を必要としない。
コーパスを使用して、並列化が必要なコードセグメントを自動的に分類し、個別のOpenMP節を提案する。
これらのタスクのためにPragFormerという名前のトランスフォーマーモデルをトレーニングし、OpenMPディレクティブの全体的なニーズの分類と、プライベートおよびリダクション節の導入の両方において、統計的に訓練されたベースラインと自動S2S並列化コンパイラよりも優れていることを示す。
私たちのソースコードとデータベースは、https://github.com/Scientific-Computing-Lab-NRCN/PragFormer.comで利用可能です。
関連論文リスト
- MPIrigen: MPI Code Generation through Domain-Specific Language Models [5.0227775038998415]
本研究ではまず,MPIに基づく並列プログラム生成における最先端言語モデルの性能について検討する。
HPCorpusMPI上でMonoCoderを微調整することでMPIベースのプログラム生成のダウンストリームタスクを導入する。
この調整されたソリューションの成功は、並列計算コード生成のための最適化言語モデルにおいて、ドメイン固有の微調整の重要性を浮き彫りにしている。
論文 参考訳(メタデータ) (2024-02-14T12:24:21Z) - L2MAC: Large Language Model Automatic Computer for Unbounded Code
Generation [59.36095386978232]
トランスフォーマーベースの大規模言語モデル(LLM)は、基盤となるトランスフォーマーアーキテクチャの固定コンテキストウィンドウによって制約される。
本稿では,L2MACについて述べる。L2MACは,LLMをベースとした,長大かつ一貫したコード生成のための,最初の実用的プログラム自動計算機である。
論文 参考訳(メタデータ) (2023-10-02T16:55:19Z) - Exploring Continual Learning for Code Generation Models [80.78036093054855]
継続的学習(CL)は、コードドメインの中でまだ過小評価されていない重要な側面である。
コード生成,翻訳,要約,改良など,幅広いタスクをカバーするCodeTask-CLというベンチマークを導入する。
即時選択機構の不安定な訓練により,プロンプトプール (PP) などの有効手法が破滅的な忘れ込みに悩まされることが判明した。
論文 参考訳(メタデータ) (2023-07-05T16:58:39Z) - Evaluation of OpenAI Codex for HPC Parallel Programming Models Kernel
Generation [1.7646846505225735]
高性能コンピューティングにおける基本数値カーネル上でのAI支援生成能力の評価を行った。
生成したカーネルコードを様々な言語対応プログラミングモデルでテストする。
本稿では,各プロンプトに対して与えられた10のプロンプトに関する習熟度尺度を提案する。
論文 参考訳(メタデータ) (2023-06-27T00:11:31Z) - InterCode: Standardizing and Benchmarking Interactive Coding with
Execution Feedback [50.725076393314964]
標準的な強化学習環境として,インタラクティブコーディングの軽量でフレキシブルで使いやすいフレームワークであるInterCodeを紹介した。
私たちのフレームワークは、言語とプラットフォームに依存しない、自己完結型のDocker環境を使用して、安全で再現可能な実行を提供します。
我々は、異なるプロンプト戦略で構成された複数の最先端LLMを評価することにより、InterCodeの生存性をテストベッドとして示す。
論文 参考訳(メタデータ) (2023-06-26T17:59:50Z) - Advising OpenMP Parallelization via a Graph-Based Approach with
Transformers [2.393682571484038]
我々は,OpenMPのプラグマと共有メモリ属性を並列コードで検出し,予測する,OMPifyと呼ばれる新しい手法を提案する。
OMPifyは、ソースコードのグラフベースの表現を利用するTransformerベースのモデルに基づいている。
以上の結果から,OMPifyは汎用および人気の高いChatGPTやPragFormerモデルなど,既存のアプローチよりも優れていることが示された。
論文 参考訳(メタデータ) (2023-05-16T16:56:10Z) - MPI-rical: Data-Driven MPI Distributed Parallelism Assistance with
Transformers [3.2164100882807913]
メッセージパッシングインタフェース(MPI)は、複数のノードにわたる分散メモリ並列化において重要な役割を果たす。
データ駆動型プログラミング支援ツールであるMPI-RICALを開発した。
MPICodeCorpusは、GitHub上の15,000以上のオープンソースリポジトリをマイニングして作成される、MPIベースの並列プログラムの最初の公開コーパスです。
論文 参考訳(メタデータ) (2023-05-16T13:50:24Z) - Harnessing Deep Learning and HPC Kernels via High-Level Loop and Tensor
Abstractions on CPU Architectures [101.36990944099105]
この研究は、効率的でポータブルなDeep LearningとHigh Performance Computingカーネルを開発するためのフレームワークを導入している。
1)プロセッシングプリミティブ(TPP)を用いた計算コアの表現と,2)高レベルな宣言的手法でTPPのまわりの論理ループの表現の2つのステップでカーネルの開発を分解する。
我々は、スタンドアロンカーネルと、さまざまなCPUプラットフォームにおける最先端実装よりも優れたエンドツーエンドワークロードを使用して、このアプローチの有効性を実証する。
論文 参考訳(メタデータ) (2023-04-25T05:04:44Z) - HDCC: A Hyperdimensional Computing compiler for classification on
embedded systems and high-performance computing [58.720142291102135]
この研究は、HDC分類メソッドの高レベルな記述を最適化されたCコードに変換する最初のオープンソースコンパイラである、ネームコンパイラを紹介している。
nameは現代のコンパイラのように設計されており、直感的で記述的な入力言語、中間表現(IR)、再ターゲット可能なバックエンドを備えている。
これらの主張を裏付けるために,HDC文献で最もよく使われているデータセットについて,HDCCを用いて実験を行った。
論文 参考訳(メタデータ) (2023-04-24T19:16:03Z) - QParallel: Explicit Parallelism for Programming Quantum Computers [62.10004571940546]
並列量子プログラミングのための言語拡張を提案する。
QParallelは、現在の量子プログラミング言語における並列性に関する曖昧さを取り除く。
並列化によって最も利益を上げるサブルーチンを識別し,並列領域の配置にプログラマを誘導するツールを提案する。
論文 参考訳(メタデータ) (2022-10-07T16:35:16Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。