Микрополулого

Microsemi UG0943 CNN забрзувач за PolarFire FPGA

Microsemi-UG0943-CNN-Accelerator-for-PolarFire-FPGA-PRODUCT

Информации за производот

Производот е акцелератор на CNN за PolarFire FPGA, развиен од Microsemi. Тоа е хардверска имплементација која обезбедува забрзана обработка за конволуциони невронски мрежи (CNN). Блок-дијаграмот на ИП на забрзувачот на CNN ја прикажува внатрешната структура на забрзувачот, вклучувајќи компоненти како што се FIFO за читање на активирања, FIFO за читање тежини, рамка за матрици, конволуција ReLU, Maxpooling, FC акумулатор, излезна рамка и пишување на излезот.

Упатство за употреба на производот

Хардверска имплементација
За да ја имплементирате ИП на забрзувачот на CNN, следете ги овие чекори:

  1. Осигурајте се дека ги имате потребните хардверски компоненти за поддршка на CNN Accelerator за PolarFire FPGA.
  2. Поврзете ги потребните влезови и излези со забрзувачот, како што е опишано во делот Влезови и излези во упатството за употреба.
  3. Конфигурирајте ги компонентите на меморијата со наведување на соодветните конфигурациски параметри. За детали, погледнете во делот Параметри за конфигурација.
  4. Погледнете во делот Дијаграми за тајминг за да ги разберете барањата за тајминг на забрзувачот.
  5. Следете го искористувањето на ресурсите на забрзувачот користејќи го делот Искористување на ресурсите.

Поддржани слоеви
Моторот на CNN на педалот за гас ги поддржува следниве типови слоеви:

  • Конволутивни слоеви
  • ReLU слоеви
  • Максимални слоеви на здружување
  • Целосно поврзани (FC) слоеви

За детални информации за секој тип на слој и како да ги конфигурирате, погледнете во делот Опис на дизајнот во упатството за корисникот.

Историја на ревизии

Историјата на ревизии ги опишува промените што беа имплементирани во документот. Промените се наведени со ревизија, почнувајќи од најактуелната публикација.

Ревизија 1.0
Првото објавување на овој документ.

Вовед

 ИП на забрзувачот на CNN обезбедува хардверско забрзување за заклучување конволуциони невронски мрежи (CNN) на PolarFire® FPGA. Забрзувачот на CNN врши неколку DSP операции во еден такт за да постигне забрзување. CNN се состои од неколку типови на слоеви поврзани во низа како што се Convolution, Maxpool, ReLU, Целосно поврзан слој, итн. IP-а извршува некои од овие слоеви секвенцијално, а некои од слоевите истовремено. Излезот од секој слој наречен активации се складира во DDR и се користи како влез во следниот слој. Тежините на CNN се складираат во DDR и се читаат заедно со влезот што одговара на слојот на конволуција. Распоредувачот во рамките на CNN IP управува со секвенционирањето на почетокот на рамката и извршувањето на различни слоеви додека не се пресмета конечниот излез.

IP интерфејсот на забрзувачот на CNN се поврзува со DDR арбитер кој овозможува повеќекратно читање и запишување. IP користи два канали за читање, еден за читање на влезовите на слојот, а другиот за читање на мрежните тежини. Еден канал за запишување се користи од IP за да ги запише активациите на DDR. IP-от очекува влезната слика да биде намалена и според мрежниот влез што се бара да се складира во DDR. Распоредувачот што секвенцира различни слоеви е конфигуриран од влезните пинови. Вообичаено, потсистем на процесор или UART може да се користи за генерирање на податоците што се користат за конфигурирање на распоредувачот. Статусниот излез го претставува бројот на слојот што моментално го извршува CNN IP-адресата.Microsemi-UG0943-CNN-Accelerator-for-PolarFire-FPGA-FIG- (1)

Хардверска имплементација

Овој дел ја опишува имплементацијата на ИП на забрзувачот на CNN.

Опис на дизајнот
Двата канали за читање DDR за читање слика и читање тежини ги читаат податоците за сликата и податоците за тежините складирани во DDR на часовна фреквенција на интерфејсот DDR. CDC FIFO ги конвертира податоците од часовникот на интерфејсот DDR во системскиот часовник на CNN. Рамката на матрицата ја врамува матрицата 3×3 од податоците на сликата што ќе се користат за конволуција. Рамувачот на матрицата го имплементира чекорот на нулта облога и конволуција. Рамувачот за тежина ги вчитува вредностите на тежините на филтрите што се користат за конволуција. Излезниот рамковник го распоредува излезот на конволуцијата во мапи за активирање и ги складира во LSRAM. Рамувач со матрица 3×3 ја врамува матрицата со нулта подлога и чекори според мрежниот слој. Модулот maxpool го наоѓа максимумот од матрицата 3×3 и го генерира конечниот излез. Ако мрежниот слој не користи макспол операција, излезот може директно да се избере од LSRAM преку мултиплексерот на излезот.

Microsemi-UG0943-CNN-Accelerator-for-PolarFire-FPGA-FIG- (2)

Модулот за распоредувач ја контролира низата на извршување на секој слој. За секој слој, распоредувачот обезбедува DDR адреса за читање на сликата и тежини и адреса за запишување на конечниот излез на моторот. Исто така, го конфигурира матричниот рамка за нула полнење и чекор, избор на финален излез преку mux. Видот на извиткување – 2D конволуција, Depth-wise convolution и Point-wise convolution се конфигурирани преку распоредувачот. Податоците за распоредувачот се вчитуваат преку влезовите на IP што одговараат на распоредувачот. Видови слоеви поддржани од моторот на CNN се како што следува:

  • Конволуција – чекор 1/чекори 2, нула полнење (5,5,5,5) или без нула полнење
    • Големина на јадрото – 3×3, 5×5, 7×7, 9×9
  • 3×3 Макс здружување – чекор 1/чекор 2 по конволуцијата
  • Протекна релуа по извиткување 3×3
  • Релу и Релу Макс
  • 3×3 длабинско извиткување – чекор1/чекор2 со нулта подлога
  • Точка конволуција
  • Целосно поврзан
  • Глобално просечно здружување -7×7

Мемориски компоненти
ИП-то на забрзувачот на CNN ги бара следните компоненти за да ја стартува мрежата:

  • Мрежни податоци: Ова ја дефинира структурата на CNN и DDR мемориската карта на мрежните тежини и активации.
  • Податоци за тежини: Ова ги содржи податоците за тежини, предрасуди, фактори на скала, итн за сите слоеви на
  • Информации за тегови: Ова ги содржи деталите за мапирањето на содржината на SPI на мрежните тежини на DDR

Горенаведените три компоненти се генерираат како единечен хекс file од протокот на алатката SDK што може да се вчита во блицот SPI

Влезови и излези

Следната табела ги прикажува влезните и излезните порти на ИП на забрзувачот на CNN.

Табела 1: Влезни и излезни порти на ИП на забрзувачот на CNN 

Име на сигналот Насока Ширина Опис
RESETN_SYS_CLK_I Влез Активен сигнал за ниско синхроно ресетирање на дизајнот во однос на SYS_CLK_I
SYS_CLK_I Влез Системски часовник
DDR_CLK_I Влез DDR часовник
MiV_CLK_I Влез Mi-V часовник
CTRL_DATA_I Влез 32 бита Контролирајте го внесувањето податоци за распоредувачот
CTRL_DATA_VALID_I Влез Валиден сигнал за внесување податоци во распоредувачот
START_CNN_I Влез Почетен сигнал за активирање на CNN Accelerator за една рамка
DDR_READ_CHANNEL1 Автобус Читајте ја магистралата за канал1 за да се поврзете со видео арбитер за операција за читање DDR
DDR_READ_CHANNEL2 Автобус Читајте ја магистралата за канал2 за да се поврзете со видео арбитер за операција за читање DDR
STATUS_O Излез 7 бита Регистар за статус што го претставува бројот на слојот што моментално работи во забрзувачот на CNN. Нараснатиот раб на STATUS_O(7) означува завршување на една рамка од страна на CNN Accelerator.
DDR_WRITE_CHANNEL_O Автобус Напишете ја магистралата на каналот што ќе се поврзе со видео арбитер за операција за запишување DDR

Интерфејсот на ИП на CNN со видео арбитер е прикажан на СЛИКА 3

Слика 3: IP интерфејс на CNN Accelerator со видео арбитер

Microsemi-UG0943-CNN-Accelerator-for-PolarFire-FPGA-FIG- (3)

Параметри за конфигурација
Следната табела го прикажува описот на параметрите за конфигурација што се користат во хардверската имплементација на акцелераторот CNN. Овие се генерички параметри и може да се менуваат според барањата на апликацијата.

Табела 2: Параметри за конфигурација

Име Опис

  • G_PW: Ширина на производот или ширина на излезниот бит на конволуцијата
  • G_DWC: Овозможи за поддршка на операцијата Depth convolution
  • G_MXP_MK: Овозможи за поддршка на операцијата Maxpool
  • G_GAVG_POOLING_MK: Овозможи за поддршка на операцијата за глобално просечно здружување

Тајминг дијаграми
Следните слики ги прикажуваат временските дијаграми на каналите за читање и пишување.

Слика 4: Тајминг дијаграм на Читај каналMicrosemi-UG0943-CNN-Accelerator-for-PolarFire-FPGA-FIG- 4

Слика 5: Временски дијаграм на каналот за пишување

Microsemi-UG0943-CNN-Accelerator-for-PolarFire-FPGA-FIG- 4

Искористување на ресурсите
ИП на забрзувачот на CNN е имплементирана на PolarFire FPGA (пакет MPF300T – 1FCG1152E). Следните табели го прикажуваат искористувањето на ресурсите на ИП на забрзувачот на CNN.

Табела 3: G_PW = 30, G_DWC = 1, G_MXP_EN = 1, G_GAVG_POOLING_MK = 1

ЛУТ 37840
DFF 34832
МАТЕМАТИКА 152
LSRAM 116
SRAM 45

Табела 4:  G_PW = 25, G_DWC = 1, G_MXP_EN = 1, G_GAVG_POOLING_MK = 1

ЛУТ 36059
DFF 34434
МАТЕМАТИКА 152
LSRAM 114
SRAM 45

Табела 5: G_PW = 30, G_DWC = 0, G_MXP_EN = 1, G_GAVG_POOLING_MK = 1

ЛУТ 30497
DFF 29856
МАТЕМАТИКА 152
LSRAM 116
uSRAM 45

 Табела 6: G_PW = 30, G_DWC = 1, G_MXP_EN = 0, G_GAVG_POOLING_MK = 1

ЛУТ 34260
DFF 32338
МАТЕМАТИКА 152
LSRAM 95
uSRAM 45

Табела 7: G_PW = 30, G_DWC = 1, G_MXP_EN = 1, G_GAVG_POOLING_MK = 0

ЛУТ 36438
DFF 34262
МАТЕМАТИКА 152
LSRAM 116
uSRAM 0

Табела 8: Изведба и искористување на ресурсите на IP за прampле мрежи

Tiny YOLO v2 COCO Mobilenet v1 Реснет50
Рамки/сек @200 MHz 15.5 FPS 54 FPS 7 FPS
ЛУТ 28642 32330 36059
DFF 29128 31791 34434
МАТЕМАТИКА 152 152 152
LSRAM 114 93 114
uSRAM 0 45 45

Забелешка: Варијацијата во искористувањето на ресурсите се постигнува со избирање на оптимални поставки на CNN IP за одредена мрежа. Латентноста на мрежата е 1/FPS; мрежите се водат со големина на серија од 1.

Microsemi не дава никаква гаранција, претставување или гаранција во врска со информациите содржани овде или соодветноста на неговите производи и услуги за која било одредена цел, ниту пак Microsemi презема каква било одговорност што произлегува од примената или употребата на кој било производ или коло. Производите што се продаваат подолу и сите други производи што ги продава Microsemi биле предмет на ограничено тестирање и не треба да се користат заедно со опрема или апликации кои се критични за мисијата. Се верува дека сите спецификации за изведба се сигурни, но не се потврдени, а Купувачот мора да ги спроведе и заврши сите перформанси и други тестови на производите, сам и заедно со, или инсталиран во, кој било крајен производ. Купувачот нема да се потпира на какви било податоци и спецификации или параметри за перформанси обезбедени од Microsemi. Одговорност на Купувачот е самостојно да ја утврди соодветноста на кој било производ и истите да ги тестира и потврди. Информациите дадени од Microsemi подолу се дадени „како што е, каде што е“ и со сите грешки, а целиот ризик поврзан со таквите информации е целосно кај Купувачот. Microsemi не дава, експлицитно или имплицитно, на која било страна никакви патентни права, лиценци или други права на ИС, без разлика дали се однесуваат на самите тие информации или што било опишано со таквите информации. Информациите дадени во овој документ се сопственост на Microsemi, а Microsemi го задржува правото да прави какви било промени на информациите во овој документ или на сите производи и услуги во секое време без претходна најава.

За Микросеми
Microsemi, подружница во целосна сопственост на Microchip Technology Inc. (Nasdaq: MCHP), нуди сеопфатно портфолио на полупроводнички и системски решенија за воздушната и одбраната, комуникациите, центарот за податоци и индустриските пазари.

Производите вклучуваат аналогни интегрирани кола со мешан сигнал со високи перформанси и стврднати со зрачење, FPGA, SoC и ASIC; производи за управување со енергија; уреди за тајминг и синхронизација и прецизни временски решенија, поставувајќи ги светските стандарди за времето; уреди за обработка на глас; RF решенија; дискретни компоненти; претпријатија за складирање и комуникациски решенија, безбедносни технологии и скалабилни анти-тamper производи; Етернет решенија; ИЦ и средни распони со напојување преку етернет; како и можности и услуги прилагодено за дизајн. Дознајте повеќе на www.microsemi.com.

Седиште на Микросеми One Enterprise, Aliso Viejo, CA 92656 USA

©2020 Microsemi, подружница во целосна сопственост на Microchip Technology Inc. Сите права се задржани. Microsemi и логото Microsemi се регистрирани заштитни знаци на Microsemi Corporation. Сите други заштитни знаци и услужни марки се сопственост на нивните соодветни сопственици
50200943. 1.0 12/20
Microsemi Комерцијален UG0943 Ревизија 1.0

Документи / ресурси

Microsemi UG0943 CNN забрзувач за PolarFire FPGA [pdf] Упатство за корисникот
UG0943 CNN Accelerator за PolarFire FPGA, UG0943, CNN Accelerator for PolarFire FPGA, CNN Accelerator, Accelerator

Референци

Оставете коментар

Вашата адреса за е-пошта нема да биде објавена. Задолжителните полиња се означени *