2009年9月30日に開催された「Graphics Technology Conference(GTC)」においてNVIDIAは次世代のCUDA GPUアーキテクチャと銘打って「Fermi」を発表した。GPU製品の発表ではなく、アーキテクチャの発表であるので、クロック周波数などの物理的な特性は公表されていない。また、テクスチャ処理などのグラフィックス用の機能についても言及されておらず、これらについては製品に関する発表を待たなければならないのであるが科学技術用計算プロセサとして野心的な機構を備えている。

科学技術計算から見たFermi

このFermiアーキテクチャが従来のGPUアーキテクチャと大きく異なるのは、グラフィックスで必要な32ビットの単精度浮動小数点演算能力だけでなく、科学技術計算で一般的に使用される64ビットの倍精度浮動小数点演算能力を大幅にアップした点である。

また、グラフィックスでは1つのピクセルの計算でデータ化けが起こってもほとんど問題にならないが、科学技術計算では答えが違ってしまうと大きな問題となる。宇宙からの中性子によって引き起こされるデータ化けの頻度はそれほど高くはないが、長時間の計算を行う場合には無視できない頻度になる。このため、汎用CPUではメインメモリやキャッシュにはパリティチェックをつけてエラーを検出したり、エラー訂正コード(ECC)をつけて自動訂正を行ったりする機能が設けられている。

従来のGPUはグラフィックス用であり、まったくエラー検出や訂正機能を持っていなかったが、今回のFermiではレジスタファイル、1次キャッシュ、2次キャッシュとメモリに1ビットエラー訂正、2ビットエラー検出(Single Error Correction Double Error Detection)コードを付加してエラー訂正を行っている。これはXeonなどの汎用プロセサと比較しても、より強力なエラー訂正機構であり、PCクラスタによる計算と同等以上の信頼度の計算ができると考えられる。

この倍精度浮動小数点演算性能の大幅向上とエラー訂正サポートにより、GPUを本格的な科学技術計算に使用する2大ハードルがクリアされた。しかし、逆に言うと、これらはグラフィックス処理には必要度の低い機能であり、グラフィックス処理には余分なハードウェアを抱えてコストアップになることを意味している。つまり、NVIDIAとしては、科学技術計算用途に本格進出することは、GPUとしてのある程度のコストアップという犠牲を払っても意義があると考えたということであろう。