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は。あくまでも宣伝用でしか無いと。

うわさ nVidia Geforce GTS450のスペックが明らかに…? by Fudzilla

fudzilla.com  Friday, 27 August 2010 10:33 Nvidia’s GTS 450 gets fully spec’d Written by Slobodan Simic より。

うわさ nVidia Geforce GTS450のスペックが明らかに…? by Fudzilla

概要として、

  • nVidia Geforce GTS450はGF106アーキテクチャ。
  • 192CUDAコア及び789MHzGPUクロックである。
  • メモリはGDDR5の1566MHz駆動で128bit接続で1GB搭載。
  • DirectX11をサポートし、nVidia独自技術へも対応(CUDA,PhysX)
  • TSMCの40nmプロセス製造される。
  • 競合製品はAMD Radeon HD5700シリーズ。

—-
今更感漂うGTS450だが、多少発熱が激しくてもこれからの季節は涼しくなるから問題は少ないかも。

既にRadeon HD6000の方に興味が移っているし。

新世代物理エンジン Lagoa Multiphysics デモ動画

Lagoa Multiphysics 1.0 – Teaser デモ動画リンク from Thiago Costa on Vimeo.

IntelのHavok、nVidiaのPhysX、オープンソースでAMDがサポートしているBullet Physics Libraryなど、様々な物理演算エンジンがあるが、Lagoa Technologies社の開発しているLagoa Multiphysics物理エンジンのデモ動画。様々な特性の物質をなめらかなフレームレートでリアルタイム計算している様子は次世代を感じさせる出来栄え。

実際の製品がどうなるか楽しみ。

nVidia PC版PhysXはわざと遅く動作するようコンパイルされている

2ちゃんねる自作版Geforce葬儀場スレより。

下記サイト参照(英文)。
http://techreport.com/discussions.x/19216

http://www.semiaccurate.com/2010/07/07/nvidia-purposefully-hobbles-physx-cpu/

http://realworldtech.com/page.cfm?ArticleID=RWT070510142143&p=1

要点は、ゲーム内で様々なものの動きをリアルに表現する物理演算エンジンで、nVidiaが2008年に買収したPhysXが意図的にnVidiaハードウエア以外では遅く動作するようコンパイルされているとの情報。

・PC版PhysXはCPUを用いる場合いまどきシングルスレッド動作。
・GPUが無い場合x87浮動小数点演算機能(オプコード)を大量に使用している
・この機能は既に古臭く、5年前からAMDはSSEを使用することを推奨している
・SSEを使用すると容易にx87浮動小数点機能より1.5~2倍速くなる
・PC版PhysXではSSEを使用していない
・コンソール向けゲームではPhysXはPowerPC AltiVecインストラクションを使用している。
・PowerPC AltiVecはSSEに非常によく似たコマンド群。
・PC版PhysXはシングルスレッドでさえ2倍遅くなるようされている。
・nVidiaが怠けているのには、CPUに比べてGPUを使用したPhysXにパフォーマンス的に優位に見せるよう嘘をつくため。
・PhysXロゴはnVidiaのハードウエアがゲーム上アドバンテージとしてセールスポイントにする意図があるが、nVidiaのハードウエア以外すべてで遅くなる。

さらにSemiaccurateでは「CPUをマルチスレッドかつSSEをフル活用するとGPU単体より最大16倍w速くなる」とのこと。

ちなみにPhysXを開発したAGEIA元社長はnVidiaからAMDに移籍している。