論文の概要: 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で利用可能です。
関連論文リスト
- OMPar: Automatic Parallelization with AI-Driven Source-to-Source Compilation [4.266086505323998]
本稿では,OpenMP pragmasを用いたC/C++コードの並列化を自動化するAI駆動型ツールであるOMParを紹介する。
OMParは、ループ並列化ポテンシャルを評価するOMPifyと、正確なOpenMPパグマを生成する新しい微調整モデルであるMonoCoder-OMPの2つの主要なコンポーネントを通じて、LLM(Large Language Models)を統合している。
論文 参考訳(メタデータ) (2024-09-23T07:39:01Z) - Hierarchical Context Merging: Better Long Context Understanding for Pre-trained LLMs [61.40047491337793]
本稿では,大規模言語モデルの制約を克服する新しいトレーニングフリースキームである階層型cOntext MERging(HOMER)を提案する。
HomeRは、長いインプットを管理可能なチャンクに分割する、分別/対数アルゴリズムを使用する。
トークン削減技術がマージ毎に先行し、メモリ使用効率が保証される。
論文 参考訳(メタデータ) (2024-04-16T06:34:08Z) - MPIrigen: MPI Code Generation through Domain-Specific Language Models [3.5352856644774806]
本研究ではまず,MPIに基づく並列プログラム生成における最先端言語モデルの性能について検討する。
HPCorpusMPI上でMonoCoderを微調整することでMPIベースのプログラム生成のダウンストリームタスクを導入する。
この調整されたソリューションの成功は、並列計算コード生成のための最適化言語モデルにおいて、ドメイン固有の微調整の重要性を浮き彫りにしている。
論文 参考訳(メタデータ) (2024-02-14T12:24:21Z) - Extreme Compression of Large Language Models via Additive Quantization [59.3122859349777]
我々のアルゴリズムは、AQLMと呼ばれ、情報検索のための古典的な加算量子化(AQ)アプローチを一般化する。
トークン生成のためのAQLMの高速GPUおよびCPU実装を提供しており、最適化されたFP16実装を高速にマッチングまたは性能良くすることができる。
論文 参考訳(メタデータ) (2024-01-11T18:54:44Z) - L2MAC: Large Language Model Automatic Computer for Extensive Code Generation [52.81694565226513]
トランスフォーマーベースの大規模言語モデル(LLM)は、基盤となるトランスフォーマーアーキテクチャの固定コンテキストウィンドウによって制約される。
本稿では,L2MACを提案する。L2MACは,LLMをベースとした汎用型自動計算機(von Neumann Architecture)フレームワークで,長期的かつ一貫した出力生成を実現する。
論文 参考訳(メタデータ) (2023-10-02T16:55:19Z) - Exploring Continual Learning for Code Generation Models [80.78036093054855]
継続的学習(CL)は、コードドメインの中でまだ過小評価されていない重要な側面である。
コード生成,翻訳,要約,改良など,幅広いタスクをカバーするCodeTask-CLというベンチマークを導入する。
即時選択機構の不安定な訓練により,プロンプトプール (PP) などの有効手法が破滅的な忘れ込みに悩まされることが判明した。
論文 参考訳(メタデータ) (2023-07-05T16:58:39Z) - 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 [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)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。