如果我告诉 NVCC -gencode arch=native,我该如何使用 code= 参数?

问题描述 投票:0回答:1

假设我的机器具有计算能力 XX 和 YY 的 GPU。读完:

https://stackoverflow.com/a/35657430/1593077

我知道我可以像这样调用 nvcc:

nvcc \
    -o myapp \
    -gencode arch=compute_XX,code=sm_XX \
    myapp.cu

或者像这样:

nvcc \
    -o myapp \
    -gencode arch=compute_XX,code=sm_XX \
    -gencode arch=compute_YY,code=sm_YY \
    myapp.cu

对于两个 GPU。但是 - 假设我想使用几年前我们得到的

arch=native
选项,而不是指定单独的值。它应该更容易、更直接,但是 - 我似乎无法正确理解:

$ nvcc -o myapp -gencode arch=native myapp.cu 
nvcc fatal   : Option '--generate-code arch=native', missing code
$ nvcc -o myapp -gencode arch=native,code=sm_89 myapp.cu 
nvcc fatal   : Unsupported gpu architecture 'native'

注意:使用 NVCC 的 CUDA 12.6' 版本。

compiler-errors cuda nvcc compiler-options compute-capability
1个回答
0
投票

实际上比这一切更容易。用途:

nvcc -o myapp -arch=native myapp.cu 

没有

-gencode
争论。

请注意,正如 CUDA 编程指南 所述

当指定

-arch=native
时,nvcc会检测系统上可见的GPU并为其生成代码,此选项不会生成PTX程序。如果系统上没有可见支持的 GPU,则会出现警告,并且将使用默认架构。

© www.soinside.com 2019 - 2024. All rights reserved.