- サーバサイドエンジニア
- 法人営業
- 情報セキュリティ推進担当
- Other occupations (19)
- Development
- Business
- Other
みなさんこんにちは。ドリームアーツ新卒採用担当の山本です。
先日、ドリームアーツCTOの石田が広島市立大学さんにて大学院の集中講義をおこないました!テーマは【GPGPUによる並列計算】。大学院の講義は通常全15回ですが、そのうちの7回を担当し、実習を交えつつ学びを深めていただきました^^
今回は、そのときの内容をレポートします!
そもそもの発端って?
ドリームアーツは東京、広島に本社を持つIT企業です。それゆえ、広島に縁のある社員が多く在籍しており(かくいう私も広島出身です!)、講義をおこなった広島市立大学出身の社員も多数活躍しています。今回2人の4年目社員にメンターを務めてもらったのですが、彼らも広島市立大学大学院の卒業生です。
CTOの石田が面白い学習の機会をご提供できるのではないかなというトピックを持っていたので、せっかくなら大学で学生さん向けの勉強会のお時間をいただけないかとご縁がある広島市立大学さんに提案してみたところ、講義をさせていただける運びとなりました!
本当は春頃におこなう予定だったのですが、コロナウイルスの影響を受け日程は延びに延び…滝のような汗が流れる真夏の開催に。ソーシャルディスタンスを保ちつつ、そして暑いなかマスクをつけつつの講義がおこなわれました。
講義は、担当する7回の授業を2日間でおこなうという超集中型で開催。4回分の講義をする日なんて朝から夕方までぶっ続け…。内容だって簡単なものではありません。そんなハードな面もありましたが、受講学生のみなさんは集中して真剣に取り組んでくださいました!
さて、そんな今回の講義のテーマは【GPGPUによる並列計算】。GPGPUを使うとどんないいことがあるのか?実習を交えつつ、がっつり勉強していきます!
GPGPUってなあに
そもそもGPUとは「Graphics Processing Unit」の略称で、3Dグラフィックスなどの画像描写の際に必要となる計算処理をおこなうプロセッサのことです。GPUは画像描写などに必要な計算処理を担い、並列的な計算処理を得意としています。3Dゲームなどにおいては精細な映像が画面に表示されますが、この裏側には膨大な量の計算が必要となります。この膨大な計算をCPUに代わりに担当するのがGPUです。
そして今回のテーマとなったGPGPUとは「General-Purpose computing on Graphics Processing Units」の略称。GPUが得意とする並列計算の演算資源を、画像処理だけではなく、それ以外の処理においても応用する技術のことです。並列計算が得意なGPUを画像処理以外にも用いることで、全体の処理能力の向上を図ることができます。
ゲームを実装して体験!
1日目に座学や写経を通し基礎をかため、2日目には初日に得た知識を活かし手も動かしていきます。CPUとGPUそれぞれに対し同じゲームを実装することで、性能比較をおこないます!
演習題材は「コンウェイのライフゲーム」。イギリスの数学者ジョン・ホートン・コンウェイが考案した生命の誕生、進化、淘汰などのプロセスを簡易的なモデルで再現したシミュレーションゲームです。このライフゲームには以下のようなルールが存在します。
・ライフゲームでは初期状態のみでその後の状態が決定される。
・碁盤のような格子があり、一つの格子はセル(細胞)と呼ばれる。
・各セルには8つの近傍のセルがある。
・各セルには「生」と「死」の2つの状態があり、あるセルの次のステップ(世代)の状態は周囲の8つのセルの今の世代における状態により決定される。生死の判定は以下の通り。
・誕生:死んでいるセルに隣接する生きたセルがちょうど3つあれば、次の世代が誕生する。
・生存:生きているセルに隣接する生きたセルが2つか3つならば、次の世代でも生存する。
・過疎:生きているセルに隣接する生きたセルが1つ以下ならば、過疎により死滅する。
・過密:生きているセルに隣接する生きたセルが4つ以上ならば、過密により死滅する。
画面上を碁盤のような格子とし、すべてのセルの次状態を高速に計算していく必要があるゲームになっています。(実際のゲームの画面はこんな感じ↓↓)
まずはCPUに対しこのライフゲームを実装してみます。CPUではすべてのセルの次状態の計算を順次実行しなければなりません。
次にGPUに対して実装。こちらは、GPUで実行することで画面上の次状態の計算をすべて並列で計算していくことが可能になります。
CPUとGPUで実行した2つのゲームの処理速度を比較してみると、違いは歴然。GPUの処理速度は、CPUの処理速度に比べて約100倍近く速いという結果になりました!
ということで今回の講義では、簡単なシミュレーションゲームをCPU、GPUそれぞれに対して実装し性能比較をおこないました。並列処理が適している部分にGPUを利用することで、非常に大きな性能差が出る!ということを実感していただけたのではないでしょうか!
まとめ
2日間で7回分の講義をまとめて受講するという超過密スケジュールだったので、学生のみなさんは頭をフル回転させていたことと思います。おつかれさまでした。
しかしとても集中して臨んでいたので、きっと新たにいろいろな知識を身につけ力もついているはずです!また、普段学内では接することがない社会人から、まとまった時間をとってこういった講義を受ける機会はなかなかなく、新鮮さを感じつつ勉強していただけたのではないでしょうか。楽しんで知識を習得してくださっていれば幸いです。
暑いなかではありましたが、本当におつかれさまでした!
ドリームアーツでは、このほかにも社内外で勉強会を開催しています。今後も様子をご紹介していければと思いますので、お楽しみに〜〜!