特集 2-3 汎用計算アクセラレータGPUの開発環境

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

前の記事へ次の記事へ


特集 2-3 汎用計算アクセラレータGPUの開発環境

成瀬 彰 正員 エヌビディアデベロッパーテクノロジー

Akira NARUSE, Member (Developer Technology, NVIDIA Corporation, Tokyo, 107-0052 Japan).

電子情報通信学会誌 Vol.103 No.5 pp.483-487 2020年5月

©電子情報通信学会2020

abstract

 GPUの汎用計算への適用が始まって10年以上が経過した.画像処理や科学技術計算から始まったGPUコンピューティングは様々な分野に普及し,AI分野では標準的なプラットホームの一つとなった.GPUコンピューティングが普及した要因として,10年前と比較して,GPU上のプログラム開発が簡単になったことが挙げられる.当初,GPUプログラミングを行うには専用言語を使用するほかなかったが,今やC/C++,Fortran,Python,MATLABなど様々な言語でGPU向けプログラムを開発できる.本稿ではGPUプログラミングの現状を紹介する.

キーワード:GPU computing,CUDA,OpenACC,標準言語の並列対応,GPUライブラリ

1.は じ め に

 2007年,NVIDIAは汎用計算に対応したGPUアーキテクチャTeslaと,そのソフトウェア開発環境CUDA(1)1.0をリリースした.以後10年以上にわたり,GPUアーキテクチャとCUDAの機能改善と機能追加を継続することで,画像処理や科学技術計算から始まったGPUコンピューティングは,様々な分野に普及,特にAI分野では標準的な計算プラットホームになりつつある.

 応用分野が広がるに伴い,GPUプログラムの開発環境も多様化が進んだ.当初は,GPU専用言語CUDA Cしか,事実上,選択肢がなかったが,現在はC/C++, Fortran, Python, MATLABなど,様々な言語でGPUプログラムの開発が可能で,GPU対応ライブラリも多数存在する.本稿では,GPUの構造を説明した後,GPUプログラミングの現状を紹介する.

2.GPUの構造

 GPUは,非常に多くの演算ユニットを持つ「メニコアプロセッサ」である.近年は,数十コアを有するマルチコアCPUも珍しくないが,GPUにはCUDAコアと呼ばれる32-bit演算ユニットが数千個以上搭載されている.Volta世代GPUであるTesla V100を例に説明すると,V100には80個のストリーミングマルチプロセッサ(SM)と呼ばれるモジュールが搭載され,各SM内に64個のCUDAコアが配置されている(SMの概要を図1に示す).つまり,V100には,合計5,120個ものCUDAコアが存在する.


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


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

  

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

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

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

  Google Play で手に入れよう

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