FPGA SDK para sa OpenCL
Giya sa Gumagamit
UG-OCL009
2017.05.08
Katapusang gi-update alang sa Intel® Quartus® Prime Design Suite: 17.0
Mag-subscribe
Ipadala ang Feedback
Intel® FPGA SDK alang sa OpenCL™ Intel® Cyclone®V SoC Development Kit Reference Platform Porting Guide
Ang V SoC Development Kit Reference Platform Porting Guide naghulagway sa hardware ug software nga disenyo sa Intel Cyclone V SoC Development Kit Reference Platform (c5soc) para gamiton sa Intel Software Development Kit (SDK) para sa OpenCL Ang Intel ® FPGA SDK para sa OpenCL ™ Intel Cyclone ® . Sa dili ka pa magsugod, ang Intel kusganong nagrekomendar nga pamilyar ka sa mga sulod sa mosunod nga mga dokumento:
- Intel FPGA SDK para sa OpenCLIntel Cyclone V SoC nga Giya sa Pagsugod
- Intel FPGA SDK alang sa OpenCL Custom Platform Toolkit Giya sa Gumagamit
- Cyclone V Device Handbook, Volume 3: Hard Processor System Technical Reference Manual Dugang pa, tan-awa ang Cyclone V SoC Development Kit ug SoC Embedded Design Suite nga panid sa Altera website alang sa dugang nga impormasyon. 1 2
Atensyon: Ang Intel nagtuo nga ikaw adunay lawom nga pagsabot sa Intel FPGA SDK para sa OpenCL Custom Platform Toolkit User Guide. Ang Cyclone V SoC Development Kit Reference Platform Porting Guide wala maghulagway sa paggamit sa SDK's Custom Platform Toolkit aron ipatuman ang Custom Platform para sa Cyclone V SoC Development Kit. Gihubit lamang niini ang mga kalainan tali sa suporta sa SDK sa Cyclone V SoC Development Kit ug usa ka generic nga Intel FPGA SDK alang sa OpenCL Custom Platform.
May Kalabutan nga mga Link
- Intel FPGA SDK para sa OpenCL Cyclone V SoC nga Giya sa Pagsugod
- Intel FPGA SDK alang sa OpenCL Custom Platform Toolkit Giya sa Gumagamit
- Handbook sa Cyclone V Device, Tomo 3: Manwal sa Teknikal nga Reference sa Sistema sa Hard Processor
- Cyclone V SoC Development Kit ug SoC Embedded Design Suite panid sa Altera website
- Ang OpenCL ug ang OpenCL nga logo kay mga tatak sa Apple Inc. nga gigamit sa pagtugot sa Khronos Group™.
- Ang Intel FPGA SDK para sa OpenCL gibase sa gipatik nga Khronos Specification, ug nakapasar sa Khronos Conformance Testing Process. Ang kasamtangan nga kahimtang sa pagpahiuyon makita sa www.khronos.org/conformance.
Intel Corporation. Tanang katungod gigahin. Ang Intel, ang Intel logo, Altera, Arria, Cyclone, Enpirion, MAX, Nios, Quartus ug Stratix nga mga pulong ug logo kay mga marka sa pamatigayon sa Intel Corporation o sa mga subsidiary niini sa US ug/o ubang mga nasud. Gigarantiya sa Intel ang paghimo sa iyang mga produkto nga FPGA ug semiconductor sa kasamtangang mga espesipikasyon subay sa standard warranty sa Intel, apan adunay katungod sa paghimog mga pagbag-o sa bisan unsang produkto ug serbisyo bisan unsang orasa nga wala’y pahibalo. Ang Intel walay responsibilidad o tulubagon nga naggikan sa aplikasyon o paggamit sa bisan unsang impormasyon, produkto, o serbisyo nga gihulagway dinhi gawas sa dayag nga giuyonan sa pagsulat sa Intel. Gitambagan ang mga kustomer sa Intel nga magkuha sa pinakabag-o nga bersyon sa mga detalye sa aparato sa dili pa mosalig sa bisan unsang gimantala nga impormasyon ug sa dili pa magbutang og mga order alang sa mga produkto o serbisyo.
*Ang ubang mga ngalan ug mga tatak mahimong maangkon nga gipanag-iya sa uban.
1.1.1 Bagyo V SoC Development Kit Reference Platform Board Variant
Ang Intel FPGA SDK alang sa OpenCL Cyclone V SoC Development Kit Reference Platform naglakip sa duha ka mga variant sa board.
- c5soc board
Kini nga default board naghatag og access sa duha ka DDR memory banks. Ang HPS DDR kay accessible sa FPGA ug sa CPU. Ang FPGA DDR ma-access lamang sa FPGA. - c5soc_sharedonly board
Kini nga board nga variant naglangkob lamang sa HPS DDR connectivity. Ang FPGA DDR dili ma-access. Kini nga board nga variant mas episyente sa lugar tungod kay dili kaayo hardware ang gikinahanglan aron suportahan ang usa ka DDR memory bank. Ang c5soc_sharedonly board usa usab ka maayong prototyping nga plataporma alang sa usa ka katapusang production board nga adunay usa ka DDR memory bank.
Aron ma-target kini nga board nga variant sa pag-compile sa imong OpenCL kernel, iapil ang -board c5soc_sharedonly nga opsyon sa imong aoc command.
Para sa dugang nga impormasyon sa –board opsyon sa aoc command, tan-awa ang Intel FPGA SDK para sa OpenCL Programming Guide.
May Kalabutan nga mga Link
Pag-compile sa usa ka Kernel alang sa usa ka Piho nga FPGA Board (–board )
1.1.2 Sulod sa Cyclone V SoC Development Kit Reference Platform
Ang Cyclone V SoC Development Kit Reference Platform naglangkob sa mga musunod files ug mga direktoryo:
File o Direktoryo | Deskripsyon |
board_env.xml | eXtensible Markup Language (XML) file nga naghulagway sa c5soc sa Intel FPGA SDK para sa OpenCL. |
linux_sd_card_image.tgz | Gi-compress nga SD flash card nga imahe file nga naglangkob sa tanan nga gikinahanglan sa usa ka SDK user sa paggamit sa Cyclone V SoC Development Kit uban sa SDK. |
bukton32 | Direktoryo nga naglangkob sa mosunod: |
1.1.3 May kalabotan nga mga bahin sa Cyclone V SoC Development Kit
Ang mosunod nga listahan nagpasiugda sa Cyclone V SoC Development Kit nga mga sangkap ug mga bahin nga may kalabotan sa Intel FPGA SDK para sa OpenCL:
- Dual-core ARM Cortex-A9 CPU nga nagpadagan sa 32-bit Linux.
- Advanced eXtensible Interface (AXI) bus tali sa HPS ug sa FPGA core fabric.
- Duha ka gahi nga DDR memory controller, ang matag usa nagkonektar sa 1 gigabyte (GB) DDR3 SDRAM.
— Usa ka DDR controller kay accessible sa FPGA core lamang (nga mao, FPGA DDR).
— Ang laing DDR controller kay ma-access sa HPS ug sa FPGA (nga mao, HPS DDR). Kini nga gipaambit nga controller nagtugot sa libre nga pagpaambit sa memorya tali sa CPU ug sa FPGA core. - Mahimong i-reconfigure sa CPU ang FPGA core fabric.
1.1.3.1 Cyclone V SoC Development Kit Reference Platform Design Goals and Decisions Gibase sa Intel ang pagpatuman sa Cyclone V SoC Development Kit Reference Platform sa daghang mga tumong ug desisyon sa disenyo. Girekomenda sa Intel nga imong tagdon kini nga mga katuyoan ug mga desisyon kung imong i-port kini nga Reference Platform sa imong SoC FPGA board.
Sa ubos mao ang mga katuyoan sa disenyo sa c5soc:
- Ihatag ang pinakataas nga posibleng bandwidth tali sa mga kernel sa FPGA ug sa DDR memory system(s).
- Siguruha nga ang mga kalkulasyon sa FPGA (nga mao, OpenCL kernels) dili makabalda sa ubang mga buluhaton sa CPU nga mahimong maglakip sa pagserbisyo sa mga peripheral.
- Biyai ang daghang mga kapanguhaan sa FPGA kutob sa mahimo alang sa mga pagkalkula sa kernel imbis nga mga sangkap sa interface.
Sa ubos mao ang taas nga lebel nga mga desisyon sa disenyo nga direkta nga mga sangputanan sa mga katuyoan sa laraw sa Intel:
- Ang Reference Platform naggamit lamang sa lisud nga DDR memory controllers nga adunay pinakalapad nga posible nga configuration (256 bits).
- Ang FPGA nakigkomunikar sa HPS DDR memory controller direkta, nga wala maglambigit sa AXI bus ug ang L3 switch sulod sa HPS. Ang direkta nga komunikasyon naghatag sa labing kaayo nga posible nga bandwidth sa DDR, ug nagpugong sa mga pagkalkula sa FPGA nga dili makabalda sa mga komunikasyon tali sa CPU ug sa periphery niini.
- Ang scatter-gather direct memory access (SG-DMA) dili bahin sa FPGA interface logic. Imbis nga ibalhin ang daghang mga datos tali sa mga sistema sa memorya sa DDR, tipigi ang datos sa gipaambit nga HPS DDR. Ang direktang pag-access sa memorya sa CPU pinaagi sa FPGA mas episyente kaysa DMA. Nagtipig kini sa mga kahinguhaan sa hardware (kana mao, FPGA area) ug gipasimple ang driver sa Linux kernel.
Pasidaan: Ang pagbalhin sa memorya tali sa gipaambit nga sistema sa HPS DDR ug ang sistema sa DDR nga ma-access lamang sa FPGA hinay kaayo. Kung pilion nimo
pagbalhin sa panumduman sa niini nga paagi, gamita kini alang sa gamay kaayo nga kantidad sa datos lamang. - Ang host ug ang device naghimo sa non-DMA data transfer tali sa usag usa pinaagi sa HPS-to-FPGA (H2F) bridge, gamit lang ang usa ka 32-bit port. Ang hinungdan mao, kung wala ang DMA, ang Linux kernel mahimo ra mag-isyu sa usa ka 32-bit nga pagbasa o pagsulat nga hangyo, mao nga dili kinahanglan nga adunay mas lapad nga koneksyon.
- Ang host nagpadala sa mga signal sa pagkontrol sa aparato pinaagi sa usa ka gaan nga H2F (LH2F) nga tulay.
Tungod kay ang mga signal sa pagkontrol gikan sa host ngadto sa device kay low-bandwidth signal, ang LH2F bridge maayo alang sa buluhaton.
1.2 Pagdala sa Reference Platform sa Imong SoC FPGA Board
Aron i-port ang Cyclone V SoC Development Kit Reference Platform sa imong SoC FPGA board, buhata ang mosunod nga mga buluhaton:
- Pilia ang usa ka DDR memory o ang duha ka DDR memory nga bersyon sa c5soc Reference Platform isip sinugdanan sa imong disenyo.
- I-update ang mga lokasyon sa pin sa ALTERAOCLSDKROOT/board/c5soc/ /top.qsf file, diin ang ALTERAOCLSDKROOT mao ang agianan padulong sa lokasyon sa Intel FPGA SDK alang sa pag-instalar sa OpenCL, ug mao ang ngalan sa direktoryo sa variant sa board. Ang c5soc_sharedonly nga direktoryo kay para sa board nga variant nga adunay usa ka DDR memory system. Ang direktoryo sa c5soc alang sa variant sa board nga adunay duha nga sistema sa memorya sa DDR.
- I-update ang mga setting sa DDR para sa HPS ug/o FPGA SDRAM block sa ALTERAOCLSDKROOT/board/c5soc/ /system.qsys file.
4. Ang tanan nga Intel FPGA SDK para sa OpenCL nga gusto nga mga disenyo sa board kinahanglang makab-ot ang garantiya nga pagsira sa timing. Sa ingon, ang pagbutang sa disenyo kinahanglan nga limpyo sa oras. Aron i-port ang c5soc board partition (acl_iface_partition.qxp) sa imong SoC FPGA board, buhata ang mosunod nga mga buluhaton:
Para sa detalyadong instruksyon sa pag-usab ug pagpreserbar sa board partition, tan-awa ang Quartus
Prime Incremental Compilation para sa Hierarchical ug Team-Based Design nga kapitulo sa Quartus Prime Standard Edition Handbook.
a. Kuhaa ang acl_iface_partition.qxp gikan sa ALTERAOCLSDKROOT/board/c5soc/c5soc directory.
b. I-enable ang acl_iface_region LogicLock™ region pinaagi sa pag-ilis sa Tcl command set_global_assignment -name LL_ENABLED OFF -section_id acl_iface_region to set_global_assignment -name LL_ENABLED ON -section_id acl_iface_region
c. Pag-compile og OpenCL kernel para sa imong board.
d. Kung gikinahanglan, i-adjust ang gidak-on ug lokasyon sa rehiyon sa LogicLock.
e. Kung natagbaw ka nga ang pagbutang sa imong disenyo limpyo sa oras, i-export kana nga partisyon ingon ang acl_iface_partition.qxp Quartus Prime Exported Partition File.
Sama sa gihulagway sa Establishing Guaranteed Timing Flow nga seksyon sa AIntel FPGA SDK para sa OpenCL Custom Platform Toolkit User Guide, pinaagi sa pag-import niini nga .qxp file ngadto sa top-level nga disenyo, imong natuman ang kinahanglanon sa paghatag ug board design nga adunay garantisadong timing closure flow.
Alang sa mga hinungdan nga mahimong makaapekto sa kalidad sa mga resulta (QoR) sa imong gi-eksport nga partisyon, tan-awa ang Kinatibuk-ang Kalidad sa Mga Resulta nga Konsiderasyon alang sa Exported Board Partition nga seksyon sa Intel FPGA SDK para sa OpenCL Custom Platform Toolkit User Guide.
f. I-disable ang acl_iface_region LogicLock region pinaagi sa pag-uli sa command sa Step 2 balik sa set_global_assignment -name LL_ENABLED OFF section_id acl_iface_region. - Kon ang imong SoC FPGA board naggamit ug lain-laing mga pin ug periphery sa HPS block, i-regenerate ang preloader ug ang device tree source (DTS) file. Kung imong usbon ang mga setting sa HPS DDR memory controller, i-regenerate ang preloader.
- Paghimo sa SD flash card nga imahe.
- Paghimo sa imong Custom Platform, nga naglakip sa SD flash card nga larawan.
- Ikonsiderar ang paghimo og runtime environment nga bersyon sa imong Custom Platform para magamit sa Intel FPGA Runtime Environment (RTE) para sa OpenCL. Ang RTE nga bersyon sa imong Custom Platform wala maglakip sa mga direktoryo sa hardware ug ang SD flash card nga imahe. Kini nga Custom nga Platform nagkarga sa sistema sa SoC FPGA aron tugutan ang mga aplikasyon sa host nga modagan. Sa kasukwahi, ang SDK nga bersyon sa Custom Platform gikinahanglan alang sa SDK sa pag-compile sa OpenCL kernels.
Tip: Mahimo nimong gamiton ang SDK nga bersyon sa imong Custom Platform para sa RTE. Sa pagluwas
luna, kuhaa ang SD flash card nga larawan gikan sa RTE nga bersyon sa imong Custom Platform. - Sulayi ang imong Custom nga Platform.
Tan-awa ang Pagsulay sa Hardware Design seksyon sa Intel FPGA SDK para sa OpenCL Custom Platform Toolkit Giya sa Gumagamit alang sa dugang nga impormasyon.
May Kalabutan nga mga Link
- Pagsulay sa Disenyo sa Hardware
- Quartus Prime Incremental Compilation para sa Hierarchical ug Team-Based Design
- Pagtukod og Garantiya nga Timing Flow
- Kinatibuk-ang Kalidad sa mga Resulta nga Konsiderasyon alang sa Exported Board Partition
1.2.1 Pag-update sa usa ka Ported Reference Platform
Sa kasamtangan nga bersyon sa Cyclone V SoC Development Kit Reference Platform, ang HPS block anaa sa sulod sa partition nga naghubit sa tanang nonkernel logic. Bisan pa, dili nimo ma-export ang HPS isip bahin sa .qxp file. Aron ma-update ang kasamtangan nga Custom Platform nga imong giusab gikan sa miaging bersyon sa c5soc, ipatuman ang QXP preservation flow, i-update ang SD flash card image aron makuha ang pinakabag-o nga runtime environment, ug i-update ang board_spec.xml file aron mahimo ang automigration.
Ang Altera® SDK alang sa OpenCL nga bersyon 14.1 ug sa unahan nagsusi sa board_spec.xml file alang sa impormasyon sa board, ug nagpatuman sa mga awtomatikong update. Tungod kay imong giusab ang
disenyo pinaagi sa pag-implementar sa QXP preservation flow, kinahanglan nimo nga i-update ang board_spec.xml file sa format niini sa kasamtangan nga bersyon. Pag-update sa file nagtugot sa SDK sa pag-ila tali sa wala mapreserbar nga Custom Platforms ug sa kasamtangan nga QXP-based Custom Platforms. Tan-awa ang Custom Platform Automigration para sa Forward Compatibility sa Intel FPGA SDK para sa OpenCL Custom Platform Toolkit User Guide para sa dugang nga impormasyon.
- Aron ipatuman ang pagpreserbar sa QXP sa usa ka Cyclone V SoC FPGA hardware design nga gi-port gikan sa miaging bersyon sa c5soc, buhata ang mosunod nga mga lakang sa paghimo og subpartition aron dili iapil ang HPS gikan sa .qxp file:
a. Sa dili pa maghimo ug partition libot sa nonkernel logic, paghimo ug partition libot sa HPS sa .qsf Quartus Prime Settings File.
Kay example:
# Manwal nga partition ang instance nga nagmodelo sa HPS-dedicated I/O set_instance_assignment -ngalan PARTITION_HIERARCHY borde_18261 -sa “system:the_system|system_acl_iface:acl_iface|system_acl_iface_hps_0:hps_0|system_acl_iface_hps| system_acl_iface_hps_0_hps_io_border:utlanan" -section_id"system_acl_iface_hps_0_hps_io_border:utlanan"
# Itakda ang partisyon nga usa ka tipo sa HPS_PARTITION aron maproseso sa husto sa nahabilin nga Quartus
set_global_assignment -ngalan PARTITION_TYPE HPS_PARTITION -section_id "system_acl_iface_hps_0_hps_io_border:utlanan"
quartus_cdb ibabaw -c ibabaw
–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
Human nimo dili iapil ang HPS gikan sa partition, mahimo nimong i-import ang .qxp file ug pag-compile sa imong desinyo. - I-update ang imahe sa SD flash card gamit ang kasamtangan nga bersyon sa Intel FPGA RTE para sa OpenCL pinaagi sa pagbuhat sa mosunod nga mga buluhaton:
a. I-mount ang file lamesa sa alokasyon (fat32) ug gipalugway file sistema (ext3) nga mga partisyon sa kasamtangan nga imahe isip mga loop-back device. Para sa detalyado nga mga instruksyon, tan-awa ang Lakang 2 sa Paghimo og SD Flash Card Image.
b. Sa /home/root/opencl_arm32_rte nga direktoryo, kuhaa ang files gikan sa miaging bersyon sa RTE.
c. I-download ug i-unpack ang kasamtangan nga bersyon sa RTE ngadto sa /home/root/opencl_arm32_rte nga direktoryo.
d. Sa /driver/version.h file sa imong Custom Platform, i-update ang ACL_DRIVER_VERSION nga assignment sa . (alang sa example, 16.1.x, diin ang 16.1 mao ang SDK verison, ug x ang bersyon sa drayber nga imong gitakda).
e. Pagtukod pag-usab sa drayber.
f. I-delete ang (mga) folder sa hardware sa imong Custom Platform. Kopyaha ang Custom Platform, uban sa updated nga drayber, ngadto sa /home/root/opencl_arm_rte/board directory.
g. Kopyaha ang Altera.icd file gikan sa /home/root/opencl_arm32_rte nga direktoryo ug idugang kini sa /etc/OpenCL/vendor nga direktoryo.
h. I-unmount ug sulayi ang bag-ong imahe. Alang sa detalyado nga mga panudlo, tan-awa ang Mga Lakang 8 hangtod 11 sa Pagtukod og SD Flash Card Image.
May Kalabutan nga mga Link
- Paghimo og SD Flash Card Image sa pahina 14
Adunay ka usab kapilian nga maghimo usa ka bag-ong imahe sa SD flash card. - Custom nga Platform Automigration para sa Forward Compatibility
1.3 Suporta sa Software alang sa Gipaambit nga Memorya
Ang gipaambit nga pisikal nga panumduman tali sa FPGA ug CPU mao ang gipalabi nga panumduman alang sa OpenCL kernels nga nagdagan sa SoC FPGAs. Tungod kay ang FPGA nag-access sa gipaambit nga pisikal nga panumduman, sukwahi sa gipaambit nga virtual nga panumduman, wala kini access sa mga lamesa sa panid sa CPU nga nagmapa sa mga virtual nga adres sa gumagamit sa mga adres sa pisikal nga panid.
Mahitungod sa hardware, ang OpenCL kernels nag-access sa gipaambit nga pisikal nga memorya pinaagi sa direktang koneksyon sa HPS DDR hard memory controller. Mahitungod sa software, ang suporta alang sa gipaambit nga pisikal nga panumduman naglakip sa mosunod nga mga konsiderasyon:
- Kasagaran nga mga pagpatuman sa software alang sa paggahin sa memorya sa CPU (alang sa example, ang malloc() function) dili makagahin ug memory region nga mahimong gamiton sa FPGA.
Ang panumduman nga gigahin sa malloc() function kay magkadugtong sa virtual memory address space, apan ang bisan unsang nagpahiping pisikal nga mga panid lagmit dili magkadugtong sa pisikal. Sa ingon, ang host kinahanglan nga makahimo sa paggahin sa pisikal nga magkadugtong nga mga rehiyon sa memorya. Bisan pa, kini nga abilidad wala maglungtad sa mga aplikasyon sa user-space sa Linux. Busa, ang driver sa Linux kernel kinahanglan nga maghimo sa alokasyon. - Ang OpenCL SoC FPGA Linux kernel driver naglakip sa mmap() function sa paggahin sa gipaambit nga pisikal nga memorya ug mapa kini ngadto sa user space. Ang mmap() function naggamit sa standard nga Linux kernel call dma_alloc_coherent() para mangayo ug physically-contiguous memory region para sa pagpaambit sa usa ka device.
- Sa default Linux kernel, ang dma_alloc_coherent() wala maggahin sa pisikal nga magkadugtong nga memorya nga labaw sa 0.5 megabytes (MB) ang gidak-on. Aron tugotan ang dma_alloc_coherent() sa paggahin ug dagkong kantidad sa physically-contiguous memory, i-enable ang contiguous memory allocator (CMA) feature sa Linux kernel ug dayon i-compile ang Linux kernel.
Alang sa Cyclone V SoC Development Kit Reference Platform, ang CMA nagdumala sa 512 MB gikan sa 1 GB nga pisikal nga memorya. Mahimo nimong usbon o ipaubos kini nga kantidad, depende sa kantidad sa gipaambit nga memorya nga gikinahanglan sa aplikasyon. Ang dma_alloc_coherent() nga tawag mahimong dili makagahin sa tibuok 512 MB sa pisikal nga magkadugtong nga memorya; bisan pa, kini kanunay nga makakuha og gibana-bana nga 450 MB nga memorya. - Ang CPU maka-cache sa memorya nga gigahin sa dma_alloc_coherent() nga tawag. Sa partikular, ang pagsulat sa mga operasyon gikan sa host application dili makita sa OpenCL kernels. Ang mmap() function sa OpenCL SoC FPGA Linux kernel driver naglakip usab sa mga tawag sa pgprot_noncached() o remap_pf_range() function aron dili ma-disable ang caching para niining rehiyon sa memorya nga klaro.
- Human nga ang dma_alloc_coherent() function mogahin sa physically-contiguous memory, ang mmap() function mobalik sa virtual address ngadto sa sinugdanan sa range, nga mao ang address span sa memorya nga imong gigahin. Ang aplikasyon sa host nanginahanglan niining virtual nga adres aron ma-access ang memorya. Sa laing bahin, ang OpenCL kernels nanginahanglan ug pisikal nga mga adres. Ang Linux kernel driver nagsubay sa virtual-to-physical address mapping. Mahimo nimong mapa ang pisikal nga mga adres nga gibalik sa mmap() sa aktwal nga pisikal nga mga adres pinaagi sa pagdugang usa ka pangutana sa drayber.
Ang aocl_mmd_shared_mem_alloc() MMD application programming interface (API) nga tawag naglakip sa mosunod nga mga pangutana:
a. Ang mmap() function nga naggahin sa memorya ug nagbalik sa virtual nga adres.
b. Ang dugang nga pangutana nga nag-mapa sa gibalik nga virtual nga adres sa pisikal nga adres.
Ang aocl_mmd_shared_mem_alloc() tawag sa MMD API unya nagbalik og duha ka adres
—ang aktuwal nga gibalik nga adres mao ang virtual nga adres, ug ang pisikal nga adres moadto sa device_ptr_out.
Mubo nga sulat: Mapa lamang sa drayber ang mga virtual nga adres nga gibalik sa mmap() function sa pisikal nga mga adres. Kung mangayo ka alang sa pisikal nga adres sa bisan unsang ubang virtual pointer, ang drayber magbalik usa ka NULL nga kantidad.
Pasidaan: Ang Intel FPGA SDK alang sa OpenCL runtime nga mga librarya nagtuo nga ang shared memory mao ang unang memorya nga gilista sa board_spec.xml file. Sa laing pagkasulti, ang pisikal nga adres nga makuha sa Linux kernel driver mahimong Avalon® nga adres nga gipasa sa OpenCL kernel sa HPS SDRAM.
Mahitungod sa runtime library, gamita ang clCreateBuffer() nga tawag sa paggahin sa shared memory isip buffer sa device sa mosunod nga paagi:
- Alang sa duha ka-DDR board nga variant nga adunay gipaambit ug dili gipaambit nga panumduman, ang clCreateBuffer() naggahin ug gipaambit nga panumduman kung imong ipiho ang CL_MEM_USE_HOST_PTR nga bandera. Ang paggamit sa uban nga mga bandila hinungdan sa clCreateBuffer() sa paggahin buffer sa nonshared memory.
- Alang sa usa ka-DDR board nga variant nga adunay gipaambit nga memorya lamang, ang clCreateBuffer() naggahin ug gipaambit nga memorya bisan unsa nga bandila ang imong gitakda.
Sa pagkakaron, ang 32-bit nga suporta sa Linux sa ARM CPU nagdumala sa gidak-on sa gipaambit nga suporta sa memorya sa SDK runtime nga mga librarya. Sa laing pagkasulti, ang runtime nga mga librarya gihugpong sa ubang mga palibot (alang sa example, x86_64 Linux o 64-bit Windows) wala mosuporta sa gipaambit nga memorya.
Ang C5soc wala nagpatuman sa heterogeneous memory aron mailhan tali sa shared ug nonshared memory tungod sa mosunod nga mga rason:
1. Kasaysayan—Ang heterogeneous nga suporta sa memorya wala magamit sa dihang ang gipaambit nga suporta sa memorya orihinal nga gibuhat.
2. Uniform interface—Tungod kay ang OpenCL usa ka open standard, ang Intel nagmintinar sa pagkamakanunayon tali sa heterogeneous computing platform vendors. Busa, ang parehas nga interface sama sa mga arkitektura sa ubang mga board vendor gigamit sa paggahin ug paggamit sa gipaambit nga memorya.
1.4 Pag-usab sa FPGA
Para sa mga SoC FPGA, ang CPU mahimong ma-reconfigure ang FPGA core fabric nga dili makabalda sa operasyon sa CPU. Ang FPGA Manager hardware block nga nag-straddles sa HPS ug ang core FPGA naghimo sa reconfiguration. Ang Linux kernel naglakip sa usa ka drayber nga makahimo sa sayon nga pag-access sa FPGA Manager.
- Sa view ang status sa FPGA core, i-invoke ang cat /sys/class/fpga/fpga0/ status command.
Ang Intel FPGA SDK para sa OpenCL program utility nga anaa sa Cyclone V SoC Development Kit Reference Platform naggamit niini nga interface sa pagprograma sa FPGA. Kung giprograma pag-usab ang usa ka FPGA core nga adunay nagdagan nga CPU, ang utility sa programa naghimo sa tanan nga mga musunod nga buluhaton:
1. Sa dili pa ang reprogramming, disable ang tanang komunikasyon nga tulay tali sa FPGA ug sa HPS, H2F ug LH2F bridges.
I-reenable kini nga mga taytayan human makompleto ang reprogramming.
Atensyon: Ang OpenCL nga sistema wala mogamit sa FPGA-to-HPS (F2H) nga tulay. Tan-awa ang HPS-FPGA Interfaces nga seksyon sa Cyclone V Device Handbook, Volume 3: Hard Processor System Technical Reference Manual para sa dugang nga impormasyon.
2. Siguruha nga ang sumpay tali sa FPGA ug sa HPS DDR controller na-disable sa panahon sa reprogramming.
3. Siguroha nga ang FPGA interrupts sa FPGA gibabagan sa panahon sa reprogramming.
Usab, pahibal-a ang drayber nga isalikway ang bisan unsang mga pagkabalda gikan sa FPGA sa panahon sa pag-reprogram.
Konsultaha ang source code sa program utility para sa mga detalye sa aktuwal nga pagpatuman.
Pasidaan: Ayaw usba ang configuration sa HPS DDR controller kon ang CPU nagdagan.
Ang pagbuhat sa ingon mahimong hinungdan sa usa ka makamatay nga sistema nga sayup tungod kay mahimo nimong usbon ang configuration sa DDR controller kung adunay mga outstanding memory transactions gikan sa CPU. Kini nagpasabot nga kung ang CPU nagdagan, dili nimo mahimo nga i-reprogram ang FPGA core gamit ang imahe nga naggamit sa HPS DDR sa lahi nga configuration.
Hinumdumi nga ang OpenCL system, ug ang Golden Hardware nga reference design nga anaa sa Intel SoC FPGA Embedded Design Suite (EDS), nagbutang sa HPS DDR ngadto sa usa ka 256-bit mode.
Ang mga parte sa sistema sa CPU sama sa branch predictor o ang page table prefetcher mahimong mag-isyu og DDR nga mga sugo bisan kung makita nga walay nagdagan sa CPU.
Busa, ang oras sa pag-boot mao lamang ang luwas nga oras aron itakda ang pagsumpo sa HPS DDR controller.
Nagpasabot usab kini nga ang U-boot kinahanglan adunay hilaw nga binary file (.rbf) nga hulagway nga i-load sa memorya. Kung dili, mahimo nimong magamit ang HPS DDR nga adunay wala magamit nga mga pantalan sa FPGA ug mahimo’g mabag-o ang mga pag-configure sa pantalan pagkahuman. Tungod niini nga rason, ang OpenCL Linux kernel driver wala na naglakip sa lohika nga gikinahanglan sa pag-set sa HPS DDR controller configuration.
Ang SW3 dual in-line package (DIP) mo-switch sa Cylone V SoC Development Kit mokontrol sa gipaabot nga porma sa .rbf nga hulagway (nga mao, kung ang file gi-compress ug/o gi-encrypt). C5soc, ug ang Golden Hardware Reference Design nga anaa sa SoC EDS, naglakip sa compressed apan wala ma-encrypt nga .rbf nga mga hulagway. Ang mga setting sa switch sa SW3 DIP nga gihulagway sa Intel FPGA SDK para sa OpenCL Cyclone V SoC nga Giya sa Pagsugod motakdo niining .rbf nga configuration sa imahe.
May Kalabutan nga mga Link
- Mga Interface sa HPS-FPGA
- Pag-configure sa SW3 Switch
1.4.1 Mga Detalye sa Arkitektura sa Sistema sa FPGA
Ang suporta alang sa Cyclone V SoC Development Kit Reference Platform gibase sa Stratix® V Reference Platform (s5_ref), nga anaa sa Intel FPGA SDK para sa OpenCL.
Ang kinatibuk-ang organisasyon sa c5soc Qsys system ug ang kernel driver susama kaayo sa naa sa s5_ref.
Ang mosunod nga FPGA core component parehas sa c5soc ug s5_ref:
- VERSION_ID block
- Mekanismo sa pagpahulay
- Divider sa memorya sa bangko
- Cache snoop interface
- Kernel nga orasan
- Kontrola ang pag-access sa rehistro (CRA) nga mga bloke
1.5 Paghimo ug SD Flash Card Image
Tungod kay ang Cyclone V SoC FPGA usa ka bug-os nga sistema sa usa ka chip, ikaw ang responsable sa paghatud sa tibuuk nga kahulugan sa sistema. Girekomenda sa Intel nga ihatud nimo kini sa porma sa imahe sa SD flash card. Ang Intel FPGA SDK para sa OpenCL user mahimo ra nga magsulat sa imahe sa micro SD flash card ug ang SoC FPGA board andam na gamiton.
Pag-usab sa Naglungtad nga SD Flash Card Image sa panid 13
Girekomenda sa Intel nga imong usbon ang imahe nga magamit sa Cyclone V SoC Development Kit Reference Platform. Adunay ka usab kapilian nga maghimo usa ka bag-ong imahe sa SD flash card.
Paghimo og SD Flash Card Image sa pahina 14
Adunay ka usab kapilian nga maghimo usa ka bag-ong imahe sa SD flash card.
1.5.1 Pag-usab sa Naglungtad nga SD Flash Card Image
Girekomenda sa Intel nga usbon nimo ang imahe nga magamit sa Cyclone V SoC
Development Kit Reference Platform. Adunay ka usab kapilian nga maghimo usa ka bag-ong imahe sa SD flash card.
Ang c5soc linux_sd_card_image.tgz nga hulagway file anaa sa ALTERAOCLSDKROOT/board/c5soc directory, diin ang ALTERAOCLSDKROOT nagpunting sa dalan sa Intel FPGA SDK para sa OpenCL's installation directory.
Atensyon: Aron mabag-o ang imahe sa SD flash card, kinahanglan nimo nga adunay mga pribilehiyo sa gamut o sudo.
- Aron ma-decompress ang $ALTERAOCLSDKROOT/board/c5soc/linux_sd_card_image.tgz file, padagana ang tar xvfzlinux_sd_card_image.tgz nga sugo.
- I-compile ang hello_world OpenCL exampAng disenyo gamit ang imong suporta sa Custom Platform. Usba ang ngalan sa .rbf file nga ang Intel FPGA SDK para sa OpenCL Offline Compiler makamugna isip opencl.rbf, ug ibutang kini sa fat32 partition sulod sa SD flash card image.
Mahimo nimo i-download ang hello_world exampAng disenyo gikan sa OpenCL Design Examples nga panid sa Altera website. - Ibutang ang .rbf file ngadto sa fat32 partition sa flash card image.
Atensyon: Ang fat32 partition kinahanglang adunay duha ka zImage file ug .rbf file. Kung walay .rbf file, usa ka makamatay nga sayup ang mahitabo kung imong gisulod ang drayber. - Human nimo mahimo ang imahe sa SD card, isulat kini sa usa ka micro SD card pinaagi sa paggamit sa mosunod nga sugo: sudo dd if=/path/to/sdcard/image.bin of=/dev/sdcard
- Aron masulayan ang imahe sa imong SD flash card, buhata ang mosunod nga mga buluhaton:
a. Isulod ang micro SD flash card sa SoC FPGA board.
b. I-power up ang board.
c. Pagtawag sa aocl diagnose utility command.
1.5.2 Paghimo ug SD Flash Card Image
Adunay ka usab kapilian nga maghimo usa ka bag-ong imahe sa SD flash card. Ang mga generic nga instruksyon sa paghimo og bag-ong SD flash card image ug pagtukod pag-usab sa kasamtangan nga SD flash card image anaa sa GSRD v14.0.2 – SD Card page sa RocketBoards.org website.
Ang mga lakang sa ubos naghulagway sa pamaagi sa paghimo sa linux_sd_card_image.tgz nga hulagway gikan sa Golden System Reference Design (GSRD) SD flash card image:
Mubo nga sulat:
Aron mahimo ang imahe gikan sa c5soc nga imahe, buhata ang tanan nga magamit nga mga buluhaton nga gilatid sa kini nga pamaagi.
- I-download ug i-unpack ang GSRD SD flash card image version 14.0 gikan sa Rocketboards.org.
- I-mount ang file lamesa sa alokasyon (fat32) ug gipalugway file system (ext3) nga mga partisyon niini nga hulagway isip loop-back device. Aron ma-mount ang usa ka partisyon, buhata ang mosunod nga mga lakang:
a. Tinoa ang byte nga pagsugod sa partisyon sa sulod sa imahe pinaagi sa pagsangpit sa /sbin/fdisk -lu image_file sugo.
Kay example, partition number 1 sa tipo nga W95 FAT adunay block offset nga 2121728. Uban sa 512 bytes kada block, ang byte offset mao ang 512 bytes x 2121728 = 1086324736 bytes.
b. Pag-ila sa usa ka libre nga loop device (alang sa example, /dev/loop0) pinaagi sa pag-type sa losetup -f command.
c. Sa pag-ingon nga ang /dev/loop0 mao ang libre nga loop device, i-assign ang imong flash card nga imahe sa loop block device pinaagi sa paggamit sa losetup /dev/loop0 image_file -0 1086324736 sugo.
d. I-mount ang loop device pinaagi sa paggamit sa mount /dev/loop0 /media/disk1 command.
Sulod sa hulagway file, /media/disk1 kay usa na ka mounted fat32 partition.
e. Balika ang mga lakang a hangtod d para sa ext3 partition. - I-download ang Cyclone V SoC FPGA nga bersyon sa Intel FPGA Runtime Environment para sa OpenCL package gikan sa Download Center sa Altera website.
a. I-klik ang Download button tupad sa Quartus Prime software nga edisyon.
b. Ipiho ang bersyon sa pagpagawas, ang operating system, ug ang pamaagi sa pag-download.
c. I-klik ang tab nga Dugang nga Software, ug pilia ang pag-download sa Intel FPGA
Runtime Environment para sa OpenCL Linux Cyclone V SoC TGZ.
d. Human nimo ma-download ang aocl-rte- .arm32.tgz file, unpack kini sa
usa ka direktoryo nga imong gipanag-iya. - Ibutang ang wala maputos nga aocl-rte- .arm32 nga direktoryo sa /home/root/opencl_arm32_rte nga direktoryo sa ext3 partition sa imahe file.
- Pagtangtang sa (mga) folder sa hardware sa imong Custom Platform, ug dayon ibutang ang Custom Platform sa board subdirectory sa /home/root/ opencl_arm32_rte.
- Paghimo sa init_opencl.sh file sa /home/root nga direktoryo nga adunay mosunod nga sulod: 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
Ang SDK user nagpadagan sa source ./init_opencl.sh command aron makarga ang environment variables ug ang OpenCL Linux kernel driver. - Kung kinahanglan nimo nga i-update ang preloader, ang DTS files, o ang Linux kernel, kinahanglan nimo ang arm-linux-gnueabihf-gcc compiler gikan sa SoC EDS. Sunda ang mga instruksyon nga gilatid sa Intel SoC FPGA Embedded Design Suite User Guide aron makuha ang software, i-compile kini, ug i-update ang may kalabutan files sa gitaod nga fat32 partition.
Atensyon: Lagmit kinahanglan nimo nga i-update ang preloader kung ang imong Custom Platform adunay lahi nga paggamit sa pin kaysa sa c5soc.
Hinumdomi: Kon imong i-compile pag-usab ang Linux kernel, i-compile ang Linux kernel driver nga adunay parehas nga Linux kernel source files. Kung adunay mismatch tali sa Linux kernel driver ug sa Linux kernel, ang driver dili mag-load. Usab, kinahanglan nimong palihokon ang CMA.
Tan-awa ang Pag-recompile sa Linux Kernel para sa dugang nga impormasyon. - I-compile ang hello_world OpenCL exampAng disenyo gamit ang imong suporta sa Custom Platform. Usba ang ngalan sa .rbf file nga ang Intel FPGA SDK para sa OpenCL Offline Compiler makamugna isip opencl.rbf, ug ibutang kini sa fat32 partition sulod sa SD flash card image.
Mahimo nimo i-download ang hello_world exampAng disenyo gikan sa OpenCL Design Examples nga panid sa Altera website.
9. Human nimo tipigan ang tanang gikinahanglan files ngadto sa hulagway sa flash card, gamita ang mosunod nga mga sugo:
a. dungan
b. unmount /media/disk1
c. unmount diin mao ang ngalan sa direktoryo nga imong gigamit sa pag-mount sa ext3 partition sa 3 sa panid 3 (alang sa example, /media/disk2).
d. losetup -d /dev/loop0
e. losetup -d /dev/loop1 - I-compress ang imahe sa SD flash card pinaagi sa paggamit sa mosunod nga sugo: tar cvfz .tgz linux_sd_card_image
- Ihatag ang .tgz file sulod sa root directory sa imong Custom Platform.
- Aron masulayan ang imahe sa imong SD flash card, buhata ang mosunod nga mga buluhaton:
a. Isulat ang resulta nga wala ma-compress nga imahe sa usa ka micro SD flash card.
b. Isulod ang micro SD flash card sa SoC FPGA board.
c. I-power up ang board.
d. Pagtawag sa aocl diagnose utility command.
May Kalabutan nga mga Link
- Giya sa Gumagamit sa Intel SoC FPGA nga Naka-embed nga Design Suite
- OpenCL Design Examples nga panid sa Altera website
- Pag-recompile sa Linux Kernel sa panid 16
Aron mahimo ang CMA, kinahanglan nimo una nga i-compile ang Linux kernel. - Pagpangutana sa Ngalan sa Device sa Imong FPGA Board (diagnose)
1.6 Pag-compile sa Linux Kernel para sa Cyclone V SoC FPGA
Sa dili pa magpadagan sa mga aplikasyon sa OpenCL sa Cyclone V SoC FPGA board, kinahanglan nimong i-compile ang tinubdan sa Linux kernel, ug i-compile ug i-install ang OpenCL Linux kernel driver.
- Pag-recompile sa Linux Kernel sa panid 16
Aron mahimo ang CMA, kinahanglan nimo una nga i-compile ang Linux kernel. - Pag-compile ug Pag-install sa OpenCL Linux Kernel Driver sa pahina 17 I-compile ang OpenCL Linux kernel driver batok sa gi-compile nga kernel source.
1.6.1 Pag-recompile sa Linux Kernel
Aron mahimo ang CMA, kinahanglan nimo una nga i-compile ang Linux kernel.
- I-klik ang GSRD v14.0 – Pag-compile sa Linux link sa Resources page sa RocketBoards.org website aron ma-access ang mga panudlo sa pag-download ug pagtukod pag-usab sa Linux kernel source code.
Para sa paggamit sa Intel FPGA SDK para sa OpenCL, ipiho ang socfpga-3.13-rel14.0 isip ang . - Mubo nga sulat: Ang proseso sa pagtukod nagmugna sa arch/arm/configs/socfpga_defconfig file. Kini file nagtino sa mga setting alang sa socfpga default configuration.
Idugang ang mosunod nga mga linya sa ubos sa 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
Ang CONFIG_CMA_SIZE_MBYTES configuration value nagtakda sa taas nga limitasyon sa kinatibuk-ang gidaghanon sa pisikal nga magkadugtong nga memorya nga anaa. Mahimo nimong dugangan kini nga kantidad kung kinahanglan nimo ang dugang nga memorya. - Atensyon: Ang kinatibuk-ang kantidad sa pisikal nga memorya nga magamit sa ARM processor sa SoC FPGA board mao ang 1 GB. Wala girekomenda sa Intel nga imong ibutang ang CMA manager duol sa 1 GB.
- Pagdalagan ang make mrproper command aron limpyohan ang kasamtangan nga configuration.
- Pagdalagan ang make ARCH=arm socfpga_deconfig command.
Ang ARCH=arm nagpakita nga gusto nimong i-configure ang arkitektura sa ARM.
Ang socfpga_defconfig nagpakita nga gusto nimong gamiton ang default nga configuration sa socfpga. - Pagdalagan ang export CROSS_COMPILE=arm-linux-gnueabihf- command.
Kini nga sugo nagtakda sa CROSS_COMPILE environment variable aron itakda ang prefix sa gusto nga tool chain. - Pagdalagan ang make ARCH=arm zImage command. Ang resulta nga hulagway anaa sa arch/arm/boot/zImage file.
- Ibutang ang zImage file ngadto sa fat32 partition sa flash card image. Para sa detalyadong instruksyon, tan-awa ang Cyclone V SoC FPGA-specific GSRD User Manual sa Rocketboards.org.
- Mubo nga sulat: Aron sa hustong pagsal-ot sa OpenCL Linux kernel driver, una i-load ang SDKgenerated.rbf file sa FPGA.
Sa paghimo sa .rbf file, pag-compile ug SDK design exampuban ang Cyclone V SoC Development Kit Reference Platform isip gipunting nga Custom Platform.
9. Ibutang ang .rbf file ngadto sa fat32 partition sa flash card image.
Atensyon: Ang fat32 partition kinahanglang adunay duha ka zImage file ug .rbf file. Kung walay .rbf file, usa ka makamatay nga sayup ang mahitabo kung imong gisulod ang drayber. - Isulod ang giprograma nga micro SD card, nga naglangkob sa SD card nga imahe nga imong giusab o gimugna sa sayo pa, ngadto sa Cyclone V SoC Development Kit ug dayon paandara ang SoC FPGA board.
- I-verify ang bersyon sa gi-install nga Linux kernel pinaagi sa pagpadagan sa uname -r command.
- Aron mapamatud-an nga malampuson nimo ang CMA sa kernel, nga gipaandar ang SoC FPGA board, padagana ang grep init_cma /proc/kallsyms command.
Ang CMA ma-enable kung ang output walay sulod. - Aron magamit ang gi-recompiled nga Linux kernel gamit ang SDK, i-compile ug i-install ang Linux kernel driver.
May Kalabutan nga mga Link
- Mga Manwal sa Gumagamit sa Golden System Reference Design (GSRD).
- Paghimo og SD Flash Card Image sa panid 13
Tungod kay ang Cyclone V SoC FPGA usa ka bug-os nga sistema sa usa ka chip, ikaw ang responsable sa paghatud sa tibuuk nga kahulugan sa sistema.
1.6.2 Pag-compile ug Pag-install sa OpenCL Linux Kernel Driver
I-compile ang OpenCL Linux kernel driver batok sa compiled kernel source.
Ang tinubdan sa drayber anaa sa Cyclone V SoC FPGA nga bersyon sa Intel FPGA Runtime Environment para sa OpenCL. Dugang pa, siguroha nga nagkarga ka ug Intel FPGA SDK para sa OpenCL-generated .rbf file ngadto sa FPGA aron malikayan ang sayop nga pag-instalar sa Linux kernel module.
- I-download ang Cyclone V SoC FPGA nga bersyon sa Intel FPGA Runtime Environment para sa OpenCL package gikan sa Download Center sa Altera website.
a. I-klik ang Download button tupad sa Quartus Prime software nga edisyon.
b. Ipiho ang bersyon sa pagpagawas, ang operating system, ug ang pamaagi sa pag-download.
c. I-klik ang tab nga Dugang nga Software, ug pilia ang pag-download sa Intel FPGA
Runtime Environment para sa OpenCL Linux Cyclone V SoC TGZ.
d. Human nimo ma-download ang aocl-rte- .arm32.tgz file, unpack kini sa
usa ka direktoryo nga imong gipanag-iya.
Ang tinubdan sa drayber anaa sa aocl-rte- .arm32/board/c5soc/ direktoryo sa drayber. - Aron ma-recompile ang OpenCL Linux kernel driver, itakda ang KDIR value sa Driver's Makefile ngadto sa direktoryo nga adunay tinubdan sa Linux kernel files.
- Pagdalagan ang export CROSS_COMPILE=arm-linux-gnueabihf- command para ipakita ang prefix sa imong tool chain.
- Pagdalagan ang make clean command.
- Pagdalagan ang make command aron mahimo ang aclsoc_drv.ko file.
- Ibalhin ang opencl_arm32_rte nga direktoryo sa Cyclone V SoC FPGA board.
Pagpadagan sa scp -r gamut@imong-ipaddress: Ang command nagbutang sa runtime environment sa/home/root directory. - Pagdalagan ang init_opencl.sh script nga imong gibuhat sa dihang imong gitukod ang SD cardimage.
- Pagtawag sa aocl diagnose utility command. Ang diagnose utility magbalik sa usa ka lumalabay nga resulta human nimo mapadagan ang init_opencl.sh nga malampuson.
1.7 Nahibal-an nga mga Isyu
Sa pagkakaron, adunay pipila ka mga limitasyon sa paggamit sa Intel FPGA SDK para sa OpenCL nga adunay Cyclone V SoC Development Kit Reference Platform.
- Dili nimo ma-override ang vendor ug board names nga gitaho sa CL_DEVICE_VENDOR ug CL_DEVICE_NAME nga mga string sa clGetDeviceInfo() nga tawag.
- Kung ang host naggahin kanunay nga memorya sa gipaambit nga sistema sa DDR (nga mao, ang HPS DDR) ug kini nagbag-o sa kanunay nga panumduman pagkahuman sa kernel execution, ang data sa memorya mahimong ma-outdated. Kini nga isyu mitungha tungod kay ang FPGA core dili maka-snoop sa mga transaksyon sa CPU-to-HPS DDR.
Aron mapugngan ang sunud-sunod nga mga pagpatay sa kernel gikan sa pag-access sa daan nga datos, ipatuman ang usa sa mosunod nga mga solusyon:
• Ayaw usba ang kanunay nga memorya pagkahuman sa pagsugod niini.
• Kung kinahanglan nimo ang daghang __constant data set, paghimo og daghang kanunay nga mga buffer sa memorya.
• Kung naa, igahin ang kanunay nga memorya sa FPGA DDR sa imong accelerator board. - Ang SDK utility sa ARM nagsuporta lang sa programa ug nag-diagnose sa mga utility commands.
Ang flash, install ug uninstall utility commands dili magamit sa Cyclone V SoC Development Kit tungod sa mosunod nga mga rason:
a. Ang install utility kinahanglang mag-compile sa aclsoc_drv Linux kernel driver ug makapahimo niini sa SoC FPGA. Ang makina sa pag-uswag kinahanglan nga maghimo sa pagtipon; apan, aduna na kini mga tinubdan sa Linux kernel para sa SoC FPGA. Ang mga gigikanan sa Linux kernel alang sa makina sa pag-uswag lahi sa para sa SoC FPGA. Ang lokasyon sa mga gigikanan sa Linux kernel alang sa SoC FPGA lagmit wala mahibal-an sa tiggamit sa SDK. Sa susama, ang uninstall utility dili usab magamit sa Cyclone V SoC Development Kit.
Usab, ang paghatud sa aclsoc_drv sa SoC board lisud tungod kay ang default nga pag-apod-apod sa Cyclone V SoC Development Kit wala maglangkob sa kernel sa Linux. files o ang GNU Compiler Collection (GCC) compiler.
b. Ang flash utility nagkinahanglan og pagbutang og .rbf file sa usa ka disenyo sa OpenCL ngadto sa FAT32 partition sa micro SD flash card. Sa pagkakaron, kini nga partisyon wala ma-mount kung ang SDK user nagpalihok sa board. Busa, ang pinakamaayong paagi sa pag-update sa partition mao ang paggamit sa flash card reader ug ang development machine. - Kung magbalhinbalhin tali sa Intel FPGA SDK para sa OpenCL Offline Compiler nga ma-executable files (.aocx) nga katumbas sa lain-laing mga variant sa board (nga mao, c5soc ug c5soc_sharedonly), kinahanglan nimong gamiton ang programa utility sa SDK aron makarga ang .aocx file alang sa bag-ong board nga variant sa unang higayon. Kung gipadagan lang nimo ang aplikasyon sa host gamit ang usa ka bag-ong variant sa board apan ang FPGA adunay sulud nga imahe gikan sa lain nga variant sa board, mahimo’g mahitabo ang usa ka makamatay nga sayup.
- Ang .qxp file wala maglakip sa mga buluhaton sa partisyon sa interface tungod kay ang software sa Quartus Prime kanunay nga nagtagbo sa mga kinahanglanon sa oras sa kini nga partisyon.
- Kung imong gipadagan ang board, ang adres sa media access control (MAC) niini gibutang sa usa ka random nga numero. Kung ang imong polisiya sa LAN dili motugot niini nga kinaiya, itakda ang MAC address pinaagi sa pagbuhat sa mosunod nga mga buluhaton:
a. Atol sa U-Boot power-up, pindota ang bisan unsang yawe aron makasulod sa U-Boot command prompt.
b. Type setenv ethaddr 00:07:ed:00:00:03 sa command prompt.
Mahimo nimong pilion ang bisan unsang MAC address.
c. Isulat ang saveenv nga sugo.
d. I-reboot ang board.
1.8 Kasaysayan sa Pagbag-o sa Dokumento
Talaan 1.
Kasaysayan sa Pagbag-o sa Dokumento sa Intel FPGA SDK para sa OpenCL Cyclone V SoC
Development Kit Reference Platform Giya sa Porting
Petsa | Bersyon | Mga kausaban |
Mayo-17 | 2017.05.08 | • Pagpagawas sa maintenance. |
Oktubre 2016 | 2016.10.31 | • Gi-rebrand ang Altera SDK para sa OpenCL ngadto sa Intel FPGA SDK para sa OpenCL. • Gi-rebrand ang Altera Offline Compiler sa Intel FPGA SDK para sa OpenCL Offline Compiler. |
Mayo-16 | 2016.05.02 | • Giusab nga mga panudlo sa pagtukod ug pag-usab sa usa ka SD flash card nga larawan. • Giusab nga mga instruksyon sa pag-recompile sa Linux kernel ug sa OpenCL Linux kernel driver. |
Nobyembre-15 | 2015.11.02 | • Pagpagawas sa maintenance, ug giusab ang mga higayon sa Quartus II ngadto sa Quartus Prime. |
Mayo-15 | 15.0.0 | •Sa FPGA Reconfiguration, gikuha ang instruksiyon sa reprogram sa FPGA core uban sa usa ka . rbf nga imahe pinaagi sa pagtawag sa iring filengalan>. rbf > / dev / fpga0 nga sugo tungod kay kini nga pamaagi wala girekomendar. |
Disyembre-14 | 14.1.0 | •Giilisan ang ngalan sa dokumento isip Altera Cyclone V SoC Development Kit Reference Platform Porting Guide. • Gi-update ang reprogram utility sa aocl programfilengalan>.aocx utility command. • Gi-update ang diagnostic utility sa aocl diagnose ug aocl diagnose sugo sa utility. •Gi-update ang pamaagi sa Porting the Reference Platform to Your SoC Board nga seksyon aron maapil ang mga instruksyon sa porting ug pag-usab sa c5soc board partition aron makahimo og timing-clean partition para sa garantisadong timing closure flow. • Gisal-ot ang hilisgutan nga Pag-update sa usa ka Ported Reference Platform aron ma-outline ang mga pamaagi alang sa mosunod nga mga buluhaton: 1. Gawas sa hard processor system (HPS) block sa board partition 2.Pag-update sa SD flash card nga imahe • Gi-update ang seksyon sa Pagtukod og SD Flash Card Image. Girekomenda nga gamiton ang bersyon 14.0 sa Golden System Reference Design (GSRD) nga imahe ingon nga punto sa pagsugod imbes sa imahe nga magamit sa SoC Embedded Design Suite (EDS). • Gi-update ang Recompiling sa Linux Kernel ug ang OpenCL Linux Kernel Driver nga seksyon: 1.Gidugang nga instruksyon aron mabutang ang CROSS COMPILE variable. 2.Giusab ang sugo nga imong gipadagan aron mapamatud-an nga ang CMA malampuson nga nahimo. |
Hulyo-14 | 14.0.0 | • Inisyal nga Pagpagawas. |
Mga Dokumento / Mga Kapanguhaan
![]() |
intel FPGA SDK alang sa OpenCL [pdf] Giya sa Gumagamit FPGA SDK para sa OpenCL, FPGA SDK, SDK para sa OpenCL, SDK |