Cuda 7.5和Visual Studio 2013:一些例子工作,但其他返回cudaErrorDevicesUnav
Cuda 7.5 and Visual Studio 2013: Some examples work, but other returns cudaErrorDevicesUnavailable
我最近在Windows 8.1中安装了CUDA 7.5和Visual Studio 2013。在测试示例之后,它可以完美地运行于某些示例中,例如Mandelbrot或matrixMul。但是,在测试行军立方体和双边过滤等示例时,我得到了以下错误:
"CUDA Runtime API error 46: all CUDA-capable devices are busy or unavailable"
我已经测试了"deviceQuery",它工作了。此外,我在带有Geforce GT630m的华硕笔记本电脑中使用CUDA。我试过将计算模式设置为DEFAULT,但是没有任何区别。
大多数带有英特尔CPU的现代windows笔记本电脑,包括NVIDIA"分立"GPU,也在合作安排中使用英特尔"集成"图形,其中NVIDIA品牌为Optimus。
基本思想是NVIDIA GPU将在某些情况下执行一些图形任务,但其他任务,可能在其他情况下,将由英特尔图形执行。
通常,普通的CUDA应用程序将在此场景中正常运行。CUDA GPU被正确检测,CUDA运行时处理所有与CUDA相关的NVIDIA GPU。
与CUDA无关的图形任务也将在英特尔或NVIDIA设备上运行,根据Optimus启发式,其中的细节在这里不相关。
然而,对于使用某种形式的图形与CUDA"互操作"的应用程序,可能需要对Optimus启发式进行一些修改。CUDA/图形互操作要求CUDA"上下文"和图形"上下文"都建立在NVIDIA GPU上(为了这个问题的目的,只有一个NVIDIA GPU存在)。如果首先建立图形上下文,并且没有考虑到这一点,那么图形上下文可能会在英特尔设备上建立,并且CUDA图形互操作将在这种情况下失败。
解决方案是强制在NVIDIA设备上为这些应用程序建立图形上下文,NVIDIA显示驱动程序控制面板提供了一种机制("配置文件")来实现这一目标。
- QSqlquery prepare()和bindvalue()不工作
- 导入库可以跨dll版本工作吗
- 以螺旋方式打印矩阵的程序.(工作不好)
- 对象指针在c++中是如何工作的
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- VSOMEIP-2个设备之间的通信(TCP/UDP)不工作
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- C++为线程工作动态地分割例程
- 为什么我的 std::ref 无法按预期工作?
- 布尔比较运算符是如何在C++中工作的
- SampleConsensusPrerejective(ext.RANSAC)是如何真正工作的
- 不确定要在我的main中放入什么才能使我的代码正常工作
- 为什么std::condition_variable notify_all的工作速度比notify_one快(对于随机请
- <<操作员在下面的行中工作
- 有人能解释一下为什么下界是这样工作的吗C++的
- ExtractIconEx:可以工作,但偶尔会崩溃
- C++中的memset函数工作不正常
- 当我在第一个循环中使用"auto"时,它工作正常,但是使用"int"它会给出错误,为什么?
- 链表c++插入,所有情况都已检查,但没有任何工作
- 为什么stream::忽略未按预期工作