2011-06-30 3 views
0

私はCUDAのベストプラクティスのコードを使用して実行タイマーを実装しました。しかし、彼らは奇妙な何かであり、私はそれが異常であるか、それが正常であるかどうかわかりません。私は私のCUDAアプリを走らせるたびに異なる読書を得る。CUDAのタイミングカーネルの実行

これらの読書は、デザインに関連しているか、それとも私が期待するべきものなのでしょうか。

私はまあ、それは違いはどのように大きな依存のWindows 7以外の

答えて

3

、私のマシン上の任意のグラフィックを多用するアプリケーションを実行していませんよ。カーネルスケジューラが原因で発生する異常を確認できます。スケジューラはカーネル関数に余分なタイムスライスを与えているかもしれません(グラフィックスAPIコールにはエラーチェックが含まれているため)、実行時間が長くなります。違いが非常に大きい場合は、あなたのコードをチェックすると言いますが、ミリ秒のオーダーで非常に低い場合、私はそれについて心配しません。 - ほとんどのOS(おそらくWindowsが含まれます)のタイムスライスクォンタムにとっては10msecsが普通です。 また、Aeroは集中的なものなので、あなたが見ている不一致を補うかもしれません。

+0

時には数ミリ秒で、時には数十ミリ秒です。 :S – Nocturnal

+1

私はそれが窓で受け入れ可能だと私は約500ミリメートルまでの矛盾を明白な理由で見たことがないので、私はバックグラウンドで何が起こっているのか分からないが、それは私のために通常の範囲内になります。もう一度私は奇妙なものを信じていないだろう。それは数ミリ秒も離れている。 –

+0

他のプラットフォームで同様のサンプルを実行しましたが、同じ異常がポップアップしていませんか? – Nocturnal

0

私はCUDA Cベストプラクティスのコードを使用して実行タイマーを実装しました。

私の経験では、これは「ベストプラクティス」ではありません。

デバイスサイドコードとCUDAランタイムAPIコールの代わりにnvprofプロファイラを使用することをお勧めします(自分のホストサイドコードではうまくいくと思います)。それはあなたが設定し、どのオプションを使用したいのか把握するための少し面倒になりますが、それはそれの価値がある。

関連する問題