草庐IT

cuda-c-programming-guide

全部标签

windows - 如何以编程方式杀死 CUDA 内核

我有一个CUDA内核,它在我的旧Tesla卡中使用了20多秒。如果内核运行时间超过20秒,我想以编程方式终止CUDA内核。我的意图是,如果内核运行时间超过20秒,则应终止该内核并运行另一个精度较低的内核。我的操作系统是Windows764位。CUDA版本为5.0。GPU为特斯拉C1060请帮助我在不退出应用程序的情况下终止CUDA内核。 最佳答案 您可以使用assert从内核中停止现有内核的运行。(失败)在CC2.0或更高版本的设备上。然而,我认为这不会达到既定目的,至少不方便。您还可以使用cudaDeviceReset()从主机端

c++ - 带有 GUID 的未解析的外部符号 _CLSID_ScenicIntentUIFramework

我正在尝试在visualstudio中构建功能区应用程序,但遇到了链接器错误。查看标题后,我注意到CLSID_ScenicIntentFramework被定义为externconstCLSID。我的想法是,我似乎无法弄清楚我需要链接到哪个库(或我需要导入的其他header?)。我也非常感谢您的帮助。后记:我注意到除了scenicintent.h之外,还有一个scenicintent.idl,但是如果我将它包含到我的项目中,我会遇到很多错误。是否有包含idl文件的正确方法,这会解决我的问题吗? 最佳答案 通常,您需要链接到一个导入库(

将 C 代码与 CUDA 链接时出现 CMake 错误

我在使用cmake构建项目时遇到链接错误。该构建在使用makefile(手动生成/无cmake)的Linux上运行良好,但Windows构建给我带来了问题。这是一个演示我的方法的准系统示例:我在同一目录中有3个文件(kernel.cu、kernel.h、main.c)主.c:externvoidkernel_wrapper();intmain(){kernel_wrapper();}内核.h:#ifndefKERNELH#defineKERNELHextern"C"voidkernel_wrapper();#endif内核.cu:#include#include"kernel.h"__

windows - 如何将 GUID 附加到现有文件名并保存为 CSV

我目前有一个CSV,其中包含列出许多文件全名的1列。(即“\\server\sub\folder\file.ext”)。我正在尝试导入此CSV,将文件移动到单独的位置并将GUID附加到新位置文件名的开头(即GUID_File.ext)。我已经能够移动文件,生成GUID_,但无法存储和重用现有的filename.ext,它只是被切断,文件最终只是一个GUID_。我只是不确定如何存储现有文件名以供重用。$Doc=Import-CSVC:\Temp\scripttest.csvForEach($linein$Doc){$FileBase=$Line.basename$FileExt=$Lin

c++ - 使用 CMake、CUDA 9.0 RC 和 Visual Studio 2017 安装带有 contrib 模块的 OpenCV 3.3.0

我正在尝试使用最新的CUDA9.0RC安装带有contrib模块的OpenCV3.3.0,因此它与MicrosoftVisualStudio2017兼容。CUDA安装很简单,并成功集成到VS2017中。我正在根据各种在线说明使我能够在没有CUDA的情况下成功构建contrib模块。但是,当我运行CMake时(确保我将其设置为VS2017x64,请参阅:CMake:CUDAlibrariesnotfoundwhencompilingOpenCV),我得到了经典的:CMakeError:Thefollowingvariablesareusedinthisproject,buttheyare

c++ - 如何将 LPWSTR 转换为 GUID?

我在使用Windows7音频API时遇到了困难。基本上,我需要拿一个IAudioSessionControl2*并得到ISimpleAudioVolume*不在其中。现在,看来我可以调用IAudioSessionManager->GetSimpleAudioVolume()了使用IAudioSessionControl2->GetSessionInstanceIdentifier(...)的值.请注意,这在文档中并没有明确说明,但这似乎是一种合理的行为。问题是,GetSimpleAudioVolume()需要一个GUID*而GetSessionInstanceIdentifier()输

c++ - 如何使用 CUDA c++ 将 vector 乘以矩阵

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭10年前。任何人都可以帮助我,我如何使用CUDAc++将vector(1*N)和矩阵(N*M)相乘并将结果存储在新vector(1*M)上。

c++ - 使用 sscanf 将字符串转换为 GUID

关闭。这个问题需要debuggingdetails.它目前不接受答案。编辑问题以包含desiredbehavior,aspecificproblemorerror,andtheshortestcodenecessarytoreproducetheproblem.这将有助于其他人回答问题。关闭2年前。Improvethisquestion我正在尝试使用sscanf将字符串转换为GUID:GUIDguid;sscanf("11111111-2222-3333-4455-667788995511","%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%0

c - Boost.Program_options 的良好 C 替代方案?

用C编写的任何替代Boost.Program_options的好选择?鉴于它能够解析:短选项,如-h像--help--input-file这样的长选项解析重复的键/选项接受键值对:--mysql=/usr/lib解析环境变量和XML/INI文件是可选的。 最佳答案 如果您同意GPL许可证,您需要GNUgetopt. 关于c-Boost.Program_options的良好C替代方案?,我们在StackOverflow上找到一个类似的问题: https://st

c++ - CUDA 对 CPU 和 GPU 具有相同的功能

这个问题在这里已经有了答案:CUDAfunctioncall-ablebyeitherthedeviceorhost(1个回答)关闭8年前。为了从主机代码和GPU内核调用相同的函数,我是否必须保留相同函数的两个拷贝,如下所示:intsum(inta,intb){returna+b;}__deviceintsumGPU(inta,intb){returna+b;}或者是否有任何技术可以保留/管理函数的单个拷贝?