#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 Но это работает, спасибо, что все равно подумали со мной 😉