デジタル人材の育成

未踏IT人材発掘・育成事業(ユース):2010年度採択プロジェクト概要(盧PJ)

1.担当プロジェクトマネージャー

増井 俊之(慶應義塾大学 環境情報学部 教授)

2.採択者氏名

  • チーフクリエータ
    盧 承鐸(東京大学大学院)

  • コクリエータ
    なし

3.採択金額

  • 1,792,000円

4.テーマ名

  • 大規模配列のGPU高速処理プログラミングを支援する開発環境

5.関連Webサイト

  • なし

6.申請テーマ概要

本システムは、大規模配列のGPU高速処理プログラムの開発を支援する、ビジュアルプログラミング環境を提供する。

この環境でユーザは、従来のGPUプログラミングのようにプログラムのコードを直接書くわけではなく、メモリ上の配列を可視化させた「図」と、その「図」に適用される「離散化式」を修正することによってプログラミングを行う。

本環境において各々の「図」は、計算において処理を行う配列を意味しており、この「図」の上の各「ピクセル」は配列の個別の要素を意味している。この「ピクセル」に、適用される計算スキームの種類のメタファーである「色」を塗った上、各「色」に適用される計算スキームを「離散化式」で書くことによってプログラミングを行う。

システムの特長点として、GPUプログラミングに慣れていない者が苦労する、並列処理部分のプログラムをシステム側が自動的に最適なパフォーマンスが得られるようにチューニングして出力する。これによって、ユーザはGPUの並列処理を意識せず、メモリアクセスや離散化式、つまり計算アルゴリズムにのみ集中することができ、従来のGPUプログラミングより高い生産性で開発をすることができる。

また、実際ユーザが操作する部分はプログラムコードの形でなく、適用される計算スキームとメモリの配置状況を示している。そのため計算機の振る舞いをソースコードで表現しなければならない一般的な配列の計算プログラムでは、符号や添字を間違えるバグを多く生む可能性がある。提案するシステムではそのような間違えを未然に防ぐことができる。

7.採択理由

近年GPGPUを用いた高速計算が脚光をあびてきており、様々なシステムで利用されるようになってきているが、提案者の盧君が卒論でCUDAを使ったGPGPUプログラミングを行なったところ、まだまだプログラミングが大変だということを痛感したということであった。メモリのブロックを適切に分割する方法やデバッギングなど、GPGPUのプログラミングの難しいところを視覚化によって解決するというのが盧君の提案である。

複雑なプログラミングを簡単に理解するために、これまで様々な「ビジュアルプログラミング」システムが提案されてきており、非専門家向けのプログラミングシステムや音楽のプログラミングなど、広い分野で活用されてきている。

このような手法をGPGPUの並列プログラミングに適用するという考えは自然なものだが、きちんと実装するためには幅広い知識とプログラミングの実力が必要であり、かなりチャレンジングな提案だといえる。盧君はプログラミングコンテストでの受賞経験を持つなどプログラミングの基礎能力が高く、ビジュアルプログラミングとGPGPUプログラミングの両方に精通しているためこのような提案を実現できる可能性が高いと思われる。

誰でもGPGPUプログラミングに挑戦できるようなシステムの開発をめざしてもらいたいと思う。