Cuda 为GPU编译暗网时出现分段错误
我想在我的电脑上用GPU支持编译机器学习的Darknet框架。但是,我调用make时,会出现分段错误:Cuda 为GPU编译暗网时出现分段错误,cuda,gpu,nvidia,nvcc,darknet,Cuda,Gpu,Nvidia,Nvcc,Darknet,我想在我的电脑上用GPU支持编译机器学习的Darknet框架。但是,我调用make时,会出现分段错误: nvcc -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_50,code=[sm_50,compute_50] -gencode arch=compute_52,code=[sm_52,compute_52] -Iinclude/ -Isrc/ -DOP
nvcc -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_50,code=[sm_50,compute_50] -gencode arch=compute_52,code=[sm_52,compute_52] -Iinclude/ -Isrc/ -DOPENCV `pkg-config --cflags opencv` -DGPU -I/usr/local/cuda/include/ --compiler-options "-Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -DOPENCV -DGPU" -c ./src/convolutional_kernels.cu -o obj/convolutional_kernels.o
Segmentation fault (core dumped)
Makefile:92: recipe for target 'obj/convolutional_kernels.o' failed
make: *** [obj/convolutional_kernels.o] Error 139
nvidia smi向我提供了以下信息:
NVIDIA-SMI 418.87.01 Driver Version: 418.87.01 CUDA Version: 10.1
当我执行nvcc时--我得到的版本:
CUDA版本10.1与CUDA编译工具的Verions 9.1不同。这可能是问题所在吗?NVCC是通过apt安装nvidia cuda工具包安装的我解决了这个问题。安装cuda后,nvcc的实际二进制文件位于/usr/local/cuda/bin/nvcc。在/usr/bin/中创建一个指向这个二进制文件的符号链接解决了这个问题。我想在这里发布我的解决方案,因为我找到了这个问题的实际原因。发生这种情况的原因是因为它运行的二进制文件与darknet想要运行的二进制文件不同。至少对我来说,
哪个nvcc
给了我/usr/bin/nvcc
。您想要的实际nvcc
位于/usr/local/cuda-11.1/bin
(版本号可能明显不同)。所以,您所需要做的就是将这个目录预加(重要!)到PATH变量
export PATH=/usr/local/cuda-11.1/bin${PATH:+:${PATH}>~/.bashrc
资料来源:
我建议您遵循该链接,因为还有一些我也没有遵循的强制性安装后步骤。显示的nvidia smi版本与您安装的CUDA toolkit版本无关。它只显示安装的驱动程序支持的内容
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Nov__3_21:07:56_CDT_2017
Cuda compilation tools, release 9.1, V9.1.85