Как я могу отладить ядро ​​OpenCL в Xcode 4.1? - PullRequest
7 голосов
/ 27 августа 2011

У меня есть некоторые ядра OpenCL, которые не делают то, что они должны быть, и я хотел бы отладить их в Xcode. Это возможно?

Если нет, могу ли я использовать printf() в своих процессорных ядрах? Когда я использую printf() в своих ядрах, компилятор OpenCL всегда выдает мне кучу ошибок.

Ответы [ 4 ]

3 голосов
/ 05 декабря 2011

Преобразование строки формата в const char *, кажется, решает эту проблему.

Это работает для меня на Лев:

printf((char const *)"%d %d\n", dl, dll);

Это ошибка, описанная выше:

printf("%d %d\n", dl, dll);
1 голос
/ 29 августа 2011

Вы также можете попробовать использовать Quartz Composer для тестирования ваших ядер.Если у вас есть доступ к видео WWDC 2010 , я полагаю, что они показывают, как использовать Quartz Composer для быстрого прототипирования ядер OpenCL в сессиях 416: «Использование OpenCL в вашем приложении» или 418: «Максимизация производительности OpenCL»,Были также несколько хороших сессий по этому вопросу во время WWDC 2009 и 2008, которые также могли быть доступны через ADC в iTunes.

Используя Quartz Composer, вы можете быстро настроить входы и выходы для ядра, а затем отслеживать результаты вв режиме реального времени.Вы можете избежать цикла change-compile-test, потому что все компилируется при вводе.Синтаксические ошибки и тому подобное будут появляться при изменении кода, что позволяет довольно легко их идентифицировать.

Я использовал этот инструмент для разработки и тестирования шейдеров OpenGL, которые имеют много общего с OpenCLядра.

0 голосов
/ 29 августа 2011

Вы пытались добавить эту прагму, чтобы включить printf?

#pragma OPENCL EXTENSION cl_amd_printf : enable
0 голосов
/ 27 августа 2011

Вы уже попробовали gDEBugger ?Я думаю, что в настоящее время это единственный выбор для отладки OpenCL на Mac.

Intel предлагает printf в своем новом OpenCL 1.1 SDK, но это только для Linux и Windows.У Lion есть OpenCL 1.1, но по крайней мере мой Core 2 Duo не поддерживает расширение printf.

AMD все еще разрабатывает свои инструменты OpenCL, а инструменты отладки Nvidia, насколько я понимаю, только для CUDA.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...