CUDAコンテキストを作成するにはどうすればよいですか? CUDAの最初の呼び出しは遅く、カーネルを起動する前にコンテキストを作成します。CUDAコンテキストを作成するには?
4
A
答えて
9
強制的にランタイムAPIコンテキストを確立する正規の方法は、cudaFree(0)
を呼び出すことです。複数のデバイスを使用している場合は、コンテキストを確立するデバイスのIDをcudaSetDevice()
に、コンテキストを確立するにはcudaFree(0)
を指定してください。
編集:CUDA 5.0の時点では、コンテキスト確立のヒューリスティックスが若干異なり、cudaSetDevice()
自体が呼び出されてデバイス上でコンテキストを確立するように見えることに注意してください。だから明示的なcudaFree(0)
コールはもはや必要ではありません(何も傷つけることはありません)。
2
ランタイムAPIを使用する:cudaDeviceSynchronize
、cudaDeviceGetLimit
、または実際にコンテキストにアクセスするものは動作するはずです。
ドライバーAPIを使用していないことは確かです。怠惰な初期化はしませんが、ドライバー呼び出しのメリットはcuCtxCreate
です。
関連する問題
- 1. 作業者pthreadにcudaコンテキストを渡す
- 2. CUDAストリームとコンテキスト
- 3. CUDAコンテキストとは何ですか?
- 4. Sparkコンテキスト作成エラー
- 5. EF4のコンテキスト作成
- 6. QtでOpenGLコンテキストを作成する
- 7. OpenCLコンテキストを作成するためのGLXコンテキスト
- 8. QtでOpenGL 4.2のコンテキストを作成するには?
- 9. android.content.Contextとandroid.app.Activityでコンテキストを作成するには?
- 10. Qt 4でOpenGL 3コンテキストを作成するには?
- 11. ./bin/istioctlコンテキスト作成セグメンテーションフォールト
- 12. 64ビットCUDAアプリケーションの作成方法は? (Win7 x64、CUDA 4、VS 2010 Express)
- 13. CUDAで1Dレイヤテクスチャを作成および使用する方法
- 14. CudaデバイスポインタからOpenCV/EmguCV GpuMatを作成する
- 15. 推力ベクトル型で普通のCUDAカーネルを作成する
- 16. InSpecでコンテキストを作成するにはどうすればよいですか?
- 17. nullコンテキストでalertDialogを作成するとアプリケーションがクラッシュする
- 18. RSpecテストの共有サンプル内で共有サンプルを作成するために、コンテキスト内にコンテキストをネストする方法(すでに別のコンテキストにある)
- 19. CUDAカーネル内で使用するCマクロの作成
- 20. CUDAプログラミング:レガシーGPUをCUDA 7.5ツールキットで使用するには?
- 21. OpenGLコンテキストを確実に作成していますか?
- 22. Cudaでカーネルごとにパラメータベクトルをローカルに作るには
- 23. C++ OpenGLウィンドウとコンテキスト作成フレームワーク/ライブラリ
- 24. Springブート動的コンテキスト作成(親/子)
- 25. Spark:SQLコンテキスト:Scalaオブジェクトからデータフレームを作成する
- 26. Java - 複数のスレッドのログ記録コンテキストを作成する
- 27. コンテキストで関数を作成する方法
- 28. アンドロイドアプリケーションでZMQコンテキストを作成する方法
- 29. CoreDataを再作成する際のコンテキストの問題
- 30. LWJGL 3でOpenALコンテキストを作成する方法
私はlibrairy openCVを使用しています。最初の呼び出しは遅いです。アプリケーションでデバイスを選択できますが、アプリケーションの起動時にCudaのコンテキストを初期化したいと思います。私はcudaDeviceSynchronizeを試みますが、うまくいきません – Arkerone
その場合、実際にコンテキストを作成してもよろしいですか?それはほとんどのハードウェアでかなり速いです。 OpenCVは(ここで推測すると)大きなmemcpyを実行している可能性があり、事前初期化されたコンテキストはそこでは役に立ちません。 – ChrisV
opencv FAQ: "これは初期化オーバーヘッドのためです。最初のGPU関数呼び出しでは、Cuda Runtime APIが暗黙的に初期化されます。また、ビデオカードの最初の使用時にGPUコードがコンパイルされます。 アプリケーションでGPUコードを1回実行することが重要な場合は、複数の実行にわたって永続的なコンパイルキャッシュを使用することができます。nvcc詳細についてはドキュメント(CUDA_DEVCODE_CACHE環境変数)を参照してください。 – Arkerone