为什么使用 -gencode 后编译的二进制文件会变小?

Why the compiled binary gets smaller when -gencode used?

为什么使用-gencode 编译后的二进制文件变小了?

我的 GPU 能力是 3.0。

NVCC 选项:

-gencode选项:

1,780,520 字节

-gencode=arch=compute_30,code=sm_30:

1,719,080 字节,越来越小

-gencode=arch=compute_30,code=sm_30 -gencode=arch=compute_61,code=sm_61:

1,780,800 字节

Nvidia documentation 表示:

示例:

nvcc x.cu

相当于:

nvcc x.cu --gpu-architecture=compute_30 --gpu-code=sm_30,compute_30

但在你的情况下:

nvcc x.cu -gencode=arch=compute_30,code=sm_30

相当于:

nvcc x.cu --gpu-architecture=compute_30 --gpu-code=sm_30

其中不包含虚拟架构的PTX代码(如compute_30)