Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Cuda 7.5和Visual Studio 2013:一些示例有效,但其他返回的CUDAerrorDevices不可用_C++_Visual Studio_Visual Studio 2013_Cuda - Fatal编程技术网

C++ Cuda 7.5和Visual Studio 2013:一些示例有效,但其他返回的CUDAerrorDevices不可用

C++ Cuda 7.5和Visual Studio 2013:一些示例有效,但其他返回的CUDAerrorDevices不可用,c++,visual-studio,visual-studio-2013,cuda,C++,Visual Studio,Visual Studio 2013,Cuda,我最近在Windows 8.1中安装了CUDA 7.5和Visual Studio 2013。在测试了一些示例之后,它对一些示例非常有效,例如Mandelbrot或matrixMul。但是,在测试Marching Cubes和双边过滤等示例时,我得到以下错误: “CUDA运行时API错误46:所有支持CUDA的设备忙或不可用” 我已经测试了“deviceQuery”,它成功了。另外,我在华硕GT630m笔记本电脑中使用CUDA。我尝试将计算模式设置为默认,但没有任何区别 大多数配备英特尔CPU(

我最近在Windows 8.1中安装了CUDA 7.5和Visual Studio 2013。在测试了一些示例之后,它对一些示例非常有效,例如Mandelbrot或matrixMul。但是,在测试Marching Cubes和双边过滤等示例时,我得到以下错误:

“CUDA运行时API错误46:所有支持CUDA的设备忙或不可用”


我已经测试了“deviceQuery”,它成功了。另外,我在华硕GT630m笔记本电脑中使用CUDA。我尝试将计算模式设置为默认,但没有任何区别

大多数配备英特尔CPU(包括NVIDIA“离散”GPU)的现代windows笔记本电脑也以合作方式使用英特尔“集成”图形,这是NVIDIA的品牌

基本思想是英伟达GPU在某些情况下会执行一些图形任务,但是其他任务,也许在其他情况下,将由英特尔图形执行。 通常,普通CUDA应用程序将在此场景中正常运行。CUDA GPU被正确地检测,CUDA运行时处理所有与英伟达GPU相关的CUDA相关的信息。

图形任务与CUDA无关,也将在英特尔或英伟达设备上运行,根据OpthiSuxTebug,其细节与此处不相关。 但是,对于使用CUDA的某种形式的图形“互操作”的应用程序,可能需要对Optimus启发式进行一些修改。CUDA/图形互操作,CUDA“上下文”和图形“上下文”都是在英伟达GPU上建立的(为了这个问题的目的,只有一个NVIDIA GPU存在)。如果首先建立图形上下文,而不考虑这一点,则可能会在Intel设备上建立图形上下文,并且CUDA图形互操作将在该场景中失败


英伟达英伟达显示驱动控制面板提供了一种机制来实现这一点。

这个问题与正在运行的Optudio笔记本电脑上的图形互操作应用程序有关。您的笔记本电脑正在使用英特尔图形设备。创建OpenGL或D3D上下文时,它将在intel设备上创建。你可以强迫它发生在CUDA设备上(这是需要适当的CUDA/图形互操作)的一种方法,其中一种方法是在英伟达显示控制面板中创建一个。非常感谢。将此评论提升为答案。