NVIDIA Tesla

NVIDIA Tesla（エヌビディア テスラ）は、NVIDIAのデータセンター用のGPU製品シリーズ。GeForceやQuadroをベースとしており、NVIDIA初のGPGPU専用製品である。2017年のVoltaマイクロアーキテクチャ以降は Tesla という名称が消え、単に頭に NVIDIA が付くだけになった。

概要 
汎用CPUに比べて浮動小数点演算性能が高く、高性能計算市場での使用を意図した製品であり、TOP500のスーパーコンピュータでも多数採用されている。主な用途は機械学習のディープラーニング、シミュレーション、大規模な計算（特に浮動小数点演算）、高品質の画像生成などで、APIとしてCUDAやOpenCL、DirectComputeを使用する。

なお同社製グラフィックス製品であるGeForceやQuadroとは異なり、TeslaシリーズはC2050/C2070などの一部を除いてディスプレイ出力を持たず、完全に演算用途に特化している。

競合となるのはAMDのAMD FireStream（AMD FirePro Sシリーズ）である。

Kepler世代以降のTeslaは353.06ドライバでOpenCL 1.2に対応しているが、それ以前のG80からFermiまではOpenCL 1.1までの対応となる。

仕様と構成 
表中の性能欄は、単精度／倍精度浮動小数点の理論演算性能（ピーク時）である。

Teslaマイクロアーキテクチャ 
2007年6月20日発表。G80ベースのx870シリーズは単精度浮動小数点演算のみの対応であり、倍精度浮動小数点演算は実行できない。

注釈
 1 NVIDIAが明らかにしていない仕様については、GeForce 8800 GTXからの推測。
 2 NVIDIAが明らかにしていない仕様については、GeForce GTX 280からの推測。

Fermiマイクロアーキテクチャ 
2009年11月6日発表。ハーフレートの倍精度演算性能を実現している（倍精度の理論演算性能は単精度の場合の1/2になっている）。

注釈
 3 NVIDIAが明らかにしていない仕様については、Quadro 6000からの推測。
 5 
 6 GF110 () ベース

Keplerマイクロアーキテクチャ 
最初の製品であるTesla K10は2012年5月16日に発表された。GK104ベースのK10は単精度の理論演算性能は高いものの、倍精度の理論演算性能が極端に低く（単精度の場合の1/24）、科学技術計算向けではなく信号処理・画像処理向けのソリューションという位置付けになっている。なおGK110ベースとなるK20およびK40、そしてGK210ベースとなるK80における倍精度の理論演算性能は単精度の場合の1/3となっている  。2014年に発表されたTesla K8もGK104ベースだが、K8はTeslaシリーズ初の1スロット省スペース製品となる。

Fermiマイクロアーキテクチャでは SM（ストリーミング・マルチプロセッサー）と呼ばれていた概念が、KeplerマイクロアーキテクチャではSMXという名称になった。GK104/GK110の各SMXが搭載する代表的なユニットは下記である 。
 192 CUDAコア。16 CUDAコアを1グループとして、12グループ搭載する。
 64K個の32ビットレジスタ。合計256KB。
 L1キャッシュ 64KB。このうち 16KB/32KB/48KB を共有メモリとして使用。共有メモリからは1サイクルで最大256B読み出せる。
 読み取り専用キャッシュ 48KB。
 特殊関数ユニット (SFU) 32個。三角関数、対数関数などを計算。

Fermi同様、各スレッド（コア）はワープ (warp) 単位で動作させる（1ワープは32スレッド）。ワープ内のスレッドは同期し、それぞれ同じ命令を実行する。16 CUDAコアを1グループとしているので、32スレッドに命令が行き渡るには2サイクル以上必要となる。その他、Kepler世代ではワープ内で共有メモリを介することなくデータ交換を可能にするシャッフル命令が実装されている。なおCompute capability (CC) に関しては、GK104はCC 3.0、GK110はCC 3.5、そしてGK210はCC 3.7となるが、CC 3.5以上ではDynamic ParallelismやHyper-Qといった機能を備えている。

フルスペックGK104では512KB、またフルスペックGK110/GK210では 1536KB (1.5MB) の L2 キャッシュを全 SMX で共有し、このキャッシュを経由して DRAM にアクセスする。。

注釈
 7 GK104ベース
 8 GK104 (GeForce GTX 690) ベース

Maxwellマイクロアーキテクチャ 
MaxwellではKeplerよりもさらに倍精度サポートが削られている（単精度の場合の1/32）。M4/M40は主に機械学習・ディープラーニング向けのソリューションとして提供されている   。

Pascalマイクロアーキテクチャ 
最初の製品であるTesla P100は2016年4月に発表された。16nmプロセスルールを採用。GP100ベースのP100では、Fermi世代のようなハーフレートの倍精度対応のほか、ダブルレートの半精度対応も実現されている（半精度の理論演算性能は単精度の場合の2倍になっている）。メモリに第2世代のHigh Bandwidth Memory (HBM2) を採用する。NVIDIA独自のインターコネクト規格であるNVLinkにも対応し、これまでプロセッサ間の通信ボトルネックとなっていたPCI Expressを大幅に超える伝送帯域幅を実現できる。

GP102ベースのP40およびGP104ベースのP4では、倍精度の理論演算性能は単精度の場合の1/32になっている。また、SMあたりのCUDAコア数は128、共有メモリも96KBとなっており、Maxwellアーキテクチャに近い。

Voltaマイクロアーキテクチャ 
最初の製品であるTesla V100は2017年5月に発表された。12nmプロセスルールを採用。行列演算を実行するための専用プロセッサ「Tensor Core」を搭載する。

Turingマイクロアーキテクチャ 

Tesla T4が2018年9月に発売された。

Ampereマイクロアーキテクチャ 

最初の製品であるTesla A100は2020年5月に発売された。

Hopperマイクロアーキテクチャ 

最初の製品であるTesla H100は2022年3月に発売された。

脚注

関連項目 

 CUDA
 ストリーム・プロセッシング
 ハイパフォーマンスコンピューティング
 Folding@home
 NVIDIA GeForce GRID
 AMD FireStream
 AMD FirePro
 AMD Stream (ATI Stream)

外部リンク 

 
 NVIDIA Product Overview and Technical Brief

グラフィックカード
NVIDIA