私は現在、OpenGLコンテンツをストリームするためにNVIDIA NVenc-APIでCUDAを使用するアプリケーションを作成しています。私はcuInit(0)
を呼び出すことに気付きました - 多くのチュートリアルによると、Cudaを初期化するための最初の呼び出しとして実行する必要がありますが、私のCuda Kernelの成功は変わりません。だから私はそれを呼び出すかどうかに関係なく、プログラムは両方のシナリオで実行されます。cuInit(0)はもう必要ありませんか?
変更しましたか?私はいくつかの情報を探していましたが、これについて何も見つかりませんでした。
ありがとうございます!
ビット詳細に: - ランタイムAPI
最初のステップは、cudaSetDevice()
を使用してのCUDAデバイスを作成することです。 第2ステップ:cuCtxCreate()
- ドライバAPIを使用してコンテキストを作成します。 その後、cudaMalloc()
で割り当てられたcuda配列を持つ3重シェブロン構文を使ってカーネルを起動できます。
CUDAドライバまたはランタイムAPIを使用していますか? – talonmies
両方のAPIが動作します。 – Christoph
それは私が尋ねたものではありません。あなたのコードはランタイムAPIまたはドライバAPIを使用していますか? NVenc自体はCUDAと関係がなく、CUDAコンテキストを実行する必要はありません。 – talonmies