exponenta event banner

Выполнение вывода профиля

Просмотрите данные о прогнозировании сети и производительности для уровней, модуля свертки и полностью подключенных модулей в сети предварительно подготовленных серий. В примере показано, как извлечь результаты прогнозирования и профилировщика для ResNet-18 сети.

  1. Создание объекта класса Workflow с помощью dlhdl.Workflow класс.

  2. Установка предварительно обученной сети глубокого обучения и битового потока для объекта рабочего процесса.

  3. Создание объекта класса dlhdl.Target и укажите целевого поставщика и интерфейс.

  4. Для развертывания сети на указанной целевой плате FPGA вызовите deploy метод для объекта рабочего процесса.

  5. Позвоните в predict для объекта рабочего процесса. Предоставление массива изображений в качестве InputImage параметр. Укажите аргументы для включения профилировщика.

    Метки, классифицирующие изображения, хранятся в структуре struct и отображается на экране. Параметры производительности скорости и задержки возвращаются в структуре struct.

Используйте это изображение для запуска кода:

snet = resnet18;
hT = dlhdl.Target('Xilinx','Interface','Ethernet');
hW = dlhdl.Workflow('Net', snet, 'Bitstream', 'zcu102_single','Target',hT);
hW.deploy;
image = imread('zebra.jpeg');
inputImg = imresize(image, [224, 224]);
imshow(inputImg);
[prediction, speed] = hW.predict(single(inputImg),'Profile','on');
[val, idx] = max(prediction);
snet.Layers(end).ClassNames{idx}

### Finished writing input activations.
### Running single input activations.


              Deep Learning Processor Profiler Performance Results

                   LastFrameLatency(cycles)   LastFrameLatency(seconds)       FramesNum      Total Latency     Frames/s
                         -------------             -------------              ---------        ---------       ---------
Network                   23659630                  0.10754                       1           23659630              9.3
    conv1                  2224115                  0.01011 
    pool1                   572867                  0.00260 
    res2a_branch2a          972699                  0.00442 
    res2a_branch2b          972568                  0.00442 
    res2a                   209312                  0.00095 
    res2b_branch2a          972733                  0.00442 
    res2b_branch2b          973022                  0.00442 
    res2b                   209736                  0.00095 
    res3a_branch2a          747507                  0.00340 
    res3a_branch2b          904291                  0.00411 
    res3a_branch1           538763                  0.00245 
    res3a                   104750                  0.00048 
    res3b_branch2a          904389                  0.00411 
    res3b_branch2b          904367                  0.00411 
    res3b                   104886                  0.00048 
    res4a_branch2a          485682                  0.00221 
    res4a_branch2b          880001                  0.00400 
    res4a_branch1           486429                  0.00221 
    res4a                    52628                  0.00024 
    res4b_branch2a          880053                  0.00400 
    res4b_branch2b          880035                  0.00400 
    res4b                    52478                  0.00024 
    res5a_branch2a         1056299                  0.00480 
    res5a_branch2b         2056857                  0.00935 
    res5a_branch1          1056510                  0.00480 
    res5a                    26170                  0.00012 
    res5b_branch2a         2057203                  0.00935 
    res5b_branch2b         2057659                  0.00935 
    res5b                    26381                  0.00012 
    pool5                    71405                  0.00032 
    fc1000                  216155                  0.00098 
 * The clock frequency of the DL processor is: 220MHz
 

Данные профилировщика возвращают следующие параметры и их значения:

  • LastFrameLatency(cycles)- Общее количество тактовых циклов для выполнения предыдущего кадра.

  • Тактовая частота - информация о тактовой частоте извлекается из битового потока, который использовался для развертывания сети на целевой плате. Например, профилировщик возвращает * The clock frequency of the DL processor is: 220MHz. Тактовая частота 220 МГц извлекается из zcu102_single битовый поток.

  • LastFrameLatency(seconds)- Общее количество секунд для выполнения предыдущего кадра. Общее время рассчитывается как LastFrameLatency(cycles)/Clock Frequency. Например, conv_module LastFrameLatency(seconds) рассчитывается как 2224115/(220*10^6).

  • FramesNum- Общее количество входных кадров в сеть. Это значение будет использоваться при расчете Frames/s.

  • Total Latency- Общее количество тактовых циклов для выполнения всех сетевых уровней и модулей для FramesNum.

  • Frames/s- количество кадров, обработанных сетью за одну секунду. Общее количество Frames/s рассчитывается как (FramesNum*Clock Frequency)/Total Latency. Например, Frames/s в примере рассчитывается как (1*220*10^6)/23659630.

См. также

| |

Связанные темы