печать cl_uint

#printing #opencl

#печать #opencl

Вопрос:

Я делаю свои первые шаги в программировании на OpenCL. Мне это очень нравится.

Но теперь у меня есть небольшая проблема, которую я хочу решить. Я пытаюсь получить тактовые частоты моего процессора и графического процессора, используя clGetDeviceInfo (currentDevice, CL_DEVICE_MAX_CLOCK_FREQUENCY, sizeof(clockFrequency), clockFrequency, NULL); что, если я правильно понимаю, является правильным способом получить это. И теперь я хочу распечатать его, используя printf(«Тактовая частота равна%d МГц n», тактовая частота);

Но это не работает. Вещи, которые я пробовал до сих пор: %d, %ld, %lld (вы никогда не знаете: P) %u, %lu, %llu, %i, %li, %lli но все не работает. Также не так много можно найти об этом в нашем любимом друге Google.

Этот оператор находится в цикле, в котором я также получаю имя currentDevice . Это работает, поэтому я думаю, что это не проблема в цикле.

небольшое редактирование: clGetDeviceInfo возвращает cl_uint, который, конечно, является атрибутом clockFrequency

пфффф, еще одно редактирование: таким образом, проблема в том, что он всегда печатает 0, что бы я ни делал…

100-я правка: эй, это дает несоответствие указателя C4022 для фактического параметра 4. Так что, я думаю, что-то не так с тактовой частотой? Но что? Я объявил это как cl_uint clockFrequency = 0;

Ответ №1:

param_value — это указатель, поэтому вы должны передать указатель:

amp;clockFrequency

Комментарии:

1. хе-хе, это уже приходило мне в голову, когда я вчера возвращался домой: P Но это работает, спасибо, что все равно подумали со мной 😉