AN 824 FPGA SDK за OpenCL платка
Етажен план на пакета за поддръжка
Ръководство за потребителя
Intel® FPGA SDK за OpenCL ™ Board Support Package Floorplan Optimization Guide
Intel/® FPGA SDK за OpenCL™ Board Support Package (BSP) Floorplan Optimization Guide предоставя насоки за етажно планиране за OpenCL) BSP. Той също така предоставя насоки за това как можете да придобиете базовото семе с най-добра средна максимална работна честота и да оцените ефективността на използване на ресурсите на BSP.
Този документ предполага, че сте запознати с концепциите на OpenCL(2), както е описано в спецификацията на OpenCL версия 1.0 от Khronos Group.
Поток на компилация на OpenCL BSP
OpenCL BSP поддържа следните типове потоци на компилиране:
- Плоска компилация [–bsp-flow flat]: Извършва плоска компилация на целия дизайн (BSP заедно с генерирания от ядрото хардуер).
- Базово компилиране [–bsp-flow base]: Извършва базово компилиране чрез използване на ограниченията на LogicLock от base.qsf file. Целевият часовник на ядрото е облекчен, така че BSP хардуерът има повече свобода да отговаря на времето. Създава се база данни base.qar, за да се запази BSP хардуера, който е статичната област.
- Импортиране на компилация [ ]: Възстановява затворената статична област за време от базата данни base.qar и компилира само генерирания от ядрото хардуер. Той също така увеличава целта на часовника на ядрото, за да получи най-добрата максимална работна честота на ядрото (fmax).
OpenCL BSP Floorplan Partition
Етажният план на OpenCL BSP е разделен главно на следните два региона:
- Статичен регион: Представлява региона с свързан с BSP хардуер, който остава статичен. Времето е затворено за този регион по време на базовата компилация. Като цяло, целта е да се сведат до минимум чип ресурсите, използвани от този регион за затваряне на времето.
- Регион на ядрото: Представлява региона на частична реконфигурация (PR), който е запазен за модула freeze_wrapper_inst|kernel_system_inst, който съдържа ядрото. Като цяло целта е да се запазят максимално чиповите ресурси за този регион.
- Intel FPGA SDK за OpenCL е базиран на публикувана спецификация на Khronos и е преминал процеса на тестване за съответствие на Khronos. Текущият статус на съответствие може да бъде намерен на www.khronos.org/conformance.
- OpenCL и логото на OpenCL са търговски марки на Apple Inc. и се използват с разрешение на Khronos Group™.
Intel Corporation. Всички права запазени. Intel, логото на Intel и други марки на Intel са търговски марки на Intel Corporation или нейните филиали. Intel гарантира производителността на своите FPGA и полупроводникови продукти според настоящите спецификации в съответствие със стандартната гаранция на Intel, но си запазва правото да прави промени на продукти и услуги по всяко време без предизвестие. Intel не поема никаква отговорност или задължения, произтичащи от приложението или използването на каквато и да е информация, продукт или услуга, описани тук, освен в случаите, когато Intel е изрично договорено в писмен вид. Клиентите на Intel се съветват да получат най-новата версия на спецификациите на устройството, преди да разчитат на публикувана информация и преди да направят поръчки за продукти или услуги.
*Други имена и марки могат да бъдат заявени като собственост на други.
Указания за OpenCL BSP Floorplanning
- Започнете с плоска компилация, за да разберете къде всички основни компоненти на BSP се поставят естествено (особено IP блоковете с I/O връзки като PCIe или DDR). Докато проектирате BSP, може да се наложи да помислите за установяване на тръбопроводиtages между IP адресите за затваряне на времето. Първо трябва да стартирате плоска компилация, за да идентифицирате повтарящите се неуспешни пътища, и след това да се опитате да ги коригирате.
Съвет: — Добрият процент на затваряне на синхронизирането спрямо плоските начални цикли на компилиране ще има по-високи шансове за затваряне на базовото време на компилиране.
— Ако наблюдавате постоянни грешки в mm_interconnect* (компонент, добавен от Qsys), отворете системата с Qsys Interconnect viewи наблюдавайте сложността на неизправното свързване. Можете да добавите конвейерни тригери в viewer за подобряване на времето. Ако все още не можете да разрешите проблема, може да се наложи да разбиете критичния път mm_interconnect*, като добавите тръбопроводни мостове на Avalon. - По време на базовата компилация, започнете с LogicLock в областта на ядрото, която съдържа freeze_wrapper_inst|kernel_system_inst. Без други ограничения, Intel Quartus Prime може да постави BSP хардуера свободно в оставащата статична област на чипа. Използвайте плоското компилиране и планиране на чипове, за да идентифицирате размера и местоположението на BSP хардуера, като PCIe и DDR. След това резервирайте региона на ядрото, като използвате LogicLock, като същевременно избягвате основните клъстерни области на BSP хардуера.
Съвет: Ако използваното семейство чипове е същото като референтната платформа и ако компонентите на BSP са подобни, може да е по-бързо да започнете с регионите на LogicLock за freeze_wrapper_inst|kernel_system_inst, който се доставя с референтния BSP на OpenCL, и да отработите грешките. - Можете да добавите следните допълнителни компоненти към вашия BSP:
— Банки памет: Ако добавите още банки памет, трябва да идентифицирате местоположението на I/O банката, тъй като може да се наложи да добавите тръбопроводни мостове, за да отговаряте на времето.
— I/O канали: Можете да добавяте I/O канали като видео, Ethernet или сериен интерфейс. Ако добавите I/O канали, трябва да идентифицирате местоположението на I/O банката, тъй като може да се наложи да приложите нови LogicLock региони за конвейер, ако времето за затваряне е трудно.
Съвет: Ако трябва да добавите тръбопроводни мостове (напрample, поради големи закъснения при маршрутизиране, причиняващи грешки във времето), след това вземете под внимание логиката на маршрутизирането от източника до дестинацията в чипа и освободете малко място, запазено за региона на ядрото. - Следвайте тези общи указания, когато запазвате региони на LogicLock за ядрото:
— Опитайте се да поставите всички DSP колони в kernel_system, освен ако не се изисква от BSP.
— Опит за запазване на повече ресурси за kernel_system.
— Опитайте се да запазите броя на прорезите в областта на ядрото до минимум.
Следващата фигура илюстрира прорез, който е добавен, за да постави тръбопроводен мост между PCIe и DDR банка.
Фигура 1. OpenCL BSP етажен план за Intel Arria® 10 GX в изданието 17.0
Указания за максимална работна честота
Максималната работна честота (fmax), постигната от ядрата, до голяма степен зависи от скоростта на FPGA, тъй като повечето IP трябва вече да са оптимизирани. Възможно е обаче да има някои fmax загуби в зависимост от етажния план на BSP. Напримерample, обикновено броят на изрязванията в областта на ядрото на BSP засяга fmax на ядрото.
Както е илюстрирано на следващата фигура, за придобиване на най-доброто базово семе, което дава най-добрия среден fmax:
- Извършете начално почистване на основната компилация, вместо да изберете първото базово начално число, което отговаря на времето.
- Извършете импортна компилация (като използвате няколко ядра от example designs) на всички преминаващи базови семена.
- Изчислете средната стойност на fmax за всички базови семена.
- Изберете базовото семе, което дава най-висок среден fmax.
Базовият начален код с най-добра средна fmax е добър кандидат за освобождаване с BSP. Ако решите да следвате подход, различен от препоръчаните стъпки, може да наблюдавате 5-10% вариация в fmax на процеса на компилиране на импортиране на ядрото.
Фигура 2. Идентифициране на най-доброто базово семе
- За да разберете колко бързо може да работи ядрото без ограничения на етажния план:
1. Извършете плоска компилация на ядрото и наблюдавайте fmax.
2. Извършете импортирана компилация на същото ядро и наблюдавайте fmax.
3. Сравнете резултатите от fmax.
Поради ограниченията на етажния план fmax при импортиране на компилация винаги е по-нисък от fmax при плоска компилация. За да избегнете началния шум, компилирайте ядрото с повече базови начални стойности и вземете под внимание средно fmax, докато сравнявате резултатите от fmax. - Никога не сравнявайте fmax на ядрото от базова компилация с плоска или импортирана компилация. Целите на часовника на ядрото са облекчени по време на базовата компилация и следователно никога няма да получите добри резултати.
- Наблюдавайте критичния път на часовника на ядрото в базовата или импортирана компилация. Ако критичният път пресича от ядрото към статичната област в етажния план, променете етажния план или изпълнете още няколко основни начални точки, за да избегнете този критичен път.
Насоки за оценка на ефективността на използване на ресурсите на BSP
Колкото по-висок е процентът на използване на ресурситеtage, толкова по-добро е използването на площта в статичната област на вашия BSP. Висок процент на използване на ресурситеtage също така предполага, че са налични повече ресурси за региона на ядрото.
Следвайте стъпките по-долу, за да изчислите процента на използване на ресурситеtage на вашия BSP:
- Получете стойности за всички ресурси в FPGA от top.fit.rpt или base.fit.rpt, налични в секцията Partition Statistics на отчета на Fitter.
- Извадете стойността за „freeze_wrapper_inst|kernel_system_inst“ (регион на ядрото).
Съвет:
Фокусирайте се повече върху стойностите на адаптивния логически модул (ALM), отколкото върху стойностите на други ресурси. Уверете се, че процентът на използване на ресурситеtage за ALM е по-близо до референтния BSP на OpenCL. Много висок процентtage за ALM може да доведе до задръстване, което може да увеличи времето за компилиране и да въведе задръствания при маршрутизиране в сложни ядра. Винаги обаче можете да увеличите или намалите площта на статичния регион и да наблюдавате времето за компилиране и fmax.
Следващата таблица отразява използването на ресурсите на OpenCL BSP от Arria® 10 GX устройства в изданието 17.0.
Таблица 1.
Използване на ресурси на OpenCL BSP на устройства IntelArria 10 GX в изданието 17.0
Общо налични | Запазено за Kernel | Предлага се за БСП | Използва се от БСП | 0/0 | |
ALM | 427200 | 393800 | 33400 | 23818. | 71.% |
Регистри | 1708800 | 1575200 | 133600 | 38913 | 29.% |
M2OK | 2713 | 2534 | 179 | 134 | 75.% |
DSP | 1518 | 1518 | 0 | 0 | N/A |
Обърнете внимание, че етажното планиране се изпълнява по такъв начин, че статичната област няма да има DSP блокове.
История на ревизиите на документа
Таблица 2.
История на ревизиите на документа на Intel FPGA SDK за пакета за поддръжка на платка OpenCL Ръководство за оптимизиране на етажен план
Дата | Версия | Промени |
август-17 | Първоначално издание. |
Онлайн версия
Изпратете обратна връзка
ID: 683312
АН-824
Версия: 2017.08.08
AN 824: Intel® FPGA SDK за платка OpenCL™
Ръководство за оптимизиране на етажен план на пакет за поддръжка
Документи / Ресурси
![]() |
intel AN 824 FPGA SDK за пакет за поддръжка на платка OpenCL Floorplan [pdf] Ръководство за потребителя AN 824 FPGA SDK за пакет за поддръжка на платка OpenCL Floorplan, AN 824, FPGA SDK за пакет за поддръжка на платка OpenCL Floorplan, пакет за поддръжка на платка OpenCL Floorplan, план на пакет за поддръжка на платка Floorplan, пакет за поддръжка Floorplan, пакет Floorplan, Floorplan |