printf внутри функции CUDA __global__

Если вы разработчик Android, вы можете использовать:

<pre class=”prettyprint”>

TODO:your code.

</pre>

Чтобы довольно печатать ваш код в Javadoc с кодом Java.

23
задан Juan Leni 24 December 2018 в 08:44
поделиться

4 ответа

РЕДАКТИРОВАТЬ

Чтобы избежать вводящих в заблуждение людей, как указывает М. Тиббитс, printf доступен в любом графическом процессоре с вычислительной способностью 2.0 и выше.

КОНЕЦ РЕДАКТИРОВАНИЯ

У вас есть выбор:

  • Использовать отладчик GPU, то есть cuda-gdb в Linux или Nexus в Windows
  • Используйте cuprintf, который доступен для зарегистрированных разработчиков (зарегистрируйтесь здесь )
  • Вручную скопируйте данные, которые вы хотите увидеть, затем выведите этот буфер на хост после завершения работы ядра (не забудьте синхронизировать)

Относительно вашего фрагмента кода:

  • Подумайте о передаче структур Matrix через указатель (т. е. cudaMemcpy) на устройство, затем передайте в указателе устройства), сейчас у вас не возникнет проблем, но если сигнатура функции станет очень большой, вы можете достичь предела в 256 байт
  • У вас неэффективное чтение из Ad, у вас будет 32-байтовая транзакция в память для каждого чтения в Melement - рассмотрите возможность использования разделяемой памяти в качестве промежуточной области (см. образец transposeNew в SDK)
16
ответ дан Tom 24 December 2018 в 08:44
поделиться

CUDA теперь поддерживает printf прямо в ядре. Формальное описание см. В Приложении B.16 Руководства по программированию CUDA C .

71
ответ дан shookees 24 December 2018 в 08:44
поделиться

, кстати ..

4
ответ дан Juan Leni 24 December 2018 в 08:44
поделиться

См. Раздел «Форматированный вывод» (в настоящее время B.17) в Руководстве по программированию CUDA C.

http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html

2
ответ дан Andrei Pokrovsky 24 December 2018 в 08:44
поделиться