FPGA SDK, skirtas OpenCL
Vartotojo vadovas
UG-OCL009
2017.05.08
Paskutinį kartą atnaujinta „Intel® Quartus® Prime Design Suite“: 17.0
Prenumeruoti
Siųsti Atsiliepimus
Intel® FPGA SDK, skirtas OpenCL™ Intel® Cyclone®V SoC kūrimo rinkinio informacinės platformos perkėlimo vadovas
V SoC kūrimo rinkinio informacinės platformos perkėlimo vadove aprašomas „Intel Cyclone V SoC Development Kit“ pamatinės platformos (c5soc) techninės ir programinės įrangos dizainas, skirtas naudoti su „Intel“ programinės įrangos kūrimo rinkiniu (SDK), skirtu OpenCL. „Intel ® FPGA SDK“, skirtas OpenCL ™ Intel Cyclone. ® . Prieš pradedant, „Intel“ primygtinai rekomenduoja susipažinti su šių dokumentų turiniu:
- Intel FPGA SDK, skirtas OpenCLIntel Cyclone V SoC Darbo pradžios vadovas
- „Intel“ FPGA SDK, skirtas „OpenCL Custom Platform Toolkit“ naudotojo vadove
- „Cyclone V“ įrenginio vadovas, 3 tomas: „Hard Processor System“ techninis informacinis vadovas Be to, žr. „Altera“ „Cyclone V SoC kūrimo rinkinį“ ir „SoC Embedded Design Suite“ puslapį. websvetainėje, kur rasite daugiau informacijos. 1 2
Dėmesio: „Intel“ daro prielaidą, kad jūs gerai išmanote „Intel FPGA SDK“, skirtą „OpenCL Custom Platform Toolkit“ naudotojo vadove. „Cyclone V SoC“ kūrimo rinkinio informaciniame platformos perkėlimo vadove neaprašoma, kaip SDK tinkintos platformos įrankių rinkinys naudojamas individualiai „Cyclone V SoC“ kūrimo rinkinio platformai įdiegti. Jame tik aprašomi skirtumai tarp SDK palaikymo „Cyclone V SoC Development Kit“ ir bendrojo „Intel FPGA SDK“, skirto „OpenCL Custom Platform“.
Susijusios nuorodos
- Intel FPGA SDK, skirtas OpenCL Cyclone V SoC Darbo pradžios vadovas
- „Intel“ FPGA SDK, skirtas „OpenCL Custom Platform Toolkit“ naudotojo vadove
- Cyclone V Device Handbook, 3 tomas: Hard Processor System Technical Reference Guide
- „Cyclone V SoC Development Kit“ ir „SoC Embedded Design Suite“ puslapis „Altera“. websvetainę
- OpenCL ir OpenCL logotipas yra Apple Inc. prekių ženklai, naudojami su Khronos Group™ leidimu.
- „Intel“ FPGA SDK, skirtas „OpenCL“, yra pagrįstas paskelbta „Khronos“ specifikacija ir praėjo „Khronos“ atitikties testavimo procesą. Dabartinę atitikties būseną galite rasti adresu www.khronos.org/conformance.
Intel korporacija. Visos teisės saugomos. „Intel“, „Intel“ logotipas, „Altera“, „Arria“, „Cyclone“, „Enpirion“, „MAX“, „Nios“, „Quartus“ ir „Stratix“ žodžiai ir logotipai yra „Intel Corporation“ arba jos dukterinių įmonių prekių ženklai JAV ir (arba) kitose šalyse. „Intel“ garantuoja savo FPGA ir puslaidininkinių produktų veikimą pagal dabartines specifikacijas pagal standartinę „Intel“ garantiją, tačiau pasilieka teisę bet kuriuo metu be įspėjimo keisti bet kokius gaminius ir paslaugas. „Intel“ neprisiima jokios atsakomybės ar įsipareigojimų, kylančių dėl bet kokios čia aprašytos informacijos, produkto ar paslaugos taikymo ar naudojimo, išskyrus atvejus, kai „Intel“ aiškiai sutiko raštu. „Intel“ klientams patariama įsigyti naujausią įrenginio specifikacijų versiją prieš pasikliaujant bet kokia paskelbta informacija ir prieš užsakant produktus ar paslaugas.
*Kiti pavadinimai ir prekės ženklai gali būti laikomi kitų nuosavybe.
1.1.1 Cyclone V SoC plėtros rinkinio pamatinės platformos plokštės variantai
„Intel FPGA SDK“, skirta „OpenCL Cyclone V SoC“ kūrimo rinkinio pamatinei platformai, apima du plokštės variantus.
- c5soc lenta
Ši numatytoji plokštė suteikia prieigą prie dviejų DDR atminties bankų. HPS DDR gali pasiekti ir FPGA, ir centrinis procesorius. FPGA DDR pasiekiamas tik FPGA. - c5soc_sharedonly lenta
Šiame plokštės variante yra tik HPS DDR jungtis. FPGA DDR nepasiekiamas. Šis plokštės variantas yra efektyvesnis plote, nes norint palaikyti vieną DDR atminties banką, reikia mažiau techninės įrangos. Plokštė c5soc_sharedonly taip pat yra gera prototipų kūrimo platforma galutinei gamybos plokštei su vienu DDR atminties banku.
Norėdami taikyti šį plokštės variantą, kai kompiliuojate OpenCL branduolį, į komandą aoc įtraukite parinktį -board c5soc_sharedonly.
Norėdami gauti daugiau informacijos apie lentą aoc komandos parinktį, žr. Intel FPGA SDK, skirtą OpenCL programavimo vadove.
Susijusios nuorodos
Branduolio kompiliavimas konkrečiai FPGA plokštei (-board )
1.1.2 Cyclone V SoC plėtros rinkinio informacinės platformos turinys
„Cyclone V SoC“ kūrimo rinkinio informacinę platformą sudaro šie elementai files ir katalogai:
File arba Katalogas | Aprašymas |
board_env.xml | Išplečiamoji žymėjimo kalba (XML) file kuri aprašo c5soc į Intel FPGA SDK, skirtą OpenCL. |
linux_sd_card_image.tgz | Suspaustas SD flash kortelės vaizdas file kuriame yra viskas, ko reikia SDK vartotojui, norint naudoti Cyclone V SoC kūrimo rinkinį su SDK. |
ranka32 | Katalogas, kuriame yra: |
1.1.3 Atitinkamos Cyclone V SoC kūrimo rinkinio savybės
Šiame sąraše pabrėžiami „Cyclone V SoC Development Kit“ komponentai ir funkcijos, kurios yra svarbios „Intel FPGA SDK for OpenCL“.
- Dviejų branduolių ARM Cortex-A9 procesorius, kuriame veikia 32 bitų „Linux“.
- Išplėstinė eXtensible Interface (AXI) magistralė tarp HPS ir FPGA pagrindinio audinio.
- Du sustiprinti DDR atminties valdikliai, kiekvienas jungiamas prie 1 gigabaito (GB) DDR3 SDRAM.
— Vienas DDR valdiklis pasiekiamas tik FPGA branduoliui (tai yra FPGA DDR).
— Kitas DDR valdiklis pasiekiamas ir HPS, ir FPGA (ty HPS DDR). Šis bendras valdiklis leidžia nemokamai dalytis atmintimi tarp procesoriaus ir FPGA branduolio. - CPU gali iš naujo sukonfigūruoti FPGA pagrindinį audinį.
1.1.3.1 „Cyclone V SoC“ kūrimo rinkinio pamatinės platformos projektavimo tikslai ir sprendimai „Intel“ įgyvendindama „Cyclone V SoC“ kūrimo rinkinio pamatinę platformą remiasi keliais projektavimo tikslais ir sprendimais. „Intel“ rekomenduoja atsižvelgti į šiuos tikslus ir sprendimus, kai perkeliate šią atskaitos platformą į savo SoC FPGA plokštę.
Toliau pateikiami c5soc dizaino tikslai:
- Pateikite didžiausią įmanomą pralaidumą tarp FPGA branduolių ir DDR atminties sistemos (-ių).
- Užtikrinkite, kad FPGA (ty OpenCL branduolių) skaičiavimai netrukdytų kitoms procesoriaus užduotims, kurios gali apimti periferinių įrenginių aptarnavimą.
- Palikite kuo daugiau FPGA išteklių branduolio skaičiavimams, o ne sąsajos komponentams.
Žemiau pateikiami aukšto lygio dizaino sprendimai, kurie yra tiesioginės „Intel“ projektavimo tikslų pasekmės:
- „Reference Platform“ naudoja tik standžiuosius DDR atminties valdiklius, kurių konfigūracija yra plačiausia (256 bitai).
- FPGA tiesiogiai bendrauja su HPS DDR atminties valdikliu, nenaudojant AXI magistralės ir L3 jungiklio HPS viduje. Tiesioginis ryšys užtikrina geriausią įmanomą pralaidumą DDR ir neleidžia FPGA skaičiavimams trukdyti ryšiui tarp procesoriaus ir jo periferijos.
- Tiesioginė prieiga prie atminties (SG-DMA) nėra FPGA sąsajos logikos dalis. Užuot perkelę didelius duomenų kiekius tarp DDR atminties sistemų, saugokite duomenis bendrai naudojamame HPS DDR. Tiesioginė FPGA prieiga prie procesoriaus atminties yra efektyvesnė nei DMA. Tai taupo aparatūros išteklius (ty FPGA sritį) ir supaprastina Linux branduolio tvarkyklę.
Įspėjimas: Atminties perkėlimas tarp bendros HPS DDR sistemos ir DDR sistemos, pasiekiamos tik FPGA, vyksta labai lėtai. Jei pasirinksite
perkelkite atmintį tokiu būdu, naudokite ją tik labai mažiems duomenų kiekiams. - Pagrindinis kompiuteris ir įrenginys atlieka ne DMA duomenų perdavimą vienas kitam per HPS-FPGA (H2F) tiltą, naudodami tik vieną 32 bitų prievadą. Priežastis ta, kad be DMA „Linux“ branduolys gali pateikti tik vieną 32 bitų skaitymo arba rašymo užklausą, todėl nereikia turėti platesnio ryšio.
- Pagrindinis kompiuteris siunčia valdymo signalus į įrenginį per lengvą H2F (LH2F) tiltelį.
Kadangi valdymo signalai iš pagrindinio kompiuterio į įrenginį yra mažo pralaidumo signalai, LH2F tiltas puikiai tinka šiai užduočiai.
1.2 Referencinės platformos perkėlimas į SoC FPGA plokštę
Norėdami prijungti Cyclone V SoC plėtros rinkinio atskaitos platformą į savo SoC FPGA plokštę, atlikite šias užduotis:
- Pasirinkite vieną DDR atmintį arba dvi DDR atminties versijas c5soc Reference Platform kaip savo dizaino pradžios tašką.
- Atnaujinkite smeigtukų vietas ALTERAOCLSDKROOT/board/c5soc/ /top.qsf file, kur ALTERAOCLSDKROOT yra kelias į Intel FPGA SDK, skirto OpenCL diegimui, vietą ir yra lentos varianto katalogo pavadinimas. Katalogas c5soc_sharedonly skirtas plokštės variantui su viena DDR atminties sistema. C5soc katalogas skirtas plokštės variantui su dviem DDR atminties sistemomis.
- Atnaujinkite HPS ir (arba) FPGA SDRAM blokų DDR nustatymus ALTERAOCLSDKROOT/board/c5soc/ /sistema.qsys file.
4. Visi Intel FPGA SDK, skirti OpenCL pageidaujamoms plokštėms, turi užtikrinti garantuotą uždarymą pagal laiką. Todėl dizainas turi būti tinkamai išdėstytas laiku. Norėdami perkelti c5soc plokštės skaidinį (acl_iface_partition.qxp) į savo SoC FPGA plokštę, atlikite šias užduotis:
Išsamias instrukcijas, kaip keisti ir išsaugoti plokštės skaidinį, rasite Quartus
„Quartus Prime Standard Edition“ vadovo skyriaus „Prime Inkremental Compiliation for Hierarchical and Team Based Design“ dalis.
a. Pašalinkite acl_iface_partition.qxp iš ALTERAOCLSDKROOT/board/c5soc/c5soc katalogo.
b. Įgalinkite acl_iface_region LogicLock™ regioną pakeisdami Tcl komandą set_global_assignment -name LL_ENABLED OFF -section_id acl_iface_region į set_global_assignment -name LL_ENABLED ON -section_id acl_iface_region
c. Sukompiliuokite savo lentos OpenCL branduolį.
d. Jei reikia, pakoreguokite LogicLock srities dydį ir vietą.
e. Kai įsitikinsite, kad jūsų dizaino vieta yra švari, eksportuokite tą skaidinį kaip acl_iface_partition.qxp Quartus Prime eksportuotą skaidinį File.
Kaip aprašyta AIntel FPGA SDK, skirto OpenCL tinkintos platformos įrankių rinkinio naudotojo vadovo skyriuje Garantuoto laiko srauto nustatymas, importuojant šį .qxp file Į aukščiausio lygio dizainą, jūs atitinkate reikalavimą pateikti plokštės dizainą su garantuotu laiko uždarymo srautu.
Norėdami sužinoti veiksnius, galinčius turėti įtakos eksportuojamo skaidinio rezultatų kokybei (QoR), žr. „Intel FPGA SDK for OpenCL Custom Platform Toolkit“ vartotojo vadovo skyrių „Bendrosios rezultatų kokybės aspektai, susiję su eksportuoto plokštės skaidiniu“.
f. Išjunkite acl_iface_region LogicLock regioną grąžindami komandą 2 veiksme atgal į set_global_assignment -name LL_ENABLED OFF sekcijos_id acl_iface_region. - Jei jūsų SoC FPGA plokštė naudoja skirtingus HPS bloko kaiščius ir periferijas, regeneruokite išankstinį įkėliklį ir įrenginio medžio šaltinį (DTS) file. Jei pakeisite HPS DDR atminties valdiklio nustatymus, iš naujo sukurkite išankstinį įkėliklį.
- Sukurkite SD „flash“ kortelės vaizdą.
- Sukurkite pasirinktinę platformą, kurioje yra SD „flash“ kortelės vaizdas.
- Apsvarstykite galimybę sukurti savo tinkintos platformos vykdymo aplinkos versiją, skirtą naudoti su Intel FPGA Runtime Environment (RTE), skirta OpenCL. Jūsų tinkintos platformos RTE versijoje nėra aparatinės įrangos katalogų ir SD „flash“ kortelės vaizdo. Ši tinkinta platforma įkeliama į SoC FPGA sistemą, kad būtų galima paleisti pagrindines programas. Priešingai, tinkintos platformos SDK versija yra būtina, kad SDK kompiliuotų OpenCL branduolius.
Patarimas: RTE galite naudoti savo tinkintos platformos SDK versiją. Išsaugoti
vietos, pašalinkite SD „flash“ kortelės vaizdą iš savo tinkintos platformos RTE versijos. - Išbandykite tinkintą platformą.
Norėdami gauti daugiau informacijos, žr. „Intel FPGA SDK for OpenCL Custom Platform Toolkit“ vartotojo vadovo skyrių „Aparatūros projektavimo testavimas“.
Susijusios nuorodos
- Aparatūros dizaino testavimas
- „Quartus Prime“ laipsniškas rinkinys, skirtas hierarchiniam ir komandiniam dizainui
- Garantuoto laiko srauto nustatymas
- Bendrosios rezultatų kokybės svarstymai dėl eksportuojamos plokštės pertvaros
1.2.1 Perkeltos nuorodos platformos atnaujinimas
Dabartinėje Cyclone V SoC plėtros rinkinio pamatinės platformos versijoje HPS blokas yra skaidinio, apibrėžiančio visą ne branduolio logiką, viduje. Tačiau negalite eksportuoti HPS kaip .qxp dalies file. Norėdami atnaujinti esamą tinkintą platformą, kurią modifikavote iš ankstesnės c5soc versijos, įdiekite QXP išsaugojimo srautą, atnaujinkite SD atminties kortelės vaizdą, kad gautumėte naujausią vykdymo aplinką, ir atnaujinkite board_spec.xml file įjungti automatizavimą.
Altera® SDK, skirtas 14.1 ir naujesnėms OpenCL versijoms, tikrina board_spec.xml file informacijos apie lentą ir įdiegia automatinius atnaujinimus. Kadangi modifikuojate
dizainas įgyvendinant QXP išsaugojimo srautą, turite atnaujinti board_spec.xml file į dabartinės versijos formatą. Atnaujinant file leidžia SDK atskirti neišsaugotas tinkintas platformas ir dabartines QXP pagrįstas tinkintas platformas. Norėdami gauti daugiau informacijos, žr. „Intel FPGA SDK for OpenCL Custom Platform Toolkit“ naudotojo vadove esantį „Custom Platform Automation“ dėl suderinamumo peradresavimo.
- Norėdami įdiegti QXP išsaugojimo srautą Cyclone V SoC FPGA aparatūros konstrukcijoje, kuri perkelta iš ankstesnės c5soc versijos, atlikite šiuos veiksmus, kad sukurtumėte poskyrį, kad HPS būtų pašalintas iš .qxp. file:
a. Prieš kurdami skaidinį aplink ne branduolio logiką, sukurkite skaidinį aplink HPS .qsf Quartus Prime nustatymuose File.
Pavyzdžiui,ampLe:
# Rankiniu būdu padalinkite egzempliorių, modeliuojantį HPS skirtą I/O rinkinio_pavyzdžio_priskyrimą -pavadinimas PARTITION_HIERARCHY borde_18261 -į "system:the_system|system_acl_iface:acl_iface|system_acl_iface_hps_0:hps_0|system_acl_ifacehpsio|sistema_acl_ifacehpsio| system_acl_iface_hps_0_hps_io_border:border“ -section_id „system_acl_iface_hps_0_hps_io_border:border“
# Nustatykite, kad skaidinys būtų HPS_PARTITION tipo, kad jį tinkamai apdorotų likusi Quartus dalis
set_global_assignment -name PARTITION_TYPE HPS_PARTITION -section_id "system_acl_iface_hps_0_hps_io_border:border"
quartus_cdb top -c top
–incremental_compilation_export=acl_iface_partition.qxp
–incremental_compilation_export_partition_name=acl_iface_partition
–incremental_compilation_export_post_synth=on
–incremental_compilation_export_post_fit=on
–incremental_compilation_export_routing=on
–incremental_compilation_export_flatten=off
Išskyrę HPS iš skaidinio, galite importuoti .qxp file ir sudaryti savo dizainą. - Atnaujinkite SD „flash“ kortelės vaizdą su dabartine „Intel FPGA RTE for OpenCL“ versija, atlikdami šias užduotis:
a. Sumontuokite file paskirstymo lentelė (fat32) ir išplėsta file sistemos (ext3) skaidiniai esamame vaizde kaip atgalinio ryšio įrenginiai. Išsamias instrukcijas rasite 2 veiksme skyriuje „SD Flash kortelės vaizdo kūrimas“.
b. Kataloge /home/root/opencl_arm32_rte pašalinkite files iš ankstesnės RTE versijos.
c. Atsisiųskite ir išpakuokite dabartinę RTE versiją į /home/root/opencl_arm32_rte katalogą.
d. Viduje /driver/version.h file tinkintos platformos, atnaujinkite ACL_DRIVER_VERSION priskyrimą į . (pvzample, 16.1.x, kur 16.1 yra SDK versija, o x yra jūsų nustatyta tvarkyklės versija).
e. Atkurti vairuotoją.
f. Ištrinkite tinkintos platformos aparatinės įrangos aplanką (-us). Nukopijuokite pasirinktinę platformą kartu su atnaujinta tvarkykle į /home/root/opencl_arm_rte/board katalogą.
g. Nukopijuokite Altera.icd file iš /home/root/opencl_arm32_rte katalogo ir pridėkite jį prie /etc/OpenCL/vendors katalogo.
h. Atjunkite ir išbandykite naują vaizdą. Išsamias instrukcijas rasite 8–11 žingsniuose skyriuje „SD Flash kortelės vaizdo kūrimas“.
Susijusios nuorodos
- SD „Flash“ kortelės vaizdo kūrimas 14 puslapyje
Taip pat turite galimybę sukurti naują SD „flash“ kortelės vaizdą. - Individualizuotos platformos automatizavimas, kad būtų galima suderinti pirmyn
1.3 Programinės įrangos palaikymas bendrai atminčiai
Bendra fizinė atmintis tarp FPGA ir procesoriaus yra pageidaujama atmintis OpenCL branduoliams, veikiantiems SoC FPGA. Kadangi FPGA pasiekia bendrinamą fizinę atmintį, o ne bendrinamą virtualiąją atmintį, ji neturi prieigos prie procesoriaus puslapių lentelių, kurios susieja vartotojo virtualius adresus su fiziniais puslapių adresais.
Kalbant apie aparatinę įrangą, „OpenCL“ branduoliai pasiekia bendrinamą fizinę atmintį tiesioginiu ryšiu su HPS DDR kietosios atminties valdikliu. Kalbant apie programinę įrangą, bendrai naudojamos fizinės atminties palaikymas apima šiuos aspektus:
- Įprasti programinės įrangos diegimai, skirti CPU atminčiai paskirstyti (pvz.,ample, funkcija malloc()) negali priskirti atminties srities, kurią gali naudoti FPGA.
Atmintis, kurią skiria funkcija malloc(), yra gretima virtualiosios atminties adresų erdvėje, tačiau vargu ar visi pagrindiniai fiziniai puslapiai bus fiziškai gretimi. Taigi pagrindinis kompiuteris turi sugebėti paskirstyti fiziškai gretimas atminties sritis. Tačiau šios galimybės nėra „Linux“ naudotojų erdvės programose. Todėl „Linux“ branduolio tvarkyklė turi atlikti paskirstymą. - „OpenCL SoC FPGA Linux“ branduolio tvarkyklėje yra mmap() funkcija, skirta bendrai fizinei atminčiai paskirstyti ir priskirti ją vartotojo erdvėje. Funkcija mmap() naudoja standartinį Linux branduolio iškvietimą dma_alloc_coherent(), kad užklaustų fiziškai gretimų atminties regionų, skirtų bendrinti su įrenginiu.
- Numatytajame Linux branduolyje dma_alloc_coherent() neskiria fiziškai gretimos atminties, didesnės nei 0.5 megabaitų (MB). Norėdami leisti dma_alloc_coherent() skirti didelius fiziškai gretimos atminties kiekius, įgalinkite „Linux“ branduolio gretimos atminties skirstytuvo (CMA) funkciją ir iš naujo sukompiliuokite „Linux“ branduolį.
„Cyclone V SoC Development Kit Reference Platform“ platformai CMA valdo 512 MB iš 1 GB fizinės atminties. Šią reikšmę galite padidinti arba sumažinti, atsižvelgdami į tai, kiek programai reikia bendros atminties. Iškvietimas dma_alloc_coherent() gali nesugebėti skirti visų 512 MB fiziškai gretimos atminties; tačiau įprastai jis gali gauti maždaug 450 MB atminties. - CPU gali laikyti talpyklą atmintyje, kurią skiria dma_alloc_coherent() iškvietimas. Visų pirma, rašymo operacijos iš pagrindinės programos nėra matomos OpenCL branduoliams. Funkcija mmap() OpenCL SoC FPGA Linux branduolio tvarkyklėje taip pat turi iškvietimus į pgprot_noncached() arba remap_pf_range() funkciją, kad būtų išjungtas šios atminties srities talpyklos kaupimas.
- Funkcijai dma_alloc_coherent() priskyrus fiziškai gretimą atmintį, funkcija mmap() grąžina virtualųjį adresą į diapazono pradžią, kuri yra jūsų skiriamos atminties adreso intervalas. Prieglobos programai reikalingas šis virtualus adresas, kad galėtų pasiekti atmintį. Kita vertus, OpenCL branduoliams reikalingi fiziniai adresai. „Linux“ branduolio tvarkyklė seka virtualaus ir fizinio adreso susiejimą. Galite susieti fizinius adresus, kuriuos mmap() grąžina, su faktiniais fiziniais adresais pridėdami užklausą prie tvarkyklės.
Aocl_mmd_shared_mem_alloc() MMD taikomosios programos sąsajos (API) iškvietimas apima šias užklausas:
a. Funkcija mmap(), kuri paskirsto atmintį ir grąžina virtualų adresą.
b. Papildoma užklausa, susiejanti grąžintą virtualų adresą su fiziniu adresu.
Tada aocl_mmd_shared_mem_alloc() MMD API iškvietimas grąžina du adresus
– tikrasis grąžintas adresas yra virtualus adresas, o fizinis adresas eina į device_ptr_out.
Pastaba: Vairuotojas gali susieti tik virtualius adresus, kuriuos funkcija mmap() grąžina į fizinius adresus. Jei prašote bet kurio kito virtualaus žymeklio fizinio adreso, tvarkyklė grąžina NULL reikšmę.
Įspėjimas: Intel FPGA SDK, skirtas OpenCL vykdymo bibliotekoms, daro prielaidą, kad bendra atmintis yra pirmoji atmintis, nurodyta board_spec.xml. file. Kitaip tariant, fizinis adresas, kurį gauna Linux branduolio tvarkyklė, tampa Avalon® adresu, kurį OpenCL branduolys perduoda HPS SDRAM.
Kalbant apie vykdymo biblioteką, naudokite iškvietimą clCreateBuffer(), kad paskirstytumėte bendrinamą atmintį kaip įrenginio buferį tokiu būdu:
- Dviejų DDR plokštės variantui su bendra ir nebendra atmintimi clCreateBuffer() priskiria bendrinamą atmintį, jei nurodote CL_MEM_USE_HOST_PTR vėliavėlę. Naudojant kitas vėliavėles, clCreateBuffer() paskirsto buferį nebendrojoje atmintyje.
- Vienos DDR plokštės variantui su tik bendrinamąja atmintimi clCreateBuffer() paskirsto bendrinamą atmintį, neatsižvelgiant į tai, kurią vėliavėlę nurodote.
Šiuo metu 32 bitų „Linux“ palaikymas ARM CPU reguliuoja bendros atminties palaikymo mastą SDK vykdymo bibliotekose. Kitaip tariant, vykdymo laiko bibliotekos, sukompiliuotos kitose aplinkose (pvz.,ample, x86_64 Linux arba 64 bitų Windows) nepalaiko bendrinamos atminties.
C5soc neįdiegė heterogeninės atminties, kad atskirtų bendrinamą ir nebendrinamą atmintį dėl šių priežasčių:
1. Istorija – heterogeninės atminties palaikymas nebuvo pasiekiamas, kai iš pradžių buvo sukurtas bendrinamos atminties palaikymas.
2. Vienoda sąsaja – kadangi OpenCL yra atviras standartas, „Intel“ palaiko nuoseklumą tarp nevienalyčių skaičiavimo platformų pardavėjų. Todėl bendrai atminčiai paskirstyti ir naudoti naudojama ta pati sąsaja, kaip ir kitų plokščių pardavėjų architektūrose.
1.4 FPGA perkonfigūravimas
SoC FPGA atveju CPU gali iš naujo sukonfigūruoti FPGA pagrindinį audinį nenutraukdamas procesoriaus veikimo. Perkonfigūravimą atlieka FPGA tvarkyklės aparatūros blokas, apimantis HPS ir pagrindinį FPGA. „Linux“ branduolyje yra tvarkyklė, leidžianti lengvai pasiekti FPGA tvarkyklę.
- Į view FPGA branduolio būseną, iškvieskite cat /sys/class/fpga/fpga0/ status komandą.
„Intel FPGA SDK for OpenCL“ programos įrankis, kurį galima įsigyti su „Cyclone V SoC Development Kit Reference“ platforma, naudoja šią sąsają FPGA programavimui. Perprogramuojant FPGA branduolį su veikiančiu CPU, programos įrankis atlieka visas šias užduotis:
1. Prieš perprogramuodami išjunkite visus ryšio tiltus tarp FPGA ir HPS, tiek H2F, tiek LH2F.
Iš naujo įgalinkite šiuos tiltus, kai perprogramavimas bus baigtas.
Dėmesio: OpenCL sistema nenaudoja FPGA-HPS (F2H) tilto. Norėdami gauti daugiau informacijos, žr. skyrių „HPS-FPGA sąsajos“, esantį „Cyclone V Device Handbook“, 3 tomas: „Hard Processor System“ techninis informacinis vadovas.
2. Įsitikinkite, kad perprogramavimo metu ryšys tarp FPGA ir HPS DDR valdiklio yra išjungtas.
3. Įsitikinkite, kad perprogramuojant FPGA FPGA pertraukimai yra išjungti.
Taip pat įspėkite vairuotoją, kad perprogramuojant atmestų bet kokius FPGA pertraukimus.
Norėdami sužinoti daugiau apie tikrąjį diegimą, žr. programos įrankio šaltinio kodą.
Įspėjimas: Nekeiskite HPS DDR valdiklio konfigūracijos, kai veikia centrinis procesorius.
Tai gali sukelti mirtiną sistemos klaidą, nes galite pakeisti DDR valdiklio konfigūraciją, kai iš procesoriaus yra neapmokėtų atminties operacijų. Tai reiškia, kad kai veikia centrinis procesorius, negalite perprogramuoti FPGA branduolio su vaizdu, kuris naudoja HPS DDR kitoje konfigūracijoje.
Atminkite, kad „OpenCL“ sistema ir „Golden Hardware“ etaloninis dizainas, pasiekiamas su „Intel SoC FPGA Embedded Design Suite“ (EDS), nustato HPS DDR į vieną 256 bitų režimą.
Centrinio procesoriaus sistemos dalys, pvz., šakos numatymo priemonė arba puslapių lentelės išankstinis gavimo įrankis, gali duoti DDR komandas net tada, kai atrodo, kad CPU niekas neveikia.
Todėl įkrovos laikas yra vienintelis saugus laikas nustatyti HPS DDR valdiklio konfigūraciją.
Tai taip pat reiškia, kad U-boot turi turėti neapdorotą dvejetainį failą file (.rbf) vaizdas įkelti į atmintį. Priešingu atveju galite įjungti HPS DDR su nenaudojamais FPGA prievadais ir vėliau pakeisti prievado konfigūracijas. Dėl šios priežasties OpenCL Linux branduolio tvarkyklė nebeturi logikos, reikalingos HPS DDR valdiklio konfigūracijai nustatyti.
SW3 dvigubos eilutės paketas (DIP) įjungia Cylone V SoC kūrimo rinkinį, kuris valdo numatomą .rbf vaizdo formą (ty ar file yra suglaudintas ir (arba) užšifruotas). „C5soc“ ir „Golden Hardware Reference Design“, pasiekiamas kartu su SoC EDS, apima suglaudintus, bet nešifruotus .rbf vaizdus. SW3 DIP jungiklio nustatymai, aprašyti Intel FPGA SDK, skirta OpenCL Cyclone V SoC darbo pradžios vadove, atitinka šią .rbf vaizdo konfigūraciją.
Susijusios nuorodos
- HPS-FPGA sąsajos
- SW3 jungiklių konfigūravimas
1.4.1 FPGA sistemos architektūros detalės
„Cyclone V SoC Development Kit“ pamatinės platformos palaikymas yra pagrįstas „Stratix® V“ atskaitos platforma (s5_ref), kurią galima įsigyti su „Intel FPGA SDK“, skirtu „OpenCL“.
Bendra c5soc Qsys sistemos ir branduolio tvarkyklės struktūra yra labai panaši į s5_ref.
Šie pagrindiniai FPGA komponentai yra vienodi ir c5soc, ir s5_ref:
- VERSION_ID blokas
- Poilsio mechanizmas
- Atminties banko daliklis
- Cache snoop sąsaja
- Branduolio laikrodis
- Kontroliuoti registrų prieigos (CRA) blokus
1.5 SD „Flash“ kortelės vaizdo kūrimas
Kadangi Cyclone V SoC FPGA yra visa lusto sistema, jūs esate atsakingi už visos sistemos apibrėžimo pateikimą. „Intel“ rekomenduoja jį pateikti kaip SD „flash“ kortelės vaizdą. „Intel FPGA SDK“, skirtas OpenCL vartotojui, gali tiesiog įrašyti vaizdą į „micro SD“ „flash“ kortelę ir SoC FPGA plokštė yra paruošta naudoti.
Esamos SD „Flash“ kortelės vaizdo keitimas 13 puslapyje
„Intel“ rekomenduoja tiesiog modifikuoti vaizdą, esantį naudojant „Cyclone V SoC Development Kit“ informacinę platformą. Taip pat turite galimybę sukurti naują SD „flash“ kortelės vaizdą.
SD „Flash“ kortelės vaizdo kūrimas 14 puslapyje
Taip pat turite galimybę sukurti naują SD „flash“ kortelės vaizdą.
1.5.1 Esamos SD „Flash“ kortelės vaizdo keitimas
„Intel“ rekomenduoja tiesiog modifikuoti vaizdą, esantį naudojant „Cyclone V SoC“.
Kūrimo rinkinio informacinė platforma. Taip pat turite galimybę sukurti naują SD „flash“ kortelės vaizdą.
c5soc linux_sd_card_image.tgz vaizdas file yra ALTERAOCLSDKROOT/board/c5soc kataloge, kur ALTERAOCLSDKROOT nurodo Intel FPGA SDK, skirto OpenCL diegimo katalogui, kelią.
Dėmesio: Norėdami modifikuoti SD „flash“ kortelės vaizdą, turite turėti root arba sudo teises.
- Norėdami išskleisti $ALTERAOCLSDKROOT/board/c5soc/linux_sd_card_image.tgz file, paleiskite tar xvfzlinux_sd_card_image.tgz komandą.
- Sukompiliuokite hello_world OpenCL example dizainas naudojant jūsų individualizuotos platformos palaikymą. Pervardykite .rbf file Intel FPGA SDK, skirtas OpenCL neprisijungus kompiliatoriui, sugeneruoja kaip opencl.rbf, ir įdėkite jį į fat32 skaidinį SD „flash“ kortelės vaizde.
Galite atsisiųsti hello_world example dizainas iš OpenCL Design Examples puslapyje Alteroje websvetainę. - Įdėkite .rbf file į „flash“ kortelės vaizdo „fat32“ skaidinį.
Dėmesio: Fat32 skaidinyje turi būti ir zImage file ir .rbf file. Be .rbf file, įdėjus tvarkyklę įvyks mirtina klaida. - Sukūrę SD kortelės vaizdą, įrašykite jį į mikro SD kortelę iškviesdami šią komandą: sudo dd if=/path/to/sdcard/image.bin of=/dev/sdcard
- Norėdami patikrinti SD „flash“ kortelės vaizdą, atlikite šias užduotis:
a. Įdėkite „micro SD“ atminties kortelę į SoC FPGA plokštę.
b. Įjunkite lentą.
c. Iškvieskite aocl diagnostikos paslaugų komandą.
1.5.2 SD „Flash“ kortelės vaizdo kūrimas
Taip pat turite galimybę sukurti naują SD „flash“ kortelės vaizdą. Bendrosios instrukcijos, kaip sukurti naują SD „flash“ kortelės vaizdą ir atkurti esamą „SD Flash“ kortelės vaizdą, pateikiamos RocketBoards.org puslapyje GSRD v14.0.2 – SD kortelė websvetainę.
Toliau pateikti veiksmai aprašo linux_sd_card_image.tgz vaizdo kūrimo iš Golden System Reference Design (GSRD) SD atminties kortelės vaizdo procedūrą:
Pastaba:
Norėdami sukurti vaizdą iš c5soc vaizdo, atlikite visas šioje procedūroje nurodytas atitinkamas užduotis.
- Atsisiųskite ir išpakuokite GSRD SD „flash“ kortelės vaizdo versiją 14.0 iš Rocketboards.org.
- Sumontuokite file paskirstymo lentelė (fat32) ir išplėsta file sistemos (ext3) skaidiniai šiame paveikslėlyje kaip atgalinio ryšio įrenginiai. Norėdami prijungti skaidinį, atlikite šiuos veiksmus:
a. Nustatykite skaidinio pradžią baitu vaizde, iškviesdami /sbin/fdisk -lu image_file komandą.
Pavyzdžiui,ample, W1 FAT tipo skaidinio numeris 95 turi bloko poslinkį 2121728. Kai bloke yra 512 baitų, baitų poslinkis yra 512 baitų x 2121728 = 1086324736 baitai.
b. Nustatykite laisvosios kilpos įrenginį (pvz.,ample, /dev/loop0) įvesdami komandą losstup -f.
c. Darant prielaidą, kad /dev/loop0 yra laisvo ciklo įrenginys, priskirkite „flash“ kortelės vaizdą kilpos bloko įrenginiui, iškviesdami losstup /dev/loop0 image_file -0 1086324736 komanda.
d. Prijunkite kilpos įrenginį iškviesdami komandą mount /dev/loop0 /media/disk1.
Vaizdo viduje file, /media/disk1 dabar yra prijungtas fat32 skaidinys.
e. Pakartokite veiksmus nuo a iki d su ext3 skaidiniu. - Atsisiųskite „Intel FPGA Runtime Environment for OpenCL“ paketo Cyclone V SoC FPGA versiją iš „Altera“ atsisiuntimo centro websvetainę.
a. Spustelėkite mygtuką Atsisiųsti šalia Quartus Prime programinės įrangos leidimo.
b. Nurodykite leidimo versiją, operacinę sistemą ir atsisiuntimo metodą.
c. Spustelėkite skirtuką Papildoma programinė įranga ir pasirinkite atsisiųsti Intel FPGA
Vykdymo aplinka, skirta „OpenCL Linux Cyclone V SoC TGZ“.
d. Atsisiuntę aocl-rte- .arm32.tgz file, išpakuokite į
jums priklausantį katalogą. - Įdėkite neišpakuotą aocl-rte- .arm32 katalogą į /home/root/opencl_arm32_rte katalogą, esantį vaizdo ext3 skaidinyje file.
- Ištrinkite tinkintos platformos aparatinės įrangos aplanką (-us), tada įdėkite tinkintą platformą į /home/root/opencl_arm32_rte plokštės pakatalogią.
- Sukurkite init_opencl.sh file /home/root kataloge su tokiu turiniu: export ALTERAOCLSDKROOT=/home/root/opencl_arm32_rte export AOCL_BOARD_PACKAGE_ROOT=$ALTERAOCLSDKROOT/board/ eksportuoti PATH=$ALTERAOCLSDKROOT/bin:$PATH eksportuoti LD_LIBRARY_PATH=$ALTERAOCLSDKROOT/host/arm32/lib:$LD_LIBRARY_PATH insmod $AOCL_BOARD_PACKAGE_ROOT/driver/aclsoc_drv.ko
SDK vartotojas vykdo komandą šaltinis ./init_opencl.sh, kad įkeltų aplinkos kintamuosius ir OpenCL Linux branduolio tvarkyklę. - Jei reikia atnaujinti išankstinį įkroviklį, DTS files arba Linux branduoliui, jums reikia arm-linux-gnueabihf-gcc kompiliatoriaus iš SoC EDS. Vykdykite instrukcijas, pateiktas „Intel SoC FPGA Embedded Design Suite“ vartotojo vadove, kad įsigytumėte programinę įrangą, iš naujo ją kompiliuotumėte ir atnaujintumėte atitinkamą. files ant sumontuotos fat32 skaidinio.
Dėmesio: Labiausiai tikėtina, kad jums reikės atnaujinti išankstinį įkėliklį, jei jūsų tinkintoje platformoje kaiščių naudojimas skiriasi nuo c5soc.
Atminkite: jei perkompiliuojate „Linux“ branduolį, perkompiliuokite „Linux“ branduolio tvarkyklę naudodami tą patį „Linux“ branduolio šaltinį files. Jei yra „Linux“ branduolio tvarkyklės ir „Linux“ branduolio neatitikimas, tvarkyklė nebus įkelta. Be to, turite įjungti CMA.
Norėdami gauti daugiau informacijos, žr. „Linux branduolio perkompiliavimas“. - Sukompiliuokite hello_world OpenCL example dizainas naudojant jūsų individualizuotos platformos palaikymą. Pervardykite .rbf file Intel FPGA SDK, skirtas OpenCL neprisijungus kompiliatoriui, sugeneruoja kaip opencl.rbf, ir įdėkite jį į fat32 skaidinį SD „flash“ kortelės vaizde.
Galite atsisiųsti hello_world example dizainas iš OpenCL Design Examples puslapyje Alteroje websvetainę.
9. Po to, kai saugosite visus reikalingus files į „flash“ kortelės vaizdą, iškvieskite šias komandas:
a. sinchronizuoti
b. atjunkite /media/disk1
c. nuimti kur yra katalogo pavadinimas, kurį naudojate prijungdami ext3 skaidinį 3 puslapyje 3 (pvz.ample, /media/disk2).
d. Lostup -d /dev/loop0
e. Lostup -d /dev/loop1 - Suspauskite SD „flash“ kortelės vaizdą, iškviesdami šią komandą: tar cvfz .tgz linux_sd_card_image
- Pristatykite .tgz file savo tinkintos platformos šakniniame kataloge.
- Norėdami patikrinti SD „flash“ kortelės vaizdą, atlikite šias užduotis:
a. Įrašykite gautą nesuspaustą vaizdą į „micro SD“ atminties kortelę.
b. Įdėkite „micro SD“ atminties kortelę į SoC FPGA plokštę.
c. Įjunkite lentą.
d. Iškvieskite aocl diagnostikos paslaugų komandą.
Susijusios nuorodos
- „Intel SoC FPGA Embedded Design Suite“ vartotojo vadovas
- „OpenCL Design Examples puslapyje Alteroje websvetainę
- „Linux“ branduolio perkompiliavimas 16 puslapyje
Norėdami įjungti CMA, pirmiausia turite iš naujo sukompiliuoti Linux branduolį. - Jūsų FPGA plokštės įrenginio pavadinimo užklausa (diagnozė)
1.6 Linux branduolio kompiliavimas Cyclone V SoC FPGA
Prieš paleisdami OpenCL programas Cyclone V SoC FPGA plokštėje, turite sukompiliuoti Linux branduolio šaltinį ir sukompiliuoti bei įdiegti OpenCL Linux branduolio tvarkyklę.
- „Linux“ branduolio perkompiliavimas 16 puslapyje
Norėdami įjungti CMA, pirmiausia turite iš naujo sukompiliuoti Linux branduolį. - „OpenCL Linux“ branduolio tvarkyklės kompiliavimas ir diegimas 17 puslapyje Sukompiliuokite „OpenCL Linux“ branduolio tvarkyklę pagal sukompiliuotą branduolio šaltinį.
1.6.1 „Linux“ branduolio perkompiliavimas
Norėdami įjungti CMA, pirmiausia turite iš naujo sukompiliuoti Linux branduolį.
- RocketBoards.org išteklių puslapyje spustelėkite nuorodą GSRD v14.0 – Linux kompiliavimas websvetainę, kad pasiektumėte instrukcijas, kaip atsisiųsti ir atkurti Linux branduolio šaltinio kodą.
Jei norite naudoti su™ Intel FPGA SDK, skirtu OpenCL, nurodykite socfpga-3.13-rel14.0 kaip . - Pastaba: kūrimo procesas sukuria arch/arm/configs/socfpga_defconfig file. Tai file nurodo socfpga numatytosios konfigūracijos nustatymus.
Pridėkite šias eilutes arch/arm/configs/socfpga_defconfig apačioje file.
CONFIG_MEMORY_ISOLATION=y
CONFIG_CMA=y
CONFIG_DMA_CMA=y
CONFIG_CMA_DEBUG=y
CONFIG_CMA_SIZE_MBYTES=512
CONFIG_CMA_SIZE_SEL_MBYTES=y
CONFIG_CMA_ALIGNMENT=8
CONFIG_CMA_AREAS=7
CONFIG_CMA_SIZE_MBYTES konfigūracijos vertė nustato viršutinę bendro fiziškai gretimos atminties skaičiaus ribą. Galite padidinti šią vertę, jei jums reikia daugiau atminties. - Dėmesio: Bendras fizinės atminties kiekis, kurį turi ARM procesorius SoC FPGA plokštėje, yra 1 GB. „Intel“ nerekomenduoja nustatyti CMA tvarkyklės arti 1 GB.
- Paleiskite komandą make mrproper, kad išvalytumėte dabartinę konfigūraciją.
- Vykdykite komandą make ARCH=arm socfpga_deconfig.
ARCH=arm rodo, kad norite konfigūruoti ARM architektūrą.
socfpga_defconfig rodo, kad norite naudoti numatytąją socfpga konfigūraciją. - Vykdykite eksportavimo komandą CROSS_COMPILE=arm-linux-gnueabihf-.
Ši komanda nustato aplinkos kintamąjį CROSS_COMPILE, kad būtų nurodytas norimos įrankių grandinės priešdėlis. - Vykdykite komandą make ARCH=arm zImage. Gautas vaizdas pasiekiamas arch/arm/boot/zImage file.
- Įdėkite zImage file į „flash“ kortelės vaizdo „fat32“ skaidinį. Išsamias instrukcijas rasite Cyclone V SoC FPGA specifiniame GSRD vartotojo vadove, esančiame Rocketboards.org.
- Pastaba: Norėdami teisingai įterpti OpenCL Linux branduolio tvarkyklę, pirmiausia įkelkite SDKgenerated.rbf file į FPGA.
Norėdami sukurti .rbf file, sudaryti SDK dizainą, pvzampsu Cyclone V SoC plėtros rinkinio etalonine platforma kaip tiksline tinkinta platforma.
9. Įdėkite .rbf file į „flash“ kortelės vaizdo „fat32“ skaidinį.
Dėmesio: Fat32 skaidinyje turi būti ir zImage file ir .rbf file. Be .rbf file, įdėjus tvarkyklę įvyks mirtina klaida. - Įdėkite užprogramuotą „micro SD“ kortelę, kurioje yra SD kortelės vaizdas, kurį modifikavote arba sukūrėte anksčiau, į „Cyclone V SoC Development Kit“ ir įjunkite SoC FPGA plokštę.
- Patikrinkite įdiegto Linux branduolio versiją vykdydami komandą uname -r.
- Norėdami patikrinti, ar sėkmingai įjungėte CMA branduolyje, kai SoC FPGA plokštė įjungta, paleiskite komandą grep init_cma /proc/kallsyms.
CMA įjungta, jei išvestis nėra tuščia. - Norėdami naudoti perkompiliuotą Linux branduolį su SDK, sukompiliuokite ir įdiekite Linux branduolio tvarkyklę.
Susijusios nuorodos
- Golden System Reference Design (GSRD) vartotojo vadovai
- SD „Flash“ kortelės vaizdo kūrimas 13 puslapyje
Kadangi Cyclone V SoC FPGA yra visa lusto sistema, jūs esate atsakingi už visos sistemos apibrėžimo pateikimą.
1.6.2 OpenCL Linux branduolio tvarkyklės kompiliavimas ir diegimas
Sukompiliuokite „OpenCL Linux“ branduolio tvarkyklę pagal sukompiliuotą branduolio šaltinį.
Tvarkyklės šaltinis yra „Intel FPGA Runtime Environment for OpenCL“ Cyclone V SoC FPGA versijoje. Be to, įsitikinkite, kad įkėlėte Intel FPGA SDK, skirtą OpenCL sugeneruotam .rbf file į FPGA, kad būtų išvengta neteisingo Linux branduolio modulio įdiegimo.
- Atsisiųskite „Intel FPGA Runtime Environment for OpenCL“ paketo Cyclone V SoC FPGA versiją iš „Altera“ atsisiuntimo centro websvetainę.
a. Spustelėkite mygtuką Atsisiųsti šalia Quartus Prime programinės įrangos leidimo.
b. Nurodykite leidimo versiją, operacinę sistemą ir atsisiuntimo metodą.
c. Spustelėkite skirtuką Papildoma programinė įranga ir pasirinkite atsisiųsti Intel FPGA
Vykdymo aplinka, skirta „OpenCL Linux Cyclone V SoC TGZ“.
d. Atsisiuntę aocl-rte- .arm32.tgz file, išpakuokite į
jums priklausantį katalogą.
Tvarkyklės šaltinis yra aocl-rte- .arm32/board/c5soc/ tvarkyklės katalogas. - Norėdami iš naujo kompiliuoti OpenCL Linux branduolio tvarkyklę, nustatykite KDIR reikšmę tvarkyklės Makefile į katalogą, kuriame yra „Linux“ branduolio šaltinis files.
- Vykdykite eksportavimo komandą CROSS_COMPILE=arm-linux-gnueabihf-, kad nurodytumėte įrankių grandinės priešdėlį.
- Vykdykite komandą make clean.
- Paleiskite komandą make, kad sukurtumėte aclsoc_drv.ko file.
- Perkelkite opencl_arm32_rte katalogą į Cyclone V SoC FPGA plokštę.
Paleidus scp -r root@jūsų IPadresas: komanda įkelia vykdymo aplinką į /home/root katalogą. - Paleiskite scenarijų init_opencl.sh, kurį sukūrėte kurdami SD kortelės vaizdą.
- Iškvieskite aocl diagnostikos paslaugų komandą. Sėkmingai paleidus init_opencl.sh, diagnostikos įrankis grąžins teigiamą rezultatą.
1.7 Žinomos problemos
Šiuo metu yra tam tikrų apribojimų naudojant Intel FPGA SDK, skirtą OpenCL su Cyclone V SoC plėtros rinkinio atskaitos platforma.
- Negalite nepaisyti tiekėjo ir plokštės pavadinimų, apie kuriuos pranešė clGetDeviceInfo() iškvietimo eilutės CL_DEVICE_VENDOR ir CL_DEVICE_NAME.
- Jei pagrindinis kompiuteris paskirsto nuolatinę atmintį bendroje DDR sistemoje (ty HPS DDR) ir pakeičia nuolatinę atmintį po branduolio vykdymo, atmintyje esantys duomenys gali pasenti. Ši problema kyla dėl to, kad FPGA šerdis negali stebėti procesoriaus ir HPS DDR operacijų.
Kad vėliau branduolio vykdymas nepasiektų pasenusių duomenų, įgyvendinkite vieną iš šių problemų sprendimo būdų:
• Nekeiskite nuolatinės atminties po jos inicijavimo.
• Jei jums reikia kelių __nuolatinių duomenų rinkinių, sukurkite kelis pastovios atminties buferius.
• Jei įmanoma, paskirkite nuolatinę atmintį FPGA DDR greitintuvo plokštėje. - ARM SDK įrankis palaiko tik programos ir diagnostikos paslaugų komandas.
„Flash“, diegimo ir pašalinimo komandos netaikomos „Cyclone V SoC“ kūrimo rinkiniui dėl šių priežasčių:
a. Diegimo programa turi sukompiliuoti aclsoc_drv Linux branduolio tvarkyklę ir įgalinti ją SoC FPGA. Kūrimo mašina turi atlikti kompiliavimą; tačiau jame jau yra SoC FPGA Linux branduolio šaltiniai. Kūrimo mašinos Linux branduolio šaltiniai skiriasi nuo SoC FPGA. SoC FPGA Linux branduolio šaltinių vieta greičiausiai nežinoma SDK vartotojui. Panašiai pašalinimo įrankis taip pat nepasiekiamas Cyclone V SoC kūrimo rinkinyje.
Be to, aclsoc_drv pristatymas į SoC plokštę yra sudėtingas, nes numatytasis Cyclone V SoC plėtros rinkinio platinimas neapima Linux branduolio. files arba GNU Compiler Collection (GCC) kompiliatorius.
b. „Flash“ programai reikia įdėti .rbf file „OpenCL“ dizaino į „micro SD“ atminties kortelės FAT32 skaidinį. Šiuo metu šis skaidinys nėra prijungtas, kai SDK vartotojas įjungia plokštę. Todėl geriausias būdas atnaujinti skaidinį yra naudoti „flash“ kortelių skaitytuvą ir kūrimo mašiną. - Perjungiant „Intel FPGA SDK“, skirtą „OpenCL Offline Compiler“ vykdomajam failui files (.aocx), kurie atitinka skirtingus plokštės variantus (ty c5soc ir c5soc_sharedonly), turite naudoti SDK programos įrankį, kad įkeltumėte .aocx. file naujam lentos variantui pirmą kartą. Jei tiesiog paleisite pagrindinę programą naudodami naują plokštės variantą, bet FPGA yra vaizdas iš kito plokštės varianto, gali įvykti mirtina klaida.
- .qxp file neapima sąsajos skaidinio priskyrimų, nes Quartus Prime programinė įranga nuolat atitinka šio skaidinio laiko reikalavimus.
- Kai įjungiate plokštę, jos medijos prieigos kontrolės (MAC) adresas nustatomas į atsitiktinį skaičių. Jei jūsų LAN strategija neleidžia taip elgtis, nustatykite MAC adresą atlikdami šias užduotis:
a. Įjungdami U-Boot paspauskite bet kurį klavišą, kad įeitumėte į U-Boot komandų eilutę.
b. Komandų eilutėje įveskite setenv ethaddr 00:07:ed:00:00:03.
Galite pasirinkti bet kurį MAC adresą.
c. Įveskite komandą saveenv.
d. Perkraukite lentą.
1.8 Dokumento taisymo istorija
1 lentelė.
Dokumentuokite Intel FPGA SDK, skirto OpenCL Cyclone V SoC, peržiūros istoriją
Kūrimo rinkinio informacinės platformos perkėlimo vadovas
Data | Versija | Pakeitimai |
gegužės-17 | 2017.05.08 | • Techninės priežiūros leidimas. |
2016 m. spalio mėn | 2016.10.31 | • Perdarytas „Altera SDK OpenCL“ prekės ženklas į „Intel FPGA SDK“, skirtas OpenCL. • „Altera Offline Compiler“ prekės ženklas pakeistas į „Intel FPGA SDK“, skirtą „OpenCL“ neprisijungus kompiliatoriui. |
gegužės-16 | 2016.05.02 | •Pakeistos SD „flash“ kortelės vaizdo kūrimo ir modifikavimo instrukcijos. • Pakeistos Linux branduolio ir OpenCL Linux branduolio tvarkyklės perkompiliavimo instrukcijos. |
lapkričio-15 | 2015.11.02 | • Techninės priežiūros leidimas ir pakeisti Quartus II egzemplioriai į Quartus Prime. |
gegužės-15 | 15.0.0 | • FPGA perkonfigūravimo metu pašalinta instrukcija perprogramuoti FPGA branduolį su . rbf vaizdą iškviečiant katę filevardas>. rbf > /dev/ fpga0 komandą, nes šis metodas nerekomenduojamas. |
Gruodžio-14 m | 14.1.0 | • Dokumentas pervadintas į Altera Cyclone V SoC plėtros rinkinio informacinės platformos perkėlimo vadovą. • Atnaujinta perprogramavimo priemonė į aocl programąfilepavadinimas>.aocx naudingumo komanda. • Atnaujinta diagnostikos programa, skirta aocl diagnozei ir aocl diagnozei naudingumo komanda. •Atnaujinta procedūra, pateikta skyriuje „Referencinės platformos perkėlimas į jūsų SoC plokštę“, įtraukiant instrukcijas, kaip perkelti ir modifikuoti c5soc plokštės skaidinį, kad būtų sukurtas laiko valymo skaidinys garantuotam laiko uždarymo srautui. • Įterpta tema Perkeltos nuorodų platformos atnaujinimas, kad būtų aprašytos toliau nurodytos užduočių procedūros: 1.Išskyrus kietojo procesoriaus sistemos (HPS) bloką plokštės skaidinyje 2. SD „flash“ kortelės vaizdo atnaujinimas • Atnaujintas skyrius „SD Flash kortelės vaizdo kūrimas“. Rekomenduojama naudoti 14.0 „Golden System Reference Design“ (GSRD) vaizdo versiją kaip pradinį tašką, o ne vaizdą, pasiekiamą naudojant „SoC Embedded Design Suite“ (EDS). • Atnaujintas skyrius „Linux branduolio perkompiliavimas“ ir „OpenCL Linux“ branduolio tvarkyklės: 1. Pridėta instrukcija kintamajam CROSS COMPILE nustatyti. 2. Pakeitė komandą, kurią vykdote, kad patikrintumėte, ar CMA sėkmingai įjungta. |
liepos-14 | 14.0.0 | • Pradinis išleidimas. |
Dokumentai / Ištekliai
![]() |
Intel FPGA SDK, skirtas OpenCL [pdfVartotojo vadovas FPGA SDK, skirtas OpenCL, FPGA SDK, SDK, skirtas OpenCL, SDK |