litceysel.ru
добавить свой файл
  1 ... 3 4 5 6 7

Распределение вычислительных задач между ЦП и ЦПС

Для оптимизации вычислений производилась процедура распределения вычислительных затрат между ЦП и ЦПС для задачи декодирования аудио.

Выполняется она следующим образом. Осуществляется выполнение задачи декодирования аудио для тестового набора данных полностью на ЦП. Выполняется профилирование выполнения с определением функций, наиболее критичных к времени исполнения. Выполняется реализация данных функций на ЦПС.

Таким образом, могут быть решены несколько задач. Во-первых, перенос исполнения наиболее ресурсоемких функций на ЦПС разгружает ЦП для выполнения других задач. Во-вторых, возможно ускорение исполнения задачи при переносе ее на ЦПС. В-третьих, возможно снижение удельного энергопотребления системы, затрачиваемого на решение задачи декодирования аудио.

Определив время выполнения задачи декодирования некоторого объема аудио данных в TD, время выполнения критичных функций на ЦП как TCPU, время выполнения остальных функций на ЦП как TMINOR, время выполнения критичных функций на ЦПС как TDSP, получим следующее.

Исходное время исполнения TDCPU = TCPU + TMINOR

Время исполнения после переноса на ЦПС TDCPUDSP = TDSP + TMINOR + TTRANFER – TOVERLAY,

где TTRANFER – время, затрачиваемое на передачу данных и организацию взаимодействия между ЦП и ЦПС, а TOVERLAY – время параллельного исполнения вычислений на ЦП и ЦПС, когда такое распараллеливание возможно.

В результате, получаем следующие качественные величины.

Коэффициент разгрузки ЦП KCPU = (TMINOR + TTRANFER) / TDCPU

Коэффициент ускорения вычислений KACCEL = TDCPU / TDCPUDSP

Коэффициент снижения энергопотребления системы KPOWER = (TCPU * KPCPU) / (TDSP * KPDSP),


где KPCPU и KPDSP удельные коэффициенты энергопотребления ЦП и ЦПС.

Экспериментальные результаты

В ходе исследований был исследован алгоритм декодирования аудио AC-3 в виде его реализации a52b.

Результаты профилирования алгоритма приведены в таблице 1. Было выявлено, что подавляющую часть вычислительных ресурсов (~30%) потребляет функция a52_imdct_512 , которая и была перенесена на ЦПС. Для выполнения этой функции в режиме реального времени достаточно частоты ЦПС в 35 МГц, при частоте же 324 МГц функция a52_imdct_512 загрузит ЦПС примерно на 10-15% , что оставляет достаточно ресурсов и для переноса других операций с ЦП. Таким образом, вычисление процедуры модифицированного косинусного преобразования при одинаковой тактовой частоте быстрее чем на ARM в три раза. В результате же распределения исполнения задачи между ЦП и ЦПС загрузка ЦП снижена на 31%, а общее время вычислений сокращено на 20%.

Таблица 1. Результаты профилирования

  1. Время исполнения, %

  1. Время исполнения, с

  1. Функции

  1. 32.5

  1. 224

  1. coeff_get

  1. 31.2

  1. 219

  1. a52_imdct_512

  1. 11.7

  1. 82

  1. a52_bit_allocate


  1. 9.8

  1. 69

  1. coeff_get_coupling

  1. 9.5

  1. 67

  1. ifft_pass

  1. 5.3

  1. 37

  1. parse_exponents

  1. 4.7

  1. 33

  1. mix32to2

Учитывая удельные коэффициенты энергопотребления ЦП в 850мВт и ЦПС в 120мВт, получаем KPOWER = 21, что означает более чем двадцатикратное снижение мощности потребления при проведении вычислений функции a52_imdct_512. Общее энергопотребление, затрачиваемое на декодирование аудио, снижено, при этом, на 28%.

Данное исследование показывает эффективность реализации алгоритмов декодирования аудио путем переноса критичных к вычислительным ресурсам функций на ЦПС.



<< предыдущая страница   следующая страница >>