最近在学习CUDA,看着CUDA C教程 使用nvcc进行编译文件出现这个问题。
运行代码:
nvcc -arch sm_20 cudatest.cu -o hello
错误:
nvcc fatal : Value 'sm_20' is not defined for option 'gpu-architecture'
解决:
教程使用的架构较老。我使用的是4090,计算能力最高可以写89就行了
具体看这,自己查一下:https://developer.nvidia.com/cuda-gpus
改为:
nvcc -arch sm_86 cudatest.cu -o hello
或者 不写:
nvcc cudatest.cu -o hello
补充:
这行代码是用来编译一个名为 cudatest.cu 的 CUDA 源文件的命令。
nvcc 是 NVIDIA CUDA 编译器的名称,它负责将 CUDA 代码编译成可在 GPU 上运行的程序。
-arch sm_86 参数指定了目标架构,即代码将在支持 sm_86 计算能力的 GPU 上运行。
-o hello 参数指定了输出文件的名称,即编译后生成的可执行文件将被命名为 hello。