Как отлаживать OpenCL на графических процессорах Nvidia?

Есть ли способ отлаживать ядра OpenCL на графическом процессоре Nvidia, т.е. устанавливать точки останова и проверять переменные? Насколько я понимаю, инструмент Nvidia не позволяет отладку OpenCL, и AMD и Intel разрешает это только на своих устройствах.


person 1''    schedule 16.08.2013    source источник
comment
Я не нашел решения этой проблемы, однако мы часто выполняем отладку с использованием CodeXL на платформах AMD, чтобы убедиться, что наш код работает, а затем выполняем окончательные модификации и оптимизации, специфичные для платформ Nvidia, без поддержки отладки. Это сработало довольно хорошо, но, очевидно, требует покупки карты AMD, аналогичной вашей карте Nvidia. Это не идеальное решение, но, как правило, нам подходит.   -  person Jim V    schedule 17.08.2013
comment
Проголосуйте за инструмент CodeXL, отличный инструмент от AMD, кроме того, что вам не повезло с NVIDIA, вы, вероятно, можете использовать команду printf (khronos.org/registry/cl/sdk/1.2/docs/man/xhtml/) как грязный способ смотреть на местных жителей, я бы Предлагаем вам перейти на AMD GPU, где инструменты и поддержка намного лучше   -  person kiranputtur    schedule 17.08.2013


Ответы (1)


gDEBugger может вам отчасти помочь (хотя никогда не использовал его), но кроме этого я не знаю ни одного инструмента, который мог бы устанавливать точки останова или проверять переменные внутри ядра. Возможно, попробуйте сохранить промежуточные результаты вашего ядра, если это длинное ядро. Извините, я не могу дать вам волшебного решения, отладка OpenCL просто сложна.

person chippies    schedule 16.08.2013
comment
В этом сообщении упоминается, что предыдущая версия gDEBugger поддерживала карты Nvidia, но эта работа была прекращена. Доступна ли эта версия и поддерживающие ее драйверы? - person 1''; 16.08.2013
comment
Кажется, я должен был проверить статус gDEBugger от Graphic Remedy перед публикацией. Последняя версия, которую они выпустили, датируется 2010 годом (все еще доступна для загрузки), а версия AMD теперь заменена CodeXL. Я не знаю, работает ли старая версия gDEBugger, но попробую и доложу. - person chippies; 16.08.2013
comment
Возможно, вам придется найти более раннюю версию, потому что они, очевидно, отказались от поддержки Nvidia до последней версии. - person 1''; 16.08.2013
comment
Я пробовал gDEBugger 5.8.1, и, похоже, он в любом случае поддерживает точки останова только для функций библиотеки OpenCL, а не ядра. - person 1''; 16.08.2013
comment
Просто попробовал сам, и я вижу, что ему не удается приостановить приложение при следующем вызове OpenCL, поэтому он не может показать мне никакой информации о буферах и т. Д. Заключение - пользователям Nvidia ничего не доступно для отладки кода OpenCL. - person chippies; 17.08.2013