矿机cudaerror
Ⅰ 如何解决CUDA error的问题
cuda中有cudaError_t这个类别,可以记录cuda错误。所有的cuda库函数,几乎都返回一个cudaError_t。
《GPU高性能编程》中使用HANDLE_ERROR宏函数,处理每个函数返回的cudaerror
static void HandleError( cudaError_t err,const char *file,int line ) {
if (err != cudaSuccess) {
printf( "%s in %s at line %d\n", cudaGetErrorString( err ), file, line );
exit( EXIT_FAILURE );
}
}
Ⅱ cuda error out of memory 怎么解决
今天刚把服务器搭建起来 结果程序就跑不起来 当时差点把自己吓尿了
错误类型:CUDA_ERROE_OUT_OF_MEMORY
E tensorflow/stream_executor/cuda/cuda_driver.cc:924] failed to alloc 17179869184 bytes on host: CUDA_ERROR_OUT_OF_MEMORY
W ./tensorflow/core/common_runtime/gpu/pool_allocator.h:195] could not allocate pinned host memory of size: 17179869184
Killed
其实很容易理解 大致意思就是 服务器的GPU大小为M
tensorflow只能申请N(N<M)
也就是tensorflow告诉你 不能申请到GPU的全部资源 然后就不干了
解决方法:
找到代码中Session
在session定义前 增加
config = tf.ConfigProto(allow_soft_placement=True)
#最多占gpu资源的70%
gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.7)
#开始不会给tensorflow全部gpu资源 而是按需增加
config.gpu_options.allow_growth = True
sess = tf.Session(config=config)
这样就没问题了
其实tensorflow 算是一个比较贪心的工具了
就算用device_id指定gpu 也会占用别的GPU的显存资源 必须在执行程序前
执行 export CUDA_VISIBLE_DEVICES=n(n为可见的服务器编号)
再去执行Python 代码.py 才不会占用别的GPU资源
最近刚开始搞tensorflow 之前都是caffe
这周连续3天被实验室的人 举报 占用过多服务器资源 真是心累 只要用上面的方法
也就是执行代码前 执行 export CUDA_VISIBLE_DEVICES=n
只让1个或者个别GPU可见 其他GPU看不见 就行了
Ⅲ 请教cuda error
如果用的是Windows中的Visual Studio的Nsight插件,可以在kernel中设置断点,然后选择Nsight插件中的Start CUDA Debugging来看出错的语句。
如果是Mac或Linux,请考虑使用CUDA-GDB。
另,在每次调用完kernel后写一句话可以检查基本的kernel调用错误,例如
//
#definegetLastCudaError(msg)__getLastCudaError(msg,__FILE__,__LINE__)
inlinevoid__getLastCudaError(constchar*errorMessage,constchar*file,constintline)
{
cudaError_terr=cudaGetLastError();
if(cudaSuccess!=err)
{
fprintf(stderr,"%s(%i):getLastCudaError()CUDAerror:%s:(%d)%s. ",
file,line,errorMessage,(int)err,cudaGetErrorString(err));
DEVICE_RESET
exit(EXIT_FAILURE);
}
}
#endif
kernel<<<1,1>>>();
getLastCudaError("ErrorinCalling'kernel'");
Ⅳ 运行Python项目时出现“ cuda runtime error (30) : unknown error ”要怎么解决
R6034出错可能是你安装过像Spyware Doctor这类的反间谍软件,安装这样的软件后会在C:\windows\system32\目录下出现一个名为msvcr80.dll的文件,当卸载这个软件时msvcr80.dll会留在目录里。可以试试把C:\windows\system32\目录下的msvcr80.dll删除,如果装有360安全卫士这类软件,删除时可能会出现一个提示,一定要选允许,不然无法删除。然后点击桌面左下角的开始菜单,点击运行,输入cmd,然后输入for %1 in (%windir%\system32\*.dll) do regsvr32 /s %1,如果怕输错,可复制,然后点击输入cmd后弹出窗口的左上角C:\,点击编辑-粘贴,回车后静待刷屏运行,完毕后再等一会儿直到硬盘指示灯不再闪烁为止,然后重新启动
Ⅳ 安装CUDA6.5发现找不到C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing这个文件夹,请问在哪
你好,
没有NVIDA GPU Computing这个文件夹,ProgramData里面放的是CUDA Sample。如果你想自己配置CUDA的话,你需要到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5下面,里面的include, lib和bin文件夹是你要用到的。其次,你要确认你的系统环境变量的Path中是否加入了你的C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.5\bin目录,不然你自己配置的CUDA程序是没有办法直接运行的。
谢谢
Ⅵ cuda中的错误MSB3721怎么解决
我是用的《cuda by example》这本书的案例 编译也遇到这个问题 改了下头文件"book.h"就通过了 。对了 你看下cuda的cu文件属性是不是CUDA C/c++
Ⅶ cuda中kernel挂掉了,怎么查错
如果用的是Windows中的Visual Studio的Nsight插件,可以在kernel中设置断点,然后选择Nsight插件中的Start CUDA Debugging来看出错的语句。
如果是Mac或Linux,请考虑使用CUDA-GDB。
另,在每次调用完kernel后写一句话可以检查基本的kernel调用错误,例如
//
#definegetLastCudaError(msg)__getLastCudaError(msg,__FILE__,__LINE__)
inlinevoid__getLastCudaError(constchar*errorMessage,constchar*file,constintline)
{
cudaError_terr=cudaGetLastError();
if(cudaSuccess!=err)
{
fprintf(stderr,"%s(%i):getLastCudaError()CUDAerror:%s:(%d)%s. ",
file,line,errorMessage,(int)err,cudaGetErrorString(err));
DEVICE_RESET
exit(EXIT_FAILURE);
}
}
#endif
kernel<<<1,1>>>();
getLastCudaError("ErrorinCalling'kernel'");
Ⅷ cudaerrorlaunchtimeout问题怎么解决
这个错误是因为你的运行库不全这游戏运行需要的运行库很多比如vc2005+等东西下一个游戏运行库的整合包这东西很常见游侠啊3dm或其他一些网站都有都装上一本就不会缺东西而导致运行错误了