Вы должны убедиться, что вы компилируете для правильной архитектуры.Только карты Fermi и Kepler (так что вычислительные возможности устройств 2.0, 2.1, 3.0 и 3.5) поддерживают printf
в ядрах.Если вы скомпилируете свой код так:
nvcc -arch=sm_21 [other options] .....
, код должен скомпилироваться правильно.Архитектура по умолчанию - compute 1.0, поэтому вы получаете ошибку.Если вы используете Visual studio, должна быть опция проекта для выбора целевой архитектуры, хотя я не могу точно сказать вам, где ее найти, поскольку не использую ее с CUDA.