nVidiaはCUDAのx86アーキテクチャへの最適化にほとんど興味がない – アナリスト談

xbitlabs.com Nvidia Hardly Interested in Optimal Performance of CUDA on x86 Processors – Analyst. Despite CUDA x86 Cross-Compiler, Life of Programmers Will Not Get Easier [09/28/2010 07:49 PM] by Anton Shilov より。

nVidiaはCUDAのx86アーキテクチャへの最適化にほとんど興味がない – アナリスト談

CUDAのx86向けクロスコンパイラに反して、プログラマの生活はより良くはならないだろう。
Anton Shilov
2010年9月28日

nVidiaとPortland Groupは先週nVidia CUDAアーキテクチャからx86へ、又は逆にx86からCUDAへソフトウエアを開発することができる特別なコンパイラを登場させた。これはソフトウエア開発者が彼らのプログラムに広く互換性を保証し、高並列GPUアーキテクチャを活用できることを提案している。だけれども、ソフトウエアメーカの生活はより良くなることはないだろうと、Jon Peddie ResearchのAlex Herreraは語った。

異なるアプリケーションのため、これらにはスーパーコンピュータ分野も含まれるが、より高い性能を照らす光明があるにもかかわらずATI RadeonやnVidia Geforceのようなグラフィクスプロセッサのために作り直されることはない多くの理由がある。主な理由の一つは、これまでも使われているレガシーなコードがあり、既に業務で使用されているためほとんどど捨てることができない。コンパイラはPGIとnVidiaが共同でソフトウエア開発者にCUDAベースのソフトウエアをx86プラットフォームにアプローチすることでテストしてもらいたがっており、信頼度を測ってもらいたがっている。それにもかかわらず、十分に安定して動作しているが、CUDAベースのソフトウエアのx86アーキテクチャでの性能はほとんど最適化されていない、とHerrera氏は主張している。

GPUベースのnVidia PhysXがそうであるようにCUDAもまたSSE2等のSIMDインストラクションをサポートしていない。新しいコンパイラはAMD BulldozerやIntel Sandy Bridgeマイクロプロセッサで使われる予定のAVXのようなものもサポートしないだろう。その結果、アプリケーションソフトウエアはx86プラットフォームでは最高性能を発揮できないだろ。

「x86で動作するCUDAはCUDAを使用しないでx86アーキテクチャに最適化されたアプリケーションソフトより遅くなるだろう。そしてx86で動作するCUDAアプリケーションやFermiで動作するアプリケーションを動作させる開発者は、最初に簡便に最適化できるCUDA無しのx86プラットフォームのほうが他のCUDAベースのアプリケーションよりも速く動作するのを目撃するだろう。より大きな性能向上によるベンチマーク数値はnVidiaが多くの浮動小数点演算を多用するアプリケーションソフトウエアでCPUよりもGPUのほうがより速いと宣伝する目的で使用されるだろう。」とアナリストは語った。

最後に、特定の目的および一般向け商用ソフトウエアの設計者は異なるハードウエアのために異なるコードを実装する必要が出てくるだろうし、いくつかは既に行われている。


開発側の負担が大きくなるだけで誰も得をしないということだな、nVidiaのCUDAは。あくまでも宣伝用でしか無いと。

AMDは3DNow!使用サポートを終了する。

xbitlabs.com AMD Drops Support of 3DNow! Instructions.AMD’s Future Chips Will Not Support 3DNow! [08/19/2010 11:20 PM] by Anton Shilov より。

AMDは3DNow!使用サポートを終了する。

AMDの今後のチップでは3DNow!はサポートしない。

by Anton Shilov

2010年8月19日

AMDはK6-2の時代までさかのぼって、単一命令複数データストリームコマンド(SIMD)か他のベクトル化命令とし知られとして機能する「3DNow!」を導入した。その「3DNow!」は浮動小数点演算の性能を大幅に改善する予定であったが、数多くのプログラムが実際に活用することなかった。結果として、10年の時を経てAMDはそのコンセントを抜き、将来のチップで「3DNow!」をサポートしないことをに決定した。

「(3DNow!の命令まで)私たちは広く使われているストリーミングSIMD拡張命令(SSE)およびその連続したバージョンなど多くのSIMDコマンド群を自身のプロセッサに実装した。『3DNow!』命令は廃止され、これから登場するAMDのプロセッサでは確実にサポートされないだろう。それらのプロセッサでは、『3DNow!』命令用フラグビットはセットされない。」とシニアディベロッパリレーションズエンジニアのSharon Troiaは記載している(※英文)。

「3DNow!」命令が開発された同じ時代を見てみると、もしプロセッサが命令もしくは命令群をサポートしているのなら、プログラマたちはチェックのため試行錯誤のモデルを利用した。これはアプリケーションはもし命令を実行することが可能なら、実行できるかを試す。もしアプリケーションがプロセッサから例外処理(#UD)を受け取ったら、その命令は実行不可能であると信じている。これらのタイプのアプリケーションは新しい仮想マシンの元ではうまくする動作させることができないだろう。それは他のブログで記述されている。

PREFETCHとPREFETCHW命令のある「3DNow!」バージョンは現在彼ら自身によって分類され、AMDはそれらのサポートを継続する計画である。

それはメインストリームアプリケーションがSSEパスのように「3DNow!」ではないコードを使用すると観るのが最もありえることである。

—-

当初AMDの3DNow!K6-2で登場した際に、IntelはまだMMXのみで整数演算のみのSIMDコマンドだった。そのためmp3エンコーダ「lame」を3DNow!命令を利用し高速化した「午後のこ〜だ」をその当時使っていたな。

Cyrixなど他社にも導入され先進性があったが、仮想マシン技術が普及するにつれ独自実装のコマンドは使いにくくなっているのか。一時代が終わろうとしている。

更新 2010年8月22日

AMD 公式ブログ All of AMDへのリンク 3DNow! instruction are Being Deprecated(※英文)