gpt4 book ai didi

cuda - 动态检测启用 CUDA 的 NVIDIA 卡,然后才初始化 CUDA 运行时 : How to do?

转载 作者:行者123 更新时间:2023-12-01 12:50:43 27 4
gpt4 key购买 nike

我有一个应用程序,它有一个算法,用 CUDA 加速。它还有一个标准的 CPU 实现。我们计划为各种平台发布此应用程序,因此大多数时候,不会有 NVIDIA 卡来运行加速的 CUDA 代码。我想要的是首先检查用户的系统是否有启用 CUDA 的 NVIDIA 卡,如果有,则在之后初始化 CUDA 运行时。如果系统不支持CUDA,那么我想执行CPU路径。 This问题与我的非常相似,但我不想使用普通 CUDA 运行时以外的任何其他库。 OpenCL 是一种替代方法,但没有足够的时间为第一个版本实现算法的 OpenCL 版本。如果没有任何 CUDA 存在检查,程序肯定会崩溃,因为它找不到 CUDA 运行时所需的 .dll,我们肯定不希望那样。所以,我需要关于如何处理这个初始化步骤的建议。

最佳答案

使用电话cudaGetDeviceCountcudaGetDeviceProperties在正在运行的系统上查找 CUDA 设备。首先找出有多少,然后遍历所有可用设备,并检查属性以确定哪些符合条件。我所说的“合格”取决于您的申请。您是否需要一定的计算能力?还是需要一定的内存?如果有多个设备,您可能希望根据某些条件进行排序,然后设置设备 cudaSetDevice .如果没有设备,或者没有足够的设备,则回退到 CPU 代码路径。

我还建议使用某种机制来强制关闭 CUDA 模式,以防某些用户的环境由于驱动程序问题、旧板或其他原因而无法工作。您可以使用命令行选项,或环境变量,或任何...

编辑:
关于 DLL,您应该将 cudart[whatever].dll 与您的应用程序一起打包。这将确保程序启动,并且至少 CUDA 查询功能将运行。

关于cuda - 动态检测启用 CUDA 的 NVIDIA 卡,然后才初始化 CUDA 运行时 : How to do?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12568692/

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