お気に入りタイトル/ワード

タイトル/ワード名(記事数)

最近記事を読んだタイトル/ワード

タイトル/ワード名(記事数)

LINEで4Gamerアカウントを登録
参加者数は昨年比2倍に増加。NVIDIA&東工大が,スパコンを使ってGPU最適化を学ぶ「高校生のためのCUDAサマーキャンプ2013」を開催
特集記事一覧
注目のレビュー
注目のムービー

メディアパートナー

印刷2013/08/06 13:45

ニュース

参加者数は昨年比2倍に増加。NVIDIA&東工大が,スパコンを使ってGPU最適化を学ぶ「高校生のためのCUDAサマーキャンプ2013」を開催

画像集#005のサムネイル/参加者数は昨年比2倍に増加。NVIDIA&東工大が,スパコンを使ってGPU最適化を学ぶ「高校生のためのCUDAサマーキャンプ2013」を開催
 2013年8月1日,夏休み中の高校生に,CUDAを使ったプログラミングを体験学習してもらおうというイベント「高校生のためのCUDAサマーキャンプ2013」が,NVIDIAと東京工業大学(以下,東工大)の共催により,都内・目黒区にある,同大の大岡山キャンパスにて開催された。筆者は同イベント全体を取材する機会を得たので,その様子をレポートしたい。

ガンバレ高校生,NVIDIAと東京工業大学がスーパーコンピュータ「TSUBAME2.0」を使った「高校生のためのCUDAサマーキャンプ」を開催



今年の参加者はLinux経験者が6割超! 女子生徒も参加


 会場となった東工大の大岡山キャンパスは,同大学が誇るスーパーコンピュータ(以下,スパコン)「TSUBAME2.0」が設置されていることでも知られている。TSUBAME2.0には,NVIDIAの数値演算アクセラレータ「Tesla」が使われており,今回の実習で参加した高校生達も,TSUBAME2.0を使ったCUDAプログラミングが体験できるという,めったにない機会に恵まれたことになる。

 さて,5回目となる今年は,参加者が倍増していたのがまず印象に残った。2012年の参加者は39名で,主催者側の期待よりは少なかったという。その理由をNVIDIAでは,「昨年は“C言語でプログラムが作れること”という少し高めのハードルを設定したのが,応募が少なかった理由かもしれない」と分析したようだ。
 そこで今年は,C言語のプログラミング経験は「あったほうがいい」という程度に,参加条件をゆるめた。また,締め切りの約1か月前に,文部科学省が認定した先進的な理数教育を実施する高校「スーパーサイエンスハイスクール」(SSH)を中心に,イベント告知のポスターを掲示するといった宣伝活動も実施。これらが功を奏したのか,最終的な参加者は78名と,昨年に比べてほぼ倍増となった。

ハードルと下げたことと宣伝活動の効果もあってか,参加者は昨年のほぼ2倍に増え,しかもレベルは高かった
画像集#015のサムネイル/参加者数は昨年比2倍に増加。NVIDIA&東工大が,スパコンを使ってGPU最適化を学ぶ「高校生のためのCUDAサマーキャンプ2013」を開催
 募集のハードルを下げたとはいえ,参加者のレベルが落ちたというわけではない。むしろ筆者が見ていた限りでは,参加者のレベルはかなり高い。事前アンケートによると,C言語によるプログラミングの経験者が約5割,Linuxの経験者も6割以上いたという。参加者の幾人かに話を聞いたところ,「C言語でプログラムは書けるので,とくに問題なかった」と余裕をみせる参加者もいたほどで,さすがにこうしたイベントに参加する高校生は優秀だ。

 また参加者のプロフィールを見ると,SSH指定校へのポスター掲示も効いたようで,今年は指定校の生徒が多数参加しているのが目立った。たとえば,SSH指定校である静岡県立浜松工業高等学校からは,8月19日から本選が開催されるプログラミング大会「Supercomputing Contest 2013」にも参加するという7名が,先生の引率付きで参加していたという具合である。
 そのほかに,昨年はゼロだった女子生徒も,今年は3名が参加していた。講師による説明を受ける前から,Linuxを使いまくってる女子生徒もいるなど,昨年とはやや趣が違う参加者たちが集まっていた印象がある。


日本最速のスパコン「京」を上回る「TSUBAME2.5」が今秋稼働


 午前中のセッションでは,CUDAフェローでもある東工大 学術国際情報センターの青木尊之教授により,TSUBAME2.0の概要と最新の研究成果,そして今秋稼働予定というTSUBAMEのアップグレードプラン「TSUBAME2.5」が紹介された。

画像集#003のサムネイル/参加者数は昨年比2倍に増加。NVIDIA&東工大が,スパコンを使ってGPU最適化を学ぶ「高校生のためのCUDAサマーキャンプ2013」を開催 画像集#002のサムネイル/参加者数は昨年比2倍に増加。NVIDIA&東工大が,スパコンを使ってGPU最適化を学ぶ「高校生のためのCUDAサマーキャンプ2013」を開催
TSUBAMEについて解説した,東工大の青木尊之教授(左)と,ゲストとして登壇し,高校生達にエールを送った「CUDAの生みの親」ことIan Buck氏(右,General Manager,GPU Computing Software,NVIDIA)

青木教授はTSUBAMEシリーズのアドバンテージを力説した。このスライドは,2009年に世界一となった米オークリッジ国立研究所の「Jaguar」(当時1.75PFLOPS)との性能比較。TSUBAME2.0は,当時のJaguarと肩を並べる性能を持ちながら,大きさ消費電力ともにJaguarの5分の1で済むという
画像集#004のサムネイル/参加者数は昨年比2倍に増加。NVIDIA&東工大が,スパコンを使ってGPU最適化を学ぶ「高校生のためのCUDAサマーキャンプ2013」を開催
 青木教授によれば,膨大な予算を費やして2011年にスパコンの性能ランキングである「TOP500」で1位となった理化学研究所の「京」(2013年7月時点で世界第4位)を,TSUBAME2.5では単精度浮動小数点演算性能で上回るという。しかも,「TSUBAME2.0は30億円,2.5へのアップグレードには11億円しかかかっていないんです」という具合に,数字を挙げながら国内外の競争相手に対するコストパフォーマンス面での優位を主張。青木教授が時折見せたライバル心の発露は,高校生達にも受けていたようだ。

画像集#006のサムネイル/参加者数は昨年比2倍に増加。NVIDIA&東工大が,スパコンを使ってGPU最適化を学ぶ「高校生のためのCUDAサマーキャンプ2013」を開催 画像集#007のサムネイル/参加者数は昨年比2倍に増加。NVIDIA&東工大が,スパコンを使ってGPU最適化を学ぶ「高校生のためのCUDAサマーキャンプ2013」を開催
昼食時に行われたTSUBAME2.0見学ツアーの様子。ちょうどTSUBAME2.5へのアップグレード作業も行われていて,Tesla K20Xが入っているらしいユニットを取り付けている最中だった


カリキュラムも進化した2013年のCUDAサマーキャンプ


東工大学術国際情報センター助教の下川辺隆史氏
画像集#008のサムネイル/参加者数は昨年比2倍に増加。NVIDIA&東工大が,スパコンを使ってGPU最適化を学ぶ「高校生のためのCUDAサマーキャンプ2013」を開催
 本題であるCUDAの講習だが,まず青木教授からCUDAの基礎が説明されたうえで,東工大の下川辺隆史助教が専門の数値シミュレーションを使った課題を提示し,高校生達は4人1組のチームを組んで,GPUプログラミングの最適化を競うグループワークに挑むという流れで行われた。

 ちなみに2012年の講習では,青木教授らが専門とする数値シミュレーションの説明に割いた時間が長かった。それが今年は,CUDAの基礎説明を手厚くしていたのが特徴だった。
 昨年のサマーキャンプで重点を置いた数値シミュレーションは,演算の結果をグラフィックスで表現すると動きで結果が見えるなど,意外にも楽しいものだ。だが扱う数式自体は,高校生にはややレベルが高く,プログラムも複雑で難度が高かった。それに対して,CUDAに軸足を置いた今年は,「今年のほうが,高校の授業に近いものになっていると思う」と,下川辺助教も筆者に語っているなど,カリキュラムを高校生向きと思われる方向に変えてみたようだ。

 今年のカリキュラムに追加されたのは,「Atomic演算」と「Shared Memory」という機能だ。どちらも,CUDAではわりと重要な機能になる。

Atomic演算の説明スライド。スレッドの競合がないが,何も考えずに使うと著しく低速という,扱いが難しい機能だ
画像集#009のサムネイル/参加者数は昨年比2倍に増加。NVIDIA&東工大が,スパコンを使ってGPU最適化を学ぶ「高校生のためのCUDAサマーキャンプ2013」を開催
 まずAtomic演算というのは,CUDAやOpenCLにおいて提供されている,スレッド間の競合を避けて演算を行う仕組みだ。
 たとえば,1つの数に大量の数を足し合わせる演算は,膨大なスレッドが同時に走る並列処理にとって苦手な種類の演算である。というのも,あるスレッドが加算している最中に,別のスレッドが加算した結果を書き戻してしまうという競合が起こりうるためだ。
 そこで,スレッド間の競合が考慮されたAtomic演算を用いれば,その問題は簡単に解決できる。ただし,なにも考えずにAtomic演算を多用すると,パフォーマンスはびっくりするくらい低下してしまうという欠点もある。そうした問題と解決方法を,青木教授が「1億件のデータを加算する」というシンプルな題材を例にレクチャーしていた。

スレッドブロック内で高速に共有できるShared Memoryを使って,総和の計算を高速化しましょう,というスライド
画像集#010のサムネイル/参加者数は昨年比2倍に増加。NVIDIA&東工大が,スパコンを使ってGPU最適化を学ぶ「高校生のためのCUDAサマーキャンプ2013」を開催
 もう1つのShared Memoryは,同一スレッドブロックなら超高速に参照できるバッファのようなものだ。Shared MemoryはNVIDIA GPUの特徴的な機能であり,うまく利用するとプログラムの高速化に役立つ。ただし,同一スレッドブロックという制約がある点と,容量が限られているという2つの点から,効果的に使うのは割と難しい。
 青木教授はAtomic演算で取り上げた1億件の足し算(総和)が,Shared Memoryを利用することで大幅に高速化できる例を示して,Shared Memoryの活用法を分かりやすく説明していた。


グループワークで文字列検索処理の時間短縮に挑戦!


グループワークの課題は,GPUを使った文字列検索プログラムの最適化だ
画像集#011のサムネイル/参加者数は昨年比2倍に増加。NVIDIA&東工大が,スパコンを使ってGPU最適化を学ぶ「高校生のためのCUDAサマーキャンプ2013」を開催
 最後に行われたグループワークは,「128種類の漢字がランダムに並ぶ24576×24576のマスから,『東工大合格』という縦並びの文字列を探す」というテーマで行われた。CPUによる逐次検索プログラムを,最適化をしないでGPU上に移植して並列処理させると,処理が終わるまで70〜80msほどかかる。この時間を短縮せよ,というのが課題である。

 サンプルコードでは,「東工大合」までしか検索対象に文字列がないという若干のハプニングがあったものの,高校生達のチームが最適化に取り組んだ結果,トップのチームは37.8msという,なかなかの高速化を達成していた。

画像集#012のサムネイル/参加者数は昨年比2倍に増加。NVIDIA&東工大が,スパコンを使ってGPU最適化を学ぶ「高校生のためのCUDAサマーキャンプ2013」を開催
「東工大合格」という文字列を検索するグループワークに取り組む高校生達
画像集#013のサムネイル/参加者数は昨年比2倍に増加。NVIDIA&東工大が,スパコンを使ってGPU最適化を学ぶ「高校生のためのCUDAサマーキャンプ2013」を開催
優勝したチームは37.8msを達成。NVIDIAから記念品が授与された

最後にエルザジャパンから,GeForce GTX 780搭載カード5枚が抽選でプレゼントされた。見事に当たりを引きあてたのは,静岡県立浜松工業高等学校の生徒達だが,話を聞くと「嬉しいけど学校に寄付することに」だとか。それは何とも……
画像集#014のサムネイル/参加者数は昨年比2倍に増加。NVIDIA&東工大が,スパコンを使ってGPU最適化を学ぶ「高校生のためのCUDAサマーキャンプ2013」を開催
 余談だが,文字列検索は並列処理にはあまり向いていないというか,並列処理による高速化には限度がある課題だ。その一方で,いろいろな手法が考えられる分野でもあり,挑戦しがいのある課題だったと思う。筆者は直前にShared Memoryの解説があったので,取材をしながらShared Memoryを使って高速化する方法を考えていたのだが,そこまで深読みする必要はなかったようだ(笑)。最後には,青木教授が17ms台にまで短縮するコードを披露するなど,参加した高校生達にも,GPU最適化の奥深さが理解できたイベントではなかったかと思う。

 なお,2014年のCUDAサマーキャンプはまだ未定とのことだが,もし開催されるなら,カリキュラムはさらに改善される可能性が高そうだ。本稿を読んだ高校生諸君には,来年も開催されるようであればぜひ参加してほしい。

高校生のためのCUDAサマーキャンプ2013


  • 関連タイトル:

    CUDA

  • 関連タイトル:

    NVIDIA RTX,Quadro,Tesla

  • この記事のURL:
4Gamer.net最新情報
プラットフォーム別新着記事
総合新着記事
企画記事
スペシャルコンテンツ
注目記事ランキング
集計:11月04日〜11月05日