現地滞在中にあげたGPU TECHNOLOGY CONFERENCEのレポート。
ネタとして地味ながら実はかなり技術的にセンセーショナルだったのが、このGPUネイティブ・デバッガ「NEXUS」でした。
エミュレーションではなくて、実際のGPUの実動をトレースできるんですね。
Visual Studioに統合されていて、CPUプログラムのソースのトレースから、GPUプログラムのHLSLソース、CUDAソースのトレースにシームレスに移動出来ます。
ブレークポイントはGPU側のHLSLソースやCUDAソースに設定できて、ブレークしたとき、変数内容の参照はもちろん、GPUネイティブのレジスタ値も見られるんです。
GTC - NVIDIA、GTCで世界初のGPUリアルタイムデバッガ「NEXUS」を発表
http://journal.mycom.co.jp/articles/2009/10/04/gtc02/index.html
また、強力なのは、データブレークポイントという機能で、ある特定条件下におけるデータアクセスが起きたときにブレークさせる機能です。
データパラレルコンピューティング、または3Dグラフィックス処理では、大量のデータを取り扱うことになり、その取り出したデータが特定条件下でエラーを発生することもあるわけで、これを探るのに便利な機能です。
ブレークした時点でのデータをダンプしてみることもできるだけでなく、さらに、浮動小数点やn要素ベクトルなどの特定のビュースコープを通してみることも出来るようになっていました。
全ての機能ではないですが、いちおう競合のAMD(ATI)のGPUでも動作は出来るとのことです。
クライアント/サーバーの実装になっているので、デバッグ・ターゲット・マシンをモニタリング・マシンでリモート・トレースする形式が基本使用スタイルとなりますが、もちろん、仮想化システムを使えば1台のPCでの動作も可能です。
より詳しいことは記事の方を参照くださいませ。
今後の進化が楽しみですね。
Comments