nvcc -arch -code区别
首先需要知道nvcc编译过程
cuda => ptx =>SASS (assemble,actually binary)
因此,ptx作为中间层,可以起到缓冲并且兼容的功能。
-arch就是ptx的版本
-code就是sass的版本
因此,如shfl指令在volta上不再支持,(需要shfl.sync),这时候,-arch就需要编译60的版本。
https://on-demand.gputechconf.com/gtc/2018/presentation/s81006-volta-architecture-and-performance-optimization.pdf