NVIDIAが昨夏に続き高校生向けのCUDAセミナーを開催

講義の様子

8月30日 開催



 NVIDIAは8月30日、都内において「NVIDIA CUDAサマーキャンプ2010」を開催した。昨年の同時期にも開催されたもので、高校生に対するGPUコンピューティングへの興味を喚起し、次代を担う開発者の育成につなげるのが趣旨のイベントだ。

 2回目となる今年は32名が参加。昨年に引き続いての参加者もいれば、遠く福井や大阪から参加した高校生もいる。また、参加資格はC言語に対する一定の知識を有する高校生・高専生とされているが、参加を強く希望してNVIDIAへ相談をもちかけたという中学生1名も参加を認められ、高校生らに混じって受講した。

 講習はまず、NVIDIAのスティーブン・ザン氏によるGPUの技術解説からスタートした。PCゲームに興味を持つ参加者も多いなか、NVIDIAの初代GPUであるNV1から一世代前のGT200の比較で1,400倍というトランジスタ数の増加があること、DirectX 9以前の固定シェーダアーキテクチャと、DirectX 10以降の統合型シェーダアーキテクチャの解説などが行なわれた。

 また、ザン氏に続いて、NVIDIAの澤井理紀氏がGPUコンピューティングの活用事例を紹介。MotionDSPによる動画の高画質化の例や、映画などでも利用されている爆発シーンのシミュレーションCGなど、実用化された例をデモンストレーションした。

NVIDIA テクニカルマーケティングのスティーブン・ザン氏DirectX 10以降の統合型シェーダアーキテクチャによって、GPUが超並列マルチコアプロセッサとなったことを紹介各コアはSM単位でプログラマブルに汎用演算を行なえる
NVIDIAプロフェッショナル・ソリューション・グループ エンジニアの澤井理紀氏MotionDSPが提供する画像高画質化エンジンを用い、ソマリア沖の海賊船の手振れ補正や超解像化によって、国旗などを判別できるようになった例自動車のモデリングでは、流体計算によってどのように空気が流れるかも模式化できる例を紹介

 次に東京工業大学教授の青木尊之氏が登壇。GPUへの依存性を高めたことを特徴とするスーパーコンピュータ「TSUBAME」を擁する同校教授という立場で、GPUコンピューティングの有効性を紹介した。

 前半の内容は、スパコンの現状や、今年11月の稼働開始が予定されるTSUBAME2.0の概要が中心となった。今年6月に発表されたスパコンTOP500の2位に中国のTesla採用スパコン「Nebulae」がランクインしたことは既報のとおりだが、現在日本最速で、TOP500では22位の原子力研究開発機構を上回る19位に、やはり中国のTeslaベースのスパコンがランクインしている。青木氏は中国で開かれたフォーラムへ参加した際、中国の研究者のGPUを使った科学計算へのエネルギーを強く感じたという。

東京工業大学の青木尊之教授。「CUDAに興味をもったら、ぜひGPUスパコンがある東工大へ来て欲しい」とアピール今年6月のスパコンTOP500では、2位にTeslaベースの中国のスパコン「Nebulae」がランクイン。7位にはやはり中国でRadeonを用いたGPU依存性の高いスパコンがランクインしている
さらに19位にもTeslaベースの中国製スパコンがランクイン。日本の最上位は原子力研究開発機構のスパコンで22位東工大が今年11月の稼働開始を目指して開発中のTSUBAME2.0。演算性能は2.4PFLOPSに達する

 こうした高性能なスパコンを実現するための条件としては、演算能力のほか、ノード間のインターコネクション、ストレージも優れている必要があることを挙げた。TSUBAME2.0はGPUを中心に据えることで、これらの要素を高いレベルで実現したうえ、低コスト、省スペースに収まっていることを強調。また、CPUはスケーリングすることで消費電力が増大する一方であり、電力面の問題で頭打ちの可能性が出てきている。電力当たりのFLOPS性能の高さという面でもGPUに期待がかけられていることも説明した。

 GPUコンピューティングの本質という話題では、タスク並列とデータ並列の概念を紹介。「1命令1データ実行となるSISDは、教師のように上から何をするかを決める視点。一方、データ並列処理のSIMDは、スレッドの中に入って何をやるかを考えていく感じになる。若い人はSISDに凝り固まることなく、最初からSIMDの概念を身に付けられるはず」とアドバイスを送った。

 このほか青木氏は、GPUコンピューティングに取り組んだきっかけや、研究成果を紹介。研究成果に関しては、同氏が取り組んできた津波シミュレーションの成果として、三陸沖の400×800kmを100mメッシュで計算させ、8GPUを使って3分で計算を終えられるところまで来たことを紹介。さらに今年2月にチリで大地震が発生したが、このような遠く離れた場所で発生した津波シミュレーションに関しても、近い将来に成果を発表できるとした。

タスク並列とデータ並列の概念を宿題や掃除当番を例に紹介。宿題を掃除を順番に片付けていくのがタスク並列、1つの部屋を複数人で掃除して進めていくのがデータ並列のイメージとなる
青木氏がGPUコンピューティングに取り組むきっかけになったという、理研ベンチマークコンテストに応募するのに利用した最初のPC。GeForce 8800 Ultraを4枚装着したもので、このときのルールは課題の計算をどんな手法でもいいので高速に実行すればいいというもの。このPCを用いて優勝した翌年はピーク性能に対して実効性能がどれだけ引き出されているか、にレギュレーション改定。この場合はGPU間のデータ転送が発生しないことからシングルGPUの構成が有利となる。青木氏曰く「チューニングの天才」という東工大の額田氏(写真左)を擁立して優勝青木氏が長らく取り組んでいる津波シミュレーションは、三陸沖の計算を8GPUを用いて3分で実行できるところまできた。次は地球の裏側で起きた地震によって起こる津波のシミュレーションに取り組んでいるという

 さて、実際のCUDAプログラムの講習は、フィックスターズのエンジニアである田川慧氏が担当。田川氏はCPUとGPUなどのアクセラレータを組み合わせたハイブリッドシステムの概念や、逐次(シリアル)処理の割合を減らさないと並列化の効果が上がらないことを示す「アムダールの法則」など、CUDAプログラムに必要な考え方を紹介。

 続いて、より具体的な内容に踏み込むとともに、実際のCUDAプログラムにおけるスレッドやメモリの扱いを、高校生がイメージしやすい比喩を用いてコードに起こすというシナリオを展開。CUDAで特徴的な部分にメモリ領域の確保を行なう命令が挙げられるが、こうした点は「最初は難しいと思うが、覚えてしまえばそのまま使っていける」といった具合に、基礎を押さえつつも実戦的な内容で話が進められた。

CUDAプログラムの実戦的な講習を行った、フィックスターズ エンジニアの田川慧氏逐次処理の割合を減らさないと並列化の効果が上がらないというアムダールの法則を解説。例えば1コアで1秒の処理を並列化する場合、逐次処理に0.8秒を費やすと並列化できるのは残りの0.2秒に留まってしまうため効果は薄い、といった概念になる制御系演算とアクセラレータによる算術演算を分担するハイブリッドシステムの概念。NVIDIAが繰り返しアピールするヘテロジニアスコンピューティングと同じと考えていい
並列演算の例題。50ページの問題を50人で解くというもので、班分け、班の番号、個人名といった作業分担を、CUDAにおけるブロック数やブロックインデックス、スレッドインデックスに割り当てていった
こちらは共有メモリの考え方を示す例題。班ごとに食材を集めるというもので、各班にはみんなで使える共有ロッカーを持つという設定。この共有ロッカーを共有メモリに見立ててCUDAでどう記述するかを解説

 一通り講義を終えた最後には、数名ずつのチームに分かれて例題を解くハンズオンセッションが行なわれた。ここでは、イメージの2値化、メディアンフィルタ、画像の転置という3つの課題を提示。これをCUDAで実装するだけでなく、最適化にまで踏み込んでトライするという内容で、もっとも高速に処理できるコードを記述したチームに景品が送られた。

 このほか、セミナーの案内でも紹介があったエルザ・ジャパンのGeForce GTX 460(3台)や日本エイサーの液晶ディスプレイ(2台)のプレゼント抽選会も開催。会場を訪れた日本エイサーの担当者からは3D Vision対応の液晶ディスプレイがサプライズプレゼントとして追加され、こちらはジャンケン大会で当選者を決めるとあって会場は多いに盛り上がった。

 セミナーの最後には、NVIDIAの日本におけるカントリーマネージャーを務めるスティーブ・ファーニー・ハウ氏がコメント。セミナーを受講した高校生がCUDAに興味を持つプログラマとして成長することに期待するとともに、夏休みの1日を使って来場してくれたことに対して感謝の意を述べた。

ハンズオンセッションでは3~4人のグループに分かれ、3つの課題を解いた。イメージ処理をCUDAで実装し、さらにいかに最適化できるかまで踏み込んで挑戦している
プレゼント抽選会では日本エイサーが事前告知のなかったサプライズプレゼントを持ち込み、ジャンケン大会で当選者を決定セミナーの最後にNVIDIA日本代表のスティーブ・ファーニー・ハウ氏が登場。「CUDAの技術を身に付けたなら、ぜひNVIDIAに入ってほしい」と、こちらもスカウト

(2010年 8月 31日)

[Reported by 多和田 新也]