Максимальный размер x сетки слишком мал - PullRequest
0 голосов
/ 22 мая 2018

Утилита deviceQuery предоставляет мне эту информацию среди прочего:

CUDA Driver Version / Runtime Version          9.1 / 8.0
CUDA Capability Major/Minor version number:    5.0
Max dimension size of a grid size    (x,y,z): (2147483647, 65535, 65535)

Когда я создаю проект CUDA 8.0 по умолчанию в Visual Studio 2015 и изменяю вызов ядра с:

addKernel<<<1, size>>>(dev_c, dev_a, dev_b);

на

addKernel<<<dim3(65535, 1, 1), size>>>(dev_c, dev_a, dev_b);

все еще работает.Но когда меняем x-размерность сетки на 65536 следующим образом:

addKernel<<<dim3(65536, 1, 1), size>>>(dev_c, dev_a, dev_b);

, я получаю cudaErrorInvalidValue (11), что означает «неверный аргумент».Почему?

(у меня на машине только одно устройство с поддержкой CUDA, поэтому я не путаю его с каким-то другим)

1 Ответ

0 голосов
/ 22 мая 2018

Похоже, что по умолчанию Visual Studio устанавливает флаги сборки для возможности вычисления 2.0.

Чтобы изменить их:

  1. Открыть страницу свойств проекта
  2. Под CUDA C/C++ выберите Device вкладку
  3. Измените значение Code Generation с compute_20,sm_20 на то, что поддерживает ваша графическая карта.В моем случае это compute_50,sm_50.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...