当我遇到这个错误时,这是我试图在我的电脑上运行的代码。
./l
[Vector addition of 10 elements]
Bus error (core dumped)
我试过这个
>>>> nvcc -o l vectorAdd.cu -v
#$ _SPACE_=
#$ _CUDART_=cudart
#$ _HERE_=/usr/lib/nvidia-cuda-toolkit/bin
#$ _THERE_=/usr/lib/nvidia-cuda-toolkit/bin
#$ _TARGET_SIZE_=
#$ _TARGET_DIR_=
#$ _TARGET_SIZE_=64
#$ NVVMIR_LIBRARY_DIR=/usr/lib/nvidia-cuda-toolkit/libdevice
#$ PATH=/usr/lib/nvidia-cuda-toolkit/bin:/home/anshuman/Downloads/bin:/home/anshuman/anaconda3/bin:/usr/class/cs143/cool/bin:~/get-shit-done/:/home/anshuman/.local/bin:/home/anshuman/bin:/usr/local/cuda-10.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/anshuman/Documents/PCAP/.openmpi/bin:/home/anshuman/Documents/PCAP/bin:/usr/local/m4/bin/:/home/anshuman/bin:/usr/local/cuda-10.1/bin:/usr/lib/x86_64-linux-gnu/libcublas.so.10:/usr/local/bin/
#$ LIBRARIES= -L/usr/lib/x86_64-linux-gnu/stubs
#$ gcc -std=c++14 -D__CUDA_ARCH__=300 -E -x c++ -DCUDA_DOUBLE_MATH_FUNCTIONS -D__CUDACC__ -D__NVCC__ -D"__CUDACC_VER_BUILD__=85" -D"__CUDACC_VER_MINOR__=1" -D"__CUDACC_VER_MAJOR__=9" -include "cuda_runtime.h" -m64 "vectorAdd.cu" > "/tmp/tmpxft_00000213_00000000-8_vectorAdd.cpp1.ii"
#$ cicc --c++14 --gnu_version=70300 --allow_managed -arch compute_30 -m64 -ftz=0 -prec_div=1 -prec_sqrt=1 -fmad=1 --include_file_name "tmpxft_00000213_00000000-2_vectorAdd.fatbin.c" -tused -nvvmir-library "/usr/lib/nvidia-cuda-toolkit/libdevice/libdevice.10.bc" --gen_module_id_file --module_id_file_name "/tmp/tmpxft_00000213_00000000-3_vectorAdd.module_id" --orig_src_file_name "vectorAdd.cu" --gen_c_file_name "/tmp/tmpxft_00000213_00000000-5_vectorAdd.cudafe1.c" --stub_file_name "/tmp/tmpxft_00000213_00000000-5_vectorAdd.cudafe1.stub.c" --gen_device_file_name "/tmp/tmpxft_00000213_00000000-5_vectorAdd.cudafe1.gpu" "/tmp/tmpxft_00000213_00000000-8_vectorAdd.cpp1.ii" -o "/tmp/tmpxft_00000213_00000000-5_vectorAdd.ptx"
#$ ptxas -arch=sm_30 -m64 "/tmp/tmpxft_00000213_00000000-5_vectorAdd.ptx" -o "/tmp/tmpxft_00000213_00000000-9_vectorAdd.sm_30.cubin"
#$ fatbinary --create="/tmp/tmpxft_00000213_00000000-2_vectorAdd.fatbin" -64 --cmdline="" "--image=profile=sm_30,file=/tmp/tmpxft_00000213_00000000-9_vectorAdd.sm_30.cubin" "--image=profile=compute_30,file=/tmp/tmpxft_00000213_00000000-5_vectorAdd.ptx" --embedded-fatbin="/tmp/tmpxft_00000213_00000000-2_vectorAdd.fatbin.c" --cuda
#$ rm /tmp/tmpxft_00000213_00000000-2_vectorAdd.fatbin
#$ gcc -std=c++14 -E -x c++ -D__CUDACC__ -D__NVCC__ -D"__CUDACC_VER_BUILD__=85" -D"__CUDACC_VER_MINOR__=1" -D"__CUDACC_VER_MAJOR__=9" -include "cuda_runtime.h" -m64 "vectorAdd.cu" > "/tmp/tmpxft_00000213_00000000-4_vectorAdd.cpp4.ii"
#$ cudafe++ --c++14 --gnu_version=70300 --allow_managed --m64 --parse_templates --gen_c_file_name "/tmp/tmpxft_00000213_00000000-5_vectorAdd.cudafe1.cpp" --stub_file_name "tmpxft_00000213_00000000-5_vectorAdd.cudafe1.stub.c" --module_id_file_name "/tmp/tmpxft_00000213_00000000-3_vectorAdd.module_id" "/tmp/tmpxft_00000213_00000000-4_vectorAdd.cpp4.ii"
#$ gcc -std=c++14 -D__CUDA_ARCH__=300 -c -x c++ -DCUDA_DOUBLE_MATH_FUNCTIONS -m64 -o "/tmp/tmpxft_00000213_00000000-10_vectorAdd.o" "/tmp/tmpxft_00000213_00000000-5_vectorAdd.cudafe1.cpp"
#$ nvlink --arch=sm_30 --register-link-binaries="/tmp/tmpxft_00000213_00000000-6_l_dlink.reg.c" -m64 -L/usr/lib/x86_64-linux-gnu/stubs -cpu-arch=X86_64 "/tmp/tmpxft_00000213_00000000-10_vectorAdd.o" -o "/tmp/tmpxft_00000213_00000000-11_l_dlink.sm_30.cubin"
#$ fatbinary --create="/tmp/tmpxft_00000213_00000000-7_l_dlink.fatbin" -64 --cmdline="" -link "--image=profile=sm_30,file=/tmp/tmpxft_00000213_00000000-11_l_dlink.sm_30.cubin" --embedded-fatbin="/tmp/tmpxft_00000213_00000000-7_l_dlink.fatbin.c"
#$ rm /tmp/tmpxft_00000213_00000000-7_l_dlink.fatbin
#$ gcc -std=c++14 -c -x c++ -DFATBINFILE="\"/tmp/tmpxft_00000213_00000000-7_l_dlink.fatbin.c\"" -DREGISTERLINKBINARYFILE="\"/tmp/tmpxft_00000213_00000000-6_l_dlink.reg.c\"" -I. -D__NV_EXTRA_INITIALIZATION= -D__NV_EXTRA_FINALIZATION= -D"__CUDACC_VER_BUILD__=85" -
D"__CUDACC_VER_MINOR__=1" -D"__CUDACC_VER_MAJOR__=9" -m64 -o "/tmp/tmpxft_00000213_00000000-12_l_dlink.o" "/usr/lib/nvidia-cuda-toolkit/bin/crt/link.stub"
#$ g++ -m64 -o "l" -std=c++14 -Wl,--start-group "/tmp/tmpxft_00000213_00000000-12_l_dlink.o" "/tmp/tmpxft_00000213_00000000-10_vectorAdd.o" -L/usr/lib/x86_64-linux-gnu/stubs -lcudadevrt -lcudart_static -lrt -lpthread -ldl -Wl,--end-group
但是,我不太确定这里出了什么问题。有人可以帮忙吗。
的
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
的
nvidia-smi
Sat Apr 6 15:58:15 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.116 Driver Version: 390.116 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce 940MX Off | 00000000:01:00.0 Off | N/A |
| N/A 51C P5 N/A / N/A | 842MiB / 4046MiB | 12% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 1341 G /usr/lib/xorg/Xorg 293MiB |
| 0 1708 G /usr/bin/gnome-shell 311MiB |
| 0 2282 G ...uest-channel-token=10764068675564210353 181MiB |
| 0 29177 G ...uest-channel-token=10528584851110459654 52MiB |
我的 GPU 是 940MX,我确信代码没有错,因为我在另一台机器上运行它,它执行得很好。另外,它来自 CUDA 的官方代码库。在网上查找资料确实没有结果,因为其中大部分与 Python 和 Tensorflow 相关,而我在本例中并未使用它们。然而,我从 Reddit 那里得到了另一个建议:
很有可能是你的电源不够用。在将一些 Torch 深度学习模型移植到工业计算机时,我遇到了这个问题。我们用来构建和测试模型的机器上的电源比部署箱中的电源要强大得多,我最终看到了这个错误。
现在我不太确定那是什么意思。我有一台 HP Pavilion 笔记本电脑,一直在使用原装充电器和原装电池(由于原装电池存在缺陷,去年 11 月更换了电池)。这个问题似乎是在我尝试升级到 CUDA 10.0 之后才开始的 [不成功] 另外,如果有人对我可以暂时使用的基于云的 GPU 有建议,因为我的项目需要这个。我在考虑 AWS,但那似乎太贵了。
正如您所说,问题仅在 CUDA 10.0 安装失败后出现,这可能意味着此安装未完全撤消,因此您现在有两个版本的非工作混合物。
最好卸载除视频驱动程序以外的所有 NVIDIA 产品,清除所有文件夹,然后重新安装 CUDA 9.1。文档列出了这个 命令:
在 Windows 上,我会建议使用卸载程序(例如 Revo Uninstaller 免费软件 )来获取所有剩余的点点滴滴,但在 Linux 上,您可能需要在磁盘上搜索“cuda”子字符串以获取这些剩余的东西.
harrymc 所说的是正确的,我完全按照此链接中的步骤来解决此问题。我认为 CUDA 10.0 的旧文件可能已损坏,我清除了所有内容,包括 9.0 和 10.0,然后重做所有内容。