我一直在Windows 7下使用cuda-memcheck。
不幸的是,在我的笔记本电脑上,我现在收到了以下错误消息:
========= Internal Memcheck Error: Memcheck failed initialization as profiler is attached. Try unsetting CUDA_PROFILE or disabling the profiler.
========= Saved host backtrace up to driver entry point at error
========= Host Frame:C:\windows\system32\nvcuda.dll (cuD3D11CtxCreate + 0x103dbd) [0x11fe1d]
========= Host Frame:C:\Users\user\Documents\Project\StackOverflow\Debug\cudart32_55.dll (_cudaRegisterDeviceFunction + 0x5eb2) [0xdaf2]
========= Host Frame:C:\Users\user\Documents\Project\StackOverflow\Debug\cudart32_55.dll (_cudaRegisterDeviceFunction + 0x600d) [0xdc4d]
========= Host Frame:C:\Users\user\Documents\Project\StackOverflow\Debug\cudart32_55.dll (_cudaRegisterDeviceFunction + 0x6576) [0xe1b6]
========= Host Frame:C:\Users\user\Documents\Project\StackOverflow\Debug\cudart32_55.dll (_cudaRegisterDeviceFunction + 0x3609) [0xb249]
========= Host Frame:C:\Users\user\Documents\Project\StackOverflow\Debug\cudart32_55.dll [0x3137]
========= Host Frame:C:\Users\user\Documents\Project\StackOverflow\Debug\cudart32_55.dll (cudaMalloc + 0xb5) [0x152d5]
========= Host Frame:C:\Users\user\Documents\Project\StackOverflow\Debug\StackOverflow.exe (main + 0x59) [0x2289]
========= Host Frame:C:\Users\user\Documents\Project\StackOverflow\Debug\StackOverflow.exe (__tmainCRTStartup + 0x1bf) [0xa3ef]
========= Host Frame:C:\Users\user\Documents\Project\StackOverflow\Debug\StackOverflow.exe (mainCRTStartup + 0xf) [0xa21f]
========= Host Frame:C:\windows\syswow64\KERNEL32.dll (BaseThreadInitThunk + 0x12) [0x1336a]
========= Host Frame:C:\windows\SysWOW64\ntdll.dll (RtlInitializeExceptionChain + 0x63) [0x39f72]
========= Host Frame:C:\windows\SysWOW64\ntdll.dll (RtlInitializeExceptionChain + 0x36) [0x39f45]
=========
========= ERROR SUMMARY: 1 error我已经检查过是否存在CUDA_PROFILE环境变量,但它既没有定义为系统,也没有定义为用户变量。反正我已经准备好了
Set @CUDA_PROFILE = 0但没有效果。我用的是CUDA 5.5。
我也尝试过在另外两个系统上使用cuda-memcheck,一个是4-GPU,一个是NVIDIA K20c系统,还有一个只有一个特斯拉C2050卡的系统。对于前者,我有同样的问题,而对于后者,cuda-memcheck工作得很好。
错误说明配置文件是附加的这一事实使我认为这个问题可能是由于Visual附件到我以前在两台机器cuda-memcheck上做过的进程所造成的。取而代之的是,cuda-memcheck正在工作的机器刚刚安装完毕。但是,我已经检查了用于这类附件的NSIGHT_CUDA_DEBUGGER环境变量是否设置为0。还有。我找不到任何外观进程,仍然可以附加到调试器。
有人能给出解决这个问题的建议吗?
发布于 2013-10-12 20:19:59
当遇到cuda-memcheck的问题时,我的系统环境变量COMPUTE_PROFILE被设置为1。我只需将其设置为0,以使cuda-memcheck正确工作。顺便说一句,我要感谢@Vjas建议检查nvprof --profile-all-processes,它抱怨CUDA_PROFILE的设置。我通过设置COMPUTE_PROFILE=0解决了笔记本电脑和开普勒系统上的问题。
今天,我无法访问特斯拉系统( cuda-memcheck正在正常工作)来检查COMPUTE_PROFILE的设置。一旦我有了这样的信息,我会尽快更新这个答复。
编辑
我已经检查了环境变量COMPUTE_PROFILE没有在cuda-memcheck最初工作的系统上定义。
发布于 2015-05-19 19:05:23
我遇到了一个类似的CUDA 6.5和7.0。错误信息稍微更笼统一些(这可能是由于不同的版本--我对此不太确定)。上面写着
内部Memcheck错误: Memcheck初始化失败,因为当前附加了其他一些工具。请确保nvprof和Nsight Visual没有同时运行
(当然,此时没有其他工具在运行)。
将COMPUTE_PROFILE环境变量设置为0没有帮助。(实际上,它根本就不是为我设定的)。
最后,我发现奇怪的行为是由其他环境变量引起的:工具箱/分析器显然在安装过程中设置了两个额外的环境变量:
CUDA_INJECTION32_PATH=C:\Program Files (x86)\NVIDIA Corporation\Nsight Visual Studio Edition 4.1\Monitor\Common\Injection32\Nvda.Cuda.Injection.dll
CUDA_INJECTION64_PATH=C:\Program Files (x86)\NVIDIA Corporation\Nsight Visual Studio Edition 4.1\Monitor\Common\Injection64\Nvda.Cuda.Injection.dll我不知道他们在做什么(很可能,他们建立了一些分析所需的“钩子”)。在任何情况下:删除这些环境变量(或通过执行
set CUDA_INJECTION32_PATH=
set CUDA_INJECTION64_PATH=在应该启动cuda-memcheck的命令提示符下),导致cuda-memcheck再次正常工作。
更新
在我的Windows2008GTX 780 GPU的Windows2008和Windows7机器上,我也遇到了同样的错误。虽然上面解释的过程对我有用,但我发现当CUDA_INJECTION32_PATH和CUDA_INJECTION64_PATH环境变量的设置“CUDA ->使用这个监视器用于CUDA附加”由用户添加和设置时,它是由Nsight Monitor添加和设置的。
为了解决CUDA的初始化问题,我只需关闭Nsight监视器中的设置“CUDA->使用此监视器进行CUDA附加”。这删除了CUDA_INJECTION32_PATH和CUDA_INJECTION64_PATH环境变量。此后,我打开了一个新的命令提示符会话,以重新加载新的环境变量,并测试cuda是否正常工作。
发布于 2021-02-05 03:05:16
在尝试使用Internal Memcheck Error: Initialization failed库时,我遇到的错误只是cuFFT。根据nvidia论坛,解决方案是设置CUDA_MEMCHECK_PATCH_MODULE环境变量。
export CUDA_MEMCHECK_PATCH_MODULE=1https://stackoverflow.com/questions/19323560
复制相似问题