米NVIDIAが2017年5月9日から開催した「GPU Technology Conference(GTC) 2017」では、多くの発表があった。前半に続き、同社の戦略について見ていく。
今回発表されたVoltaアーキテクチャを始め、NVIDIAのGPUは、32スレッド(WARP)を4つ同時に実行できるSM(Streaming Multiprocessor)を多数配置し、多数のスレッドを同時実行することで、高い性能を得ている。
基本的な構成は、前世代のPascalと似ているが、SMの数、SMの機能に違いがある。論理的な性能比較は(写真1)のようになる。
Voltaには、SMが80個ある(写真2)。実際には、84個のSMがあるが、製造上の問題で動作しないSMがあり、これらをすべて不良品としてしまうと歩留まりが悪くなるため、84個のうち80個が良品であれば、出荷できるようにしてある。Pascalは56個だっだ。
VoltaのSMは、写真3のような構造になっていて、大きく4つのブロックに分かれ、それぞれで32スレッドのWARPを実行できる。Pascalは2ブロックで、各ブロックは2つのWARPを実行する。このためSMあたりのWARP実行数は同一だが、Pascalでは、2つのWARPが1つのブロック内にある資源を共有するため、実行性能はVoltaよりも低くなる。
各ブロックには、32個の単精度浮動小数点ユニット、16個の倍精度浮動小数点ユニット、2個のTensor Coreがある。各ブロックで実行される32スレッドは、単精度浮動小数点ならば、前スレッドが1クロックで演算を処理でき、倍精度浮動小数点ならば2クロックで演算が行える。