0
让我们假设我有一个代码,让用户通过threads_per_block
来调用内核。然后我想检查一下,如果输入有效(例如< = 512,计算能力CC < 2.0和1024(对于CC> = 2.0))。编译时的CUDA设备属性和计算能力
现在我想知道如果我在使用CC2.0的计算机上显示图形卡时使用nvcc -arch=sm_13
编写代码时,如果用户通过threads_per_block == 1024
,会发生什么情况?是这样的:
- 有效的输入 - 因为我运行该显卡拥有CC2.0,或...
- 无效的,因为我编译它CC1.3?
或者nvcc -arch=sm_13
只是意味着CC1.3至少需要,但在较高的CC上运行它时,尽管可以使用那些较高的功能?
好的,谢谢so -arch选项只是指定了最低要求的计算上限。该程序是专为......但是,当使用较高的CC,我也可以使用较高的CC的功能,对不对? – tim 2011-05-18 17:20:47
是的,当使用较高的CC时,编译器可以使用在较低CC中不可用的PTX指令。 – Kris 2011-05-18 18:49:32