intel - logoFPGA SDK para sa OpenCL
Gabay sa Gumagamit

UG-OCL009
2017.05.08
Huling na-update para sa Intel® Quartus® Prime Design Suite: 17.0

RENPHO RF FM059HS WiFi Smart Foot Massager - icon 5Mag-subscribe
SAMSUNG SM A136UZKZAIO Galaxy A13 5G Smartphone - icon 12Magpadala ng Feedback

Intel® FPGA SDK para sa OpenCL™ Intel® Cyclone®V SoC Development Kit Reference Platform Porting Guide

Ang V SoC Development Kit Reference Platform Porting Guide ay naglalarawan sa disenyo ng hardware at software ng Intel Cyclone V SoC Development Kit Reference Platform (c5soc) para gamitin sa Intel Software Development Kit (SDK) para sa OpenCL Ang Intel ® FPGA SDK para sa OpenCL ™ Intel Cyclone ® . Bago ka magsimula, mahigpit na inirerekomenda ng Intel na maging pamilyar ka sa mga nilalaman ng mga sumusunod na dokumento:

  1. Intel FPGA SDK para sa OpenCLIntel Cyclone V SoC na Gabay sa Pagsisimula
  2. Intel FPGA SDK para sa OpenCL Custom Platform Toolkit User Guide
  3. Handbook ng Cyclone V Device, Volume 3: Hard Processor System Technical Reference Manual Bilang karagdagan, sumangguni sa Cyclone V SoC Development Kit at SoC Embedded Design Suite na pahina ng Altera website para sa karagdagang impormasyon. 1 2

Pansin: Ipinapalagay ng Intel na mayroon kang malalim na pag-unawa sa Intel FPGA SDK para sa OpenCL Custom Platform Toolkit User Guide. Hindi inilalarawan ng Cyclone V SoC Development Kit Reference Platform Porting Guide ang paggamit ng Custom Platform Toolkit ng SDK upang magpatupad ng Custom na Platform para sa Cyclone V SoC Development Kit. Inilalarawan lamang nito ang mga pagkakaiba sa pagitan ng suporta sa SDK sa Cyclone V SoC Development Kit at isang generic na Intel FPGA SDK para sa OpenCL Custom Platform.

Mga Kaugnay na Link

  • Intel FPGA SDK para sa OpenCL Cyclone V SoC na Gabay sa Pagsisimula
  • Intel FPGA SDK para sa OpenCL Custom Platform Toolkit User Guide
  • Handbook ng Cyclone V Device, Volume 3: Manwal ng Teknikal na Sanggunian ng Hard Processor System
  • Pahina ng Cyclone V SoC Development Kit at SoC Embedded Design Suite sa Altera website
  1. Ang OpenCL at ang OpenCL na logo ay mga trademark na Apple Inc. na ginamit nang may pahintulot ng Khronos Group™.
  2. Ang Intel FPGA SDK para sa OpenCL ay batay sa isang na-publish na Khronos Specification, at nakapasa sa Khronos Conformance Testing Process. Ang kasalukuyang katayuan ng pagsunod ay matatagpuan sa www.khronos.org/conformance.

Intel Corporation. Lahat ng karapatan ay nakalaan. Ang Intel, ang Intel logo, Altera, Arria, Cyclone, Enpirion, MAX, Nios, Quartus at Stratix na mga salita at logo ay mga trademark ng Intel Corporation o mga subsidiary nito sa US at/o iba pang mga bansa. Ginagarantiya ng Intel ang pagganap ng mga produktong FPGA at semiconductor nito sa kasalukuyang mga detalye alinsunod sa karaniwang warranty ng Intel, ngunit inilalaan ang karapatang gumawa ng mga pagbabago sa anumang produkto at serbisyo anumang oras nang walang abiso. Walang pananagutan o pananagutan ang Intel na nagmumula sa aplikasyon o paggamit ng anumang impormasyon, produkto, o serbisyong inilarawan dito maliban kung hayagang sinang-ayunan ng Intel. Pinapayuhan ang mga customer ng Intel na kunin ang pinakabagong bersyon ng mga detalye ng device bago umasa sa anumang nai-publish na impormasyon at bago maglagay ng mga order para sa mga produkto o serbisyo.
*Ang ibang mga pangalan at tatak ay maaaring i-claim bilang pag-aari ng iba.

1.1.1 Mga Variant ng Cyclone V SoC Development Kit ng Reference Platform Board
Ang Intel FPGA SDK para sa OpenCL Cyclone V SoC Development Kit Reference Platform ay may kasamang dalawang variant ng board.

  • c5soc board
    Ang default na board na ito ay nagbibigay ng access sa dalawang DDR memory bank. Ang HPS DDR ay naa-access ng parehong FPGA at ang CPU. Ang FPGA DDR ay maa-access lamang ng FPGA.
  • c5soc_sharedonly board
    Ang variant ng board na ito ay naglalaman lamang ng koneksyon sa HPS DDR. Ang FPGA DDR ay hindi naa-access. Ang variant ng board na ito ay mas mahusay sa lugar dahil mas kaunting hardware ang kinakailangan upang suportahan ang isang DDR memory bank. Ang c5soc_sharedonly board ay isa ring magandang prototyping platform para sa isang final production board na may isang DDR memory bank.
    Upang i-target ang variant ng board na ito kapag kino-compile ang iyong OpenCL kernel, isama ang -board c5soc_sharedonly na opsyon sa iyong aoc command.
    Para sa karagdagang impormasyon sa –board opsyon ng aoc command, sumangguni sa Intel FPGA SDK para sa OpenCL Programming Guide.

Mga Kaugnay na Link
Pag-compile ng isang Kernel para sa isang Partikular na FPGA Board (–board )
1.1.2 Nilalaman ng Cyclone V SoC Development Kit Reference Platform
Ang Cyclone V SoC Development Kit Reference Platform ay binubuo ng mga sumusunod files at mga direktoryo:

File o Direktoryo Paglalarawan
board_env.xml eXtensible Markup Language (XML) file na naglalarawan ng c5soc sa Intel FPGA SDK para sa OpenCL.
linux_sd_card_image.tgz Naka-compress na larawan ng SD flash card file na naglalaman ng lahat ng kailangan ng SDK user para magamit ang Cyclone V SoC Development Kit kasama ang SDK.
braso32 Direktoryo na naglalaman ng mga sumusunod:

1.1.3 Mga Kaugnay na Tampok ng Cyclone V SoC Development Kit

Itinatampok ng sumusunod na listahan ang mga bahagi at feature ng Cyclone V SoC Development Kit na nauugnay sa Intel FPGA SDK para sa OpenCL:

  • Dual-core ARM Cortex-A9 CPU na nagpapatakbo ng 32-bit na Linux.
  • Advanced na eXtensible Interface (AXI) bus sa pagitan ng HPS at ng FPGA core fabric.
  • Dalawang hardened DDR memory controller, bawat isa ay kumokonekta sa isang 1 gigabyte (GB) DDR3 SDRAM.
    — Isang DDR controller ay naa-access sa FPGA core lamang (iyon ay, FPGA DDR).
    — Ang isa pang DDR controller ay naa-access sa parehong HPS at FPGA (iyon ay, HPS DDR). Ang shared controller na ito ay nagbibigay-daan sa libreng pagbabahagi ng memory sa pagitan ng CPU at ng FPGA core.
  • Maaaring i-configure muli ng CPU ang FPGA core fabric.

1.1.3.1 Cyclone V SoC Development Kit Mga Layunin at Desisyon ng Disenyo ng Platform ng Sanggunian at Desisyon Ibinabatay ng Intel ang pagpapatupad ng Cyclone V SoC Development Kit Reference Platform sa ilang layunin at desisyon sa disenyo. Inirerekomenda ng Intel na isaalang-alang mo ang mga layunin at desisyong ito kapag inilipat mo ang Reference Platform na ito sa iyong SoC FPGA board.
Nasa ibaba ang mga layunin sa disenyo ng c5soc:

  1. Magbigay ng pinakamataas na posibleng bandwidth sa pagitan ng mga kernel sa FPGA at ng (mga) memory system ng DDR.
  2. Siguraduhin na ang mga pag-compute sa FPGA (iyon ay, OpenCL kernels) ay hindi nakakasagabal sa iba pang mga gawain ng CPU na maaaring kasama ang servicing peripheral.
  3. Mag-iwan ng maraming mapagkukunan ng FPGA hangga't maaari para sa mga pagkalkula ng kernel sa halip na mga bahagi ng interface.

Nasa ibaba ang mataas na antas ng mga desisyon sa disenyo na direktang kahihinatnan ng mga layunin sa disenyo ng Intel:

  1. Gumagamit lamang ang Reference Platform ng mga hard DDR memory controller na may pinakamalawak na posibleng configuration (256 bits).
  2. Ang FPGA ay direktang nakikipag-ugnayan sa HPS DDR memory controller, nang hindi kinasasangkutan ng AXI bus at ang L3 switch sa loob ng HPS. Ang direktang komunikasyon ay nagbibigay ng pinakamahusay na posibleng bandwidth sa DDR, at pinapanatili ang FPGA computations mula sa nakakasagabal sa mga komunikasyon sa pagitan ng CPU at sa paligid nito.
  3. Ang scatter-gather direct memory access (SG-DMA) ay hindi bahagi ng FPGA interface logic. Sa halip na maglipat ng malaking halaga ng data sa pagitan ng mga DDR memory system, itabi ang data sa nakabahaging HPS DDR. Ang direktang pag-access sa memorya ng CPU ng FPGA ay mas mahusay kaysa sa DMA. Nagse-save ito ng mga mapagkukunan ng hardware (iyon ay, FPGA area) at pinapasimple ang driver ng Linux kernel.
    Babala: Ang paglipat ng memorya sa pagitan ng nakabahaging HPS DDR system at ng DDR system na naa-access lamang ng FPGA ay napakabagal. Kung pipiliin mo
    ilipat ang memorya sa ganitong paraan, gamitin ito para sa napakaliit na halaga ng data lamang.
  4. Ang host at ang device ay nagsasagawa ng non-DMA data transfer sa pagitan ng isa't isa sa pamamagitan ng HPS-to-FPGA (H2F) bridge, gamit lamang ang isang solong 32-bit port. Ang dahilan ay, nang walang DMA, ang Linux kernel ay maaari lamang mag-isyu ng isang 32-bit read or write request, kaya hindi na kailangang magkaroon ng mas malawak na koneksyon.
  5. Nagpapadala ang host ng mga control signal sa device sa pamamagitan ng isang magaan na H2F (LH2F) bridge.
    Dahil ang mga control signal mula sa host patungo sa device ay mga low-bandwidth na signal, ang isang LH2F bridge ay perpekto para sa gawain.

1.2 Pag-port ng Reference Platform sa Iyong SoC FPGA Board
Para i-port ang Cyclone V SoC Development Kit Reference Platform sa iyong SoC FPGA board, gawin ang mga sumusunod na gawain:

  1. Piliin ang isang DDR memory o ang dalawang DDR memory na bersyon ng c5soc Reference Platform bilang panimulang punto ng iyong disenyo.
  2. I-update ang mga lokasyon ng pin sa ALTERAOCLSDKROOT/board/c5soc/ /top.qsf file, kung saan ang ALTERAOCLSDKROOT ay ang landas patungo sa lokasyon ng Intel FPGA SDK para sa pag-install ng OpenCL, at ay ang pangalan ng direktoryo ng variant ng board. Ang direktoryo ng c5soc_sharedonly ay para sa variant ng board na may isang DDR memory system. Ang direktoryo ng c5soc ay para sa variant ng board na may dalawang DDR memory system.
  3.  I-update ang mga setting ng DDR para sa mga bloke ng HPS at/o FPGA SDRAM sa ALTERAOCLSDKROOT/board/c5soc/ /system.qsys file.
    4. Lahat ng Intel FPGA SDK para sa OpenCL preferred board designs ay dapat makamit ang garantisadong pagsasara ng timing. Dahil dito, ang pagkakalagay ng disenyo ay dapat malinis sa timing. Upang i-port ang c5soc board partition (acl_iface_partition.qxp) sa iyong SoC FPGA board, gawin ang mga sumusunod na gawain:
    Para sa mga detalyadong tagubilin sa pagbabago at pagpapanatili ng board partition, sumangguni sa Quartus
    Prime Incremental Compilation para sa Hierarchical at Team-Based Design chapter ng Quartus Prime Standard Edition Handbook.
    a. Alisin ang acl_iface_partition.qxp mula sa direktoryo ng ALTERAOCLSDKROOT/board/c5soc/c5soc.
    b. I-enable ang acl_iface_region LogicLock™ region sa pamamagitan ng pagpapalit ng 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. Mag-compile ng OpenCL kernel para sa iyong board.
    d. Kung kinakailangan, ayusin ang laki at lokasyon ng rehiyon ng LogicLock.
    e. Kapag nasiyahan ka na ang pagkakalagay ng iyong disenyo ay malinis sa timing, i-export ang partition na iyon bilang acl_iface_partition.qxp Quartus Prime Exported Partition File.
    Gaya ng inilarawan sa seksyong Pagtatatag ng Garantiyang Daloy ng Timing ng AIntel FPGA SDK para sa Gabay sa Gumagamit ng OpenCL Custom Platform Toolkit, sa pamamagitan ng pag-import nitong .qxp  file sa pinakamataas na antas ng disenyo, tinutupad mo ang pangangailangan ng pagbibigay ng disenyo ng board na may garantisadong daloy ng pagsasara ng timing.
    Para sa mga salik na maaaring makaapekto sa kalidad ng mga resulta (QoR) ng iyong na-export na partition, sumangguni sa Pangkalahatang Kalidad ng Mga Pagsasaalang-alang sa Mga Resulta para sa Exported Board Partition na seksyon sa Intel FPGA SDK para sa OpenCL Custom Platform Toolkit User Guide.
    f. I-disable ang acl_iface_region LogicLock region sa pamamagitan ng pagbabalik ng command sa Step 2 pabalik sa set_global_assignment -name LL_ENABLED OFF section_id acl_iface_region.
  4. Kung ang iyong SoC FPGA board ay gumagamit ng iba't ibang mga pin at periphery ng HPS block, muling buuin ang preloader at ang device tree source (DTS) file. Kung babaguhin mo ang mga setting ng HPS DDR memory controller, muling buuin ang preloader.
  5. Lumikha ng imahe ng SD flash card.
  6. Gawin ang iyong Custom na Platform, na kinabibilangan ng larawan ng SD flash card.
  7. Pag-isipang gumawa ng bersyon ng runtime environment ng iyong Custom na Platform para magamit sa Intel FPGA Runtime Environment (RTE) para sa OpenCL. Ang bersyon ng RTE ng iyong Custom na Platform ay hindi kasama ang mga direktoryo ng hardware at ang imahe ng SD flash card. Naglo-load ang Custom na Platform na ito sa SoC FPGA system upang payagan ang mga host application na tumakbo. Sa kabaligtaran, ang bersyon ng SDK ng Custom na Platform ay kinakailangan para sa SDK na mag-compile ng mga OpenCL kernel.
    Tip: Maaari mong gamitin ang bersyon ng SDK ng iyong Custom na Platform para sa RTE. Isalba
    space, alisin ang larawan ng SD flash card mula sa bersyon ng RTE ng iyong Custom na Platform.
  8. Subukan ang iyong Custom na Platform.
    Sumangguni sa seksyong Pagsubok sa Disenyo ng Hardware ng Intel FPGA SDK para sa OpenCL Custom Platform Toolkit User Guide para sa higit pang impormasyon.

Mga Kaugnay na Link

  • Pagsubok sa Disenyo ng Hardware
  • Quartus Prime Incremental Compilation para sa Hierarchical at Team-Based na Disenyo
  • Pagtatatag ng Garantiyang Daloy ng Timing
  • Pangkalahatang Kalidad ng Mga Pagsasaalang-alang ng Resulta para sa Exported Board Partition

1.2.1 Pag-update ng Ported Reference Platform
Sa kasalukuyang bersyon ng Cyclone V SoC Development Kit Reference Platform, ang HPS block ay nasa loob ng partition na tumutukoy sa lahat ng nonkernel logic. Gayunpaman, hindi mo maaaring i-export ang HPS bilang bahagi ng .qxp file. Upang i-update ang isang umiiral nang Custom na Platform na binago mo mula sa isang nakaraang bersyon ng c5soc, ipatupad ang daloy ng pangangalaga ng QXP, i-update ang larawan ng SD flash card upang makuha ang pinakabagong runtime environment, at i-update ang board_spec.xml file upang paganahin ang automigration.
Sinusuri ng Altera® SDK para sa OpenCL na bersyon 14.1 at higit pa ang board_spec.xml file para sa impormasyon ng board, at nagpapatupad ng mga awtomatikong pag-update. Dahil binago mo ang
disenyo sa pamamagitan ng pagpapatupad ng daloy ng pangangalaga ng QXP, dapat mong i-update ang board_spec.xml file sa format nito sa kasalukuyang bersyon. Ina-update ang file nagbibigay-daan sa SDK na makilala ang pagitan ng mga hindi napapanatili na Custom na Platform at ang kasalukuyang QXP-based na Mga Custom na Platform. Sumangguni sa Custom Platform Automigration para sa Forward Compatibility sa Intel FPGA SDK para sa OpenCL Custom Platform Toolkit User Guide para sa higit pang impormasyon.

  1. Upang ipatupad ang daloy ng pangangalaga ng QXP sa isang Cyclone V SoC FPGA na disenyo ng hardware na na-port mula sa nakaraang bersyon ng c5soc, gawin ang mga sumusunod na hakbang upang lumikha ng subpartition upang ibukod ang HPS mula sa .qxp file:
    a. Bago gumawa ng partition sa paligid ng nonkernel logic, gumawa ng partition sa paligid ng HPS sa .qsf Quartus Prime Settings File.
    Para kay example:
    # Manu-manong hatiin ang instance na nagmomodelo sa HPS-dedicated I/O set_instance_assignment -name PARTITION_HIERARCHY borde_18261 -sa “system:the_system|system_acl_iface:acl_iface|system_acl_iface_hps_0:hps_0|system_acl_iface_hps_hps|system_acl_iface_hps system_acl_iface_hps_0_hps_io_border:border" -section_id "system_acl_iface_hps_0_hps_io_border:border"
    # Itakda ang partition upang maging isang uri ng HPS_PARTITION upang maproseso nang tama ng natitirang bahagi ng Quartus
    set_global_assignment -pangalan PARTITION_TYPE HPS_PARTITION -section_id "system_acl_iface_hps_0_hps_io_border:border"
    quartus_cdb itaas -c itaas
    –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
    Pagkatapos mong ibukod ang HPS mula sa partition, maaari mong i-import ang .qxp file at i-compile ang iyong disenyo.
  2. I-update ang larawan ng SD flash card gamit ang kasalukuyang bersyon ng Intel FPGA RTE para sa OpenCL sa pamamagitan ng pagsasagawa ng mga sumusunod na gawain:
    a. I-mount ang file talahanayan ng alokasyon (fat32) at pinalawig file system (ext3) na mga partisyon sa umiiral na larawan bilang mga loop-back na device. Para sa mga detalyadong tagubilin, sumangguni sa Hakbang 2 sa Pagbuo ng Larawan ng SD Flash Card.
    b. Sa /home/root/opencl_arm32_rte na direktoryo, alisin ang filemula sa nakaraang bersyon ng RTE.
    c. I-download at i-unpack ang kasalukuyang bersyon ng RTE sa /home/root/opencl_arm32_rte na direktoryo.
    d. Nasa /driver/version.h file ng iyong Custom na Platform, i-update ang pagtatalaga ng ACL_DRIVER_VERSION sa . (para sa example, 16.1.x, kung saan ang 16.1 ay ang SDK verison, at x ang bersyon ng driver na iyong itinakda).
    e. Buuin muli ang driver.
    f. Tanggalin ang (mga) folder ng hardware ng iyong Custom na Platform. Kopyahin ang Custom na Platform, kasama ang na-update na driver, sa /home/root/opencl_arm_rte/board directory.
    g. Kopyahin ang Altera.icd file mula sa /home/root/opencl_arm32_rte na direktoryo at idagdag ito sa /etc/OpenCL/vendor na direktoryo.
    h. I-unmount at subukan ang bagong larawan. Para sa mga detalyadong tagubilin, sumangguni sa Mga Hakbang 8 hanggang 11 sa Pagbuo ng Larawan ng SD Flash Card.

Mga Kaugnay na Link

  • Paglikha ng SD Flash Card Image sa pahina 14
    Mayroon ka ring opsyong gumawa ng bagong larawan ng SD flash card.
  • Custom na Platform Automigration para sa Forward Compatibility

1.3 Suporta sa Software para sa Nakabahaging Memorya
Ang nakabahaging pisikal na memorya sa pagitan ng FPGA at CPU ay ang gustong memorya para sa mga OpenCL kernel na tumatakbo sa mga SoC FPGA. Dahil ina-access ng FPGA ang nakabahaging pisikal na memorya, kumpara sa nakabahaging virtual memory, wala itong access sa mga page table ng CPU na nagmamapa ng mga virtual address ng user sa mga pisikal na address ng pahina.
Kaugnay ng hardware, ang OpenCL kernels ay nag-access ng nakabahaging pisikal na memorya sa pamamagitan ng direktang koneksyon sa HPS DDR hard memory controller. Kaugnay ng software, ang suporta para sa nakabahaging pisikal na memorya ay kinabibilangan ng mga sumusunod na pagsasaalang-alang:

  1. Karaniwang mga pagpapatupad ng software para sa paglalaan ng memorya sa CPU (para sa halample, ang malloc() function) ay hindi makakapaglaan ng memory region na maaaring gamitin ng FPGA.
    Ang memorya na inilalaan ng malloc() function ay magkadikit sa virtual memory address space, ngunit ang anumang pinagbabatayan na pisikal na mga pahina ay malamang na hindi magkadikit sa pisikal. Dahil dito, ang host ay dapat na makapaglaan ng pisikal na magkadikit na mga rehiyon ng memorya. Gayunpaman, ang kakayahang ito ay hindi umiiral sa mga application ng user-space sa Linux. Samakatuwid, dapat gawin ng driver ng Linux kernel ang paglalaan.
  2. Kasama sa driver ng kernel ng OpenCL SoC FPGA Linux ang mmap() function upang maglaan ng nakabahaging pisikal na memorya at imapa ito sa espasyo ng gumagamit. Ang mmap() function ay gumagamit ng karaniwang Linux kernel call na dma_alloc_coherent() para humiling ng pisikal na magkadikit na mga rehiyon ng memorya para sa pagbabahagi sa isang device.
  3. Sa default na kernel ng Linux, ang dma_alloc_coherent() ay hindi naglalaan ng physically-contiguous memory na higit sa 0.5 megabytes (MB) ang laki. Upang payagan ang dma_alloc_coherent() na maglaan ng malaking halaga ng physically-contiguous memory, paganahin ang contiguous memory allocator (CMA) na feature ng Linux kernel at pagkatapos ay muling i-compile ang Linux kernel.
    Para sa Cyclone V SoC Development Kit Reference Platform, ang CMA ay namamahala ng 512 MB sa 1 GB ng pisikal na memorya. Maaari mong dagdagan o bawasan ang halagang ito, depende sa dami ng nakabahaging memorya na kailangan ng application. Maaaring hindi mailaan ng dma_alloc_coherent() na tawag ang buong 512 MB ng pisikal na magkadikit na memorya; gayunpaman, maaari itong regular na makakuha ng humigit-kumulang 450 MB ng memorya.
  4. Maaaring i-cache ng CPU ang memorya na inilalaan ng dma_alloc_coherent() na tawag. Sa partikular, ang mga write operations mula sa host application ay hindi nakikita ng OpenCL kernels. Ang mmap() function sa OpenCL SoC FPGA Linux kernel driver ay naglalaman din ng mga tawag sa pgprot_noncached() o remap_pf_range() function upang tahasan ang pag-disable ng caching para sa rehiyon ng memorya na ito.
  5. Matapos ilaan ng dma_alloc_coherent() function ang physically-contiguous memory, ibabalik ng mmap() function ang virtual address sa simula ng range, na siyang address span ng memory na inilalaan mo. Ang host application ay nangangailangan ng virtual address na ito upang ma-access ang memorya. Sa kabilang banda, ang OpenCL kernels ay nangangailangan ng mga pisikal na address. Sinusubaybayan ng driver ng Linux kernel ang virtual-to-physical address mapping. Maaari mong imapa ang mga pisikal na address na ibinabalik ng mmap() sa aktwal na mga pisikal na address sa pamamagitan ng pagdaragdag ng query sa driver.
    Ang aocl_mmd_shared_mem_alloc() MMD application programming interface (API) na tawag ay nagsasama ng mga sumusunod na query:
    a. Ang mmap() function na naglalaan ng memory at nagbabalik ng virtual address.
    b. Ang karagdagang query na nagmamapa ng ibinalik na virtual na address sa pisikal na address.
    Ang aocl_mmd_shared_mem_alloc() MMD API na tawag ay nagbabalik ng dalawang address
    —ang aktwal na ibinalik na address ay ang virtual na address, at ang pisikal na address ay mapupunta sa device_ptr_out.
    Tandaan: Maaari lamang imapa ng driver ang mga virtual na address na ibinabalik ng mmap() function sa mga pisikal na address. Kung humiling ka para sa pisikal na address ng anumang iba pang virtual pointer, ang driver ay nagbabalik ng isang NULL na halaga.

Babala: Ipinapalagay ng Intel FPGA SDK para sa OpenCL runtime library na ang shared memory ay ang unang memorya na nakalista sa board_spec.xml file. Sa madaling salita, ang pisikal na address na nakukuha ng Linux kernel driver ay nagiging Avalon® address na ipinapasa ng OpenCL kernel sa HPS SDRAM.
Kaugnay ng runtime library, gamitin ang clCreateBuffer() na tawag upang ilaan ang nakabahaging memorya bilang buffer ng device sa sumusunod na paraan:

  • Para sa two-DDR board variant na may parehong shared at nonshared memory, ang clCreateBuffer() ay naglalaan ng shared memory kung tinukoy mo ang CL_MEM_USE_HOST_PTR flag. Ang paggamit ng iba pang mga flag ay nagiging sanhi ng clCreateBuffer() na maglaan ng buffer sa hindi nakabahaging memorya.
  • Para sa variant ng one-DDR board na may shared memory lang, ang clCreateBuffer() ay naglalaan ng shared memory anuman ang flag na iyong tinukoy.
    Sa kasalukuyan, pinamamahalaan ng 32-bit na suporta ng Linux sa ARM CPU ang lawak ng suporta sa nakabahaging memorya sa mga library ng SDK runtime. Sa madaling salita, ang mga runtime na aklatan ay pinagsama-sama sa iba pang mga kapaligiran (para sa halample, x86_64 Linux o 64-bit Windows) ay hindi sumusuporta sa nakabahaging memorya.
    Ang C5soc ay hindi nagpatupad ng heterogenous na memorya upang makilala sa pagitan ng shared at nonshared memory para sa mga sumusunod na dahilan:
    1. History—Hindi available ang heterogeneous memory support noong orihinal na nilikha ang shared memory support.
    2. Uniform na interface—Dahil ang OpenCL ay isang bukas na pamantayan, pinapanatili ng Intel ang pagkakapare-pareho sa pagitan ng magkakaibang mga vendor ng computing platform. Samakatuwid, ang parehong interface tulad ng mga arkitektura ng iba pang mga board vendor ay ginagamit upang maglaan at gumamit ng nakabahaging memorya.

1.4 Muling pagsasaayos ng FPGA
Para sa mga SoC FPGA, maaaring muling i-configure ng CPU ang FPGA core fabric nang hindi naaabala ang operasyon ng CPU. Ang FPGA Manager hardware block na sumasaklaw sa HPS at ang core FPGA ay nagsasagawa ng muling pagsasaayos. Ang Linux kernel ay may kasamang driver na nagbibigay-daan sa madaling pag-access sa FPGA Manager.

  • Upang view ang status ng FPGA core, i-invoke ang cat /sys/class/fpga/fpga0/ status command.
    Ang Intel FPGA SDK para sa OpenCL program utility na available sa Cyclone V SoC Development Kit Reference Platform ay gumagamit ng interface na ito para i-program ang FPGA. Kapag nagre-reprogram ng isang FPGA core na may tumatakbong CPU, ginagawa ng program utility ang lahat ng sumusunod na gawain:
    1. Bago ang reprogramming, huwag paganahin ang lahat ng tulay ng komunikasyon sa pagitan ng FPGA at ng HPS, parehong H2F at LH2F bridge.
    Muling paganahin ang mga tulay na ito pagkatapos makumpleto ang reprogramming.
    Pansin: Hindi ginagamit ng OpenCL system ang FPGA-to-HPS (F2H) bridge. Sumangguni sa seksyong Mga Interface ng HPS-FPGA sa Cyclone V Device Handbook, Volume 3: Hard Processor System Technical Reference Manual para sa higit pang impormasyon.
    2. Tiyakin na ang link sa pagitan ng FPGA at ang HPS DDR controller ay hindi pinagana sa panahon ng reprogramming.
    3. Tiyakin na ang FPGA interrupts sa FPGA ay hindi pinagana sa panahon ng reprogramming.
    Gayundin, abisuhan ang driver na tanggihan ang anumang mga pagkagambala mula sa FPGA sa panahon ng reprogramming.

Kumonsulta sa source code ng program utility para sa mga detalye sa aktwal na pagpapatupad.

Babala: Huwag baguhin ang configuration ng HPS DDR controller kapag tumatakbo ang CPU.
Ang paggawa nito ay maaaring magdulot ng isang nakamamatay na error sa system dahil maaari mong baguhin ang configuration ng controller ng DDR kapag may mga natitirang transaksyon sa memorya mula sa CPU. Nangangahulugan ito na kapag tumatakbo ang CPU, hindi mo maaaring i-reprogram ang core ng FPGA gamit ang isang imahe na gumagamit ng HPS DDR sa ibang configuration.
Tandaan na ang OpenCL system, at ang Golden Hardware reference na disenyo na available sa Intel SoC FPGA Embedded Design Suite (EDS), ay nagtatakda ng HPS DDR sa isang solong 256-bit mode.
Ang mga bahagi ng CPU system tulad ng branch predictor o page table prefetcher ay maaaring mag-isyu ng mga DDR command kahit na lumalabas na walang tumatakbo sa CPU.
Samakatuwid, ang oras ng boot ay ang tanging ligtas na oras upang itakda ang configuration ng HPS DDR controller.
Ipinahihiwatig din nito na ang U-boot ay dapat magkaroon ng isang raw binary file (.rbf) na imahe upang i-load sa memorya. Kung hindi, maaari mong i-enable ang HPS DDR sa mga hindi nagamit na port sa FPGA at pagkatapos ay potensyal na baguhin ang mga configuration ng port pagkatapos. Para sa kadahilanang ito, ang driver ng kernel ng OpenCL Linux ay hindi na kasama ang lohika na kinakailangan upang itakda ang configuration ng HPS DDR controller.
Ang SW3 dual in-line package (DIP) ay bubukas sa Cylone V SoC Development Kit na kinokontrol ang inaasahang anyo ng .rbf na imahe (iyon ay, kung ang file ay naka-compress at/o naka-encrypt). Ang C5soc, at ang Golden Hardware Reference Design na available sa SoC EDS, ay may kasamang naka-compress ngunit hindi naka-encrypt na .rbf na mga larawan. Ang mga setting ng switch ng SW3 DIP na inilarawan sa Intel FPGA SDK para sa OpenCL Cyclone V SoC na Gabay sa Pagsisimula ay tumutugma sa configuration ng imaheng .rbf na ito.

Mga Kaugnay na Link

  • Mga Interface ng HPS-FPGA
  • Pag-configure ng SW3 Switch

1.4.1 Mga Detalye ng Arkitektura ng Sistema ng FPGA
Ang suporta para sa Cyclone V SoC Development Kit Reference Platform ay batay sa Stratix® V Reference Platform (s5_ref), na available sa Intel FPGA SDK para sa OpenCL.
Ang pangkalahatang organisasyon ng c5soc Qsys system at ang kernel driver ay halos kapareho sa mga nasa s5_ref.
Ang mga sumusunod na pangunahing bahagi ng FPGA ay pareho sa parehong c5soc at s5_ref:

  • VERSION_ID block
  • Mekanismo ng pahinga
  • Divider ng memory bank
  • Cache snoop interface
  • Kernel na orasan
  • Control register access (CRA) blocks

1.5 Pagbuo ng Larawan ng SD Flash Card
Dahil ang Cyclone V SoC FPGA ay isang buong sistema sa isang chip, responsable ka sa paghahatid ng buong kahulugan ng system. Inirerekomenda ng Intel na ihatid mo ito sa anyo ng isang imahe ng SD flash card. Ang Intel FPGA SDK para sa OpenCL user ay maaaring isulat lamang ang imahe sa micro SD flash card at ang SoC FPGA board ay handa nang gamitin.
Pagbabago ng Umiiral na SD Flash Card na Larawan sa pahina 13
Inirerekomenda ng Intel na baguhin mo lang ang larawang available gamit ang Cyclone V SoC Development Kit Reference Platform. Mayroon ka ring opsyong gumawa ng bagong larawan ng SD flash card.
Paglikha ng SD Flash Card Image sa pahina 14
Mayroon ka ring opsyong gumawa ng bagong larawan ng SD flash card.

1.5.1 Pagbabago sa isang Umiiral na Larawan ng SD Flash Card
Inirerekomenda ng Intel na baguhin mo lang ang larawang magagamit sa Cyclone V SoC
Platform ng Sanggunian ng Development Kit. Mayroon ka ring opsyong gumawa ng bagong larawan ng SD flash card.
Ang larawan ng c5soc linux_sd_card_image.tgz file ay makukuha sa direktoryo ng ALTERAOCLSDKROOT/board/c5soc, kung saan itinuturo ng ALTERAOCLSDKROOT ang landas ng Intel FPGA SDK para sa direktoryo ng pag-install ng OpenCL.

Pansin: Upang baguhin ang larawan ng SD flash card, dapat ay mayroon kang mga pribilehiyong ugat o sudo.

  1. Upang i-decompress ang $ALTERAOCLSDKROOT/board/c5soc/linux_sd_card_image.tgz file, patakbuhin ang tar xvfzlinux_sd_card_image.tgz command.
  2. I-compile ang hello_world OpenCL exampang disenyo gamit ang iyong suporta sa Custom na Platform. Palitan ang pangalan ng .rbf file na binubuo ng Intel FPGA SDK para sa OpenCL Offline Compiler bilang opencl.rbf, at ilagay ito sa fat32 partition sa loob ng SD flash card image.
    Maaari mong i-download ang hello_world exampang disenyo mula sa OpenCL Design Examples page sa Altera website.
  3. Ilagay ang .rbf file sa fat32 partition ng flash card image.
    Pansin: Ang fat32 partition ay dapat maglaman ng parehong zImage file at ang .rbf file. Nang walang .rbf file, magkakaroon ng nakamamatay na error kapag ipinasok mo ang driver.
  4. Pagkatapos mong gawin ang larawan ng SD card, isulat ito sa isang micro SD card sa pamamagitan ng paggamit ng sumusunod na command: sudo dd if=/path/to/sdcard/image.bin of=/dev/sdcard
  5. Upang subukan ang larawan ng iyong SD flash card, gawin ang mga sumusunod na gawain:
    a. Ipasok ang micro SD flash card sa SoC FPGA board.
    b. Paganahin ang board.
    c. I-invoke ang aocl diagnose utility command.

1.5.2 Paglikha ng Larawan ng SD Flash Card
Mayroon ka ring opsyong gumawa ng bagong larawan ng SD flash card. Ang mga generic na tagubilin sa pagbuo ng bagong SD flash card na imahe at muling pagbuo ng dati nang SD flash card image ay available sa GSRD v14.0.2 – SD Card page ng RocketBoards.org website.
Ang mga hakbang sa ibaba ay naglalarawan ng pamamaraan para sa paglikha ng linux_sd_card_image.tgz na imahe mula sa Golden System Reference Design (GSRD) SD flash card na imahe:
Tandaan:
Upang lumikha ng larawan mula sa larawan ng c5soc, gawin ang lahat ng naaangkop na gawain na nakabalangkas sa pamamaraang ito.

  1. I-download at i-unpack ang GSRD SD flash card image version 14.0 mula sa Rocketboards.org.
  2. I-mount ang file talahanayan ng alokasyon (fat32) at pinalawig file system (ext3) na mga partisyon sa larawang ito bilang mga loop-back na device. Upang mag-mount ng partition, gawin ang mga sumusunod na hakbang:
    a. Tukuyin ang byte na simula ng partition sa loob ng imahe sa pamamagitan ng paggamit ng /sbin/fdisk -lu image_file utos.
    Para kay example, ang partition number 1 ng uri ng W95 FAT ay may block offset na 2121728. Sa 512 byte bawat block, ang byte offset ay 512 byte x 2121728 = 1086324736 bytes.
    b. Tukuyin ang isang libreng loop device (para sa halample, /dev/loop0) sa pamamagitan ng pag-type ng losetup -f command.
    c. Ipagpalagay na ang /dev/loop0 ay ang libreng loop device, italaga ang iyong flash card na larawan sa loop block device sa pamamagitan ng paggamit ng losetup /dev/loop0 image_file -0 1086324736 utos.
    d. I-mount ang loop device sa pamamagitan ng paggamit ng mount /dev/loop0 /media/disk1 command.
    Sa loob ng larawan file, /media/disk1 ay isa na ngayong naka-mount na fat32 partition.
    e. Ulitin ang mga hakbang a hanggang d para sa ext3 partition.
  3. I-download ang Cyclone V SoC FPGA na bersyon ng Intel FPGA Runtime Environment para sa OpenCL package mula sa Download Center sa Altera website.
    a. I-click ang button na I-download sa tabi ng edisyon ng software ng Quartus Prime.
    b. Tukuyin ang bersyon ng release, ang operating system, at ang paraan ng pag-download.
    c. I-click ang tab na Karagdagang Software, at piliin upang i-download ang Intel FPGA
    Runtime Environment para sa OpenCL Linux Cyclone V SoC TGZ.
    d. Pagkatapos mong i-download ang aocl-rte- .arm32.tgz file, i-unpack ito sa
    isang direktoryo na pagmamay-ari mo.
  4. Ilagay ang hindi naka-pack na aocl-rte- .arm32 na direktoryo sa /home/root/opencl_arm32_rte na direktoryo sa ext3 partition ng larawan file.
  5. Tanggalin ang (mga) folder ng hardware ng iyong Custom na Platform, at pagkatapos ay ilagay ang Custom na Platform sa board subdirectory ng /home/root/ opencl_arm32_rte.
  6. Lumikha ng init_opencl.sh file sa /home/root directory na may sumusunod na content: export ALTERAOCLSDKROOT=/home/root/opencl_arm32_rte export AOCL_BOARD_PACKAGE_ROOT=$ALTERAOCLSDKROOT/board/ i-export ang PATH=$ALTERAOCLSDKROOT/bin:$PATH export LD_LIBRARY_PATH=$ALTERAOCLSDKROOT/host/arm32/lib:$LD_LIBRARY_PATH insmod $AOCL_BOARD_PACKAGE_ROOT/driver/aclsoc_drv.ko
    Pinapatakbo ng user ng SDK ang source ./init_opencl.sh command para i-load ang mga variable ng kapaligiran at ang OpenCL Linux kernel driver.
  7. Kung kailangan mong i-update ang preloader, ang DTS files, o ang Linux kernel, kailangan mo ang arm-linux-gnueabihf-gcc compiler mula sa SoC EDS. Sundin ang mga tagubiling nakabalangkas sa Intel SoC FPGA Embedded Design Suite User Guide para makuha ang software, muling i-compile ang mga ito, at i-update ang nauugnay files sa naka-mount na fat32 partition.
    Pansin: Malamang na kailangan mong i-update ang preloader kung ang iyong Custom na Platform ay may iba't ibang paggamit ng pin kaysa sa mga nasa c5soc.
    Tandaan: Kung muling i-compile ang Linux kernel, muling i-compile ang Linux kernel driver na may parehong Linux kernel source files. Kung may mismatch sa pagitan ng Linux kernel driver at Linux kernel, hindi maglo-load ang driver. Gayundin, dapat mong paganahin ang CMA.
    Sumangguni sa Recompiling the Linux Kernel para sa higit pang impormasyon.
  8. I-compile ang hello_world OpenCL exampang disenyo gamit ang iyong suporta sa Custom na Platform. Palitan ang pangalan ng .rbf file na binubuo ng Intel FPGA SDK para sa OpenCL Offline Compiler bilang opencl.rbf, at ilagay ito sa fat32 partition sa loob ng SD flash card image.
    Maaari mong i-download ang hello_world exampang disenyo mula sa OpenCL Design Examples page sa Altera website.
    9. Pagkatapos mong itabi ang lahat ng kailangan files sa larawan ng flash card, gamitin ang mga sumusunod na command:
    a. pag-sync
    b. i-unmount /media/disk1
    c. i-unmount saan ay ang pangalan ng direktoryo na ginagamit mo para sa pag-mount ng ext3 partition sa 3 sa pahina 3 (para sa example, /media/disk2).
    d. losetup -d /dev/loop0
    e. losetup -d /dev/loop1
  9. I-compress ang larawan ng SD flash card sa pamamagitan ng paggamit ng sumusunod na command: tar cvfz .tgz linux_sd_card_image
  10. Ihatid ang .tgz file sa loob ng root directory ng iyong Custom Platform.
  11. Upang subukan ang larawan ng iyong SD flash card, gawin ang mga sumusunod na gawain:
    a. Isulat ang resultang hindi naka-compress na imahe sa isang micro SD flash card.
    b. Ipasok ang micro SD flash card sa SoC FPGA board.
    c. Paganahin ang board.
    d. I-invoke ang aocl diagnose utility command.

Mga Kaugnay na Link

  • Gabay sa Gumagamit ng Intel SoC FPGA na Naka-embed na Design Suite
  • OpenCL Design Halamples page sa Altera website
  • Pag-recompile ng Linux Kernel sa pahina 16
    Upang paganahin ang CMA, kailangan mo munang i-compile ang Linux kernel.
  • Pagtatanong sa Pangalan ng Device ng Iyong FPGA Board (diagnose)

1.6 Pag-compile ng Linux Kernel para sa Cyclone V SoC FPGA
Bago patakbuhin ang mga OpenCL application sa Cyclone V SoC FPGA board, dapat mong i-compile ang Linux kernel source, at i-compile at i-install ang OpenCL Linux kernel driver.

  1. Pag-recompile ng Linux Kernel sa pahina 16
    Upang paganahin ang CMA, kailangan mo munang i-compile ang Linux kernel.
  2. Pag-compile at Pag-install ng OpenCL Linux Kernel Driver sa pahina 17 I-compile ang OpenCL Linux kernel driver laban sa pinagsama-samang kernel source.

1.6.1 Pag-recompile ng Linux Kernel
Upang paganahin ang CMA, kailangan mo munang i-compile ang Linux kernel.

  1. I-click ang link na GSRD v14.0 – Compiling Linux sa pahina ng Resources ng RocketBoards.org website upang ma-access ang mga tagubilin sa pag-download at muling pagbuo ng Linux kernel source code.
    Para sa paggamit sa Intel FPGA SDK para sa OpenCL, tukuyin ang socfpga-3.13-rel14.0 bilang .
  2. Tandaan: Ang proseso ng pagbuo ay lumilikha ng arch/arm/configs/socfpga_defconfig file. Ito file tumutukoy sa mga setting para sa default na configuration ng socfpga.
    Idagdag ang mga sumusunod na linya sa ibaba ng 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 ay nagtatakda ng pinakamataas na limitasyon sa kabuuang bilang ng pisikal na magkadikit na memory na available. Maaari mong dagdagan ang halagang ito kung kailangan mo ng higit pang memorya.
  3. Pansin: Ang kabuuang halaga ng pisikal na memorya na magagamit sa ARM processor sa SoC FPGA board ay 1 GB. Hindi inirerekomenda ng Intel na itakda mo ang CMA manager malapit sa 1 GB.
  4. Patakbuhin ang make mrproper command para linisin ang kasalukuyang configuration.
  5. Patakbuhin ang make ARCH=arm socfpga_deconfig command.
    Ang ARCH=arm ay nagpapahiwatig na gusto mong i-configure ang arkitektura ng ARM.
    Isinasaad ng socfpga_defconfig na gusto mong gamitin ang default na configuration ng socfpga.
  6. Patakbuhin ang export na CROSS_COMPILE=arm-linux-gnueabihf- command.
    Itinatakda ng command na ito ang CROSS_COMPILE environment variable upang tukuyin ang prefix ng gustong tool chain.
  7. Patakbuhin ang make ARCH=arm zImage command. Ang resultang imahe ay makukuha sa arch/arm/boot/zImage file.
  8. Ilagay ang zImage file sa fat32 partition ng flash card image. Para sa mga detalyadong tagubilin, sumangguni sa Cyclone V SoC FPGA-specific GSRD User Manual sa Rocketboards.org.
  9. Tandaan: Upang maipasok nang tama ang OpenCL Linux kernel driver, mag-load muna ng SDKgenerated.rbf file papunta sa FPGA.
    Upang lumikha ng .rbf file, mag-compile ng SDK na disenyo halampkasama ang Cyclone V SoC Development Kit Reference Platform bilang ang target na Custom na Platform.
    9. Ilagay ang .rbf file sa fat32 partition ng flash card image.
    Pansin: Ang fat32 partition ay dapat maglaman ng parehong zImage file at ang .rbf file. Nang walang .rbf file, magkakaroon ng nakamamatay na error kapag ipinasok mo ang driver.
  10. Ipasok ang naka-program na micro SD card, na naglalaman ng larawan ng SD card na binago o ginawa mo kanina, sa Cyclone V SoC Development Kit at pagkatapos ay paandarin ang SoC FPGA board.
  11. I-verify ang bersyon ng naka-install na Linux kernel sa pamamagitan ng pagpapatakbo ng uname -r command.
  12. Upang ma-verify na matagumpay mong na-enable ang CMA sa kernel, nang naka-on ang SoC FPGA board, patakbuhin ang grep init_cma /proc/kallsyms command.
    Ang CMA ay pinagana kung ang output ay hindi walang laman.
  13. Para magamit ang na-recompiled na Linux kernel kasama ang SDK, i-compile at i-install ang Linux kernel driver.

Mga Kaugnay na Link

  • Mga Manwal ng Gumagamit ng Golden System Reference Design (GSRD).
  • Pagbuo ng Larawan ng SD Flash Card sa pahina 13
    Dahil ang Cyclone V SoC FPGA ay isang buong sistema sa isang chip, responsable ka sa paghahatid ng buong kahulugan ng system.

1.6.2 Pag-compile at Pag-install ng OpenCL Linux Kernel Driver
I-compile ang OpenCL Linux kernel driver laban sa pinagsama-samang kernel source.

Available ang driver source sa Cyclone V SoC FPGA na bersyon ng Intel FPGA Runtime Environment para sa OpenCL. Bilang karagdagan, tiyaking nag-load ka ng Intel FPGA SDK para sa OpenCL-generated na .rbf file sa FPGA upang maiwasan ang maling pag-install ng Linux kernel module.

  1. I-download ang Cyclone V SoC FPGA na bersyon ng Intel FPGA Runtime Environment para sa OpenCL package mula sa Download Center sa Altera website.
    a. I-click ang button na I-download sa tabi ng edisyon ng software ng Quartus Prime.
    b. Tukuyin ang bersyon ng release, ang operating system, at ang paraan ng pag-download.
    c. I-click ang tab na Karagdagang Software, at piliin upang i-download ang Intel FPGA
    Runtime Environment para sa OpenCL Linux Cyclone V SoC TGZ.
    d. Pagkatapos mong i-download ang aocl-rte- .arm32.tgz file, i-unpack ito sa
    isang direktoryo na pagmamay-ari mo.
    Ang pinagmulan ng driver ay nasa aocl-rte- .arm32/board/c5soc/ direktoryo ng driver.
  2. Upang muling i-compile ang OpenCL Linux kernel driver, itakda ang halaga ng KDIR sa Make ng driverfile sa direktoryo na naglalaman ng Linux kernel source files.
  3. Patakbuhin ang export CROSS_COMPILE=arm-linux-gnueabihf- command upang isaad ang prefix ng iyong tool chain.
  4. Patakbuhin ang make clean command.
  5. Patakbuhin ang make command para gawin ang aclsoc_drv.ko file.
  6. Ilipat ang opencl_arm32_rte na direktoryo sa Cyclone V SoC FPGA board.
    Pagpapatakbo ng scp -r ugat@iyong-ipaddress: inilalagay ng command ang runtime environment sa/home/root na direktoryo.
  7. Patakbuhin ang init_opencl.sh script na ginawa mo noong binuo mo ang SD cardimage.
  8.  I-invoke ang aocl diagnose utility command. Ang diagnose utility ay magbabalik ng isang dumaan na resulta pagkatapos mong matagumpay na patakbuhin ang init_opencl.sh.

1.7 Mga Kilalang Isyu
Sa kasalukuyan, may ilang partikular na limitasyon sa paggamit ng Intel FPGA SDK para sa OpenCL gamit ang Cyclone V SoC Development Kit Reference Platform.

  1. Hindi mo maaaring i-override ang mga pangalan ng vendor at board na iniulat ng CL_DEVICE_VENDOR at CL_DEVICE_NAME na mga string ng clGetDeviceInfo() na tawag.
  2. Kung ang host ay naglalaan ng patuloy na memorya sa shared DDR system (iyon ay, HPS DDR) at binago nito ang pare-parehong memorya pagkatapos ng kernel execution, ang data sa memorya ay maaaring maging luma na. Ang isyung ito ay lumitaw dahil ang FPGA core ay hindi maaaring mag-snoop sa mga transaksyong CPU-to-HPS DDR.
    Upang maiwasan ang mga kasunod na kernel executions mula sa pag-access ng hindi napapanahong data, ipatupad ang isa sa mga sumusunod na workaround:
    • Huwag baguhin ang pare-parehong memorya pagkatapos ng pagsisimula nito.
    • Kung kailangan mo ng maramihang __constant na set ng data, gumawa ng maramihang pare-parehong memory buffer.
    • Kung magagamit, maglaan ng pare-parehong memorya sa FPGA DDR sa iyong accelerator board.
  3. Sinusuportahan lang ng SDK utility sa ARM ang program at i-diagnose ang mga utility command.
    Ang flash, install at uninstall na mga utility command ay hindi naaangkop sa Cyclone V SoC Development Kit para sa mga sumusunod na dahilan:
    a. Kailangang i-compile ng install utility ang aclsoc_drv Linux kernel driver at paganahin ito sa SoC FPGA. Kailangang isagawa ng development machine ang compilation; gayunpaman, naglalaman na ito ng Linux kernel source para sa SoC FPGA. Ang Linux kernel source para sa development machine ay iba sa para sa SoC FPGA. Ang lokasyon ng Linux kernel source para sa SoC FPGA ay malamang na hindi alam ng SDK user. Katulad nito, hindi rin available ang uninstall utility sa Cyclone V SoC Development Kit.
    Gayundin, ang paghahatid ng aclsoc_drv sa SoC board ay mahirap dahil ang default na pamamahagi ng Cyclone V SoC Development Kit ay hindi naglalaman ng Linux kernel kasama files o ang GNU Compiler Collection (GCC) compiler.
    b. Ang flash utility ay nangangailangan ng paglalagay ng .rbf file ng isang OpenCL na disenyo sa FAT32 partition ng micro SD flash card. Sa kasalukuyan, hindi naka-mount ang partition na ito kapag pinalakas ng user ng SDK ang board. Samakatuwid, ang pinakamahusay na paraan upang i-update ang partition ay ang paggamit ng flash card reader at ang development machine.
  4. Kapag lumilipat sa pagitan ng Intel FPGA SDK para sa OpenCL Offline Compiler na maipapatupad files (.aocx) na tumutugma sa iba't ibang variant ng board (iyon ay, c5soc at c5soc_sharedonly), dapat mong gamitin ang program utility ng SDK upang i-load ang .aocx file para sa bagong variant ng board sa unang pagkakataon. Kung patakbuhin mo lang ang application ng host gamit ang isang bagong variant ng board ngunit naglalaman ang FPGA ng larawan mula sa isa pang variant ng board, maaaring magkaroon ng nakamamatay na error.
  5. Ang .qxp file hindi kasama ang mga pagtatalaga ng partition ng interface dahil ang software ng Quartus Prime ay patuloy na nakakatugon sa mga kinakailangan sa timing ng partition na ito.
  6. Kapag pinalakas mo ang board, ang media access control (MAC) address nito ay nakatakda sa isang random na numero. Kung hindi pinapayagan ng iyong patakaran sa LAN ang gawi na ito, itakda ang MAC address sa pamamagitan ng pagsasagawa ng mga sumusunod na gawain:
    a. Sa panahon ng U-Boot power-up, pindutin ang anumang key upang ipasok ang U-Boot command prompt.
    b. I-type ang setenv ethaddr 00:07:ed:00:00:03 sa command prompt.
    Maaari kang pumili ng anumang MAC address.
    c. I-type ang saveenv command.
    d. I-reboot ang board.

1.8 Kasaysayan ng Pagbabago ng Dokumento
Talahanayan 1.
Kasaysayan ng Pagbabago ng Dokumento ng Intel FPGA SDK para sa OpenCL Cyclone V SoC
Gabay sa Pag-port ng Platform ng Sanggunian ng Development Kit

Petsa Bersyon Mga pagbabago
Mayo-17 2017.05.08 • Maintenance release.
Oktubre 2016 2016.10.31 •Binago ang Altera SDK para sa OpenCL sa Intel FPGA SDK para sa OpenCL.
•Binago ang Altera Offline Compiler sa Intel FPGA SDK para sa OpenCL Offline Compiler.
Mayo-16 2016.05.02 • Binagong mga tagubilin sa pagbuo at pagbabago ng imahe ng SD flash card.
• Binagong mga tagubilin sa muling pag-compile ng Linux kernel at ang OpenCL Linux kernel driver.
Nobyembre-15 2015.11.02 • Maintenance release, at binago ang mga instance ng Quartus II sa Quartus Prime.
Mayo-15 15.0.0 • Sa FPGA Reconfiguration, inalis ang pagtuturo upang i-reprogram ang FPGA core
may isang . rbf na imahe sa pamamagitan ng pagtawag sa pusa filepangalan>. rbf
> /dev/ fpga0 command dahil hindi inirerekomenda ang paraang ito.
Disyembre-14 14.1.0 •Pinalitan ang pangalan ng dokumento bilang Altera Cyclone V SoC Development Kit Reference Platform Porting Guide.
• Na-update ang reprogram utility sa aocl programfilename>.aocx utility command.
• Na-update ang diagnostic utility sa aocl diagnose at aocl diagnose utos ng utility.
•In-update ang pamamaraan sa seksyong Pag-port ng Reference Platform sa Iyong SoC Board para isama ang mga tagubilin sa pag-port at pagbabago sa partition ng c5soc board upang lumikha ng timing-clean na partition para sa garantisadong daloy ng pagsasara ng timing.
•Inilagay ang paksang Pag-update ng Ported Reference Platform upang balangkasin ang mga pamamaraan para sa mga sumusunod na gawain:
1. Hindi kasama ang hard processor system (HPS) block sa board partition
2. Pag-update ng imahe ng SD flash card
• Na-update ang seksyong Pagbuo ng SD Flash Card Image. Inirerekomenda ang paggamit ng bersyon 14.0 ng larawang Golden System Reference Design (GSRD) bilang panimulang punto sa halip na ang larawang available sa SoC Embedded Design Suite (EDS).
•Na-update ang seksyong Recompiling ang Linux Kernel at ang OpenCL Linux Kernel Driver:
1.Nagdagdag ng pagtuturo upang itakda ang variable na CROSS COMPILE.
2.Binago ang command na iyong pinapatakbo upang i-verify na matagumpay na pinagana ang CMA.
Hulyo-14 14.0.0 •Paunang Paglabas.

Mga Dokumento / Mga Mapagkukunan

intel FPGA SDK para sa OpenCL [pdf] Gabay sa Gumagamit
FPGA SDK para sa OpenCL, FPGA SDK, SDK para sa OpenCL, SDK

Mga sanggunian

Mag-iwan ng komento

Ang iyong email address ay hindi maipa-publish. Ang mga kinakailangang field ay minarkahan *