intel - logoFPGA SDK për OpenCL
Udhëzues përdorimi

UG-OCL009
2017.05.08
Përditësimi i fundit për Intel® Quartus® Prime Design Suite: 17.0

Masazhuesi inteligjent i këmbëve RENPHO RF FM059HS WiFi - ikona 5Abonohu
Smartfon SAMSUNG SM A136UZKZAIO Galaxy A13 5G - ikona 12Dërgo koment

Intel® FPGA SDK për OpenCL™ Intel® Cyclone®V SoC Zhvillimi i Kompletit të Referencës së Platformës së Portimit

Udhëzuesi i transferimit të platformës së referencës së kompletit të zhvillimit të V SoC përshkruan dizajnin e harduerit dhe softuerit të Platformës së Referencës së Kompletit të Zhvillimit Intel Cyclone V SoC (c5soc) për përdorim me Kompletin e Zhvillimit të Softuerit Intel (SDK) për OpenCL Intel ® FPGA SDK për OpenCL ™ Intel Cyclone ® . Përpara se të filloni, Intel rekomandon fuqimisht që të njiheni me përmbajtjen e dokumenteve të mëposhtme:

  1. Udhëzues për fillimin e Intel FPGA SDK për OpenCLIntel Cyclone V SoC
  2. Intel FPGA SDK për Udhëzuesin e Përdorimit të Paketës së Veglave të Platformës së Përshtatshme OpenCL
  3. Manuali i pajisjes Cyclone V, Vëllimi 3: Manuali i Referencës Teknike të Sistemit të Përpunuesve të Fortë Për më tepër, referojuni Komitetit të Zhvillimit të SoC Cyclone V dhe faqes së Kompletit të Dizajnit të Embedded SoC të Altera webfaqe për më shumë informacion. 1 2

Kujdes: Intel supozon se ju keni një kuptim të thellë të Intel FPGA SDK për Udhëzuesin e Përdoruesit të Paketës së Veglave të Platformës së Përshtatshme OpenCL. Udhëzuesi i transferimit të platformës së referencës së kompletit të zhvillimit të Cyclone V SoC nuk përshkruan përdorimin e Paketës së Veglave të Platformës së Përshtatshme të SDK-së për të zbatuar një platformë të personalizuar për paketën e zhvillimit të Cyclone V SoC. Ai përshkruan vetëm ndryshimet midis mbështetjes SDK në Kompletin e Zhvillimit të Cyclone V SoC dhe një SDK gjenerike Intel FPGA për platformën e personalizuar OpenCL.

Lidhje të ngjashme

  • Udhëzues për fillimin e Intel FPGA SDK për OpenCL Cyclone V SoC
  • Intel FPGA SDK për Udhëzuesin e Përdorimit të Paketës së Veglave të Platformës së Përshtatshme OpenCL
  • Manuali i pajisjes Cyclone V, vëllimi 3: Manuali i referencës teknike të sistemit të procesorit të fortë
  • Cyclone V SoC Development Kit dhe SoC Embedded Design Suite në Altera webfaqe
  1. OpenCL dhe logoja OpenCL janë marka tregtare Apple Inc. të përdorura me lejen e Khronos Group™.
  2. Intel FPGA SDK për OpenCL bazohet në një specifikim të publikuar të Khronos dhe ka kaluar procesin e testimit të konformitetit të Khronos. Statusi aktual i konformitetit mund të gjendet në www.khronos.org/conformance.

Korporata Intel. Të gjitha të drejtat e rezervuara. Fjalët dhe logot Intel, logoja e Intel, Altera, Arria, Cyclone, Enpirion, MAX, Nios, Quartus dhe Stratix janë marka tregtare të Intel Corporation ose filialeve të saj në SHBA dhe/ose vende të tjera. Intel garanton performancën e produkteve të saj FPGA dhe gjysmëpërçuese sipas specifikimeve aktuale në përputhje me garancinë standarde të Intel, por rezervon të drejtën të bëjë ndryshime në çdo produkt dhe shërbim në çdo kohë pa paralajmërim. Intel nuk merr përsipër asnjë përgjegjësi ose përgjegjësi që rrjedh nga aplikimi ose përdorimi i ndonjë informacioni, produkti ose shërbimi të përshkruar këtu, përveçse kur është rënë dakord shprehimisht me shkrim nga Intel. Klientët e Intel këshillohen të marrin versionin më të fundit të specifikimeve të pajisjes përpara se të mbështeten në çdo informacion të publikuar dhe përpara se të bëjnë porosi për produkte ose shërbime.
*Emra dhe marka të tjera mund të pretendohen si pronë e të tjerëve.

1.1.1 Variantet e bordit të platformës së referencës së kompletit të zhvillimit të Cikloni V SoC
Intel FPGA SDK për Platformën e Referencës së Kompletit të Zhvillimit të OpenCL Cyclone V SoC përfshin dy variante të bordit.

  • bordi c5soc
    Ky bord i paracaktuar siguron akses në dy banka memorie DDR. HPS DDR është i aksesueshëm si nga FPGA ashtu edhe nga CPU. FPGA DDR është i aksesueshëm vetëm nga FPGA.
  • bordi c5soc_sharedonly
    Ky variant i bordit përmban vetëm lidhje HPS DDR. FPGA DDR nuk është i aksesueshëm. Ky variant i tabelës është më efikas në zonën sepse nevojitet më pak pajisje për të mbështetur një bankë memorie DDR. Bordi c5soc_sharedonly është gjithashtu një platformë e mirë prototipimi për një bord prodhimi përfundimtar me një bankë të vetme memorie DDR.
    Për të synuar këtë variant të bordit kur përpiloni kernelin tuaj OpenCL, përfshini opsionin -board c5soc_sharedonly në komandën tuaj aoc.
    Për më shumë informacion në tabelë opsionin e komandës aoc, referojuni Intel FPGA SDK për Udhëzuesin e Programimit OpenCL.

Lidhje të ngjashme
Përpilimi i një kerneli për një bord specifik FPGA (–bordi )
1.1.2 Përmbajtja e Platformës së Referencës së Kompletit të Zhvillimit të Cyclone V SoC
Platforma e Referencës e Kompletit të Zhvillimit të Cyclone V SoC përbëhet nga sa vijon files dhe drejtoritë:

File ose Drejtoria Përshkrimi
board_env.xml Gjuha e shënjimit e zgjeruar (XML) file që përshkruan c5soc në Intel FPGA SDK për OpenCL.
linux_sd_card_image.tgz Imazhi i kompresuar i kartës flash SD file që përmban gjithçka që i nevojitet një përdoruesi SDK për të përdorur Kompletin e Zhvillimit Cyclone V SoC me SDK.
krahu32 Drejtoria që përmban sa vijon:

1.1.3 Veçoritë përkatëse të Kompletit të Zhvillimit të SoC Cyclone V

Lista e mëposhtme thekson komponentët dhe veçoritë e Kompletit të Zhvillimit të Cyclone V SoC që janë të rëndësishme për Intel FPGA SDK për OpenCL:

  • CPU me dy bërthama ARM Cortex-A9 me Linux 32-bit.
  • Autobusi i ndërfaqes së avancuar të zgjatur (AXI) midis HPS dhe strukturës bazë FPGA.
  • Dy kontrollues të ngurtësuar të memories DDR, secili që lidhet me një SDRAM DDR1 3 gigabajt (GB).
    — Një kontrollues DDR është i aksesueshëm vetëm për bërthamën FPGA (d.m.th., FPGA DDR).
    — Kontrolluesi tjetër DDR është i aksesueshëm si për HPS ashtu edhe për FPGA (d.m.th., HPS DDR). Ky kontrollues i përbashkët lejon ndarjen e memories pa pagesë midis CPU-së dhe bërthamës FPGA.
  • CPU mund të rikonfigurojë strukturën kryesore FPGA.

1.1.3.1 Objektivat dhe vendimet e dizajnit të platformës së referencës së kompletit të zhvillimit të Cyclone V SoC Intel e bazon zbatimin e Platformës së Referencës së Kompletit të Zhvillimit të Cyclone V SoC në disa qëllime dhe vendime të projektimit. Intel rekomandon që t'i merrni parasysh këto qëllime dhe vendime kur e transferoni këtë Platformë të Referencës në bordin tuaj SoC FPGA.
Më poshtë janë qëllimet e dizajnit të c5soc:

  1. Siguroni gjerësinë më të lartë të brezit të mundshëm midis kerneleve në FPGA dhe sistem(s) memorie DDR.
  2. Sigurohuni që llogaritjet në FPGA (d.m.th., kernelet OpenCL) të mos ndërhyjnë në detyra të tjera të CPU-së që mund të përfshijnë servisimin e pajisjeve periferike.
  3. Lini sa më shumë burime FPGA për llogaritjet e kernelit në vend të komponentëve të ndërfaqes.

Më poshtë janë vendimet e dizajnit të nivelit të lartë që janë pasojat e drejtpërdrejta të qëllimeve të dizajnit të Intel:

  1. Platforma e Referencës përdor vetëm kontrollues të fortë të memories DDR me konfigurimin më të gjerë të mundshëm (256 bit).
  2. FPGA komunikon drejtpërdrejt me kontrolluesin e memories HPS DDR, pa përfshirë autobusin AXI dhe çelësin L3 brenda HPS. Komunikimi i drejtpërdrejtë siguron gjerësinë më të mirë të brezit të mundshëm për DDR, dhe i mban llogaritjet FPGA të mos ndërhyjnë në komunikimet midis CPU-së dhe periferisë së tij.
  3. Qasja e drejtpërdrejtë e memories së shpërndarjes (SG-DMA) nuk është pjesë e logjikës së ndërfaqes FPGA. Në vend që të transferoni sasi të mëdha të dhënash ndërmjet sistemeve të memories DDR, ruajini të dhënat në HPS DDR të përbashkët. Qasja e drejtpërdrejtë në memorien CPU nga FPGA është më efikase se DMA. Ai kursen burimet e harduerit (d.m.th., zonën FPGA) dhe thjeshton drejtuesin e kernelit Linux.
    Paralajmërim: Transferimi i memories ndërmjet sistemit të përbashkët HPS DDR dhe sistemit DDR që është i aksesueshëm vetëm nga FPGA është shumë i ngadaltë. Nëse zgjidhni të
    transferoni memorie në këtë mënyrë, përdorni atë vetëm për sasi shumë të vogla të dhënash.
  4. Pritësi dhe pajisja kryejnë transferimin e të dhënave jo-DMA ndërmjet njëri-tjetrit nëpërmjet urës HPS-në-FPGA (H2F), duke përdorur vetëm një portë të vetme 32-bit. Arsyeja është, pa DMA, kerneli Linux mund të lëshojë vetëm një kërkesë të vetme leximi ose shkrimi 32-bit, kështu që është e panevojshme të kemi një lidhje më të gjerë.
  5. Pritësi dërgon sinjale kontrolli në pajisje nëpërmjet një ure të lehtë H2F (LH2F).
    Për shkak se sinjalet e kontrollit nga hosti në pajisje janë sinjale me gjerësi të ulët brezi, një urë LH2F është ideale për këtë detyrë.

1.2 Transferimi i platformës së referencës në Bordin tuaj të SoC FPGA
Për të transferuar Platformën e Referencës së Kompletit të Zhvillimit të Cyclone V SoC në bordin tuaj SoC FPGA, kryeni detyrat e mëposhtme:

  1. Zgjidhni një memorie DDR ose versionin e dy memories DDR të Platformës së Referencës c5soc si pikënisje të dizajnit tuaj.
  2. Përditëso vendndodhjet e pineve në ALTERAOCLSDKROOT/board/c5soc/ /lart.qsf file, ku ALTERAOCLSDKROOT është shtegu drejt vendndodhjes së Intel FPGA SDK për instalimin OpenCL, dhe është emri i drejtorisë së variantit të tabelës. Drejtoria c5soc_sharedonly është për variantin e tabelës me një sistem memorie DDR. Drejtoria c5soc është për variantin e tabelës me dy sisteme memorie DDR.
  3.  Përditësoni cilësimet DDR për blloqet HPS dhe/ose FPGA SDRAM në ALTERAOCLSDKROOT/board/c5soc/ /system.qsys file.
    4. Të gjitha Intel FPGA SDK për modelet e preferuara të paneleve OpenCL duhet të arrijnë mbylljen e garantuar të kohës. Si i tillë, vendosja e dizajnit duhet të jetë e pastër nga koha. Për të transferuar ndarjen e bordit c5soc (acl_iface_partition.qxp) në bordin tuaj SoC FPGA, kryeni detyrat e mëposhtme:
    Për udhëzime të hollësishme mbi modifikimin dhe ruajtjen e ndarjes së tabelës, referojuni Quartus
    Kapitulli i Përpilimit Inkremental Kryesor për Dizajn Hierarkik dhe të Bazuar në Ekip të Manualit Quartus Prime Standard Edition.
    a. Hiqni acl_iface_partition.qxp nga direktoria ALTERAOCLSDKROOT/board/c5soc/c5soc.
    b. Aktivizo rajonin acl_iface_region LogicLock™ duke ndryshuar komandën Tcl set_global_assignment -name LL_ENABLED OFF -section_id acl_iface_region në set_global_assignment -name LL_ENABLED ON -section_id acl_iface_region
    c. Përpiloni një kernel OpenCL për bordin tuaj.
    d. Nëse është e nevojshme, rregulloni madhësinë dhe vendndodhjen e rajonit LogicLock.
    e. Kur të jeni të kënaqur që vendosja e dizajnit tuaj është e pastër, eksportojeni atë ndarje si acl_iface_partition.qxp Quartus Prime Exported Partition File.
    Siç përshkruhet në seksionin Përcaktimi i rrjedhës së garantuar të kohës së AIntel FPGA SDK për Udhëzuesin e Përdoruesit të Paketës së Veglave të Platformës së Përshtatshme OpenCL, duke importuar këtë .qxp  file në dizajnin e nivelit të lartë, ju përmbushni kërkesën për të siguruar një dizajn bordi me një rrjedhë të garantuar të mbylljes së kohës.
    Për faktorët që mund të ndikojnë në cilësinë e rezultateve (QoR) të ndarjes suaj të eksportuar, referojuni Konsideratave të Cilësisë së Përgjithshme të Rezultateve për seksionin e Ndarjes së Bordit të Eksportuar në Udhëzuesin e Përdoruesit të Paketës së Veglave të Platformës së Përshtatshme për OpenCL të Intel FPGA SDK.
    f. Çaktivizoni rajonin acl_iface_region LogicLock duke e kthyer komandën në hapin 2 në set_global_assignment -emri LL_ENABLED OFF seksioni_id acl_iface_region.
  4. Nëse bordi juaj SoC FPGA përdor kunjat dhe periferitë e ndryshme të bllokut HPS, rigjeneroni parangarkuar dhe burimin e pemës së pajisjes (DTS) file. Nëse ndryshoni cilësimet e kontrolluesit të memories HPS DDR, rigjeneroni ngarkuesin paraprak.
  5. Krijo imazhin e kartës flash SD.
  6. Krijoni platformën tuaj të personalizuar, e cila përfshin imazhin e kartës flash SD.
  7. Merrni parasysh krijimin e një versioni të mjedisit të funksionimit të Platformës suaj të personalizuar për përdorim me Intel FPGA Runtime Environment (RTE) për OpenCL. Versioni RTE i Platformës suaj të personalizuar nuk përfshin drejtoritë e harduerit dhe imazhin e kartës flash SD. Kjo Platformë e personalizuar ngarkon në sistemin SoC FPGA për të lejuar ekzekutimin e aplikacioneve pritëse. Në të kundërt, versioni SDK i Platformës së Përshtatshme është i nevojshëm që SDK të përpilojë kernelet OpenCL.
    Këshillë: Ju mund të përdorni versionin SDK të platformës suaj të personalizuar për RTE. Të ruaj
    hapësirë, hiqni imazhin e kartës flash SD nga versioni RTE i platformës suaj të personalizuar.
  8. Testoni platformën tuaj të personalizuar.
    Për më shumë informacion, referojuni seksionit Testimi i dizajnit të harduerit të Intel FPGA SDK për Udhëzuesin e Përdoruesit të Paketës së Veglave të Platformës së Përshtatshme OpenCL.

Lidhje të ngjashme

  • Testimi i dizajnit të harduerit
  • Përmbledhje rritëse e Quartus Prime për dizajn hierarkik dhe të bazuar në ekip
  • Vendosja e rrjedhës së garantuar të kohës
  • Cilësia e përgjithshme e rezultateve Konsiderata për ndarjen e bordit të eksportuar

1.2.1 Përditësimi i një platforme referimi të portuar
Në versionin aktual të Platformës së Referencës së Kompletit të Zhvillimit të Cyclone V SoC, blloku HPS është brenda ndarjes që përcakton të gjithë logjikën jokernel. Megjithatë, nuk mund ta eksportoni HPS-në si pjesë e .qxp file. Për të përditësuar një platformë ekzistuese të personalizuar që keni modifikuar nga një version i mëparshëm i c5soc, zbatoni rrjedhën e ruajtjes QXP, përditësoni imazhin e kartës flash SD për të marrë mjedisin më të fundit të ekzekutimit dhe përditësoni board_spec.xml file për të mundësuar automigrimin.
Altera® SDK për versionin 14.1 të OpenCL dhe më gjerë heton board_spec.xml file për informacionin e bordit dhe zbaton përditësimet automatike. Sepse ju modifikoni
projektuar duke zbatuar rrjedhën e ruajtjes QXP, duhet të përditësoni board_spec.xml file në formatin e tij në versionin aktual. Përditësimi i file lejon SDK-në të bëjë dallimin midis platformave të personalizuara të paruajtura dhe platformave aktuale të personalizuara të bazuara në QXP. Për më shumë informacion, referojuni Automigrimit të platformës së personalizuar për përputhshmërinë përpara në SDK-në Intel FPGA për Udhëzuesin e Përdoruesit të Paketës së Veglave të Platformës së Përshtatshme OpenCL.

  1. Për të zbatuar rrjedhën e ruajtjes QXP në një dizajn hardueri Cyclone V SoC FPGA që është portuar nga një version i mëparshëm i c5soc, kryeni hapat e mëposhtëm për të krijuar një nënndarje për të përjashtuar HPS nga .qxp file:
    a. Përpara se të krijoni një ndarje rreth logjikës jokernel, krijoni një ndarje rreth HPS në .qsf Quartus Prime Settings File.
    Për shembullampe:
    # Ndarje manualisht instancën që modelon set_instance_assignment të dedikuar I/O për HPS -name PARTITION_HIERARCHY borde_18261 -në “system:the_system|system_acl_iface:acl_iface|system_acl_iface_hps_0:hpsacl_iface_hps_0:hpsacl_iface_hps_0:hpsacl_iface_hps_0:hpsacl_iface_hps_0:hpsacl_XNUMX__________| system_acl_iface_hps_XNUMX_hps_io_border:border" -section_id "system_acl_iface_hps_XNUMX_hps_io_border:border"
    # Cakto ndarjen të jetë një lloj HPS_PARTITION për t'u përpunuar saktë nga pjesa tjetër e Quartus
    set_global_assignment -emri PARTITION_TYPE HPS_PARTITION -section_id “system_acl_iface_hps_0_hps_io_border:border”
    quartus_cdb krye -c krye
    –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
    Pasi të përjashtoni HPS-në nga ndarja, mund të importoni .qxp file dhe përpiloni dizajnin tuaj.
  2. Përditësoni imazhin e kartës flash SD me versionin aktual të Intel FPGA RTE për OpenCL duke kryer detyrat e mëposhtme:
    a. Montoni file tabela e alokimit (fat32) dhe e zgjeruar file ndarjet e sistemit (ext3) në imazhin ekzistues si pajisje të kthimit. Për udhëzime të hollësishme, referojuni hapit 2 në ndërtimin e një imazhi të kartës flash SD.
    b. Në drejtorinë /home/root/opencl_arm32_rte, hiqni files nga versioni i mëparshëm i RTE.
    c. Shkarkoni dhe shpaketoni versionin aktual të RTE në drejtorinë /home/root/opencl_arm32_rte.
    d. Në /driver/version.h file të platformës suaj të personalizuar, përditësoni detyrën ACL_DRIVER_VERSION në . (për shembullample, 16.1.x, ku 16.1 është versioni i SDK-së dhe x është versioni i drejtuesit që keni vendosur).
    e. Rindërtoni shoferin.
    f. Fshini dosjet (dosjet) e harduerit të platformës suaj të personalizuar. Kopjoni platformën e personalizuar, së bashku me drejtuesin e përditësuar, në drejtorinë /home/root/opencl_arm_rte/board.
    g. Kopjo Altera.icd file nga drejtoria /home/root/opencl_arm32_rte dhe shtojeni atë në drejtorinë /etc/OpenCL/vendors.
    h. Çmontoni dhe provoni imazhin e ri. Për udhëzime të hollësishme, referojuni hapave 8 deri në 11 në ndërtimin e një imazhi të kartës flash SD.

Lidhje të ngjashme

  • Krijimi i një imazhi të kartës SD Flash në faqen 14
    Ju gjithashtu keni mundësinë për të krijuar një imazh të ri të kartës flash SD.
  • Automigrim i personalizuar i platformës për përputhshmëri përpara

1.3 Mbështetje softuerike për memorie të përbashkët
Kujtesa fizike e përbashkët midis FPGA dhe CPU është memoria e preferuar për kernelët OpenCL që funksionojnë në SoC FPGA. Për shkak se FPGA akseson memorien fizike të përbashkët, në krahasim me memorien e përbashkët virtuale, ajo nuk ka akses në tabelat e faqeve të CPU-së që vendosin adresat virtuale të përdoruesve në adresat fizike të faqeve.
Për sa i përket harduerit, kernelet OpenCL aksesojnë memorien e përbashkët fizike përmes lidhjes së drejtpërdrejtë me kontrolluesin e memories së fortë HPS DDR. Në lidhje me softuerin, mbështetja për memorien e përbashkët fizike përfshin konsideratat e mëposhtme:

  1. Implementimet tipike të softuerit për ndarjen e memories në CPU (p.shample, funksioni malloc()) nuk mund të ndajë një rajon memorie që mund të përdorë FPGA.
    Kujtesa që shpërndan funksioni malloc() është e ngjitur në hapësirën e adresave të memories virtuale, por çdo faqe fizike e vendosur nuk ka gjasa të jetë e afërt fizikisht. Si i tillë, hosti duhet të jetë në gjendje të ndajë rajone të memories fizikisht të afërta. Megjithatë, kjo aftësi nuk ekziston në aplikacionet e hapësirës së përdoruesit në Linux. Prandaj, drejtuesi i kernelit Linux duhet të kryejë alokimin.
  2. Drejtuesi i kernelit OpenCL SoC FPGA Linux përfshin funksionin mmap() për të ndarë memorien fizike të përbashkët dhe për ta hartuar atë në hapësirën e përdoruesit. Funksioni mmap() përdor thirrjen standarde të kernelit Linux dma_alloc_coherent() për të kërkuar rajone të memories fizikisht të afërta për t'u ndarë me një pajisje.
  3. Në kernelin e parazgjedhur të Linux, dma_alloc_coherent() nuk shpërndan memorie fizike të afërt me madhësi më shumë se 0.5 megabajt (MB). Për të lejuar që dma_alloc_coherent() të ndajë sasi të mëdha memorie të lidhur fizikisht, aktivizoni veçorinë e alokuesit të kujtesës së afërt (CMA) të kernelit Linux dhe më pas rikompiloni kernelin Linux.
    Për platformën e referencës së kompletit të zhvillimit të Cyclone V SoC, CMA menaxhon 512 MB nga 1 GB memorie fizike. Ju mund ta rrisni ose ulni këtë vlerë, në varësi të sasisë së memories së përbashkët që kërkon aplikacioni. Thirrja dma_alloc_coherent() mund të mos jetë në gjendje të ndajë 512 MB të plota të memories fizike të lidhura; megjithatë, ai mund të marrë në mënyrë rutinore afërsisht 450 MB memorie.
  4. CPU mund të cache memorien që thërret dma_alloc_coherent() alokon. Në veçanti, operacionet e shkrimit nga aplikacioni pritës nuk janë të dukshme për kernelët OpenCL. Funksioni mmap() në drejtuesin e kernelit OpenCL SoC FPGA Linux përmban gjithashtu thirrje për funksionin pgprot_noncached() ose remap_pf_range() për të çaktivizuar në mënyrë eksplicite ruajtjen e memories për këtë rajon të memories.
  5. Pasi funksioni dma_alloc_coherent() shpërndan memorien e lidhur fizikisht, funksioni mmap() e kthen adresën virtuale në fillim të diapazonit, që është hapësira e adresës së memories që ndani. Aplikacioni pritës kërkon këtë adresë virtuale për të hyrë në kujtesë. Nga ana tjetër, kernelet OpenCL kërkojnë adresa fizike. Drejtuesi i kernelit Linux mban gjurmët e hartës së adresës virtuale në fizike. Ju mund të hartoni adresat fizike që mmap() i kthen në adresat aktuale fizike duke shtuar një pyetje te drejtuesi.
    Thirrja aocl_mmd_shared_mem_alloc() MMD e ndërfaqes së programimit të aplikacionit (API) përfshin pyetjet e mëposhtme:
    a. Funksioni mmap() që shpërndan memorie dhe kthen adresën virtuale.
    b. Pyetja shtesë që harton adresën virtuale të kthyer në adresën fizike.
    Thirrja aocl_mmd_shared_mem_alloc() MMD API më pas kthen dy adresa
    —adresa aktuale e kthyer është adresa virtuale dhe adresa fizike shkon te device_ptr_out.
    Shënim: Drejtuesi mund të hartojë vetëm adresat virtuale që funksioni mmap() i kthen në adresat fizike. Nëse kërkoni adresën fizike të ndonjë treguesi tjetër virtual, drejtuesi kthen një vlerë NULL.

Paralajmërim: Intel FPGA SDK për bibliotekat e kohës së ekzekutimit OpenCL supozon se memoria e përbashkët është memoria e parë e listuar në board_spec.xml file. Me fjalë të tjera, adresa fizike që merr drejtuesi i kernelit Linux bëhet adresa Avalon® që kerneli OpenCL i kalon HPS SDRAM.
Në lidhje me bibliotekën e kohës së funksionimit, përdorni thirrjen clCreateBuffer() për të ndarë memorien e përbashkët si një bufer pajisjesh në mënyrën e mëposhtme:

  • Për variantin e bordit me dy DDR me memorie të përbashkët dhe jo të përbashkët, clCreateBuffer() shpërndan memorie të përbashkët nëse specifikoni flamurin CL_MEM_USE_HOST_PTR. Përdorimi i flamujve të tjerë bën që clCreateBuffer() të alokojë buffer në memorien jo të përbashkët.
  • Për variantin e tabelës me një DDR me vetëm memorie të përbashkët, clCreateBuffer() shpërndan memorie të përbashkët, pavarësisht nga flamuri që specifikoni.
    Aktualisht, mbështetja 32-bit Linux në CPU ARM rregullon shtrirjen e mbështetjes së kujtesës së përbashkët në bibliotekat e kohës së funksionimit SDK. Me fjalë të tjera, bibliotekat e ekzekutimit të përpiluara në mjedise të tjera (për shembullample, x86_64 Linux ose Windows 64-bit) nuk mbështesin memorien e përbashkët.
    C5soc nuk zbatoi memorie heterogjene për të dalluar memorien e përbashkët dhe jo të përbashkët për arsyet e mëposhtme:
    1. Historia — Mbështetja heterogjene e kujtesës nuk ishte e disponueshme kur u krijua fillimisht mbështetja e kujtesës së përbashkët.
    2. Ndërfaqja uniforme—Për shkak se OpenCL është një standard i hapur, Intel ruan konsistencën midis shitësve heterogjenë të platformave kompjuterike. Prandaj, e njëjta ndërfaqe si arkitekturat e shitësve të tjerë të bordit përdoret për të ndarë dhe përdorur memorien e përbashkët.

1.4 Rikonfigurimi i FPGA
Për FPGA-të SoC, CPU mund të rikonfigurojë strukturën bazë FPGA pa ndërprerë funksionimin e CPU-së. Blloku i harduerit FPGA Manager që shtrihet në HPS dhe bërthama FPGA kryen rikonfigurimin. Kerneli Linux përfshin një drejtues që mundëson qasje të lehtë në Menaxherin FPGA.

  • te view statusin e bërthamës FPGA, thirrni komandën e statusit cat /sys/class/fpga/fpga0/.
    Programi i programit Intel FPGA SDK për OpenCL i disponueshëm me Platformën e Referencës së Kompletit të Zhvillimit Cyclone V SoC përdor këtë ndërfaqe për të programuar FPGA. Kur riprogramoni një bërthamë FPGA me një CPU që funksionon, programi i programit kryen të gjitha detyrat e mëposhtme:
    1. Përpara riprogramimit, çaktivizoni të gjitha urat e komunikimit ndërmjet FPGA dhe HPS, të dyja urat H2F dhe LH2F.
    Riaktivizoni këto ura pas përfundimit të riprogramimit.
    Kujdes: Sistemi OpenCL nuk përdor urën FPGA-në-HPS (F2H). Referojuni seksionit Ndërfaqet HPS-FPGA në Manualin e pajisjes Cyclone V, Vëllimi 3: Manuali i referencës teknike të sistemit të procesorit të fortë për më shumë informacion.
    2. Sigurohuni që lidhja ndërmjet FPGA dhe kontrolluesit HPS DDR të jetë çaktivizuar gjatë riprogramimit.
    3. Sigurohuni që ndërprerjet FPGA në FPGA janë çaktivizuar gjatë riprogramimit.
    Gjithashtu, njoftoni drejtuesin që të refuzojë çdo ndërprerje nga FPGA gjatë riprogramimit.

Konsultohuni me kodin burimor të programit për detaje mbi zbatimin aktual.

Paralajmërim: Mos e ndryshoni konfigurimin e kontrolluesit HPS DDR kur CPU është në punë.
Të bësh këtë mund të shkaktojë një gabim fatal të sistemit sepse mund të ndryshosh konfigurimin e kontrolluesit DDR kur ka transaksione të pazgjidhura memorie nga CPU. Kjo do të thotë që kur CPU është në punë, nuk mund të riprogramoni bërthamën FPGA me një imazh që përdor HPS DDR në një konfigurim tjetër.
Mos harroni se sistemi OpenCL dhe dizajni i referencës Golden Hardware i disponueshëm me Intel SoC FPGA Embedded Design Suite (EDS), e vendos HPS DDR në një modalitet të vetëm 256-bit.
Pjesët e sistemit të CPU-së si parashikuesi i degës ose pararendësi i tabelës së faqeve mund të lëshojnë komanda DDR edhe kur duket se asgjë nuk funksionon në CPU.
Prandaj, koha e nisjes është koha e vetme e sigurt për të vendosur konfigurimin e kontrolluesit HPS DDR.
Kjo gjithashtu nënkupton që U-boot duhet të ketë një binar të papërpunuar file (.rbf) imazhi për t'u ngarkuar në memorie. Përndryshe, mund të aktivizoni HPS DDR me porte të papërdorura në FPGA dhe më pas mund të ndryshoni konfigurimin e portit. Për këtë arsye, drejtuesi i kernelit OpenCL Linux nuk përfshin më logjikën e nevojshme për të vendosur konfigurimin e kontrolluesit HPS DDR.
Paketa e dyfishtë në linjë SW3 (DIP) ndez paketën e zhvillimit të Cylone V SoC, kontrollon formën e pritshme të imazhit .rbf (d.m.th. nëse file është i ngjeshur dhe/ose i koduar). C5soc dhe Dizajni i Referencës së Hardware Artë i disponueshëm me SoC EDS, përfshijnë imazhe .rbf të ngjeshur, por të pakriptuara. Cilësimet e ndërprerësit SW3 DIP të përshkruara në Udhëzuesin e fillimit të SDK-së Intel FPGA për OpenCL Cyclone V SoC përputhen me këtë konfigurim të imazhit .rbf.

Lidhje të ngjashme

  • Ndërfaqet HPS-FPGA
  • Konfigurimi i ndërprerësve SW3

1.4.1 Detajet e Arkitekturës së Sistemit FPGA
Mbështetja për Platformën e Referencës së Kompletit të Zhvillimit Cyclone V SoC bazohet në Platformën e Referencës Stratix® V (s5_ref), e disponueshme me Intel FPGA SDK për OpenCL.
Organizimi i përgjithshëm i sistemit c5soc Qsys dhe drejtuesit të kernelit janë shumë të ngjashëm me ato në s5_ref.
Komponentët kryesorë të FPGA të mëposhtëm janë të njëjtë si në c5soc ashtu edhe në s5_ref:

  • Blloko VERSION_ID
  • Mekanizmi i pushimit
  • Ndarës i bankës së memories
  • Ndërfaqja e cache snoop
  • Ora e bërthamës
  • Kontrolloni blloqet e aksesit të regjistrit (CRA).

1.5 Ndërtimi i një imazhi të kartës Flash SD
Për shkak se Cyclone V SoC FPGA është një sistem i plotë në një çip, ju jeni përgjegjës për dhënien e përkufizimit të plotë të sistemit. Intel rekomandon që ta dorëzoni në formën e një imazhi të kartës flash SD. Intel FPGA SDK për përdoruesin OpenCL thjesht mund të shkruajë imazhin në kartën flash micro SD dhe bordi SoC FPGA është gati për përdorim.
Modifikimi i një imazhi ekzistues të kartës Flash SD në faqen 13
Intel rekomandon që thjesht të modifikoni imazhin e disponueshëm me Platformën e Referencës së Kompletit të Zhvillimit Cyclone V SoC. Ju gjithashtu keni mundësinë për të krijuar një imazh të ri të kartës SD flash.
Krijimi i një imazhi të kartës SD Flash në faqen 14
Ju gjithashtu keni mundësinë për të krijuar një imazh të ri të kartës flash SD.

1.5.1 Modifikimi i një imazhi ekzistues të kartës Flash SD
Intel rekomandon që thjesht të modifikoni imazhin e disponueshëm me Cyclone V SoC
Platforma e referencës së kompletit të zhvillimit. Ju gjithashtu keni mundësinë për të krijuar një imazh të ri të kartës flash SD.
Imazhi c5soc linux_sd_card_image.tgz file është i disponueshëm në drejtorinë ALTERAOCLSDKROOT/board/c5soc, ku ALTERAOCLSDKROOT tregon shtegun e Intel FPGA SDK për direktorinë e instalimit të OpenCL.

Kujdes: Për të modifikuar imazhin e kartës flash SD, duhet të keni privilegje root ose sudo.

  1. Për të dekompresuar $ALTERAOCLSDKROOT/board/c5soc/linux_sd_card_image.tgz file, ekzekutoni komandën tar xvfzlinux_sd_card_image.tgz.
  2. Përpiloni hello_world OpenCL exampdizajnoni duke përdorur mbështetjen tuaj të Platformës së personalizuar. Riemërtoni .rbf file që Intel FPGA SDK për OpenCL Offline Compiler gjeneron si opencl.rbf dhe vendoseni në ndarjen fat32 brenda imazhit të kartës flash SD.
    Ju mund të shkarkoni hello_world example design nga OpenCL Design Examples faqe në Altera webfaqe.
  3. Vendosni .rbf file në ndarjen fat32 të imazhit të kartës flash.
    Kujdes: Ndarja fat32 duhet të përmbajë të dyja zImage file dhe .rbf file. Pa një .rbf file, do të ndodhë një gabim fatal kur futni drejtuesin.
  4. Pasi të krijoni imazhin e kartës SD, shkruajeni atë në një kartë micro SD duke thirrur komandën e mëposhtme: sudo dd if=/path/to/sdcard/image.bin of=/dev/sdcard
  5. Për të testuar imazhin e kartës tuaj flash SD, kryeni detyrat e mëposhtme:
    a. Fusni kartën flash micro SD në tabelën SoC FPGA.
    b. Ndizni bordin në fuqi.
    c. Thirrni komandën e ndihmës së diagnostikimit aocl.

1.5.2 Krijimi i një imazhi të kartës SD Flash
Ju gjithashtu keni mundësinë për të krijuar një imazh të ri të kartës flash SD. Udhëzimet e përgjithshme për ndërtimin e një imazhi të ri të kartës flash SD dhe rindërtimin e një imazhi ekzistues të kartës flash SD janë të disponueshme në faqen GSRD v14.0.2 – SD Card të RocketBoards.org webfaqe.
Hapat e mëposhtëm përshkruajnë procedurën për krijimin e imazhit linux_sd_card_image.tgz nga imazhi i kartës flash SD Golden System Reference Design (GSRD):
Shënim:
Për të krijuar imazhin nga imazhi c5soc, kryeni të gjitha detyrat e zbatueshme të përshkruara në këtë procedurë.

  1. Shkarkoni dhe shpaketoni versionin 14.0 të imazhit të kartës flash SD GSRD nga Rocketboards.org.
  2. Montoni file tabela e alokimit (fat32) dhe e zgjeruar file ndarjet e sistemit (ext3) në këtë imazh si pajisje të kthimit. Për të montuar një ndarje, kryeni hapat e mëposhtëm:
    a. Përcaktoni fillimin e bajtit të ndarjes brenda imazhit duke thirrur /sbin/fdisk -lu image_file komandë.
    Për shembullample, numri i ndarjes 1 i tipit W95 FAT ka një kompensim blloku prej 2121728. Me 512 bajt për bllok, kompensimi i bajtit është 512 bajt x 2121728 = 1086324736 bajte.
    b. Identifikoni një pajisje me qark të lirë (për shembullample, /dev/loop0) duke shtypur komandën losetup -f.
    c. Duke supozuar se /dev/loop0 është pajisja e ciklit të lirë, caktoni imazhin e kartës tuaj flash në pajisjen e bllokut të ciklit duke thirrur losetup /dev/loop0 image_file -0 komanda 1086324736.
    d. Montoni pajisjen loop duke thirrur komandën mount /dev/loop0 /media/disk1.
    Brenda imazhit file, /media/disk1 tani është një ndarje fat32 e montuar.
    e. Përsëritni hapat nga a deri në d për ndarjen ext3.
  3. Shkarkoni versionin Cyclone V SoC FPGA të Intel FPGA Runtime Environment për paketën OpenCL nga Qendra e Shkarkimit në Altera webfaqe.
    a. Klikoni butonin Shkarko pranë botimit të softuerit Quartus Prime.
    b. Specifikoni versionin e lëshimit, sistemin operativ dhe metodën e shkarkimit.
    c. Klikoni në skedën "Software shtesë" dhe zgjidhni të shkarkoni Intel FPGA
    Runtime Environment për OpenCL Linux Cyclone V SoC TGZ.
    d. Pasi të keni shkarkuar aocl-rte- .arm32.tgz file, shpaketoni atë në
    një drejtori që ju zotëroni.
  4. Vendosni aocl-rte-in e papaketuar Drejtoria .arm32 në drejtorinë /home/root/opencl_arm32_rte në ndarjen ext3 të imazhit file.
  5. Fshini dosjen(et) e harduerit të platformës suaj të personalizuar dhe më pas vendoseni Platformën e personalizuar në nëndrejtorinë e tabelës së /home/root/ opencl_arm32_rte.
  6. Krijo init_opencl.sh file në drejtorinë /home/root me përmbajtjen e mëposhtme: eksportoni ALTERAOCLSDKROOT=/home/root/opencl_arm32_rte eksportoni AOCL_BOARD_PACKAGE_ROOT=$ALTERAOCLSDKROOT/board/ eksportoni PATH=$ALTERAOCLSDKROOT/bin:$PATH eksportoni LD_LIBRARY_PATH=$ALTERAOCLSDKROOT/host/arm32/lib:$LD_LIBRARY_PATH insmod $AOCL_BOARD_PACKAGE_ROOT/driver/aclsoc_drv.ko
    Përdoruesi SDK ekzekuton komandën e burimit ./init_opencl.sh për të ngarkuar variablat e mjedisit dhe drejtuesin e kernelit OpenCL Linux.
  7. Nëse keni nevojë të përditësoni parangarkuesin, DTS files, ose kernel Linux, ju nevojitet përpiluesi arm-linux-gnueabihf-gcc nga SoC EDS. Ndiqni udhëzimet e përshkruara në Udhëzuesin e Përdoruesit të Intel SoC FPGA Embedded Design Suite për të blerë softuerin, për t'i rikompiluar ato dhe për të përditësuar të dhënat përkatëse files në ndarjen e montuar fat32.
    Kujdes: Ka shumë të ngjarë që ju duhet të përditësoni para-ngarkuesin nëse Platforma juaj e personalizuar ka përdorime të ndryshme të pineve nga ato në c5soc.
    Mbani mend: Nëse ripërpiloni kernelin Linux, ripërpiloni drejtuesin e kernelit Linux me të njëjtin burim të kernelit Linux files. Nëse ka një mospërputhje midis drejtuesit të kernelit Linux dhe kernelit Linux, drejtuesi nuk do të ngarkohet. Gjithashtu, duhet të aktivizoni CMA.
    Referojuni Rikompilimit të Kernelit Linux për më shumë informacion.
  8. Përpiloni hello_world OpenCL exampdizajnoni duke përdorur mbështetjen tuaj të Platformës së personalizuar. Riemërtoni .rbf file që Intel FPGA SDK për OpenCL Offline Compiler gjeneron si opencl.rbf dhe vendoseni në ndarjen fat32 brenda imazhit të kartës flash SD.
    Ju mund të shkarkoni hello_world example design nga OpenCL Design Examples faqe në Altera webfaqe.
    9. Pasi të keni ruajtur të gjitha të nevojshme files në imazhin e kartës flash, thirrni komandat e mëposhtme:
    a. sinkronizoj
    b. çmontoj /media/disk1
    c. çmontoj ku është emri i drejtorisë që përdorni për montimin e ndarjes ext3 në 3 në faqen 3 (për shembullample, /media/disk2).
    d. humbetup -d /dev/loop0
    e. humbetup -d /dev/loop1
  9. Kompresoni imazhin e kartës flash SD duke thirrur komandën e mëposhtme: tar cvfz .tgz linux_sd_card_image
  10. Dorëzoni .tgz file brenda drejtorisë rrënjësore të platformës suaj të personalizuar.
  11. Për të testuar imazhin e kartës tuaj flash SD, kryeni detyrat e mëposhtme:
    a. Shkruani imazhin e pakompresuar që rezulton në një kartë flash micro SD.
    b. Fusni kartën flash micro SD në tabelën SoC FPGA.
    c. Ndizni bordin në fuqi.
    d. Thirrni komandën e ndihmës së diagnostikimit aocl.

Lidhje të ngjashme

  • Udhëzues përdoruesi i Intel SoC FPGA Embedded Design Suite
  • OpenCL Design Examples faqe në Altera webfaqe
  • Rikompilimi i kernelit Linux në faqen 16
    Për të aktivizuar CMA, së pari duhet të ripërpiloni kernelin Linux.
  • Pyetja për emrin e pajisjes së bordit tuaj FPGA (diagnoza)

1.6 Përpilimi i kernelit Linux për Cyclone V SoC FPGA
Përpara se të ekzekutoni aplikacionet OpenCL në tabelën Cyclone V SoC FPGA, duhet të përpiloni burimin e kernelit Linux dhe të përpiloni dhe instaloni drejtuesin e kernelit OpenCL Linux.

  1. Rikompilimi i kernelit Linux në faqen 16
    Për të aktivizuar CMA, së pari duhet të ripërpiloni kernelin Linux.
  2. Përpilimi dhe instalimi i drejtuesit të kernelit OpenCL Linux në faqen 17 Përpiloni drejtuesin e kernelit OpenCL Linux kundrejt burimit të kernelit të përpiluar.

1.6.1 Rikompilimi i kernelit Linux
Për të aktivizuar CMA, së pari duhet të ripërpiloni kernelin Linux.

  1. Klikoni lidhjen GSRD v14.0 – Përpilimi i Linux në faqen e Burimeve të RocketBoards.org webfaqe për të hyrë në udhëzimet për shkarkimin dhe rindërtimin e kodit burimor të kernelit Linux.
    Për përdorim me™ Intel FPGA SDK për OpenCL, specifikoni socfpga-3.13-rel14.0 si .
  2. Shënim: Procesi i ndërtimit krijon arch/arm/configs/socfpga_defconfig file. Kjo file specifikon cilësimet për konfigurimin e paracaktuar të socfpga.
    Shtoni rreshtat e mëposhtëm në fund të harkut/arm/configs/socfpga_defconfig 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
    Vlera e konfigurimit CONFIG_CMA_SIZE_MBYTES vendos kufirin e sipërm të numrit total të memories së disponueshme fizikisht të afërt. Ju mund ta rrisni këtë vlerë nëse keni nevojë për më shumë memorie.
  3. Kujdes: Sasia totale e memories fizike të disponueshme për procesorin ARM në tabelën SoC FPGA është 1 GB. Intel nuk rekomandon që të vendosni menaxherin CMA afër 1 GB.
  4. Ekzekutoni komandën make mrproper për të pastruar konfigurimin aktual.
  5. Ekzekutoni komandën make ARCH=arm socfpga_deconfig.
    ARCH=arm tregon që dëshironi të konfiguroni arkitekturën ARM.
    socfpga_defconfig tregon që dëshironi të përdorni konfigurimin e paracaktuar të socfpga.
  6. Ekzekutoni komandën e eksportit CROSS_COMPILE=arm-linux-gnueabihf-.
    Kjo komandë vendos variablin e mjedisit CROSS_COMPILE për të specifikuar prefiksin e zinxhirit të dëshiruar të veglave.
  7. Ekzekutoni komandën make ARCH=arm zImage. Imazhi që rezulton është i disponueshëm në hark/krah/boot/zImage file.
  8. Vendosni zImage file në ndarjen fat32 të imazhit të kartës flash. Për udhëzime të hollësishme, referojuni Manualit të Përdoruesit të GSRD për Cyclone V SoC FPGA në Rocketboards.org.
  9. Shënim: Për të futur saktë drejtuesin e kernelit OpenCL Linux, fillimisht ngarkoni një SDKgenerated.rbf file në FPGA.
    Për të krijuar .rbf file, përpiloni një dizajn SDK p.shampme Platformën e Referencës së Kompleteve të Zhvillimit të Cyclone V SoC si Platforma e personalizuar e synuar.
    9. Vendosni .rbf file në ndarjen fat32 të imazhit të kartës flash.
    Kujdes: Ndarja fat32 duhet të përmbajë të dyja zImage file dhe .rbf file. Pa një .rbf file, do të ndodhë një gabim fatal kur futni drejtuesin.
  10. Fusni kartën e programuar micro SD, e cila përmban imazhin e kartës SD që keni modifikuar ose krijuar më parë, në Kompletin e Zhvillimit të SoC Cyclone V dhe më pas aktivizoni tabelën SoC FPGA.
  11. Verifikoni versionin e kernelit të instaluar Linux duke ekzekutuar komandën uname -r.
  12. Për të verifikuar që aktivizoni me sukses CMA në kernel, me bordin e SoC FPGA të ndezur, ekzekutoni komandën grep init_cma /proc/kallsyms.
    CMA aktivizohet nëse dalja nuk është bosh.
  13. Për të përdorur kernelin e rikompiluar Linux me SDK, përpiloni dhe instaloni drejtuesin e kernelit Linux.

Lidhje të ngjashme

  • Manualet e Përdoruesit Golden System Reference Design (GSRD).
  • Ndërtimi i një imazhi të kartës Flash SD në faqen 13
    Për shkak se Cyclone V SoC FPGA është një sistem i plotë në një çip, ju jeni përgjegjës për dhënien e përkufizimit të plotë të sistemit.

1.6.2 Përpilimi dhe instalimi i drejtuesit të kernelit OpenCL Linux
Përpiloni drejtuesin e kernelit OpenCL Linux kundrejt burimit të kernelit të përpiluar.

Burimi i drejtuesit është i disponueshëm në versionin Cyclone V SoC FPGA të Mjedisit të Runtime Intel FPGA për OpenCL. Përveç kësaj, sigurohuni që të keni ngarkuar një Intel FPGA SDK për .rbf të gjeneruar nga OpenCL file në FPGA për të parandaluar instalimin e gabuar të modulit të kernelit Linux.

  1. Shkarkoni versionin Cyclone V SoC FPGA të Intel FPGA Runtime Environment për paketën OpenCL nga Qendra e Shkarkimit në Altera webfaqe.
    a. Klikoni butonin Shkarko pranë botimit të softuerit Quartus Prime.
    b. Specifikoni versionin e lëshimit, sistemin operativ dhe metodën e shkarkimit.
    c. Klikoni në skedën "Software shtesë" dhe zgjidhni të shkarkoni Intel FPGA
    Runtime Environment për OpenCL Linux Cyclone V SoC TGZ.
    d. Pasi të keni shkarkuar aocl-rte- .arm32.tgz file, shpaketoni atë në
    një drejtori që ju zotëroni.
    Burimi i shoferit është në aocl-rte- .arm32/board/c5soc/ drejtoria e shoferit.
  2. Për të ripërpiluar drejtuesin e kernelit OpenCL Linux, vendosni vlerën KDIR në "Make" të drejtuesitfile në drejtorinë që përmban burimin e kernelit Linux files.
  3. Ekzekutoni komandën e eksportit CROSS_COMPILE=arm-linux-gnueabihf- për të treguar prefiksin e zinxhirit të veglave tuaja.
  4. Ekzekutoni komandën make clean.
  5. Ekzekutoni komandën make për të krijuar aclsoc_drv.ko file.
  6. Transferoni drejtorinë opencl_arm32_rte në bordin Cyclone V SoC FPGA.
    Ekzekutimi i scp -r adresa root@your-ipad: komanda vendos mjedisin e ekzekutimit në direktorinë/home/root.
  7. Ekzekutoni skriptin init_opencl.sh që keni krijuar kur keni ndërtuar kartën SD.
  8.  Thirrni komandën e ndihmës së diagnostikimit aocl. Programi i diagnostikimit do të kthejë një rezultat kalues ​​pasi të ekzekutoni me sukses init_opencl.sh.

1.7 Çështje të njohura
Aktualisht, ka kufizime të caktuara në përdorimin e Intel FPGA SDK për OpenCL me Platformën e Referencës së Kompletit të Zhvillimit Cyclone V SoC.

  1. Nuk mund të anashkalosh emrat e shitësve dhe të bordeve të raportuara nga vargjet CL_DEVICE_VENDOR dhe CL_DEVICE_NAME të thirrjes clGetDeviceInfo().
  2. Nëse hosti alokon memorie konstante në sistemin e përbashkët DDR (d.m.th., HPS DDR) dhe modifikon memorien konstante pas ekzekutimit të kernelit, të dhënat në memorie mund të jenë të vjetruara. Ky problem lind sepse bërthama FPGA nuk mund të përgjojë transaksionet DDR nga CPU-në-HPS.
    Për të parandaluar që ekzekutimet e mëvonshme të kernelit të kenë akses në të dhënat e vjetruara, zbatoni një nga zgjidhjet e mëposhtme:
    • Mos modifikoni memorien konstante pas inicializimit të saj.
    • Nëse keni nevojë për grupe të shumta __konstante të të dhënave, krijoni bufera të shumta të memories konstante.
    • Nëse disponohet, shpërndani memorie konstante në FPGA DDR në tabelën tuaj të përshpejtuesit.
  3. Programi SDK në ARM mbështet vetëm komandat e programit dhe diagnostikimit të shërbimeve.
    Komandat e ndezjes, instalimit dhe çinstalimit të programit nuk janë të zbatueshme për Kompletin e Zhvillimit të SoC Cyclone V për arsyet e mëposhtme:
    a. Programi i instalimit duhet të përpilojë drejtuesin e kernelit aclsoc_drv Linux dhe ta aktivizojë atë në SoC FPGA. Makina e zhvillimit duhet të kryejë kompilimin; megjithatë, ai tashmë përmban burime të kernelit Linux për SoC FPGA. Burimet e kernelit Linux për makinën e zhvillimit janë të ndryshme nga ato për SoC FPGA. Vendndodhja e burimeve të kernelit Linux për SoC FPGA ka të ngjarë të jetë e panjohur për përdoruesin e SDK. Në mënyrë të ngjashme, mjeti i çinstalimit nuk është gjithashtu i disponueshëm për Kompletin e Zhvillimit të SoC Cyclone V.
    Gjithashtu, dërgimi i aclsoc_drv në bordin e SoC është sfidues sepse shpërndarja e paracaktuar e Kompletit të Zhvillimit të Cyclone V SoC nuk përmban kernel Linux të përfshirë files ose përpiluesin e GNU Compiler Collection (GCC).
    b. Programi flash kërkon vendosjen e një .rbf file i një dizajni OpenCL në ndarjen FAT32 të kartës flash micro SD. Aktualisht, kjo ndarje nuk është montuar kur përdoruesi i SDK-së fuqizon bordin. Prandaj, mënyra më e mirë për të përditësuar ndarjen është të përdorni një lexues të kartave flash dhe makinën e zhvillimit.
  4. Kur kaloni ndërmjet Intel FPGA SDK për OpenCL Offline Compiler i ekzekutueshëm files (.aocx) që korrespondojnë me variante të ndryshme të bordit (d.m.th., c5soc dhe c5soc_sharedonly), duhet të përdorni programin e programit të SDK-së për të ngarkuar .aocx file për variantin e ri të bordit për herë të parë. Nëse thjesht ekzekutoni aplikacionin pritës duke përdorur një variant të ri bordi, por FPGA përmban imazhin nga një variant tjetër i bordit, mund të ndodhë një gabim fatal.
  5. .qxp file nuk përfshin caktimet e ndarjes së ndërfaqes sepse softueri Quartus Prime plotëson vazhdimisht kërkesat e kohës së kësaj ndarjeje.
  6. Kur aktivizoni bordin, adresa e tij e kontrollit të aksesit në media (MAC) vendoset në një numër të rastësishëm. Nëse politika juaj LAN nuk e lejon këtë sjellje, vendosni adresën MAC duke kryer detyrat e mëposhtme:
    a. Gjatë ndezjes së U-Boot, shtypni çdo çelës për të hyrë në vijën e komandës U-Boot.
    b. Shkruani setenv ethaddr 00:07:ed:00:00:03 në vijën e komandës.
    Ju mund të zgjidhni çdo adresë MAC.
    c. Shkruani komandën saveenv.
    d. Rinisni bordin.

1.8 Historia e rishikimit të dokumentit
Tabela 1.
Historia e rishikimit të dokumentit të Intel FPGA SDK për OpenCL Cyclone V SoC
Udhëzues për transferimin e platformës së referencës së kompletit të zhvillimit

Data Versioni Ndryshimet
maj-17 2017.05.08 •Lëshimi i mirëmbajtjes.
Tetor 2016 2016.10.31 •Altera SDK e riemërtuar për OpenCL në Intel FPGA SDK për OpenCL.
•Përpiluesi Altera Offline u riemërua në Intel FPGA SDK për përpiluesin OpenCL Offline.
maj-16 2016.05.02 •Udhëzime të modifikuara për ndërtimin dhe modifikimin e një imazhi të kartës SD flash.
•Udhëzimet e modifikuara për rikompilimin e kernelit Linux dhe drejtuesit të kernelit OpenCL Linux.
Nëntor-15 2015.11.02 •Lëshimi i mirëmbajtjes dhe ndryshimi i rasteve të Quartus II në Quartus Prime.
maj-15 15.0.0 •Në Rikonfigurimin FPGA, u hoq udhëzimi për të riprogramuar bërthamën FPGA
me një . rbf imazh duke thirrur mace fileemri>. rbf
> Komanda /dev/ fpga0 sepse kjo metodë nuk rekomandohet.
Dhjetor-14 14.1.0 •U riemërtua dokumentin si Udhëzuesi i transferimit të platformës së referencës së kompletit të zhvillimit të Altera Cyclone V SoC.
•Përditësoi mjetin e riprogramimit në programin aoclfileemri> .komanda e ndihmës aocx.
•Përditësuar mjetin diagnostikues për diagnostifikimin e aocl dhe diagnozën aocl komanda e shërbimeve.
•Përditësoi procedurën në seksionin Transferimi i platformës së referencës në bordin tuaj SoC për të përfshirë udhëzime për bartjen dhe modifikimin e ndarjes së tabelës c5soc për të krijuar një ndarje të pastër nga koha për rrjedhën e garantuar të mbylljes së kohës.
•Futur temën Përditësimi i një platforme referimi të portuar për të përshkruar procedurat për detyrat e mëposhtme:
1. Duke përjashtuar bllokun e sistemit të procesorit të fortë (HPS) në ndarjen e tabelës
2.Përditësimi i imazhit të kartës SD flash
•Përditësuar seksionin Ndërtimi i imazhit të një karte flash SD. Rekomandohet përdorimi i versionit 14.0 të imazhit Golden System Reference Design (GSRD) si pikënisje në vend të imazhit të disponueshëm me SoC Embedded Design Suite (EDS).
•Përditësuar seksionin Rikompilimi i kernelit Linux dhe Driver i kernelit OpenCL Linux:
1.U shtua udhëzim për të vendosur variablin CROSS COMPILE.
2.Ndryshoi komandën që ekzekutoni për të verifikuar që CMA është aktivizuar me sukses.
korrik-14 14.0.0 •Lëshimi fillestar.

Dokumentet / Burimet

Intel FPGA SDK për OpenCL [pdfUdhëzuesi i përdoruesit
FPGA SDK për OpenCL, FPGA SDK, SDK për OpenCL, SDK

Referencat

Lini një koment

Adresa juaj e emailit nuk do të publikohet. Fushat e kërkuara janë shënuar *