AN 824 FPGA SDK OpenCL Board-ի համար
Աջակցման փաթեթ հատակագծում
Օգտագործողի ուղեցույց
Intel® FPGA SDK-ի համար OpenCL ™ Board Support Package Floorplan Optimization Guide
Intel/® FPGA SDK for OpenCL™ Board Support Package (BSP) հատակագծի օպտիմալացման ուղեցույցը տրամադրում է հատակագծման ուղեցույց OpenCL) BSP-ի համար: Այն նաև ուղեցույց է տալիս այն մասին, թե ինչպես կարող եք ձեռք բերել հիմնական սերմը լավագույն միջին առավելագույն աշխատանքային հաճախականությամբ և գնահատել BSP ռեսուրսների օգտագործման արդյունավետությունը:
Այս փաստաթուղթը ենթադրում է, որ դուք ծանոթ եք OpenCL(2) հասկացություններին, ինչպես նկարագրված է OpenCL Specification տարբերակում 1.0 Khronos Group-ի կողմից:
OpenCL BSP Կազմման հոսք
OpenCL BSP-ն աջակցում է կոմպիլյացիոն հոսքերի հետևյալ տեսակներին.
- Flat compile [–bsp-flow flat]. Կատարում է ամբողջ դիզայնի հարթ կոմպիլյացիան (BSP միջուկի ստեղծած սարքաշարի հետ միասին):
- Base compile [–bsp-flow base]. Կատարում է բազային կոմպիլացիա՝ օգտագործելով LogicLock սահմանափակումները base.qsf-ից: file. Միջուկի ժամացույցի թիրախը թուլացած է, որպեսզի BSP սարքավորումն ավելի շատ ազատություն ունենա ժամանակին համապատասխանելու համար: Ստեղծվել է base.qar տվյալների բազա՝ BSP սարքաշարը պահպանելու համար, որը ստատիկ շրջանն է:
- Ներմուծել կոմպիլ [ ]. Վերականգնում է ժամանակի փակ ստատիկ շրջանը base.qar տվյալների բազայից և կազմում է միայն միջուկի ստեղծած սարքաշարը: Այն նաև մեծացնում է միջուկի ժամացույցի թիրախը՝ ստանալով միջուկի լավագույն առավելագույն գործառնական հաճախականությունը (fmax):
OpenCL BSP հատակագծի միջնորմ
OpenCL BSP հատակագիծը հիմնականում բաժանված է հետևյալ երկու շրջանների.
- Ստատիկ շրջան. ներկայացնում է BSP-ին առնչվող սարքաշար ունեցող տարածաշրջանը, որը մնում է ստատիկ: Բազայի կազմման ժամանակ այս տարածաշրջանի համար ժամկետը փակ է: Ընդհանուր առմամբ, նպատակն է նվազագույնի հասցնել չիպային ռեսուրսները, որոնք օգտագործվում են այս տարածաշրջանի կողմից փակելու համար:
- Միջուկի շրջան. ներկայացնում է մասնակի վերակազմակերպման (PR) շրջանը, որը վերապահված է freeze_wrapper_inst|kernel_system_inst մոդուլի համար, որը պարունակում է միջուկը: Ընդհանուր առմամբ, նպատակը չիպային ռեսուրսներն առավելագույն չափով պահելն է այս տարածաշրջանի համար:
- OpenCL-ի համար Intel FPGA SDK-ն հիմնված է հրապարակված Khronos սպեցիֆիկացիայի վրա և անցել է Khronos-ի համապատասխանության փորձարկման գործընթացը: Ընթացիկ համապատասխանության կարգավիճակը կարելի է գտնել այստեղ www.khronos.org/conformance.
- OpenCL-ը և OpenCL լոգոն Apple Inc.-ի ապրանքանիշերն են և օգտագործվում են Khronos Group™-ի թույլտվությամբ:
Intel կորպորացիա. Բոլոր իրավունքները պաշտպանված են: Intel-ը, Intel-ի պատկերանշանը և Intel այլ նշանները Intel Corporation-ի կամ նրա դուստր ձեռնարկությունների ապրանքանիշերն են: Intel-ը երաշխավորում է իր FPGA-ի և կիսահաղորդչային արտադրանքների կատարումը ընթացիկ բնութագրերի համաձայն՝ համաձայն Intel-ի ստանդարտ երաշխիքի, սակայն իրեն իրավունք է վերապահում փոփոխություններ կատարել ցանկացած ապրանքի և ծառայությունների մեջ ցանկացած պահի առանց նախազգուշացման: Intel-ը չի ստանձնում ոչ մի պատասխանատվություն կամ պատասխանատվություն, որը բխում է սույն հոդվածում նկարագրված որևէ տեղեկատվության, արտադրանքի կամ ծառայության կիրառումից կամ օգտագործումից, բացառությամբ այն դեպքերի, որոնց մասին հստակ գրավոր համաձայնեցված է Intel-ի կողմից: Intel-ի հաճախորդներին խորհուրդ է տրվում ձեռք բերել սարքի տեխնիկական բնութագրերի վերջին տարբերակը՝ նախքան որևէ հրապարակված տեղեկատվության վրա հիմնվելը և ապրանքների կամ ծառայությունների պատվերներ կատարելը:
*Այլ անուններ և ապրանքանիշեր կարող են պահանջվել որպես ուրիշների սեփականություն:
OpenCL BSP հատակագծման ուղեցույցներ
- Սկսեք հարթ կոմպիլյացիայով՝ հասկանալու համար, թե որտեղ են բնականորեն տեղադրվում BSP-ի բոլոր հիմնական բաղադրիչները (հատկապես IP բլոկները I/O միացումներով, ինչպիսիք են PCIe կամ DDR): BSP-ի նախագծման ժամանակ դուք կարող եք մտածել խողովակաշարի ստեղծման մասինtagէ IP-ների միջև՝ ժամանակի փակման համար: Դուք նախ պետք է գործարկեք հարթ կոմպիլյացիոն սերմերի մաքրում, որպեսզի հայտնաբերեք կրկնվող ձախողման ուղիները, այնուհետև փորձեք ուղղել դրանք:
Հուշում. — Հարթ կոմպիլյացիոն սերմերի մաքրման ժամանակի փակման լավ տեմպերը ավելի մեծ հնարավորություններ կունենան փակելու բազային կազմման ժամկետները:
— Եթե նկատում եք հետևողական խափանումներ mm_interconnect*-ում (բաղադրիչն ավելացվել է Qsys-ի կողմից), ապա բացեք համակարգը Qsys Interconnect-ի միջոցով viewer և դիտարկել խափանվող փոխկապակցման բարդությունը: Դուք կարող եք ավելացնել խողովակաշարային ֆլիպֆլոպներ մեջ 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-ի համար, որն առաքվում է OpenCL տեղեկանք BSP-ով և աշխատել ձախողումների դեմ: - Դուք կարող եք ավելացնել հետևյալ լրացուցիչ բաղադրիչները ձեր 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.
- Կատարեք սերմերի մաքրում բազային հավաքածուի վրա՝ ժամանակին համապատասխանող առաջին բազային սերմն ընտրելու փոխարեն:
- Կատարեք ներմուծման կոմպիլյացիան (օգտագործելով մի քանի միջուկներ նախկինիցample designs) անցնող բոլոր բազային սերմերի վրա:
- Հաշվեք միջին fmax-ը բոլոր հիմնական սերմերի համար:
- Ընտրեք բազային սերմը, որը տալիս է առավելագույն միջին fmax:
Լավագույն միջին fmax-ով բազային սերմը լավ թեկնածու է BSP-ով թողարկելու համար: Եթե որոշեք հետևել առաջարկվող քայլերից տարբերվող մոտեցումներին, կարող եք դիտարկել միջուկի ներմուծման կազմման գործընթացի fmax-ի 5-10% փոփոխություն:
Նկար 2. Լավագույն բազային սերմի հայտնաբերում
- Հասկանալու համար, թե որքան արագ է միջուկը կարող աշխատել առանց հատակագծի սահմանափակումների.
1. Կատարեք միջուկի հարթ կոմպիլյացիան և դիտարկեք fmax-ը:
2. Կատարեք ներմուծման կոմպիլացիա նույն միջուկի վրա և դիտարկեք fmax-ը:
3. Համեմատեք fmax արդյունքները:
Հատակի հատակագծի սահմանափակումների պատճառով ներմուծման կոմպիլային fmax-ը միշտ ավելի ցածր է, քան հարթ կոմպիլային fmax-ը: Սերմերի աղմուկից խուսափելու համար միջուկը կազմեք ավելի շատ բազային սերմերով և fmax արդյունքները համեմատելիս հաշվի առեք միջին fmax: - Երբեք մի համեմատեք միջուկի fmax-ը բազային կոմպիլացիայից բնակարանի կամ ներմուծման կոմպիլացիայի հետ: Միջուկի ժամացույցի թիրախները հանգստանում են բազայի կազմման ժամանակ և, հետևաբար, դուք երբեք լավ արդյունքներ չեք ստանա:
- Դիտեք միջուկի ժամացույցի կրիտիկական ուղին բազայի կամ ներմուծման կազմման մեջ: Եթե կրիտիկական ուղին հատվում է միջուկից դեպի հատակագծի ստատիկ շրջան, փոխեք հատակագիծը կամ գործարկեք ևս մի քանի հիմնական սերմեր՝ այս կրիտիկական ուղուց խուսափելու համար:
BSP ռեսուրսների օգտագործման արդյունավետության գնահատման ուղեցույցներ
Որքան բարձր է ռեսուրսների օգտագործման տոկոսըtagե, այնքան լավ է տարածքի օգտագործումը ձեր BSP-ի ստատիկ տարածքում: Ռեսուրսների օգտագործման բարձր տոկոսtage-ը նաև ենթադրում է, որ ավելի շատ ռեսուրսներ կան միջուկի տարածաշրջանի համար:
Հետևեք ստորև նշված քայլերին` ռեսուրսների օգտագործման տոկոսը հաշվարկելու համարtagձեր BSP-ի e.
- Ստացեք արժեքներ FPGA-ի բոլոր ռեսուրսների համար top.fit.rpt կամ base.fit.rpt-ից, որոնք հասանելի են Fitter հաշվետվության Partition Statistics բաժնում:
- Նվազեցրեք «freeze_wrapper_inst|kernel_system_inst» արժեքը (միջուկի շրջան):
Հուշում.
Կենտրոնացեք ավելի շատ հարմարվողական տրամաբանական մոդուլի (ALM) արժեքների վրա, քան այլ ռեսուրսների արժեքների վրա: Համոզվեք, որ ռեսուրսների օգտագործման տոկոսըtagALM-ի համար e-ն ավելի մոտ է OpenCL հղումային BSP-ին: Շատ բարձր տոկոսtage-ն ALM-ի համար կարող է հանգեցնել գերբնակվածության, որը կարող է մեծացնել կոմպիլյացիայի ժամանակը և բարդ միջուկներում երթուղային գերբնակվածություններ ներկայացնել: Այնուամենայնիվ, դուք միշտ կարող եք ավելացնել կամ նվազեցնել ստատիկ շրջանի տարածքը և դիտարկել կազմման ժամանակը և fmax-ը:
Հետևյալ աղյուսակը արտացոլում է Arria ® 10 GX սարքերի OpenCL BSP ռեսուրսների օգտագործումը 17.0 թողարկումում:
Աղյուսակ 1.
OpenCL BSP ռեսուրսների օգտագործում IntelArria 10 GX սարքերի 17.0 թողարկումում
Ընդհանուր հասանելի է | Վերապահված է Kernel-ի համար | Հասանելի է BSP-ի համար | Օգտագործվում է BSP-ի կողմից | 0/0 | |
ԱԼՄ | 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 Board Support Package Floorplan Optimization ուղեցույց
Ամսաթիվ | Տարբերակ | Փոփոխություններ |
օգոստոսի-17 | Նախնական թողարկում. |
Առցանց տարբերակը
Ուղարկել կարծիք
ID՝ 683312
ԱՆ-824
Տարբերակ՝ 2017.08.08
AN 824. Intel® FPGA SDK OpenCL™ տախտակի համար
Աջակցման փաթեթի հատակագծի օպտիմալացման ուղեցույց
Փաստաթղթեր / ռեսուրսներ
![]() |
intel AN 824 FPGA SDK OpenCL Board Support Package Floorplan-ի համար [pdf] Օգտագործողի ուղեցույց AN 824 FPGA SDK OpenCL Board Support Package Floorplan, AN 824, FPGA SDK for OpenCL Board Support Package Floorplan, OpenCL Board Support Package Floorplan, Board Support Package Floorplan, Support Package Floorplan, Package Floorplan, Floorplan |