Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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
Opencv 我做完了。但是,这对您的性能有很大影响,因为您首先必须拆分数据,对其进行适当的排队,并多次将数据复制到GPU和从GPU复制数据,因此您可能会损失大量性能,这取决于您的数据_Opencv_Gpu_Gpgpu_Osx Mavericks_Watchdog - Fatal编程技术网

Opencv 我做完了。但是,这对您的性能有很大影响,因为您首先必须拆分数据,对其进行适当的排队,并多次将数据复制到GPU和从GPU复制数据,因此您可能会损失大量性能,这取决于您的数据

Opencv 我做完了。但是,这对您的性能有很大影响,因为您首先必须拆分数据,对其进行适当的排队,并多次将数据复制到GPU和从GPU复制数据,因此您可能会损失大量性能,这取决于您的数据,opencv,gpu,gpgpu,osx-mavericks,watchdog,Opencv,Gpu,Gpgpu,Osx Mavericks,Watchdog,另一个解决方案是安装两个专用的GPU——一个作为系统GPU工作,另一个只是坐在那里处理你告诉它的数字。至少在Windows和Linux上,它可以完美地工作,无需禁用看门狗计时器。我不知道OSX是否也适用,因为我没有在Mac上使用多个CUDA GPU的经验。CUDA公开了一个功能,您可以在其中手动设置要使用的设备: 默认的GPU总是索引0,根据我的经验,它是由系统设置为当前显示设备的GPU。因此,将索引设置为1将使用系统当前未使用的GPU(请注意,我不确定SLI设置中的行为是否相同)。例如,我用

另一个解决方案是安装两个专用的GPU——一个作为系统GPU工作,另一个只是坐在那里处理你告诉它的数字。至少在Windows和Linux上,它可以完美地工作,无需禁用看门狗计时器。我不知道OSX是否也适用,因为我没有在Mac上使用多个CUDA GPU的经验。CUDA公开了一个功能,您可以在其中手动设置要使用的设备:

默认的GPU总是索引0,根据我的经验,它是由系统设置为当前显示设备的GPU。因此,将索引设置为1将使用系统当前未使用的GPU(请注意,我不确定SLI设置中的行为是否相同)。例如,我用于测试的Windows机器有一台8800GT作为显示设备,旁边有一台特斯拉C2075。两者都支持CUDA,因此手动将特斯拉设置为CUDA设备(索引1),这意味着显示设备不会冻结,因此看门狗也不会启动。同样的情况也发生在我的带有GTX680/TESLA k20C组合的linux机器上

值得注意的是,cudaSetDevice只知道CUDA设备-因此,如果您有集成GPU或AMD GPU以及Nvidia卡,则无法使用cudaSetDevice在它们之间进行切换。它将始终使用支持CUDA的设备,或者完全失败。据我所知,没有cv::gpu:cudaSetDevice,因此我不知道是否可以将此函数与OpenCV代码一起调用。如果使用C而不是C++,则可以使用NVCC编译器,并在OpenCV函数之前调用一些本地CUDA(如CUDASETMIDE)函数。 然而,使用OpenCV,您对CUDA代码中发生的事情的控制要少得多(与编写自己的内核相比),并且可能无法实际分割数据并仍然获得令人满意的结果。那样的话,我认为你的问题没有解决办法。除此之外,OSX还喜欢根据MacBookPro上当前的工作负载在多个GPU之间切换


当我的MacBook pro出现这个问题时,我在我的训练营中安装了Windows7以及VS2010和CUDA工具包,禁用了看门狗定时器,并且运行得很好。这不是一个完美的解决方案,但至少它允许我在部署到测试服务器之前在本地开发CUDA代码。

非常感谢您的详细回答,Niklas。我的解决方案与你的非常相似,只是我用refit制作了rMBP双引导,并在另一个分区中使用Ubuntu。非常感谢你的详尽回答,Niklas。我的解决方案与你的非常相似,只是我用refit做了rMBP双引导,并在另一个分区中使用Ubuntu。