Skip to main content
QUICK REVIEW

[論文レビュー] HPC-Coder: Modeling Parallel Programs using Large Language Models

Daniel Nichols, Aniruddha Marathe|arXiv (Cornell University)|Jun 29, 2023
Parallel Computing and Optimization Techniques参考文献 37被引用数 5
ひとこと要約

本論文では、HPC固有のコードおよびパフォーマンスデータで微調整された大規模言語モデルHPC-Coderを紹介する。このモデルは、正しく並列化されたコードを生成する能力、OpenMPプリプロセッサの正確なラベル付け(97%の正確性)、相対的パフォーマンス変化の予測(最大88%の正確性)において優れた性能を示しており、高性能計算ワークロードにおけるドメイン特化型大規模言語モデルの価値を実証している。

ABSTRACT

Parallel programs in high performance computing (HPC) continue to grow in complexity and scale in the exascale era. The diversity in hardware and parallel programming models make developing, optimizing, and maintaining parallel software even more burdensome for developers. One way to alleviate some of these burdens is with automated development and analysis tools. Such tools can perform complex and/or remedial tasks for developers that increase their productivity and decrease the chance for error. Until recently, such tools for code development and performance analysis have been limited in the complexity of tasks they can perform, especially for parallel programs. However, with recent advancements in language modeling, and the availability of large amounts of open-source code related data, these tools have started to utilize predictive language models to automate more complex tasks. In this paper, we show how large language models (LLMs) can be applied to tasks specific to high performance and scientific codes. We introduce a new dataset of HPC and scientific codes and use it to fine-tune several pre-trained models. We compare several pre-trained LLMs on HPC-related tasks and introduce a new model, HPC-Coder, fine-tuned on parallel codes. In our experiments, we show that this model can auto-complete HPC functions where generic models cannot, decorate for loops with OpenMP pragmas, and model performance changes in scientific application repositories as well as programming competition solutions.

研究の動機と目的

  • HPCおよび科学的コードの複雑さの増大に応じて、開発者が並列プログラムの作成、最適化、保守を支援する自動化ツールを開発すること。
  • HPCコードのパフォーマンスモデリングにおけるデータ不足の課題を克服すること。これは、ハードウェア、入力、環境的要因に依存するため、大規模かつ正確なパフォーマンス測定データの収集が困難であるためである。
  • 一般向けモデルに依存するのではなく、ドメイン固有のコードおよびパフォーマンスデータで微調整することで、HPCアプリケーションのコード生成およびパフォーマンス予測を向上させること。
  • コード最適化型大規模言語モデルからの転移学習により、最小限のパフォーマンスデータで効果的なパフォーマンスモデリングが可能になることを実証すること。これにより、膨大なデータ収集の必要性が低減される。
  • コード補完、並列化、パフォーマンス分析などの実世界のHPC開発タスクを支援する実用的でオープンソースのモデル(HPC-Coder)を開発すること。

提案手法

  • HPCおよび科学的コードのキュレート済みデータセット(関数レベルのコードスニペットと関連パフォーマンス測定値を含む)を用いて、事前学習済みの大規模言語モデルを微調整する。
  • ソースコードの構造と実行挙動の関係を学習できるように、コードとパフォーマンスデータの組み合わせを用いてモデルを訓練する。
  • コード最適化型大規模言語モデル(例:PolyCoder)を初期化として用い、コード生成およびプリプロセッサ挿入などのHPC固有タスクで微調整することで、転移学習を適用する。
  • Few-shotプロンプティングと微調整を用いて、コード内の構文的および意味的ヒントを活用し、forループに対してOpenMPプリプロセッサを高い正確性で予測可能にする。
  • 微細調整されたコード表現を用い、細かく包括的なコード表現に基づいて、2つのコードバージョン間の相対的パフォーマンス変化を予測するパフォーマンス予測ヘッドを大規模言語モデル上に訓練する。
  • 実世界の科学的コードベース(例:PETSc、Hypre)を用いたHPC固有のベンチマークでモデルを評価する。評価項目には、コード生成タスク、プリプロセッサラベル付け、パフォーマンス予測が含まれる。

実験結果

リサーチクエスチョン

  • RQ1HPC固有のコードおよびパフォーマンスデータで微調整された大規模言語モデルは、一般向け大規模言語モデルに比べ、機能的に正しい並列コードを生成する能力で優れているか?
  • RQ2大規模言語モデルは、HPCコード内のforループに対して、OpenMPプリプロセッサをどの程度正確に挿入できるか?
  • RQ3少量のパフォーマンスデータしか使用しない状況でも、微調整済みの大規模言語モデルは、2つのHPCコードバージョン間の相対的パフォーマンス変化を高い正確性で予測できるか?
  • RQ4コード最適化型大規模言語モデルからの転移学習は、限られたラベル付きパフォーマンスデータでHPCにおけるパフォーマンスモデリングタスクを効果的に可能にするか?
  • RQ5モデルは多様なHPCアプリケーションリポジトリに跨って一般化可能であり、クロスプロジェクトのパフォーマンス分析およびコード生成を支援できるか?

主な発見

  • HPC-Coderは、HPC固有のコード生成タスクにおいて、他のモデルよりも53%高いパスレートを達成しており、正しいかつ文脈的に適切な並列コードを生成する能力が優れていることを示している。
  • モデルは、OpenMPプリプロセッサを含むループに対して97%の正確性でラベル付けを行うことができ、このHPC固有の並列化タスクにおいて、一般向け大規模言語モデルを著しく上回っている。
  • HPC-Coderは、2つのコードバージョン間の相対的パフォーマンス変化を最大88%の正確性で予測することができ、大規模なパフォーマンスデータセットがなくても、LLMがパフォーマンス関連のコード意味論を学習可能であることを示している。
  • HPCコードにおける言語モデルスコアが、最先端の一般モデルを上回っていることから、ドメイン特化型の構文的および意味的パターンを効果的に捉えていることが確認された。
  • 微調整済みの大規模言語モデルを用いることで、最小限のデータでパフォーマンス予測が可能である。モデルは、転移学習を通じてコード構造とパフォーマンス挙動の相関関係を学習している。
  • コード生成およびパフォーマンスモデリングの両面で成功を収めたことから、高影響力のHPCソフトウェア工学ツール開発にはドメイン特化型の微調整が不可欠であることが示唆された。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。