【发布时间】:2016-12-01 07:19:14
【问题描述】:
我目前正在编写一个应用程序来流式传输 openGL 内容,因此将 CUDA 与 NVidias NVenc-API 结合使用。我注意到调用 cuInit(0) - 根据许多教程,这应该作为初始化 Cuda 的第一次调用,不会改变我的 Cuda 内核的成功。因此,无论我是否调用它,程序都可以在两种情况下运行。
他们改变了吗?我正在寻找一些信息,但找不到任何关于此的信息。
谢谢!
更多信息:
第一步是使用cudaSetDevice() - Runtime API 创建一个 Cuda 设备。
第二步,使用cuCtxCreate() - Driver API 创建一个上下文。
在此之后,我可以使用三重 V 形语法启动内核,并使用通过 cudaMalloc() 分配的 cuda 数组。
【问题讨论】:
-
您使用的是 CUDA 驱动程序还是运行时 API?
-
两个 API 都可以工作。
-
这不是我问的。您的代码是使用运行时 API 还是驱动程序 API? NVenc 本身与 CUDA 无关,也不需要 CUDA 上下文来运行。
-
好的,所以我想因为我用>>启动内核,它是运行时API?