Перейти к содержанию
    

DPU - не вяжется математика

Всем доброго дня.

Вот есть у ксайлинкса DPU B4096.

Написано: The results shown in the following table were measured on a Xilinx® ZCU102 board with three B4096 cores with 16 threads running at 287 MHz.

Т.е. имеем 3 ядра B4096, в каждом из которых одновременно выполняются 16 операций (подозреваю, MAC) за такт, на частоте 287 МГц. Итого получаем 3*16*287 = 13776 М операций/сек.

Смотрю в документ https://docs.xilinx.com/r/3.3-English/pg338-dpu/DPU-Performance-on-Different-Devices

Там пишут, например, требуемая вычислительная мощность (workload) YOLO-V3-VOC  65 Gops на одно изображение. И тут же пишут что железо в такой конфигурации (3 ядра B4096 на 287 МГц) выдает 43.6FPS.

Так вот вопрос: каким образом железо с вычислительной мощностью 13,776 GOPs вдруг обрабатывает задачу на 43.6fps*65GOPs = 2834 GOPs?

 

UPD: Я конечно допускаю, что Vitis AI optimizer может в сети что-то подрезать, но ведь не на 2 порядка же снизить за счет этого.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 04.11.2023 в 09:29, alexPec сказал:

Т.е. имеем 3 ядра B4096, в каждом из которых одновременно выполняются 16 операций (подозреваю, MAC) за такт, на частоте 287 МГц. Итого получаем 3*16*287 = 13776 М операций/сек.

Что мешает прочитать документ, на который Вы дали ссылку полностью? Там же чуть выше:

B4096: 4096 Peak Ops (operations/per clock)

B4096 (8x16x16): 53540 LUT, 105008 FF,  562 DSP

Очевидно, что Ваши подозрения не имеют оснований...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, согласен, недоглядел. Есть такое:

  1. In each clock cycle, the convolution array performs a multiplication and an accumulation, which are counted as two operations. Thus, the peak number of operations per cycle is equal to PP*ICP*OCP*2

Т.е. В4096 за такт выполняет 2048 МАС. Тогда остается вопрос: каким образом 562 DSP с одним умножителем каждый обеспечивают 2048 multiply-accumulate за такт?

Учитывая, что в разделе DSP usage пишут:

DSP Usage
This allows you to select whether DSP48E slices will be used for accumulation in the DPU convolution module. When low DSP usage is selected, the DPU IP will use DSP slices only for multiplication in the convolution. In high DSP usage mode, the DSP slice will be used for both multiplication and accumulation.
 
Делаю вывод, что для умножения в любом случае используются DSP.
Все равно не сходится, в 4 раза примерно. 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...