编译CUDA代码时,必须选择生成代码的架构.nvcc
提供了两个参数来指定这种架构,基本上:
arch
指定虚拟arquictecture,其可以是compute_10
,compute_11
等code
指定真实结构,其可以是sm_10
,sm_11
等所以这样的命令:
nvcc x.cu -arch=compute_13 -code=sm_13
Run Code Online (Sandbox Code Playgroud)
将为具有1.3计算能力的设备生成"cubin"代码.如果我错了,请纠正我.我想知道这两个参数的默认值是什么?这是默认的架构,没有值时NVCC使用 arch
或 code
规定的?
好的,我终于设法发现了默认值.我没有从NVCC文档开始到非常结束地阅读关于GPU编译的整章.所以,
nvcc x.cu
Run Code Online (Sandbox Code Playgroud)
相当于
nvcc x.cu –arch=compute_10 -code=sm_10,compute_10
Run Code Online (Sandbox Code Playgroud)
这些是默认值.编译默认执行到虚拟体系结构compute_10
,a.out
编译结果将包括sm_10
真实体系结构的CUBIN代码,以及体系结构的PTX汇编代码,compute_10
CUDA驱动程序将"及时"重新编译如果您的架构大于sm_10
.
归档时间: |
|
查看次数: |
7432 次 |
最近记录: |