我正在使用具有计算能力 1.2 的 GeForce 310 GPU 的nvcc
选项编译 CUDA 程序。-arch=20 -code=20
该程序似乎正常运行如下。
wangli@wangli-desktop:~/wangliC2050/1D-EncodeV6.1$ make
nvcc -O --ptxas-options=-v 1D-EncodeV6.1.cu -o 1D-EncodeV6.1 -I../../NVIDIA_GPU_Computing_SDK/C/common/inc -I../../NVIDIA_GPU_Computing_SDK/shared/inc -arch=compute_20 -code=sm_20
ptxas info : Compiling entry function '_Z6EncodePhPjS0_S_S_' for 'sm_20'
ptxas info : Function properties for _Z6EncodePhPjS0_S_S_
0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info : Used 14 registers, 52 bytes cmem[0]
wangli@wangli-desktop:~/wangliC2050/1D-EncodeV6.1$ ./1D-EncodeV6.1
########################### Encoding start (loopCount=10)#######################
#p n size averageTime(s) averageThroughput(MB/s) errorRate(0~1)
#================= Encode on GPU v6.1 ===============
4 4 4 0.000294 0.051837 100.000000
#################### Encoding stop #########################
所以,我想知道:
- 为什么这个程序可以在带有与显卡计算能力 1.2 不匹配的
nvcc
选项的 GeForce 310 上运行?-arch=compute_20 -code=sm_20
- 如果期权的价值与
-arch
期权的价值不同,会发生什么-code
?
谢谢。