FPGA SDK għal OpenCL
Gwida għall-Utent
UG-OCL009
2017.05.08
Aġġornata l-aħħar għal Intel® Quartus® Prime Design Suite: 17.0
Abbona
Ibgħat Feedback
Intel® FPGA SDK għal OpenCL™ Intel® Cyclone®V SoC Development Kit Reference Platform Porting Guide
V SoC Development Kit Reference Platform Porting Guide tiddeskrivi d-disinn tal-ħardwer u softwer tal-Pjattaforma ta' Referenza tal-Intel Cyclone V SoC Development Kit (c5soc) għall-użu mal-Intel Software Development Kit (SDK) għal OpenCL L-Intel ® FPGA SDK għal OpenCL ™ Intel Cyclone ® . Qabel ma tibda, Intel jirrakkomanda bil-qawwa li tiffamiljarizza ruħek mal-kontenut tad-dokumenti li ġejjin:
- Intel FPGA SDK għal OpenCLIntel Cyclone V SoC Gwida tal-Bidu
- Intel FPGA SDK għal OpenCL Custom Platform Toolkit Gwida għall-Utent
- Cyclone V Device Handbook, Volum 3: Hard Processor System Manwal Tekniku ta’ Referenza Barra minn hekk, irreferi għall-Kit ta’ Żvilupp tas-SoC ta’ Cyclone V u l-paġna tas-SoC Embedded Design Suite tal-Altera websit għal aktar informazzjoni. 1 2
Attenzjoni: Intel tassumi li għandek fehim fil-fond tal-Gwida tal-Utent tal-Intel FPGA SDK għal OpenCL Custom Platform Toolkit. Il-Gwida tal-Porting tal-Pjattaforma ta' Referenza tal-Kit ta' Żvilupp tas-SoC ta' Cyclone V ma tiddeskrivix l-użu tal-Kit ta' Għodda tal-Pjattaforma Dwana tal-SDK biex timplimenta Pjattaforma tad-Dwana għall-Kit tal-Iżvilupp tas-SoC taċ-Cyclone V. Jiddeskrivi biss id-differenzi bejn l-appoġġ SDK fuq iċ-Cyclone V SoC Development Kit u Intel FPGA SDK ġeneriku għal OpenCL Custom Platform.
Links Relatati
- Intel FPGA SDK għal OpenCL Cyclone V SoC Gwida tal-Bidu
- Intel FPGA SDK għal OpenCL Custom Platform Toolkit Gwida għall-Utent
- Cyclone V Device Handbook, Volum 3: Manwal ta' Referenza Teknika tas-Sistema tal-Proċessur iebes
- Cyclone V SoC Development Kit u SoC Embedded Design Suite paġna fuq l-Altera websit
- OpenCL u l-logo OpenCL huma trademarks Apple Inc. użati bil-permess tal-Khronos Group™.
- L-Intel FPGA SDK għal OpenCL huwa bbażat fuq Speċifikazzjoni Khronos ippubblikata, u għadda mill-Proċess tal-Ittestjar tal-Konformità Khronos. L-istatus ta' konformità attwali jista' jinstab fuq www.khronos.org/conformance.
Korporazzjoni Intel. Id-drittijiet kollha riżervati. Il-kliem u l-logos Intel, il-logo Intel, Altera, Arria, Cyclone, Enpirion, MAX, Nios, Quartus u Stratix huma trademarks ta’ Intel Corporation jew is-sussidjarji tagħha fl-Istati Uniti u/jew pajjiżi oħra. Intel tiggarantixxi l-prestazzjoni tal-prodotti FPGA u semikondutturi tagħha skont l-ispeċifikazzjonijiet attwali skont il-garanzija standard ta 'Intel, iżda tirriżerva d-dritt li tagħmel bidliet fi kwalunkwe prodott u servizz fi kwalunkwe ħin mingħajr avviż. Intel ma tassumi l-ebda responsabbiltà jew responsabbiltà li tirriżulta mill-applikazzjoni jew l-użu ta' kwalunkwe informazzjoni, prodott jew servizz deskritt hawnhekk ħlief kif miftiehem espressament bil-miktub minn Intel. Il-klijenti Intel huma avżati biex jiksbu l-aħħar verżjoni tal-ispeċifikazzjonijiet tal-apparat qabel ma jiddependu fuq kwalunkwe informazzjoni ppubblikata u qabel ma jagħmlu ordnijiet għal prodotti jew servizzi.
*Ismijiet u marki oħra jistgħu jiġu mitluba bħala proprjetà ta’ ħaddieħor.
1.1.1 Varjanti tal-Bord tal-Pjattaforma ta' Referenza tal-Kit tal-Iżvilupp tas-Ċiklun V SoC
L-Intel FPGA SDK għal OpenCL Cyclone V SoC Development Kit Reference Platform jinkludi żewġ varjanti tal-bord.
- bord c5soc
Dan il-bord default jipprovdi aċċess għal żewġ banek tal-memorja DDR. L-HPS DDR huwa aċċessibbli kemm mill-FPGA kif ukoll mis-CPU. L-FPGA DDR huwa aċċessibbli biss mill-FPGA. - c5soc_sharedonly bord
Dan il-varjant tal-bord fih biss konnettività HPS DDR. L-FPGA DDR mhix aċċessibbli. Dan il-varjant tal-bord huwa aktar effiċjenti fiż-żona minħabba li huwa meħtieġ inqas ħardwer biex isostni bank wieħed tal-memorja DDR. Il-bord c5soc_sharedonly huwa wkoll pjattaforma ta 'prototyping tajba għal bord ta' produzzjoni finali b'bank wieħed tal-memorja DDR.
Biex timmira dan il-varjant tal-bord meta tikkompila l-kernel tal-OpenCL tiegħek, inkludi l-għażla -board c5soc_sharedonly fil-kmand tal-aoc tiegħek.
Għal aktar informazzjoni fuq il-bord għażla tal-kmand aoc, irreferi għall-Intel FPGA SDK għall-Gwida ta 'Programmazzjoni OpenCL.
Links Relatati
Il-kumpilazzjoni ta' Kernel għal Bord Speċifiku FPGA (–board )
1.1.2 Kontenut taċ-Cyclone V SoC Development Kit Reference Platform
Il-Pjattaforma ta' Referenza tal-Kit ta' Żvilupp tas-SoC taċ-Cyclone V tikkonsisti f'dan li ġej files u direttorji:
File jew Direttorju | Deskrizzjoni |
board_env.xml | Lingwa tal-Markup Estensibbli (XML) file li jiddeskrivi c5soc għall-Intel FPGA SDK għal OpenCL. |
linux_sd_card_image.tgz | Immaġini tal-kard flash SD kompressata file li fih dak kollu li utent SDK jeħtieġ biex juża Cyclone V SoC Development Kit mal-SDK. |
driegħ32 | Direttorju li fih dan li ġej: |
1.1.3 Karatteristiċi Rilevanti taċ-Cyclone V SoC Development Kit
Il-lista li ġejja tenfasizza l-komponenti u l-karatteristiċi tal-Kit għall-Iżvilupp tas-SoC taċ-Cyclone V li huma rilevanti għall-SDK Intel FPGA għal OpenCL:
- CPU ARM Cortex-A9 b'żewġ qalba li jaħdem 32-bit Linux.
- Xarabank Advanced eXtensible Interface (AXI) bejn l-HPS u d-drapp tal-qalba tal-FPGA.
- Żewġ kontrolluri tal-memorja DDR mwebbsa, kull wieħed jgħaqqad ma '1 gigabyte (GB) DDR3 SDRAM.
— Kontrollur DDR wieħed huwa aċċessibbli għall-qalba FPGA biss (jiġifieri, FPGA DDR).
— Il-kontrollur DDR l-ieħor huwa aċċessibbli kemm għall-HPS kif ukoll għall-FPGA (jiġifieri, HPS DDR). Dan il-kontrollur kondiviż jippermetti qsim tal-memorja b'xejn bejn is-CPU u l-qalba tal-FPGA. - Is-CPU jista 'jikkonfigura mill-ġdid id-drapp tal-qalba FPGA.
1.1.3.1 Cyclone V SoC Development Kit Reference Platform Għanijiet u Deċiżjonijiet tad-Disinn Intel tibbaża l-implimentazzjoni tal-Cyclone V SoC Development Kit Reference Platform fuq diversi għanijiet u deċiżjonijiet tad-disinn. Intel tirrakkomanda li tikkunsidra dawn l-għanijiet u deċiżjonijiet meta ttrasferixxi din il-Pjattaforma ta' Referenza għall-bord SoC FPGA tiegħek.
Hawn taħt huma l-għanijiet tad-disinn c5soc:
- Ipprovdi l-ogħla bandwidth possibbli bejn il-qlub fuq l-FPGA u s-sistema(i) tal-memorja DDR.
- Żgura li l-komputazzjonijiet fuq l-FPGA (jiġifieri, il-kernels OpenCL) ma jinterferixxux ma 'kompiti oħra tas-CPU li jistgħu jinkludu periferali ta' manutenzjoni.
- Ħalli kemm jista' jkun riżorsi FPGA għall-komputazzjonijiet tal-kernel minflok il-komponenti tal-interface.
Hawn taħt jinsabu d-deċiżjonijiet ta’ disinn ta’ livell għoli li huma l-konsegwenzi diretti tal-għanijiet tad-disinn ta’ Intel:
- Il-Pjattaforma ta' Referenza tuża biss kontrolluri tal-memorja DDR iebsa bl-iktar konfigurazzjoni wiesgħa possibbli (256 bit).
- L-FPGA jikkomunika direttament mal-kontrollur tal-memorja HPS DDR, mingħajr ma jinvolvi x-xarabank AXI u s-swiċċ L3 ġewwa l-HPS. Il-komunikazzjoni diretta tipprovdi l-aħjar bandwidth possibbli għad-DDR, u żżomm il-komputazzjonijiet FPGA milli jinterferixxu mal-komunikazzjonijiet bejn is-CPU u l-periferija tiegħu.
- Scatter-gather aċċess dirett għall-memorja (SG-DMA) mhuwiex parti mill-loġika tal-interface FPGA. Minflok ma tittrasferixxi ammonti kbar ta' dejta bejn is-sistemi tal-memorja DDR, aħżen id-dejta fid-DDR tal-HPS kondiviż. L-aċċess dirett għall-memorja tas-CPU mill-FPGA huwa aktar effiċjenti minn DMA. Jiffranka r-riżorsi tal-ħardwer (jiġifieri, iż-żona FPGA) u jissimplifika s-sewwieq tal-kernel Linux.
Twissija: It-trasferiment tal-memorja bejn is-sistema HPS DDR kondiviża u s-sistema DDR li hija aċċessibbli biss għall-FPGA huwa bil-mod ħafna. Jekk tagħżel li
ittrasferixxi l-memorja b'dan il-mod, użaha għal ammonti żgħar ħafna ta 'data biss. - Il-host u l-apparat iwettqu trasferiment tad-dejta mhux DMA bejn xulxin permezz tal-pont HPS-to-FPGA (H2F), bl-użu biss ta 'port wieħed ta' 32-bit. Ir-raġuni hija, mingħajr DMA, il-kernel tal-Linux jista 'biss joħroġ talba waħda ta' qari jew kitba ta '32-bit, għalhekk mhux meħtieġ li jkun hemm konnessjoni usa'.
- L-ospitant jibgħat sinjali ta 'kontroll lill-apparat permezz ta' pont ħafif H2F (LH2F).
Minħabba li s-sinjali ta 'kontroll mill-host għall-apparat huma sinjali ta' bandwidth baxx, pont LH2F huwa ideali għall-kompitu.
1.2 Ittrasferixxi l-Pjattaforma ta' Referenza għall-Bord SoC FPGA tiegħek
Biex ttrasferixxi l-Pjattaforma ta' Referenza tal-Kit ta' Żvilupp SoC taċ-Cyclone V għall-bord SoC FPGA tiegħek, wettaq il-kompiti li ġejjin:
- Agħżel il-memorja DDR waħda jew iż-żewġ memorji DDR verżjoni tal-Pjattaforma ta' Referenza c5soc bħala l-punt tat-tluq tad-disinn tiegħek.
- Aġġorna l-postijiet tal-pin fl-ALTERAOCLSDKROOT/board/c5soc/ /top.qsf file, fejn ALTERAOCLSDKROOT hija t-triq għall-post tal-SDK Intel FPGA għall-installazzjoni ta' OpenCL, u huwa l-isem tad-direttorju tal-varjant tal-bord. Id-direttorju c5soc_sharedonly huwa għall-varjant tal-bord b'sistema waħda ta 'memorja DDR. Id-direttorju c5soc huwa għall-varjant tal-bord b'żewġ sistemi ta 'memorja DDR.
- Aġġorna s-settings tad-DDR għall-blokki tal-HPS u/jew FPGA SDRAM fil-ALTERAOCLSDKROOT/board/c5soc/ /system.qsys file.
4. Kollha Intel FPGA SDK għad-disinji tal-bord preferuti OpenCL għandhom jiksbu għeluq taż-żmien garantit. Bħala tali, it-tqegħid tad-disinn għandu jkun ħin nadif. Biex ttrasferixxi l-partizzjoni tal-bord c5soc (acl_iface_partition.qxp) għall-bord SoC FPGA tiegħek, wettaq il-kompiti li ġejjin:
Għal struzzjonijiet dettaljati dwar il-modifika u l-preservazzjoni tal-partizzjoni tal-bord, irreferi għall-Quartus
Kapitlu tal-Kompilazzjoni Prim Inkrementali għal Disinn Ġerarkiku u Ibbażat fuq Timijiet tal-Manwal tal-Quartus Prime Standard Edition.
a. Neħħi l-acl_iface_partition.qxp mid-direttorju ALTERAOCLSDKROOT/board/c5soc/c5soc.
b. Ippermetti r-reġjun acl_iface_region LogicLock™ billi tbiddel il-kmand Tcl set_global_assignment -name LL_ENABLED OFF -section_id acl_iface_region għal set_global_assignment -name LL_ENABLED ON -section_id acl_iface_region
c. Ikkompila għadma OpenCL għall-bord tiegħek.
d. Jekk meħtieġ, aġġusta d-daqs u l-post tar-reġjun LogicLock.
e. Meta tkun sodisfatt li t-tqegħid tad-disinn tiegħek huwa ħin nadif, esporta dik il-partizzjoni bħala l-partizzjoni esportata ta' Quartus Prime acl_iface_partition.qxp File.
Kif deskritt fit-taqsima tal-Istabbiliment tal-Fluss tal-Ħin Garantit tal-AIntel FPGA SDK għall-Gwida tal-Utent Toolkit tal-Pjattaforma Custom OpenCL, billi timporta dan .qxp file fid-disinn tal-ogħla livell, inti tissodisfa r-rekwiżit li tipprovdi disinn tal-bord bi fluss ta 'għeluq ta' ħin garantit.
Għal fatturi li jistgħu jaffettwaw il-kwalità tar-riżultati (QoR) tal-partizzjoni esportata tiegħek, irreferi għall-Kwalità Ġenerali tar-Riżultati Konsiderazzjonijiet għat-taqsima tal-Partizzjoni tal-Bord Esportat fl-Intel FPGA SDK għall-Gwida tal-Utent Toolkit tal-Pjattaforma Custom OpenCL.
f. Iddiżattiva r-reġjun LogicLock acl_iface_region billi terġa' lura l-kmand fil-Pass 2 lura għal set_global_assignment -name LL_ENABLED OFF section_id acl_iface_region. - Jekk il-bord SoC FPGA tiegħek juża pinnijiet u periferiji differenti tal-blokka HPS, riġenera l-preloader u s-sors tas-siġra tal-apparat (DTS) file. Jekk tibdel is-settings tal-kontrollur tal-memorja HPS DDR, riġenera l-preloader.
- Oħloq l-immaġni SD flash card.
- Oħloq il-Pjattaforma Custom tiegħek, li tinkludi l-immaġni tal-karta tal-flash SD.
- Ikkunsidra li toħloq verżjoni tal-ambjent runtime tal-Pjattaforma Custom tiegħek għall-użu mal-Intel FPGA Runtime Environment (RTE) għal OpenCL. Il-verżjoni RTE tal-Pjattaforma Custom tiegħek ma tinkludix direttorji tal-ħardwer u l-immaġni tal-SD flash card. Din il-Pjattaforma Custom tagħbijiet fuq is-sistema SoC FPGA biex tippermetti li l-applikazzjonijiet ospitanti jaħdmu. B'kuntrast, il-verżjoni SDK tal-Pjattaforma Custom hija meħtieġa għall-SDK biex jikkompila l-kernels OpenCL.
Tip: Tista' tuża l-verżjoni SDK tal-Pjattaforma Custom tiegħek għall-RTE. Issalva
spazju, neħħi l-immaġni tal-kard tal-flash SD mill-verżjoni RTE tal-Pjattaforma Custom tiegħek. - Ittestja l-Pjattaforma tad-Dwana tiegħek.
Irreferi għat-taqsima tal-Ittestjar tad-Disinn tal-Hardware tal-Intel FPGA SDK għall-Gwida tal-Utent Toolkit tal-Pjattaforma Custom OpenCL għal aktar informazzjoni.
Links Relatati
- Ittestjar tad-Disinn tal-Hardware
- Kumpilazzjoni Inkrementali Quartus Prime għal Disinn Ġerarkiku u Ibbażat fuq Timijiet
- L-istabbiliment ta' Fluss ta' Żmien Garantit
- Kunsiderazzjonijiet Ġenerali dwar il-Kwalità tar-Riżultati għall-Partizzjoni tal-Bord Esportat
1.2.1 Aġġornament ta' Pjattaforma ta' Referenza Portata
Fil-verżjoni attwali taċ-Cyclone V SoC Development Kit Reference Platform, il-blokka HPS tinsab ġewwa l-partizzjoni li tiddefinixxi l-loġika kollha mhux tal-kernel. Madankollu, ma tistax tesporta l-HPS bħala parti mill-.qxp file. Biex taġġorna Pjattaforma Custom eżistenti li mmodifikajt minn verżjoni preċedenti ta' c5soc, implimenta l-fluss ta' preservazzjoni QXP, aġġorna l-immaġni tal-karta tal-flash SD biex tikseb l-aħħar ambjent ta' runtime, u aġġorna l-board_spec.xml file biex tippermetti l-awtomigrazzjoni.
L-Altera® SDK għal OpenCL verżjoni 14.1 u lil hinn sondi l- board_spec.xml file għall-informazzjoni tal-bord, u timplimenta aġġornamenti awtomatiċi. Minħabba li timmodifika l-
disinn billi timplimenta l-fluss tal-preservazzjoni QXP, trid taġġorna l-board_spec.xml file għall-format tiegħu fil-verżjoni attwali. Aġġornament tal- file jippermetti lill-SDK jiddistingwi bejn Pjattaformi Custom mhux ippreservati u l-Pjattaformi Custom bbażati fuq QXP attwali. Irreferi għall-Awtomigrazzjoni tal-Pjattaforma tad-Dwana għall-Kompatibbiltà 'l quddiem fl-Intel FPGA SDK għall-Gwida tal-Utent tal- Toolkit tal-Pjattaforma tad-Dwana tal-OpenCL għal aktar informazzjoni.
- Biex timplimenta l-fluss ta 'preservazzjoni QXP f'disinn ta' hardware Cyclone V SoC FPGA li huwa portat minn verżjoni preċedenti ta 'c5soc, wettaq il-passi li ġejjin biex toħloq subpartizzjoni biex teskludi l-HPS mill-.qxp file:
a. Qabel ma toħloq partizzjoni madwar il-loġika nonkernel, oħloq partizzjoni madwar l-HPS fis-Settings .qsf Quartus Prime File.
Per example:
# Tiddividi manwalment l-istanza li timmudella l-I/O ddedikat mill-HPS set_instance_assignment -name PARTITION_HIERARCHY borde_18261 -to “system:the_system|system_acl_iface:acl_iface|system_acl_iface_hps_0:hps_0|system_acl_iface_hps_io|_ system_acl_iface_hps_0_hps_io_border:border” -section_id “system_acl_iface_hps_0_hps_io_border:border”
# Issettja l-partizzjoni biex tkun tip HPS_PARTITION biex tiġi pproċessata b'mod korrett mill-bqija ta' Quartus
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
Wara li teskludi l-HPS mill-partizzjoni, tista' timporta l-.qxp file u ikkumpila d-disinn tiegħek. - Aġġorna l-immaġni tal-karta tal-flash SD bil-verżjoni attwali tal-Intel FPGA RTE għal OpenCL billi twettaq il-kompiti li ġejjin:
a. Immonta l- file tabella ta' allokazzjoni (fat32) u estiża file diviżorji tas-sistema (ext3) fl-immaġni eżistenti bħala apparati loop-back. Għal struzzjonijiet dettaljati, irreferi għall-Pass 2 f'Bini ta' Immaġni SD Flash Card.
b. Fid-direttorju /home/root/opencl_arm32_rte, neħħi l- files mill-verżjoni preċedenti tal-RTE.
c. Niżżel u spakkja l-verżjoni attwali tal-RTE fid-direttorju /home/root/opencl_arm32_rte.
d. Ġol /sewwieq/verżjoni.h file tal-Pjattaforma Custom tiegħek, aġġorna l-assenjazzjoni ACL_DRIVER_VERSION għal . (eżample, 16.1.x, fejn 16.1 hija l-verżjoni SDK, u x hija l-verżjoni tas-sewwieq li ssettjajt).
e. Ibni mill-ġdid is-sewwieq.
f. Ħassar il-folder(i) tal-ħardwer tal-Pjattaforma Custom tiegħek. Ikkopja l-Pjattaforma tad-Dwana, flimkien mas-sewwieq aġġornat, fid-direttorju /home/root/opencl_arm_rte/board.
g. Ikkopja l-Altera.icd file mid-direttorju /home/root/opencl_arm32_rte u żidha mad-direttorju /etc/OpenCL/vendors.
h. Żarma u ttestja l-immaġni l-ġdida. Għal struzzjonijiet dettaljati, irreferi għall-Passi 8 sa 11 f'Bini ta' Immaġni SD Flash Card.
Links Relatati
- Ħolqien ta' Immaġni SD Flash Card f'paġna 14
Għandek ukoll l-għażla li toħloq immaġni SD flash card ġdida. - Awtomigrazzjoni tal-Pjattaforma tad-Dwana għall-Kompatibbiltà 'l quddiem
1.3 Appoġġ tas-Software għall-Memorja Kondiviża
Il-memorja fiżika kondiviża bejn l-FPGA u s-CPU hija l-memorja preferuta għall-kernels OpenCL li jaħdmu fuq SoC FPGAs. Minħabba li l-FPGA taċċessa memorja fiżika kondiviża, għall-kuntrarju tal-memorja virtwali kondiviża, m'għandhiex aċċess għat-tabelli tal-paġna tas-CPU li jimmappaw l-indirizzi virtwali tal-utent għal indirizzi fiżiċi tal-paġna.
Fir-rigward tal-ħardwer, il-kernels OpenCL jaċċessaw memorja fiżika kondiviża permezz ta 'konnessjoni diretta mal-kontrollur tal-memorja iebsa HPS DDR. Fir-rigward tas-softwer, l-appoġġ għall-memorja fiżika kondiviża jinvolvi l-kunsiderazzjonijiet li ġejjin:
- Implimentazzjonijiet tas-software tipiċi għall-allokazzjoni tal-memorja fuq is-CPU (eżample, il-funzjoni malloc()) ma tistax talloka reġjun tal-memorja li l-FPGA jista 'juża.
Il-memorja li talloka l-funzjoni malloc() hija kontigwa fl-ispazju tal-indirizz tal-memorja virtwali, iżda kwalunkwe paġni fiżiċi sottostanti x'aktarx li ma jkunux kontigwi fiżikament. Bħala tali, l-ospitant għandu jkun kapaċi jalloka reġjuni tal-memorja fiżikament kontigwi. Madankollu, din il-kapaċità ma teżistix fl-applikazzjonijiet tal-ispazju tal-utent fuq Linux. Għalhekk, is-sewwieq tal-kernel Linux għandu jwettaq l-allokazzjoni. - Is-sewwieq tal-kernel OpenCL SoC FPGA Linux jinkludi l-funzjoni mmap() biex talloka memorja fiżika kondiviża u timmarkaha fl-ispazju tal-utent. Il-funzjoni mmap() tuża s-sejħa standard tal-kernel Linux dma_alloc_coherent() biex titlob reġjuni tal-memorja fiżikament kontigwi għall-qsim ma' apparat.
- Fil-kernel Linux default, dma_alloc_coherent() ma jallokax memorja fiżikament kontigwa aktar minn 0.5 megabytes (MB) fid-daqs. Biex tippermetti dma_alloc_coherent() li talloka ammonti kbar ta 'memorja fiżikament kontigwa, ippermetti l-karatteristika tal-allokatur tal-memorja kontigwa (CMA) tal-kernel Linux u mbagħad ikkompila mill-ġdid il-kernel tal-Linux.
Għas-Cyclone V SoC Development Kit Reference Platform, CMA tamministra 512 MB minn 1 GB ta 'memorja fiżika. Tista' żżid jew tnaqqas dan il-valur, skont l-ammont ta' memorja kondiviża li teħtieġ l-applikazzjoni. Is-sejħa dma_alloc_coherent() tista' ma tkunx kapaċi talloka l-512 MB sħaħ ta' memorja fiżikament kontigwa; madankollu, b'rutina tista' tikseb madwar 450 MB ta' memorja. - Is-CPU jista' jdaħħal il-memorja fil-cache li s-sejħa dma_alloc_coherent() talloka. B'mod partikolari, operazzjonijiet ta 'kitba mill-applikazzjoni ospitanti mhumiex viżibbli għall-kernels OpenCL. Il-funzjoni mmap() fis-sewwieq tal-kernel OpenCL SoC FPGA Linux fiha wkoll sejħiet għall-funzjoni pgprot_noncached() jew remap_pf_range() biex iddiżattiva l-caching għal dan ir-reġjun tal-memorja b'mod espliċitu.
- Wara li l-funzjoni dma_alloc_coherent() talloka l-memorja fiżikament kontigwa, il-funzjoni mmap() tirritorna l-indirizz virtwali fil-bidu tal-firxa, li hija l-firxa tal-indirizz tal-memorja li talloka. L-applikazzjoni ospitanti teħtieġ dan l-indirizz virtwali biex taċċessa l-memorja. Min-naħa l-oħra, il-kernels OpenCL jeħtieġu indirizzi fiżiċi. Is-sewwieq tal-kernel tal-Linux isegwi l-immappjar tal-indirizz virtwali għal fiżiku. Tista 'mappa l-indirizzi fiżiċi li mmap() jirritorna għall-indirizzi fiżiċi attwali billi żżid mistoqsija lis-sewwieq.
Is-sejħa aocl_mmd_shared_mem_alloc() MMD għall-ipprogrammar tal-applikazzjoni (API) tinkorpora l-mistoqsijiet li ġejjin:
a. Il-funzjoni mmap() li talloka memorja u tirritorna l-indirizz virtwali.
b. Il-mistoqsija żejda li timmappa l-indirizz virtwali rritornat għal indirizz fiżiku.
Is-sejħa aocl_mmd_shared_mem_alloc() MMD API imbagħad tirritorna żewġ indirizzi
—l-indirizz attwali rritornat huwa l-indirizz virtwali, u l-indirizz fiżiku jmur għal device_ptr_out.
Nota: Is-sewwieq jista' jimmappa biss l-indirizzi virtwali li l-funzjoni mmap() terġa' lura għall-indirizzi fiżiċi. Jekk titlob għall-indirizz fiżiku ta' kwalunkwe pointer virtwali ieħor, is-sewwieq jirritorna valur NULL.
Twissija: L-Intel FPGA SDK għal-libreriji ta' runtime OpenCL jassumu li l-memorja kondiviża hija l-ewwel memorja elenkata fil-board_spec.xml file. Fi kliem ieħor, l-indirizz fiżiku li jikseb is-sewwieq tal-kernel Linux isir l-indirizz Avalon® li l-kernel OpenCL jgħaddi lill-HPS SDRAM.
Fir-rigward tal-librerija tar-runtime, uża s-sejħa clCreateBuffer() biex talloka l-memorja kondiviża bħala buffer tal-apparat bil-mod li ġej:
- Għall-varjant tal-bord b'żewġ DDR b'memorja kondiviża u mhux kondiviża, clCreateBuffer() jalloka memorja kondiviża jekk tispeċifika l-bandiera CL_MEM_USE_HOST_PTR. L-użu ta' bnadar oħra jikkawża clCreateBuffer() biex jalloka buffer fil-memorja nonshared.
- Għall-varjant tal-bord DDR wieħed b'memorja kondiviża biss, clCreateBuffer() jalloka memorja kondiviża irrispettivament minn liema bandiera tispeċifika.
Bħalissa, l-appoġġ Linux 32-bit fuq ARM CPU jirregola l-estent ta 'appoġġ tal-memorja kondiviża fil-libreriji tar-runtime SDK. Fi kliem ieħor, il-libreriji tar-runtime miġbura għal ambjenti oħra (eżample, x86_64 Linux jew 64-bit Windows) ma jappoġġjawx memorja kondiviża.
C5soc ma implimentax memorja eteroġenja biex jiddistingwi bejn memorja kondiviża u mhux kondiviża għar-raġunijiet li ġejjin:
1. Storja — L-appoġġ tal-memorja eteroġenja ma kienx disponibbli meta l-appoġġ tal-memorja kondiviż inħoloq oriġinarjament.
2. Interfaċċja uniformi — Minħabba li OpenCL huwa standard miftuħ, Intel iżomm konsistenza bejn il-bejjiegħa eteroġenji tal-pjattaforma tal-kompjuters. Għalhekk, l-istess interface bħall-arkitetturi tal-bejjiegħa tal-bords oħra tintuża biex talloka u tuża memorja kondiviża.
1.4 Rikonfigurazzjoni FPGA
Għal SoC FPGAs, is-CPU jista 'jikkonfigura mill-ġdid id-drapp tal-qalba tal-FPGA mingħajr ma jinterrompi l-operat tas-CPU. Il-blokk tal-ħardwer tal-Maniġer tal-FPGA li jmur fuq l-HPS u l-FPGA ċentrali jwettaq ir-rikonfigurazzjoni. Il-qalba tal-Linux jinkludi sewwieq li jippermetti aċċess faċli għall-Maniġer tal-FPGA.
- Biex view l-istatus tal-qalba tal-FPGA, invoka l-kmand tal-istatus tal-qtates /sys/class/fpga/fpga0/.
L-utilità tal-programm Intel FPGA SDK għall-OpenCL disponibbli maċ-Cyclone V SoC Development Kit Reference Platform tuża din l-interface biex tipprogramma l-FPGA. Meta tirriprogramma qalba FPGA b'CPU li jaħdem, l-utilità tal-programm twettaq il-kompiti kollha li ġejjin:
1. Qabel l-ipprogrammar mill-ġdid, iddiżattiva l-pontijiet ta 'komunikazzjoni kollha bejn l-FPGA u l-HPS, kemm pontijiet H2F kif ukoll LH2F.
Ippermetti mill-ġdid dawn il-pontijiet wara li titlesta l-ipprogrammar mill-ġdid.
Attenzjoni: Is-sistema OpenCL ma tużax il-pont FPGA-to-HPS (F2H). Irreferi għat-taqsima tal-Interfaces HPS-FPGA fil-Manwal tal-Apparat Cyclone V, Volum 3: Manwal ta’ Referenza Teknika tas-Sistema tal-Proċessur iebes għal aktar informazzjoni.
2. Kun żgur li r-rabta bejn l-FPGA u l-kontrollur DDR HPS tkun diżattivata waqt l-ipprogrammar mill-ġdid.
3. Żgura li l-interruzzjonijiet FPGA fuq l-FPGA huma diżattivati waqt l-ipprogrammar mill-ġdid.
Ukoll, avża lis-sewwieq biex jirrifjuta kwalunkwe interruzzjoni mill-FPGA waqt l-ipprogrammar mill-ġdid.
Ikkonsulta l-kodiċi tas-sors tal-utilità tal-programm għal dettalji dwar l-implimentazzjoni attwali.
Twissija: Tibdilx il-konfigurazzjoni tal-kontrollur HPS DDR meta s-CPU ikun qed jaħdem.
Jekk tagħmel hekk, tista' tikkawża żball fatali tas-sistema għaliex tista' tbiddel il-konfigurazzjoni tal-kontrollur DDR meta jkun hemm tranżazzjonijiet ta' memorja pendenti mis-CPU. Dan ifisser li meta s-CPU tkun qed taħdem, tista 'ma tipprogrammax mill-ġdid il-qalba tal-FPGA b'immaġni li tuża HPS DDR f'konfigurazzjoni differenti.
Ftakar li s-sistema OpenCL, u d-disinn ta 'referenza Golden Hardware disponibbli bl-Intel SoC FPGA Embedded Design Suite (EDS), jistabbilixxi l-HPS DDR f'modalità waħda ta' 256-bit.
Partijiet tas-sistema tas-CPU bħalma huma t-tbassir tal-fergħa jew il-prefetcher tat-tabella tal-paġna jistgħu joħorġu kmandi DDR anke meta jidher li xejn ma jkun qed jaħdem fuq is-CPU.
Għalhekk, il-ħin tal-ibbutjar huwa l-uniku ħin sikur biex tissettja l-konfigurazzjoni tal-kontrollur DDR HPS.
Dan jimplika wkoll li l-U-boot għandu jkollu binarju mhux maħdum file (.rbf) immaġni li tgħabbi fil-memorja. Inkella, tista 'tkun qed tippermetti l-HPS DDR b'portijiet mhux użati fuq l-FPGA u mbagħad potenzjalment tibdel il-konfigurazzjonijiet tal-port wara. Għal din ir-raġuni, is-sewwieq tal-kernel OpenCL Linux m'għadux jinkludi l-loġika meħtieġa biex tissettja l-konfigurazzjoni tal-kontrollur HPS DDR.
Is-swiċċijiet SW3 dual in-line package (DIP) fuq is-Cylone V SoC Development Kit jikkontrollaw il-forma mistennija tal-immaġni .rbf (jiġifieri jekk il- file hija kkompressata u/jew encrypted). C5soc, u d-Disinn ta' Referenza tal-Hardware tad-Deheb disponibbli mas-SoC EDS, jinkludu immaġini .rbf ikkompressati iżda mhux encrypted. Is-settings tal-iswiċċ DIP SW3 deskritti fl-Intel FPGA SDK għal OpenCL Cyclone V SoC Getting Started Guide jaqblu ma 'din il-konfigurazzjoni tal-immaġni .rbf.
Links Relatati
- Interfaces HPS-FPGA
- Konfigurazzjoni tas-Swiċċijiet SW3
1.4.1 Dettalji tal-Arkitettura tas-Sistema FPGA
L-appoġġ għall-Pjattaforma ta' Referenza tal-Kit tal-Iżvilupp tas-Cyclone V SoC huwa bbażat fuq il-Pjattaforma ta' Referenza Stratix® V (s5_ref), disponibbli mal-SDK Intel FPGA għal OpenCL.
L-organizzazzjoni ġenerali tas-sistema c5soc Qsys u s-sewwieq tal-kernel huma simili ħafna għal dawk f's5_ref.
Il-komponenti ewlenin tal-FPGA li ġejjin huma l-istess kemm f'c5soc kif ukoll f's5_ref:
- Blokk VERSION_ID
- Mekkaniżmu ta 'mistrieħ
- Diviżur tal-bank tal-memorja
- Cache snoop interface
- Arloġġ tal-kernel
- Blokki ta' aċċess għar-reġistru ta' kontroll (CRA).
1.5 Bini ta' Immaġni SD Flash Card
Minħabba li ċ-Cyclone V SoC FPGA hija sistema sħiħa fuq ċippa, inti responsabbli biex twassal id-definizzjoni sħiħa tas-sistema. Intel jirrakkomanda li tikkunsinnaha fil-forma ta 'immaġni SD flash card. L-Intel FPGA SDK għall-utent OpenCL jista 'sempliċement jikteb l-immaġni fuq il-mikro SD flash card u l-bord SoC FPGA huwa lest għall-użu.
Il-modifika ta’ Immaġni Eżistenti ta’ SD Flash Card f’paġna 13
Intel tirrakkomanda li sempliċement timmodifika l-immaġni disponibbli bil-Pjattaforma ta' Referenza tal-Kit ta' Żvilupp tas-SoC Cyclone V. Għandek ukoll l-għażla li toħloq immaġni SD flash card ġdida.
Ħolqien ta' Immaġni SD Flash Card f'paġna 14
Għandek ukoll l-għażla li toħloq immaġni SD flash card ġdida.
1.5.1 Immodifika ta' Immaġni Eżistenti ta' SD Flash Card
Intel jirrakkomanda li inti sempliċiment timmodifika l-immaġni disponibbli maċ-Cyclone V SoC
Pjattaforma ta' Referenza tal-Kit tal-Iżvilupp. Għandek ukoll l-għażla li toħloq immaġni SD flash card ġdida.
L-immaġni c5soc linux_sd_card_image.tgz file huwa disponibbli fid-direttorju ALTERAOCLSDKROOT/board/c5soc, fejn ALTERAOCLSDKROOT jindika t-triq tal-Intel FPGA SDK għad-direttorju tal-installazzjoni ta' OpenCL.
Attenzjoni: Biex timmodifika l-immaġni tal-kard tal-flash SD, irid ikollok privileġġi tal-għeruq jew sudo.
- Biex tiddekompressa l-$ALTERAOCLSDKROOT/board/c5soc/linux_sd_card_image.tgz file, mexxi l-kmand tar xvfzlinux_sd_card_image.tgz.
- Ikkompila l- hello_world OpenCL example disinn billi tuża l-appoġġ tal-Pjattaforma Custom tiegħek. Semmi mill-ġdid il-.rbf file li l-Intel FPGA SDK għall-OpenCL Offline Compiler jiġġenera bħala opencl.rbf, u poġġih fuq il-partizzjoni fat32 fi ħdan l-immaġni SD flash card.
Tista' tniżżel l-ex hello_worldample disinn mill-OpenCL Design Examples page fuq l-Altera websit. - Poġġi l-.rbf file fil-partizzjoni fat32 tal-immaġni tal-flash card.
Attenzjoni: Il-partizzjoni fat32 għandu jkun fiha kemm l-zImage file u l-.rbf file. Mingħajr .rbf file, se jseħħ żball fatali meta ddaħħal is-sewwieq. - Wara li toħloq l-immaġni tal-karta SD, iktebha fuq karta mikro SD billi tinvoka l-kmand li ġej: sudo dd if=/path/to/sdcard/image.bin of=/dev/sdcard
- Biex tittestja l-immaġni tal-kard tal-flash SD tiegħek, wettaq il-kompiti li ġejjin:
a. Daħħal il-mikro SD flash card fil-bord SoC FPGA.
b. Qiegħed il-bord.
c. Invoka l-kmand tal-utilità tad-dijanjosi aocl.
1.5.2 Ħolqien ta' Immaġni SD Flash Card
Għandek ukoll l-għażla li toħloq immaġni SD flash card ġdida. Istruzzjonijiet ġeneriċi dwar il-bini ta' immaġni SD flash card ġdida u l-bini mill-ġdid ta' immaġni SD flash card eżistenti huma disponibbli fuq il-paġna GSRD v14.0.2 – SD Card tar-RocketBoards.org websit.
Il-passi hawn taħt jiddeskrivu l-proċedura għall-ħolqien tal-immaġni linux_sd_card_image.tgz mill-immaġni tal-flash card SD tad-Disinn ta' Referenza tas-Sistema tad-Deheb (GSRD):
Nota:
Biex toħloq l-immaġni mill-immaġni c5soc, wettaq il-kompiti applikabbli kollha deskritti f'din il-proċedura.
- Niżżel u spakkja l-verżjoni 14.0 tal-immaġni tal-kard tal-flash GSRD SD minn Rocketboards.org.
- Immonta l- file tabella ta' allokazzjoni (fat32) u estiża file diviżorji tas-sistema (ext3) f'din l-immaġni bħala apparati loop-back. Biex twaħħal partizzjoni, wettaq il-passi li ġejjin:
a. Iddetermina l-bidu tal-byte tal-partizzjoni fi ħdan l-immaġni billi tinvoka l-/sbin/fdisk -lu image_file kmand.
Per example, in-numru tal-partizzjoni 1 tat-tip W95 FAT għandu offset tal-blokk ta '2121728. B'512 bytes għal kull blokka, il-byte offset huwa 512 bytes x 2121728 = 1086324736 bytes.
b. Identifika apparat ta’ loop ħieles (eżample, /dev/loop0) billi ttajpja l-kmand losetup -f.
c. Jekk wieħed jassumi /dev/loop0 huwa l-apparat tal-linja ħielsa, assenja l-immaġni tal-flash card tiegħek lill-apparat tal-blokk tal-linja billi tinvoka l-immaġini losetup /dev/loop0_file -0 1086324736 kmand.
d. Immonta l-apparat tal-linja billi tinvoka l-kmand mount /dev/loop0 /media/disk1.
Fi ħdan l-immaġni file, /media/disk1 issa hija partizzjoni fat32 immuntata.
e. Irrepeti l-passi a sa d għall-partizzjoni ext3. - Niżżel il-verżjoni Cyclone V SoC FPGA tal-Intel FPGA Runtime Environment għall-pakkett OpenCL miċ-Ċentru tat-Tniżżil fuq l-Altera websit.
a. Ikklikkja l-buttuna Niżżel ħdejn l-edizzjoni tas-softwer Quartus Prime.
b. Speċifika l-verżjoni tar-rilaxx, is-sistema operattiva, u l-metodu tat-tniżżil.
c. Ikklikkja t-tab Software Addizzjonali, u agħżel li tniżżel Intel FPGA
Runtime Environment għal OpenCL Linux Cyclone V SoC TGZ.
d. Wara li tniżżel l-aocl-rte- .arm32.tgz file, spakkjah biex
direttorju li inti stess. - Poġġi l-aocl-rte- mhux ippakkjat direttorju .arm32 fid-direttorju /home/root/opencl_arm32_rte fuq il-partizzjoni ext3 tal-immaġni file.
- Ħassar il-folder(i) tal-ħardwer tal-Pjattaforma tad-Dwana tiegħek, u mbagħad poġġi l-Pjattaforma tad-Dwana fis-subdirettorju tal-bord ta' /home/root/opencl_arm32_rte.
- Oħloq init_opencl.sh file fid-direttorju /home/root bil-kontenut li ġej: export ALTERAOCLSDKROOT=/home/root/opencl_arm32_rte export AOCL_BOARD_PACKAGE_ROOT=$ALTERAOCLSDKROOT/board/ export PATH=$ALTERAOCLSDKROOT/bin:$PATH export LD_LIBRARY_PATH=$ALTERAOCLSDKROOT/host/arm32/lib:$LD_LIBRARY_PATH insmod $AOCL_BOARD_PACKAGE_ROOT/driver/aclsoc_drv.ko
L-utent tal-SDK imexxi l-kmand tas-sors ./init_opencl.sh biex jgħabbi l-varjabbli tal-ambjent u s-sewwieq tal-kernel OpenCL Linux. - Jekk għandek bżonn taġġorna l-preloader, id-DTS files, jew il-kernel tal-Linux, għandek bżonn il-kompilatur arm-linux-gnueabihf-gcc mis-SoC EDS. Segwi l-istruzzjonijiet deskritti fil-Gwida għall-Utent tal-Intel SoC FPGA Embedded Design Suite biex takkwista s-softwer, tikkompilahom mill-ġdid u taġġorna l-informazzjoni rilevanti. files fuq il-partizzjoni fat32 immuntata.
Attenzjoni: Huwa probabbli ħafna li jkollok bżonn taġġorna l-preloader jekk il-Pjattaforma tad-Dwana tiegħek għandha użi differenti tal-pin minn dawk f'c5soc.
Ftakar: Jekk terġa 'tikkompila l-kernel tal-Linux, ikkompila mill-ġdid is-sewwieq tal-kernel tal-Linux bl-istess sors tal-kernel tal-Linux files. Jekk ikun hemm nuqqas ta' qbil bejn is-sewwieq tal-kernel tal-Linux u l-kernel tal-Linux, is-sewwieq ma jgħabbix. Ukoll, trid tattiva s-CMA.
Irreferi għal Rikompilazzjoni tal-Linux Kernel għal aktar informazzjoni. - Ikkompila l- hello_world OpenCL example disinn billi tuża l-appoġġ tal-Pjattaforma Custom tiegħek. Semmi mill-ġdid il-.rbf file li l-Intel FPGA SDK għall-OpenCL Offline Compiler jiġġenera bħala opencl.rbf, u poġġih fuq il-partizzjoni fat32 fi ħdan l-immaġni SD flash card.
Tista' tniżżel l-ex hello_worldample disinn mill-OpenCL Design Examples page fuq l-Altera websit.
9. Wara li taħżen dak kollu meħtieġ files fuq l-immaġni tal-flash card, invoka l-kmandi li ġejjin:
a. sinkronizzar
b. unmount /media/disk1
c. unmount fejn huwa l-isem tad-direttorju li tuża għall-immuntar tal-partizzjoni ext3 f'3 f'paġna 3 (per eżempjuample, /media/disk2).
d. losetup -d /dev/loop0
e. losetup -d /dev/loop1 - Ikkompressa l-immaġni tal-kard tal-flash SD billi tinvoka l-kmand li ġej: tar cvfz .tgz linux_sd_card_image
- Iwassal il- .tgz file ġewwa d-direttorju għerq tal-Pjattaforma Custom tiegħek.
- Biex tittestja l-immaġni tal-kard tal-flash SD tiegħek, wettaq il-kompiti li ġejjin:
a. Ikteb l-immaġni mhux kompressata li tirriżulta fuq micro SD flash card.
b. Daħħal il-mikro SD flash card fil-bord SoC FPGA.
c. Qiegħed il-bord.
d. Invoka l-kmand tal-utilità tad-dijanjosi aocl.
Links Relatati
- Gwida għall-Utent Intel SoC FPGA Embedded Design Suite
- OpenCL Disinn Eżamples page fuq l-Altera websit
- Rikompilazzjoni tal-Linux Kernel f'paġna 16
Biex tippermetti s-CMA, l-ewwel trid tikkompila mill-ġdid il-kernel tal-Linux. - Mistoqsija dwar l-Isem tal-Apparat tal-Bord FPGA Tiegħek (dijanjosi)
1.6 Kumpilazzjoni tal-Linux Kernel għal Cyclone V SoC FPGA
Qabel ma tħaddem l-applikazzjonijiet OpenCL fuq il-bord FPGA Cyclone V SoC, trid tiġbor is-sors tal-kernel Linux, u tikkompila u tinstalla s-sewwieq tal-kernel Linux OpenCL.
- Rikompilazzjoni tal-Linux Kernel f'paġna 16
Biex tippermetti s-CMA, l-ewwel trid tikkompila mill-ġdid il-kernel tal-Linux. - Il-Kompilazzjoni u l-Installazzjoni tal-OpenCL Linux Kernel Driver f'paġna 17 Ikkompila l-OpenCL Linux Kernel Driver kontra s-sors tal-kernel ikkumpilat.
1.6.1 Rikompilazzjoni tal-Linux Kernel
Biex tippermetti s-CMA, l-ewwel trid tikkompila mill-ġdid il-kernel tal-Linux.
- Ikklikkja fuq il-link GSRD v14.0 – Kumpilazzjoni tal-Linux fuq il-paġna tar-Riżorsi tar-RocketBoards.org websit biex taċċessa struzzjonijiet dwar it-tniżżil u l-bini mill-ġdid tal-kodiċi tas-sors tal-kernel tal-Linux.
Għall-użu mal-™ Intel FPGA SDK għal OpenCL, speċifika socfpga-3.13-rel14.0 bħala l- . - Nota: Il-proċess tal-bini joħloq l-arch/arm/configs/socfpga_defconfig file. Dan file jispeċifika s-settings għall-konfigurazzjoni default tas-socfpga.
Żid il-linji li ġejjin fil-qiegħ tal-arch/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
Il-valur tal-konfigurazzjoni CONFIG_CMA_SIZE_MBYTES jistabbilixxi l-ogħla limitu fuq in-numru totali ta 'memorja fiżikament kontigwa disponibbli. Tista' żżid dan il-valur jekk teħtieġ aktar memorja. - Attenzjoni: L-ammont totali ta 'memorja fiżika disponibbli għall-proċessur ARM fuq il-bord SoC FPGA huwa 1 GB. Intel ma jirrakkomandax li tissettja l-maniġer tas-CMA qrib 1 GB.
- Mexxi l-kmand make mrproper biex tnaddaf il-konfigurazzjoni kurrenti.
- Mexxi l-kmand make ARCH=arm socfpga_deconfig.
ARCH=arm jindika li trid tikkonfigura l-arkitettura ARM.
socfpga_defconfig jindika li trid tuża l-konfigurazzjoni default socfpga. - Mexxi l-export CROSS_COMPILE=arm-linux-gnueabihf-kmand.
Dan il-kmand jistabbilixxi l-varjabbli tal-ambjent CROSS_COMPILE biex jispeċifika l-prefiss tal-katina tal-għodda mixtieqa. - Mexxi l-kmand make ARCH=arm zImage. L-immaġni li tirriżulta hija disponibbli fl-arch/arm/boot/zImage file.
- Poġġi l-zImage file fil-partizzjoni fat32 tal-immaġni tal-flash card. Għal struzzjonijiet dettaljati, irreferi għall-Manwal tal-Utent GSRD speċifiku għal Cyclone V SoC FPGA fuq Rocketboards.org.
- Nota: Biex daħħal sew is-sewwieq tal-kernel OpenCL Linux, l-ewwel tagħbija SDKgenerated.rbf file fuq l-FPGA.
Biex toħloq il-.rbf file, ikkumpila disinn SDK example maċ-Cyclone V SoC Development Kit Reference Platform bħala l-Pjattaforma Custom fil-mira.
9. Poġġi l-.rbf file fil-partizzjoni fat32 tal-immaġni tal-flash card.
Attenzjoni: Il-partizzjoni fat32 għandu jkun fiha kemm l-zImage file u l-.rbf file. Mingħajr .rbf file, se jseħħ żball fatali meta ddaħħal is-sewwieq. - Daħħal il-karta micro SD ipprogrammata, li fiha l-immaġni tal-karta SD li mmodifikajt jew ħloqt qabel, fis-Cyclone V SoC Development Kit u mbagħad saħħan il-bord SoC FPGA.
- Ivverifika l-verżjoni tal-kernel Linux installat billi tħaddem il-kmand uname -r.
- Biex tivverifika li tattiva s-CMA b'suċċess fil-qalba, bil-bord SoC FPGA mixgħul, ħaddem il-kmand grep init_cma /proc/kallsyms.
CMA hija attivata jekk l-output ma jkunx vojt. - Biex tuża l-kernel Linux rikompilat mal-SDK, ikkumpila u installa d-driver tal-kernel Linux.
Links Relatati
- Manwali għall-Utent tad-Disinn ta' Referenza tas-Sistema tad-Deheb (GSRD).
- Bini ta’ Immaġni SD Flash Card f’paġna 13
Minħabba li ċ-Cyclone V SoC FPGA hija sistema sħiħa fuq ċippa, inti responsabbli biex twassal id-definizzjoni sħiħa tas-sistema.
1.6.2 Kumpilazzjoni u Installazzjoni tal-OpenCL Linux Kernel Driver
Ikkompila s-sewwieq tal-kernel OpenCL Linux kontra s-sors tal-kernel ikkumpilat.
Is-sors tas-sewwieq huwa disponibbli fil-verżjoni Cyclone V SoC FPGA tal-Intel FPGA Runtime Environment għal OpenCL. Barra minn hekk, kun żgur li għabbejt Intel FPGA SDK għal .rbf iġġenerat minn OpenCL file fl-FPGA biex tipprevjeni installazzjoni ħażina tal-modulu tal-kernel Linux.
- Niżżel il-verżjoni Cyclone V SoC FPGA tal-Intel FPGA Runtime Environment għall-pakkett OpenCL miċ-Ċentru tat-Tniżżil fuq l-Altera websit.
a. Ikklikkja l-buttuna Niżżel ħdejn l-edizzjoni tas-softwer Quartus Prime.
b. Speċifika l-verżjoni tar-rilaxx, is-sistema operattiva, u l-metodu tat-tniżżil.
c. Ikklikkja t-tab Software Addizzjonali, u agħżel li tniżżel Intel FPGA
Runtime Environment għal OpenCL Linux Cyclone V SoC TGZ.
d. Wara li tniżżel l-aocl-rte- .arm32.tgz file, spakkjah biex
direttorju li inti stess.
Is-sors tas-sewwieq huwa fl-aocl-rte- .arm32/board/c5soc/ direttorju tas-sewwieq. - Biex tikkompila mill-ġdid is-sewwieq tal-kernel OpenCL Linux, issettja l-valur KDIR fil-Make tas-sewwieqfile għad-direttorju li fih is-sors tal-kernel tal-Linux files.
- Mexxi l-export CROSS_COMPILE=arm-linux-gnueabihf- kmand biex tindika l-prefiss tal-katina tal-għodda tiegħek.
- Mexxi l-kmand make clean.
- Mexxi l-kmand make biex toħloq l-aclsoc_drv.ko file.
- Ittrasferixxi d-direttorju opencl_arm32_rte għall-bord FPGA Cyclone V SoC.
Tmexxi l-scp -r għerq@indirizz-ipad tiegħek: kmand ipoġġi l-ambjent runtime fid-direttorju/dar/għerq. - Mexxi l-iskrittura init_opencl.sh li ħloqt meta bnejt l-immaġni tal-kard SD.
- Invoka l-kmand tal-utilità tad-dijanjosi aocl. L-utilità tad-dijanjosi se tirritorna riżultat li jgħaddi wara li tmexxi init_opencl.sh b'suċċess.
1.7 Kwistjonijiet Magħrufa
Bħalissa, hemm ċerti limitazzjonijiet fuq l-użu ta 'l-Intel FPGA SDK għal OpenCL mal-Pjattaforma ta' Referenza tal-Kit għall-Iżvilupp tas-Cyclone V SoC.
- Ma tistax tegħleb l-ismijiet tal-bejjiegħ u tal-bord irrappurtati mis-strings CL_DEVICE_VENDOR u CL_DEVICE_NAME tas-sejħa clGetDeviceInfo().
- Jekk il-host jalloka memorja kostanti f'sistema DDR kondiviża (jiġifieri, HPS DDR) u jimmodifika l-memorja kostanti wara l-eżekuzzjoni tal-qalba, id-dejta fil-memorja tista' ssir skaduta. Din il-kwistjoni tqum minħabba li l-qalba tal-FPGA ma tistax snoop fuq transazzjonijiet DDR minn CPU għal HPS.
Biex tipprevjeni eżekuzzjonijiet sussegwenti tal-kernel milli jaċċessaw dejta skaduta, implimenta waħda mill-soluzzjonijiet li ġejjin:
• Timmodifikax il-memorja kostanti wara l-inizjalizzazzjoni tagħha.
• Jekk teħtieġ settijiet ta' data __kostanti multipli, oħloq buffers ta' memorja kostanti multipli.
• Jekk disponibbli, alloka memorja kostanti fl-FPGA DDR fuq il-bord tal-aċċeleratur tiegħek. - L-utilità SDK fuq ARM tappoġġja biss il-programm u tiddijanjostika l-kmandi tal-utilità.
Il-kmandi tal-utilità tal-flash, tal-installazzjoni u tad-diżinstallar mhumiex applikabbli għaċ-Cyclone V SoC Development Kit għar-raġunijiet li ġejjin:
a. L-utilità tal-installazzjoni trid tikkompila s-sewwieq tal-kernel Linux aclsoc_drv u tippermettilu fuq is-SoC FPGA. Il-magna tal-iżvilupp trid twettaq il-kumpilazzjoni; madankollu, diġà fih sorsi tal-qalba tal-Linux għas-SoC FPGA. Is-sorsi tal-qalba tal-Linux għall-magna tal-iżvilupp huma differenti minn dawk għas-SoC FPGA. Il-post tas-sorsi tal-kernel Linux għas-SoC FPGA x'aktarx mhux magħruf għall-utent tal-SDK. Bl-istess mod, l-utilità ta 'uninstall mhix disponibbli wkoll għaċ-Cyclone V SoC Development Kit.
Ukoll, it-twassil ta 'aclsoc_drv lill-bord tas-SoC huwa ta' sfida minħabba li d-distribuzzjoni awtomatika taċ-Cyclone V SoC Development Kit ma fihx Linux kernel include files jew il-kompilatur GNU Compiler Collection (GCC).
b. L-utilità tal-flash teħtieġ it-tqegħid ta' .rbf file ta' disinn OpenCL fuq il-partizzjoni FAT32 tal-micro SD flash card. Bħalissa, din il-partizzjoni mhix immuntata meta l-utent tal-SDK iħaddem il-bord. Għalhekk, l-aħjar mod biex taġġorna l-partizzjoni huwa li tuża flash card reader u l-magna tal-iżvilupp. - Meta taqleb bejn l-Intel FPGA SDK għal OpenCL Offline Compiler eżekutibbli files (.aocx) li jikkorrispondu għal varjanti differenti tal-bord (jiġifieri, c5soc u c5soc_sharedonly), trid tuża l-utilità tal-programm tal-SDK biex tgħabbi l-.aocx file għall-varjant tal-bord il-ġdid għall-ewwel darba. Jekk sempliċement tħaddem l-applikazzjoni ospitanti billi tuża varjant tal-bord ġdid iżda l-FPGA fiha l-immaġni minn varjant ieħor tal-bord, jista 'jseħħ żball fatali.
- Il-.qxp file ma jinkludix l-assenjazzjonijiet tal-partizzjoni tal-interface minħabba li s-softwer Quartus Prime jissodisfa b'mod konsistenti r-rekwiżiti tal-ħin ta 'din il-partizzjoni.
- Meta tissaħħaħ il-bord, l-indirizz tiegħu tal-kontroll tal-aċċess għall-midja (MAC) huwa ssettjat għal numru każwali. Jekk il-politika LAN tiegħek ma tippermettix din l-imġieba, issettja l-indirizz MAC billi twettaq il-kompiti li ġejjin:
a. Waqt it-tħaddim tal-U-Boot, agħfas kwalunkwe ċavetta biex tidħol fil-pront tal-kmand U-Boot.
b. Ittajpja setenv ethaddr 00:07:ed:00:00:03 fil-pront tal-kmand.
Tista' tagħżel kwalunkwe indirizz MAC.
c. Ittajpja l-kmand saveenv.
d. Reboot il-bord.
1.8 Storja tar-Reviżjoni tad-Dokument
Tabella 1.
Storja ta 'Reviżjoni tad-Dokument tal-SDK Intel FPGA għal OpenCL Cyclone V SoC
Gwida tal-Porting tal-Pjattaforma ta' Referenza tal-Kit tal-Iżvilupp
Data | Verżjoni | Bidliet |
Mejju-17 | 2017.05.08 | •Rilaxx ta 'manutenzjoni. |
Ottubru 2016 | 2016.10.31 | •Rebranded Altera SDK għal OpenCL għal Intel FPGA SDK għal OpenCL. •Rebranded Altera Offline Compiler għal Intel FPGA SDK għal OpenCL Offline Compiler. |
Mejju-16 | 2016.05.02 | •Istruzzjonijiet modifikati dwar il-bini u l-modifika ta 'immaġni SD flash card. •Istruzzjonijiet modifikati dwar il-kompilazzjoni mill-ġdid tal-qalba tal-Linux u s-sewwieq tal-qalba tal-Linux OpenCL. |
Novembru-15 | 2015.11.02 | •Ħlas ta 'manutenzjoni, u każijiet mibdula ta' Quartus II għal Quartus Prime. |
Mejju-15 | 15.0.0 | •Fil-Konfigurazzjoni mill-ġdid tal-FPGA, imneħħija l-istruzzjoni biex tiġi pprogrammata mill-ġdid il-qalba tal-FPGA bi . immaġini rbf billi tinvoka l-qattus fileisem>. rbf > /dev/ fpga0 kmand għaliex dan il-metodu mhux rakkomandat. |
Diċembru-14 | 14.1.0 | •Ismu mill-ġdid id-dokument bħala Gwida tal-Porting tal-Pjattaforma ta 'Referenza tal-Kit tal-Iżvilupp tas-SoC Altera Cyclone V. •Aġġorna l-utilità tal-programm mill-ġdid għall-programm aoclfileisem>.aocx utilità kmand. •Aġġorna l-utilità dijanjostika għad-dijanjosi aocl u d-dijanjosi aocl kmand tal-utilità. •Aġġorna l-proċedura fit-taqsima tal-Porting tal-Pjattaforma ta' Referenza għall-Bord tas-SoC Tiegħek biex tinkludi struzzjonijiet dwar il-porting u l-modifika tal-partizzjoni tal-bord c5soc biex toħloq diviżorju ta' ħin nadif għall-fluss garantit tal-għeluq tal-ħin. •Daħħal is-suġġett Aġġornament ta' Pjattaforma ta' Referenza Portata biex tiddeskrivi l-proċeduri għall-kompiti li ġejjin: 1.Eskludi l-blokk tas-sistema tal-proċessur iebes (HPS) fil-partizzjoni tal-bord 2.Aġġorna l-immaġni tal-karta tal-flash SD •Aġġorna t-taqsima tal-Bini tal-Immaġni tal-Kard Flash SD. Rakkomandat li tuża l-verżjoni 14.0 tal-immaġni tad-Disinn ta' Referenza tas-Sistema tad-Deheb (GSRD) bħala l-punt tat-tluq minflok l-immaġni disponibbli bis-SoC Embedded Design Suite (EDS). •Aġġorna t-taqsima tal-Kompilazzjoni mill-ġdid tal-Linux Kernel u OpenCL Linux Kernel Driver: 1.Istruzzjoni miżjuda biex tissettja l-varjabbli CROSS COMPILE. 2.Bidlet il-kmand li tmexxi biex tivverifika li s-CMA hija attivata b'suċċess. |
Lulju-14 | 14.0.0 | • Rilaxx Inizjali. |
Dokumenti / Riżorsi
![]() |
intel FPGA SDK għal OpenCL [pdfGwida għall-Utent FPGA SDK għal OpenCL, FPGA SDK, SDK għal OpenCL, SDK |