gpt4 book ai didi

c++ - 不再需要 cuInit(0) 了吗?

转载 作者:行者123 更新时间:2023-11-28 05:34:34 26 4
gpt4 key购买 nike

我目前正在编写一个应用程序来流式传输 openGL 内容,因此将 CUDA 与 NVidias NVenc-API 结合使用。我注意到调用 cuInit(0) - 根据许多教程,这应该作为初始化 Cuda 的第一次调用来完成,不会改变我的 Cuda 内核的成功。因此,无论我是否调用它,程序都会在两种情况下运行。

他们改了吗?我正在寻找一些信息,但找不到任何相关信息。

谢谢!

更多信息:

第一步是使用 cudaSetDevice() - 运行时 API 创建一个 Cuda 设备。第二步,使用 cuCtxCreate() - Driver API 创建上下文。在此之后,我可以使用三重人字形语法和通过 cudaMalloc() 分配的 cuda 数组启动内核。

最佳答案

如果您的代码中的第一个调用是,如您所说,cudaSetDevice(),并且您的 CUDA 版本是 CUDA 4 或更新版本,那么这将隐式建立一个上下文,并且没有要求做任何其他事情来使 CUDA 运行时 API session 正常工作。

你不应该在那之后调用 cuCtxCreatecuInit。如果您确实需要同时使用运行时和驱动程序 API(这听起来不像您那样做),那么有一个 supported and documented这样做的方法。经验法则是驱动程序 API 运行时 API,但不能同时使用两者,如果您没有理由使用驱动程序 API,然后不要使用它。运行时 API 更简单、更清晰、更简洁。

关于c++ - 不再需要 cuInit(0) 了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38610264/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com