NEXUSの強力なトレースシステム
基本的にはNEXUSはクライアント/サーバーモデルで実行される。つまり、デバッグ対象PCとデバッグをモニタリングするPCとをネットワークで接続して実行することになる。なので、デバッグ対象PCは実際にアプリケーション動作を想定したスペックのNVIDIA製GPU搭載PCである必要がある。しかし、モニタリングする側のデバッグPCはノートPCでも、それこそ非力な他社製GPUが搭載されたPCでもかまわない。
PCが一台しかない場合も、NEXUSを利用することは出来る。その際には2基のGPUが必要になる。つまり、1つはモニタリング用GPU、もう一つがデバッグ対象(アプリケーション実行対象)のGPUになる。または、NVIDIAがすでに発表しているGPU仮想化技術「SLI Multi-OS」環境下のマシンならば、1台のPCでもNEXUSは利用可能だ。
なお、SLI Multi-OS環境とは、2基のGPUのうち1基をホストOSに割り当て、もう一気を仮想化したバーチャルマシンのゲストOSに専用で割り当てる技術だ。
いずれにせよ、考え方としては1台のPCでの利用の場合は、1基のGPUをデバッグモニタリング用、もう1基のGPUをデバッグ対象(アプリケーション実行対象)に割り当てての実行になる。
セッション中には、実際にNEXUSを用いてのCPU&GPUのシームレス・デバッキングの様子を公開した。
デモに用いたアプリケーションは、CUDAベースのシミュレーション部分とOpenGLベースのグラフィックス描画を含んだDomine氏制作のデモプログラム。
ブレークポイントを、CUDAソースの任意の業に設定し、実行。すると、ちゃんとブレークポイントを設定した箇所で停止する。GPU側で実行されているCUDAプログラム中で停止しており、ソースプログラム内の変数名でのその時点での値の参照も可能。使用している限りでは、GPU内でプログラムを停止させているという実感がないほどシームレスだ。