Предположим, у меня есть код, который позволяет пользователю передать threads_per_block
для вызова ядра.Затем я хочу проверить, допустим ли ввод (например, <= 512 для вычислительных возможностей CC <2.0 и 1024 для CC> = 2.0).
Теперь мне интересно, что произойдет, если я скомпилирую код с nvcc -arch=sm_13
при наличии видеокарты на моем компьютере с CC2.0, когда пользователь передает threads_per_block == 1024
?Является ли это:
- допустимым вводом - поскольку карта, на которой я работаю, имеет CC2.0, или ...
- недействительна, поскольку я скомпилировал ее для CC1.3?
Или nvcc -arch=sm_13
просто означает, что CC1.3 по крайней мере необходим, но при запуске его на более высоких CC, хотя эти более высокие функции можно использовать?