ブックタイトル実装技術12月号2017年

ページ
56/68

このページは 実装技術12月号2017年 の電子ブックに掲載されている56ページの概要です。
秒後に電子ブックの対象ページへ移動します。
「ブックを開く」ボタンをクリックすると今すぐブックを開きます。

概要

実装技術12月号2017年

前田真一の最新実装技術 あれこれ塾 最近の高性能化プロセッサでは、コアの数を2?64 個程度まで多くして、マルチプロセッサ化もしていますが、基本的には、このコアの処理速度が重要となります。 CPU の高速化は、データ処理の高速化や数値演算などの高速化をもたらします。 しかし、3Dグラフィックスやゲーム機などでは、一つ一つは比較的小規模な計算を膨大な数、行う必要があります。 これは、元の画像をX、Y、Z 軸に回転、拡大(縮小)などをさせる、3D 画像の演算は回転軸ごとのベクター演算が必要となるからです。 たとえば図形を移動させる場合、移動前の座標を(x、y、z)、移動後の座標を(X、Y、Z)とします。 図形の平行移動(図6)  (x、y、z)⇒(X、Y、Z)  X=x+L  Y=y+M  X=z+N 拡大、縮小(S 倍)(図7)  X=x×S  Y=y×S  X=z×S P1(x、y、z)がθ回転した座標P2(X、Y、Z)は、 x 軸回転では  X=x  Y=y cos(θ)- z sin(θ)  Z=y sin(θ)+z cos(θ) y 軸回転では  X=x cos(θ)+z sin(θ)  Y=y  Z=-x sin(θ)+z cos(θ) z 軸回転では  X=x cos(θ)- y sin(θ)  Y=x sin(θ)+y cos(θ)  Z=zとなります(図8)。 この演算は単純ですが、これをすべての画素に対して行うとその演算の数は膨大なものとなります。 こんなに単純な計算でも計算の数が膨大になれは、高性能CPUでは演算のCPU の占有時間より、計算の切り替えごとのタスクの切り替え、メモリへのアクセスなど、オーバーヘッド時間が多くなります。 CPU の演算能力が大きいほど演算時間より、オーバーヘッド時間の方が大きくなります。そこで、CPUとは別に、グラフィック処理専用のグラフィックアクセラレータと呼ばれるモジュールが開発されました。 これが、半導体技術の進歩により、高性能化、1チップ化され、GPU(Graphic ProcessorUnit)と呼ばれる新しいプロセッサチップとなりました。 初期の代表的なプロセッサとしてはSonyのPlayStation 3 用にIBM、Sony、東芝が共同開発したCellチップがあります(図9)。Cellでは1つのCPUと16ビットを8スロット並列計算できるSPEと呼ばれるプロセッサを8 個実装していました。 現在のGPUでは、大量のプロセッサが並列処理で動作するようになっています。 この大量の並列処理のため、メモリもWideI/OとかHBM(High Bandwidth Memory)といった規格で、128ビットとか256ビット、512ビットなどの広い幅の並列アクセスができるようになっています(図10)。 CPUは少数のできるだけ高性能ですが、回路規模が大きなプロセッサユニットを少数、実装しますが、GPUは個々の処理能力は図6 ディープラーニング(Apple HP、“Hey Siri”) 図8 図形の回転図7 図形の移動54