解説 ソフトウェアの生産性に着目したGPUプログラミングの方法論に関する研究動向

電子情報通信学会 - IEICE会誌 試し読みサイト
Vol.101 No.12 (2018/12) 目次へ

前の記事へ次の記事へ


解説

ソフトウェアの生産性に着目したGPUプログラミングの方法論に関する研究動向

Introduction to a GPU Programming Method Focused on the Software Productivity

土井 淳

土井 淳 日本アイ・ビー・エム株式会社東京基礎研究所

Jun DOI, Nonmember (IBM Research-Tokyo, Tokyo, 103-8510 Japan).

電子情報通信学会誌 Vol.101 No.12 pp.1219-1223 2018年12月

©電子情報通信学会2018

abstract

 近年Graphics Processing Unit(GPU)のようなアクセラレータを搭載した計算機が主流となりつつある.GPUプログラミングはソフトウェアの性能を十分に引き出すためには専門的な技術が必要であり,また従来のプログラミング手法に比べてプログラムの大幅な書換えが必要となる.しかしながらソフトウェアの生産性の観点から,少ない書換えで移植性の高いプログラムで性能を出せることが望ましい.本稿ではGPUプログラミングの生産性に着目し,仮想メモリと指示文によるGPUプログラミングで生産性と性能の両立ができる手法について紹介する.

キーワード:GPU,並列化,仮想メモリ,ソフトウェア生産性

1.は じ め に

 近年,消費電力の増大や動作周波数の伸び悩みの問題を解決する一つの手段としてGPUのようなアクセラレータを搭載した計算機が主流となりつつある.従来の計算機ではCPUに搭載された複数のコアが計算機に搭載されたメモリを共有するいわゆる共有メモリ並列化のプログラミング手法が主流であったが,GPUプログラミングでは物理的に別のメモリを扱う必要があるため,比較的複雑なプログラミング技術が必要となる.

 ソフトウェアの生産性を考えると,従来の共有メモリ形の計算機で動作していたソフトウェア資源をGPUで動作させ,十分な性能を引き出すには,非常に多くの労力と,大きなプログラムの書換えが必要となることが多い.しかしながら,ソフトウェア資源の有効活用の観点からはできるだけ少ない労力で移植ができ,更にGPUだけに強く依存しない移植性の高いプログラム開発ができることが望ましい.最近ではGPUの登場から十分たち開発環境や計算機環境が熟成してきつつあり,ソフトウェアの生産性を確保しながら高い性能を両立できるような研究開発が増えてきた.

 本稿では,ソフトウェアの生産性と性能を両立するための計算機環境についてと,プログラミング手法について紹介する.特に本稿では仮想メモリを利用してデータの管理を単純化し,指示文によるプログラミングによって生産性の高いプログラミング手法に着目する.

2.ソフトウェアの生産性向上のための技術要件

 GPUは本来はコンピュータグラフィックスの処理を高速に行いフォトリアリスティックな画像をリアルタイムで描画するなどの利用のされ方であったが,近年ではGeneral Purpose GPU(GPGPU)として,幅広い演算処理を加速する目的で利用されるようになってきた.特に科学技術計算で必要とされる倍精度浮動小数点数演算を高速化できるようなGPUがスーパコンピュータに広く利用されている.このようなGPUは,非常に高速なメモリシステムを持ち,多数の計算コアによって非常に大きな計算能力を持つ.


続きを読みたい方は、以下のリンクより電子情報通信学会の学会誌の購読もしくは学会に入会登録することで読めるようになります。 また、会員になると豊富な豪華特典が付いてきます。


続きを読む(PDF)   バックナンバーを購入する    入会登録


  

電子情報通信学会 - IEICE会誌はモバイルでお読みいただけます。

電子情報通信学会誌 会誌アプリのお知らせ

電子情報通信学会 - IEICE会誌アプリをダウンロード

  Google Play で手に入れよう

本サイトでは会誌記事の一部を試し読み用として提供しています。