Может ли кто-нибудь помочь мне, пожалуйста? Заранее спасибо.
Я пытался создать Makefile для своей программы (обычно я делал это хорошо на Ubuntu 16.04 с CUDA 7.5), но на этот раз у меня возникла следующая проблема:
nvcc -O3 -m64 -arch=sm_20 -I/usr/local/include -I/usr/local/cuda/include -I/usr/include/gdal -c src/cuda_kde.cu -o obj/cuda_kde.o
nvcc fatal : Value 'sm_20' is not defined for option 'gpu-architecture'
Makefile:91: recipe for target 'obj/cuda_kde.o' failed
make: *** [obj/cuda_kde.o] Error 1"
Некоторые говорили, что я должен попытаться изменить ваш -arch = sm_20 до этого значения или просто измените свое значение до 30 или выше, но я не знаю, как это сделать. Может ли кто-нибудь помочь мне, пожалуйста? Спасибо!
Моя компьютерная система работает следующим образом.
$ uname -a
Linux fankao 4.18.0-25-generic #26~18.04.1-Ubuntu SMP Thu Jun 27 07:28:31 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
$ lsb_release -crid
Distributor ID: Ubuntu
Description: Ubuntu 18.04.2 LTS
Release: 18.04
Codename: bionic
$ dpkg -l | grep -i nvidia
ii libnvidia-cfg1-418:amd64 418.56-0ubuntu0~gpu18.04.1 amd64 NVIDIA binary OpenGL/GLX configuration library
ii libnvidia-common-418 418.56-0ubuntu0~gpu18.04.1 all Shared files used by the NVIDIA libraries
rc libnvidia-compute-390:amd64 390.116-0ubuntu0.18.04.1 amd64 NVIDIA libcompute package
rc libnvidia-compute-390:i386 390.116-0ubuntu0.18.04.1 i386 NVIDIA libcompute package
ii libnvidia-compute-418:amd64 418.56-0ubuntu0~gpu18.04.1 amd64 NVIDIA libcompute package
ii libnvidia-compute-418:i386 418.56-0ubuntu0~gpu18.04.1 i386 NVIDIA libcompute package
rc libnvidia-compute-430:amd64 430.26-0ubuntu0~gpu18.04.1 amd64 NVIDIA libcompute package
ii libnvidia-decode-418:amd64 418.56-0ubuntu0~gpu18.04.1 amd64 NVIDIA Video Decoding runtime libraries
ii libnvidia-decode-418:i386 418.56-0ubuntu0~gpu18.04.1 i386 NVIDIA Video Decoding runtime libraries
ii libnvidia-encode-418:amd64 418.56-0ubuntu0~gpu18.04.1 amd64 NVENC Video Encoding runtime library
ii libnvidia-encode-418:i386 418.56-0ubuntu0~gpu18.04.1 i386 NVENC Video Encoding runtime library
ii libnvidia-fbc1-418:amd64 418.56-0ubuntu0~gpu18.04.1 amd64 NVIDIA OpenGL-based Framebuffer Capture runtime library
ii libnvidia-fbc1-418:i386 418.56-0ubuntu0~gpu18.04.1 i386 NVIDIA OpenGL-based Framebuffer Capture runtime library
ii libnvidia-gl-418:amd64 418.56-0ubuntu0~gpu18.04.1 amd64 NVIDIA OpenGL/GLX/EGL/GLES GLVND libraries and Vulkan ICD
ii libnvidia-gl-418:i386 418.56-0ubuntu0~gpu18.04.1 i386 NVIDIA OpenGL/GLX/EGL/GLES GLVND libraries and Vulkan ICD
ii libnvidia-ifr1-418:amd64 418.56-0ubuntu0~gpu18.04.1 amd64 NVIDIA OpenGL-based Inband Frame Readback runtime library
ii libnvidia-ifr1-418:i386 418.56-0ubuntu0~gpu18.04.1 i386 NVIDIA OpenGL-based Inband Frame Readback runtime library
ii nvidia-compute-utils-418 418.56-0ubuntu0~gpu18.04.1 amd64 NVIDIA compute utilities
ii nvidia-dkms-418 418.56-0ubuntu0~gpu18.04.1 amd64 NVIDIA DKMS package
ii nvidia-driver-418 418.56-0ubuntu0~gpu18.04.1 amd64 NVIDIA driver metapackage
ii nvidia-kernel-common-418 418.56-0ubuntu0~gpu18.04.1 amd64 Shared files used with the kernel module
ii nvidia-kernel-source-418 418.56-0ubuntu0~gpu18.04.1 amd64 NVIDIA kernel source package
ii nvidia-prime 0.8.8.2 all Tools to enable NVIDIA's Prime
ii nvidia-settings 418.56-0ubuntu0~gpu18.04.1 amd64 Tool for configuring the NVIDIA graphics driver
ii nvidia-utils-418 418.56-0ubuntu0~gpu18.04.1 amd64 NVIDIA driver support binaries
ii xserver-xorg-video-nvidia-418 418.56-0ubuntu0~gpu18.04.1 amd64 NVIDIA binary Xorg driver
$ sudo lshw -C display
*-display
description: VGA compatible controller
product: GP107 [GeForce GTX 1050]
vendor: NVIDIA Corporation
physical id: 0
bus info: pci@0000:01:00.0
version: a1
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress vga_controller bus_master cap_list rom
configuration: driver=nvidia latency=0
resources: irq:139 memory:a3000000-a3ffffff memory:90000000-9fffffff memory:a0000000-a1ffffff ioport:3000(size=128) memory:a4000000-a407ffff
*-display
description: VGA compatible controller
product: Intel Corporation
vendor: Intel Corporation
physical id: 2
bus info: pci@0000:00:02.0
version: 00
width: 64 bits
clock: 33MHz
capabilities: pciexpress msi pm vga_controller bus_master cap_list rom
configuration: driver=i915 latency=0
resources: irq:138 memory:a2000000-a2ffffff memory:80000000-8fffffff ioport:4000(size=64) memory:c0000-dffff
Рассмотрите установку nvcc с
sudo apt-get install nvidia-cuda-toolkit
вместо этого из Соре.
Но с чем-то вроде предположения:
Если это все корректно, посмотрите строку 55 в Вашем CMakeLists.txt:
IF (CUDA_FOUND)
LIST(APPEND CUDA_NVCC_FLAGS "-arch=sm_XX")
Это перечислит значение, где это говорит XX.
Попытайтесь изменить свой-arch=sm_20 на то значение или просто изменить Ваше значение к 30 или выше.