使用NVCC的arch=native选项时,code参数应如何设置?
解决NVCC中
arch=native的使用问题 你的问题出在对native参数的用法理解有误,CUDA 12.6的NVCC里,native不能直接用在-gencode的arch字段,正确的使用方式有两种:
方式一:使用简化的-arch=native选项
这是最便捷的写法,直接指定该选项后,NVCC会自动检测当前机器GPU的算力,生成适配的可执行代码:
nvcc -o myapp -arch=native myapp.cu
方式二:结合-gencode使用code=native
如果一定要用-gencode参数,需将code设为native,同时arch对应使用compute_native(这种写法不如第一种简洁):
nvcc \ -o myapp \ -gencode arch=compute_native,code=native \ myapp.cu
你的命令报错原因
- 第一个命令
-gencode arch=native:-gencode要求同时指定arch和code两个参数,仅写arch=native缺少code字段,因此触发"missing code"错误。 - 第二个命令
-gencode arch=native,code=sm_89:arch字段仅支持compute_XX格式的算力代号,不允许使用native,所以报错"Unsupported gpu architecture 'native'"。
内容的提问来源于stack exchange,提问作者einpoklum
相关产品推荐
相关产品推荐

