複数種の演算加速機構を持つ高性能計算システムにおけるプログラミングに関する研究
2023年度研究会推薦博士論文速報
[ハイパフォーマンスコンピューティング研究会]
綱島隆太
(神戸大学大学院 理学研究科 特命助教)
【背景】スパコンではGPUが普及し,FPGAなども活用されつつある
【問題】GPUとFPGAを混載したスパコンはプログラミングが大変である
【貢献】プログラミングを簡単にし,参入障壁と生産性を向上させた
読者の皆さんがご存知のように,最近ではAI(機械学習)が流行っており,GPUの名を聞くことが多い.GPUがAIのようなたくさん演算が必要なプログラムで活用されているのは,並列処理が得意だからである.GPUというICはその正式名称Graphics Processing Unitの通り,元々は画像や動画の処理専用のプロセッサ(=処理装置)であったが,並列処理全般にGPUを活用する動き(GPGPU)は,大規模な科学計算を行うためのスパコンへの活用によって加速した.GPUのように,CPUに追加する形で用いるハードを「アクセラレータ」と呼ぶ.スパコンのランキングであるTOP500(2024年6月版)の上位10位には,今や富岳を除いてすべてのスパコンにGPUが搭載される時代になっている.
ただし,GPUで高速化が容易な計算は単純な並列化が可能なものであり,ある演算を行うのに,並行して計算している別のデータが必要な場合には,データ交換を行うために計算が遅くなる.
一方,GPUとは異なる性質のアクセラレータとしてFPGAというものがある.FPGAはGPUほど大量の並列計算ができるわけではないが,内部の回路をユーザーが設計でき,何度でも作り変えることが可能である.
本研究ではGPUで局所的に性能が出せない処理について,FPGAで高速化することを想定し,両方のアクセラレータを搭載したスパコン(図(A))において,プログラミングの難易度を改善する言語処理システム「CAMP(Cooperative Acceleration by Multi-device Programming)システム」の開発を行った.
GPUではCUDAという専用プログラミング言語が用いられることが多いが,複雑であると同時に,既存のCPUのソースコードを書き換える必要があり,GPUによる高速化が進まない要因となっていた.そこで,コードにコンパイラ指示文(コメントのようなもの)を追記するだけでGPU対応ができるOpenACCが普及しつつある(図(C)).一方,FPGAの方はハードウェア設計の知識がなくても回路設計を可能とする高位合成技術が発達し,CUDAと類似する言語であるOpenCLでプログラミングできるようになっているが,こちらも難易度が高い.両アクセラレータを組み合わせるとなると,異なる言語を用いて別々にプログラミングしなければならず,さらに難易度が増し,スパコンユーザーの負担を上げていた.そこで,本研究では両者でOpenACCを用いて,なおかつコード上でも統一したプログラムを記述できる(図(B)➊)プログラミング環境の実現を目指した.
FPGAについて,研究段階ではあるが,OpenACC対応コンパイラが米国の研究所で開発されていたため,共同研究の枠組みでこれとGPU用OpenACCコンパイラを組み合わせることを考えた(図(B)➌の処理).また,GPUとFPGAでの処理が混ざったコードをこれらのコンパイラで適切に処理するためには,それぞれのアクセラレータで行う個所を別々のコードに分解するという事前処理が必要である(図(B)➋の処理).本研究ではそのためのsource-to-sourceコンパイラ「MHOAT(Multi-Hybrid OpenACC Translator)」を開発した.
最終的な評価では,宇宙物理学分野の実際のアプリケーションを従来手法と本研究のCAMPシステムによる手法でプログラミング,コンパイルを行い,実行した結果を比較した.その結果,CAMPシステムを用いたOpenACCによるプログラミングによって,従来手法に比べ性能を改善しながら,必要なコード量を減らすことでプログラミングの負担の削減を実現し,生産性の改善を示した.
(2024年5月14日受付)
(2024年8月15日note公開)
ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー
取得年月:2024年3月
学位種別:博士(工学)
大学:筑波大学
正会員
ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー
研究生活 昔からソフトウェア以外でも,インターフェイスや物が動作する仕組みを考えるのが好きで,高専では障害者向けのインターフェイスの研究をしていました.特に,ソフトウェアではライブラリなどで人が楽にプログラミングできるようにすることに興味がありました.博士での研究を踏まえて,対象アクセラレータは変わったものの,現在もプログラミング環境の研究を行っています.
現在は楽しく研究させていただいていますが,在学中は「他人には勧められない」大変さで,博士学生の置かれる環境について,これでもかというぐらい改善の必要性を認識させられました.運命的に3年間丸々コロナ禍と被っていたので,助かった面もありつつ,余計に苦労したこともありました.でも,私が在学中に博士課程の経済面はかなり改善され,そのほかも急速に待遇が良くなってきています.今後,私自身もまだ解決していない博士課程の課題の改善に努めて,皆さんが安心して進学したいと思える環境にしていきたいと思います.