NVIDIA GPU - 2017年のラインナップ
2016年はPascalアーキテクチャが無事投入され、P100コアのTesla P100に加えて、GP104コアのGeForce GTX 1080/1070、GP106コアのGeForce GTX 1070、GP107コアのGeForce GTX 1050/1050 Tiがラインナップ。
さらにはGP102コア(恐らくはダイそのものはGP100と共通で、ただしGDDR5X対応。要するにGP100コアそのものは最初からHBM2とGDDR5Xの両対応になっており、Silicon Interposer経由でHBM2を接続するとGP100、直接接続するとGP102という構成になると思われる)を利用したTitan Xまでラインナップをそろえており、とりあえずOEM向けの低価格製品を除くとほぼ全てのレンジをPascalベースで更新することに成功した。
一番ローエンドのGeForce GTX 1050の場合、2GB品だと13,000円~、4GB品だと17,000前後(何れも2016年12月28日付のAmazon.co.jp調べ)というあたりで、これ以下だとそろそろCPUの内蔵グラフィックでもいいか? というレベルになってくるから、まぁDiscrete向けに関してはこれでラインナップがそろったという感じである。
さて問題は2017年のラインナップである。実は2016年のGTCなどではロードマップが出てこなかったので、推定でしかないのだが、そもそも2015年の段階では、2014年にMaxwell、2016年にPascal、2018年にVoltaがそれぞれ投入されるとしていた。
ただ2013年の段階ではそもそもPascalがなく、Maxellの代わりにVoltaが位置しており、途中でPascalが割り込んだ形になる。
Pascalの主要な特徴はDeep Learningに対応したFP16のサポートであるが、同時に本来Voltaでサポートする予定だったStacked DRAMをHBM2として取り込み、更にMaxwell→Voltaで実現するはずだった性能/消費電力比の改善を、TSMCの16FF+の採用でこれまた前倒しで取り込んでしまった。
現在はこうしたPascalの特徴を全てEnhanceしたのがVolta、という位置付けになっており、特にMixed PrecisionではPascalの更に倍の性能/消費電力比が実現できるとしている。
NVIDIA GPU - 次世代GPU「Volta」はどうなる?
さて、こうなるとVoltaを実現するにはどうすればいいか? というと、真っ当な方法であればプロセスを微細化した10FF、ないし(この時点ではまだその次に来ると思われていた10FF+)を利用して、倍の演算器をブチ込んで、同じ消費電力になるように動作周波数をうまく調整すればいいということになる。
メモリ帯域も足りなくなるので、これはそれこそ先にメモリのところで話が出ていたHBM3あたりが有力候補であるが、さてここまでやるとどう考えても2017年にはチップが出ない。
プロセスの所でも触れたとおり、TSMCは10nmのRisk Productionこそ始めているが、これはあくまでお試し版であって、これで製品を作るのには無理がある。もしRisk ProductionでVoltaの最初のダイであるGV100相当を試作し、そこで全く問題が無ければそのあと量産に向けて手直しを掛け、年内にES品が出せるかどうかというあたりだ。
幸運に恵まれれば2017年のホリデーシーズン商戦に間に合うかもしれないが、もしかつてのGM100(20nm世代のMaxwell:結局キャンセルされた)みたいな事態になった場合、そこから作り直しになる。そこまでリスクをとって「10nmでVoltaを急ぐ理由」はNVIDIAにはちょっと見当たらない。
ただVoltaそのものを急ぐ理由はある。理由は競合で、いまはXeon Phiがその最右翼だが、Intelは2016年にNervana Systemsを買収し、ここが開発したDeep Learning向けのNervana Engineを搭載したKnights Crestを2017年中に出荷するとしている。
また先日発表されたRadeon Instinctもいまのところは問題にならないが、今後は競合になる可能性がある。NVIDIAが引き続きDeep Learningで優位性を保つためには、これらの競合製品に対してリードを広げておく必要があり、そのためにはより高性能なGPUが必要になるという訳だ。
ということで以下は筆者の推定であるが、おそらく2017年のGTCでNVIDIAはVoltaを発表する。ただしこれは引き続きTSMCの16FF+を採用したものになるだろう。性能の強化は2つの方法で実現されると思う。
1つ目はINT8のサポートだ。現在Pascalの世代ではFP16(仮数部10bit、指数部5bit、符号1bit)で実装されているが、現在の深層学習の中でも主流のCNN(Convolutional Neural Network)をメインに考えた場合、そもそも浮動小数点は要らないし、精度も8bitで十分という話は広く知られている。
実際Googleが2016年に発表したTPU(Tensol Processor Unit)は、8bit整数で演算を行い、その結果としてGPUやFPGAと比べて10倍以上の性能/消費電力比を得ている。もしVoltaの世代で8bit整数のSIMD(要するにSSE2になる前の、MMXのお化け版みたいなものだ)をサポートすれば、理論上のピーク性能はそれだけで2倍になる。
2つ目は演算器の増加だ。現在でもかなり巨大なダイのGP100だが、Volta世代ではこれを倍とは言わないまでもさらに増加させるか、もしくはGP100で採用されたCoWoSを使って2つのダイをSilicon Interposer上で結合させるといった構成になりえる。
どっちみち演算器を増やすとより広いメモリ帯域も必要になるが、まだHBM3は間に合わないから、HBM2の数を増やすしかない。なのでパッケージが大型化することそのものはむしろ歓迎であろう。 というあたりだ。
ちなみに最初はFP64を切り捨ててダイの最適化を図るかも……と考えたのだが、NVIDIAはIBMと共同でORNL(Oak Ridge National Laboratory)とLLNL(Lawrence Livermore National Laboratory)向けにSummit/Sierraというシステムを入れる契約になっており、ここは最終的にPower 9+Voltaという構成になることが決まっている。なので、いまさら「VoltaをやめてPascal入れます」という訳にもいかない以上、Voltaは引き続きFP64をサポートすると思われる。
ただこれは所詮契約の話なので、あるいはいろいろひっくり返って、Pascalベースの「Volta HPC」がSummit/Sierraに入り、Deep Learning向けにはFP64を削った「Volta DeepLearning」が投入される、なんて可能性もなくはないのだろうが、まぁあまりその可能性は高くないと思う。
話を戻すと、一応GTCには「何か」がVoltaの名前で出てくるとは思う。ただそれがGPU向けに意味があるものかどうかはちょっと不明である。競合のAMDの方が2017年にはVegaを出してくるが、幸いにもハイエンドマーケットはGeForce GTX 1070/1080である程度抑えてしまっているから、Vegaが出ても急速にマーケットが奪われる心配は無いだろうし、AMDは2018年度の弾に不安があるが、NVIDIAはTSMCの10FFが問題なく利用できれば(実はこれが一番怪しいところ)、ここで微細化した新製品を出せることになる。
ということで、2017年度のGPUマーケットは、Pascalベースの多少の仕様違い製品が投入される程度で大きな変動は無いと思われる。