本日読了。
GPUを支える技術 ――超並列ハードウェアの快進撃[技術基礎] (WEB+DB PRESS plus)
- 作者: Hisa Ando
- 出版社/メーカー: 技術評論社
- 発売日: 2017/06/30
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
良書。GPUの歴史や基礎、活用について、幅広くかつ深く学ぶことができる。
グラフィックスは(x, y, z, w)の同次座標系、(α, r, g. b)の色彩など、4次元ベクトルを使うことで、4*4の行列による線形変換で表現できる。そのため、GPUは、浮動小数点演算器を4つペアで持ち、積和計算を並列に行うことができる。このような行列計算は、科学技術シミュレーションや機械学習でも有用である。
GPUは、I/Oや複雑な処理は苦手であり、CPUとの組み合わせで使う。スマホ向けSoCは、CPUとGPUを統合している。CPUで処理した結果をGPUに持ってくるためのメモリ転送がボトルネックとなる。
メモリ転送などの処理をC言語に拡張した言語を使ってGPU処理を記述する。CUDAはNVIDIAのプロプラ言語であり、OpenCLは標準版。CUDAの方が、NVIDIAの最新技術を活用するとともに高速性が得やすい。一方、通常のC言語に並列指示をするだけのアプローチもあり、NVIDIA系のOpenACCと、標準のOpenMPがある。OpenMPはCPUだけの並列処理やCPUに複数のGPUを接続したりといった、幅広い実装に適用できる。