0

CUDAは、最初のCUDAランタイム関数が呼び出されたときに暗黙的に初期化されます。

コードの実行時間を計り、ループ()を介して100回for([100 times]) {[Time CUDA code and log]}繰り返します。これは、各反復でのCUDAの初期化時間を考慮する必要もあります。したがって、反復ごとにCUDAの初期化を解除する必要があります-これを行う方法は?

を使ってみましcudaDeviceReset()たが、初期化されていないCUDAがないようです。

どうもありがとう。

4

1 に答える 1

3

cudaDeviceResetはランタイムAPIでコンテキストを破棄するためcudaFree(0)の標準的な方法です(呼び出しはコンテキストを作成するための標準的な方法です)。これらは、実行中のプロセスで使用できる「再初期化」の唯一のレベルです。プロセスがCUDAドライバーとランタイムライブラリをロードしてカーネルドライバーに接続するときに発生するプロセスごとのイベントは他にもありますが、新しいプロセスをフォークする以外に、プログラムでそれらを発生させる方法はありません。

しかし、とにかくパフォーマンスメトリックを計算するときに、この種のセットアップ時間を考慮する必要があるか、または考慮する必要があるかどうかは本当に疑問です。

于 2013-01-18T07:57:48.950 に答える