Я пытаюсь запустить код OpenCL для декодера MJPEG на графическом процессоре Nvidia (Tesla K20c). Я задавал вопросы на других сайтах по обмену стеками о реализации декодера на графическом процессоре, и сейчас я пытаюсь рассчитать энергопотребление каждого отдельного ядра OpenCL, работающего на Tesla K20c. (Я перевел 4 последовательные функции C, а именно iqzz, IDCT, повышающую дискретизацию и преобразование цветов в ядра OpenCL).
Я использовал nvidia-smi
для проверки мощности, потребляемой графическим процессором, когда я запускаю свой код OpenCL. Потребляемая мощность холостого хода K20c составляет 17 Вт, когда код не запускается.
Я использовал следующий метод, чтобы проверить мощность каждого отдельного ядра:
Чтобы рассчитать энергопотребление конкретного ядра OpenCL, я закомментировал оставшиеся ядра OpenCL и позволил их эквивалентным версиям C работать на их месте. Я делал это, чтобы код работал правильно. Следовательно, когда я хочу запустить другое ядро OpenCL, я активирую (раскомментирую) однопоточные версии C других ядер.
Каждое отдельное ядро, мощность которого я хотел проверить вышеописанным способом, потребляло мощность в диапазоне приблизительно от 49 до 55 Вт. Ядро для функции Upsampling потребляло наибольшее количество энергии (55 Вт).
Более того, я считаю, что если я запускаю все ядра OpenCL одновременно на графическом процессоре, общее значение потребляемой мощности должно быть суммой значений, которые я получил, когда запускал каждое ядро отдельно. Вместо этого общее энергопотребление, когда я запускал все ядра одновременно, составило 54,83 Вт! Потребляемая мощность даже ниже, чем мощность, потребляемая ядром для Upsampling.
Есть ли у вас какие-либо предложения для правильного расчета мощности, потребляемой каждым ядром в моем коде OpenCL? В большинстве исследовательских работ (например, в этой ) упоминаются причудливые методы, такие как подключение зондов к шине PCI, процессору и графическому процессору. Однако у меня есть закрытая система, и я не могу использовать физические средства для измерения мощности.
Сложение:
Процент использования графического процессора достиг 98%, когда я однажды добавил операторы printf
в одно из своих ядер.