intel - logoKreye sistèm memwa eterojèn nan FPGA SDK pou platfòm koutim OpenCL
Enstriksyon yo

Kreye sistèm memwa eterojèn nan Intel® FPGA SDK pou platfòm koutim OpenCL

Aplikasyon memwa etewojèn nan yon platfòm Custom pèmèt pou plis koòdone memwa ekstèn (EMIF) Pleasant osi byen ke pi gwo ak pi vit aksè memwa. Konbinezon an nan aksè memwa heterogenous ak yon optimize
OpenCL ™(1)kernel ka lakòz amelyorasyon siyifikatif pèfòmans pou sistèm OpenCL ou a.
Nòt aplikasyon sa a bay konsèy sou kreye sistèm memwa etewojèn nan yon platfòm Custom pou itilize ak Intel® FPGA SDK pou OpenCL(2). Intel sipoze ke ou se yon designer FPGA ki gen eksperyans k ap devlope platfòm Custom ki gen sistèm memwa eterojèn.
Anvan ou kreye sistèm memwa eterojèn yo, familyarize w ak Intel FPGA SDK pou dokiman OpenCL ki espesifye anba a.
Enfòmasyon ki gen rapò

  • Intel FPGA SDK pou Gid Programming OpenCL
  • Intel FPGA SDK pou Gid pi bon pratik OpenCL
  • Intel FPGA SDK pou OpenCL Arria 10 GX FPGA Devlopman Twous Referans Platfòm Porting Gid

1.1. Verifye Fonksyonalite Komisyon Konsèy FPGA ak Entèfas EMIF yo

Verifye chak koòdone memwa poukont yo epi answit enstansye platfòm Custom ou a lè l sèvi avèk memwa mondyal la.

  1. Verifye chak koòdone memwa lè l sèvi avèk desen pyès ki nan konpitè ki ka teste vitès ak estabilite chak koòdone.
  2. Enstansye platfòm Custom ou a lè l sèvi avèk memwa mondyal.
    1. Pou egzanpample, si ou gen twa interfaces DDR, youn nan yo dwe trase kòm memwa heterogeneous. Nan ka sa a, verifye fonksyonalite pile OpenCL la ak chak koòdone DDR poukont yo.
      OpenCL ak logo OpenCL yo se mak komèsyal Apple Inc. itilize avèk pèmisyon Khronos Group™.
    2.  Intel FPGA SDK pou OpenCL baze sou yon Spesifikasyon Khronos pibliye, e li te pase Pwosesis Tès Konfòmite Khronos la. Ou ka jwenn estati konfòmite aktyèl la nan www.khronos.org/conformance.

Intel Corporation. Tout dwa rezève. Intel, logo Intel ak lòt mak Intel yo se mak komèsyal Intel Corporation oswa filiales li yo. Intel garanti pèfòmans pwodwi FPGA ak semiconductor li yo selon espesifikasyon aktyèl yo an akò ak garanti estanda Intel a, men li rezève dwa pou fè chanjman nan nenpòt pwodwi ak sèvis nenpòt ki lè san avètisman. Intel pa asime okenn responsablite oswa responsablite ki soti nan aplikasyon an oswa itilizasyon nenpòt enfòmasyon, pwodwi oswa sèvis ki dekri la a eksepte si Intel te dakò ekspreseman alekri. Yo konseye kliyan Intel yo pou yo jwenn dènye vèsyon espesifikasyon aparèy yo anvan yo konte sou nenpòt enfòmasyon ki pibliye epi anvan yo pase lòd pou pwodwi oswa sèvis yo. *Yo ka reklame lòt non ak mak kòm pwopriyete lòt moun.
ISO 9001:2015 anrejistre
Altènativman, si ou gen de koòdone DDR ak yon koòdone kwadwilatè pousantaj done (QDR), verifye fonksyonalite pile OpenCL de koòdone DDR yo ak koòdone QDR poukont yo.
Intel rekòmande pou w itilize PCI Express® - (PCIe® -) oswa desen ki pa gen ladan l EMIF pou teste entèfas memwa ou yo. Apre ou fin verifye ke chak koòdone memwa fonksyonèl epi ke konsepsyon OpenCL ou a ap travay ak yon sous-ensemble nan koòdone memwa yo, kontinye.
pou kreye yon sistèm memwa eterojèn konplètman fonksyonèl. 
1.2. Modifye board_spec.xml la File
Modifye board_spec.xml la file pou presize kalite sistèm memwa eterojèn ki disponib nan nwayo OpenCL yo.
Pandan konpilasyon nwayo, Intel FPGA SDK pou OpenCL Offline Compiler bay agiman nwayo nan yon memwa ki baze sou agiman kote tanpon ou presize a.
1. Navige sou board_spec.xml file nan anyè pyès ki nan konpitè nan platfòm Custom ou a.
2. Louvri board_spec.xml la file nan yon editè tèks epi modifye XML la kòmsadwa.
Pou egzanpample, si sistèm pyès ki nan konpitè ou a gen de memwa DDR kòm globalmemory default ak de bank QDR ke ou modèl kòm memwa etewojèn, modifye seksyon memwa yo nan board_spec.xml. file pou sanble ak sa ki annapre yo:
















1.3. Mete kanpe plizyè divizeur memwa nan Qsys
Kounye a, OpenCL Memory Bank Divider nan konsepsyon Qsys la pa sipòte kantite bank memwa ki pa pouvwa-of-2, ki se pa yon limit pou konfigirasyon tipik. Sepandan, gen senaryo kote ki pa pouvwa-de-2 kantite interfaces memwa yo nesesè. Pou akomode kantite koòdone memwa ki pa pouvwa-de-2, sèvi ak plizyè divizyon bank memwa OpenCL pou kreye sistèm memwa etewojèn ak kantite bank memwa ki pa pouvwa-de-2. Ou dwe kreye plizyè divizyon bank memwa OpenCL lè ou gen yon sistèm memwa etewojèn vre. Konsidere yon sistèm ki gen yon sèl koòdone memwa DDR ak yon koòdone memwa QDR. Paske de bank yo gen topoloji memwa diferan, ou pa ka konbine yo anba yon sèl memwa mondyal.
Figi 1. Dyagram blòk yon sistèm memwa eterojèn twa bank
Sistèm memwa eterojèn sa a gen de koòdone memwa DDR ak yon koòdone memwa QDR.intel Kreye sistèm memwa eterojèn nan FPGA SDK pou platfòm koutim OpenCL - fig 1Si w ap itilize vèsyon 16.0, 16.0.1, oswa 16.0.2 nan lojisyèl Intel Quartus® Prime ak Altera SDK pou OpenCL, OpenCL Memory Bank Divider mal jere eklat memwa atravè limit adrès yo. Pou rezoud pwoblèm sa a li te ye, ajoute yon pon tiyo ki gen yon gwosè pete 1 epi konekte mèt Avalon ®Memory-Mapped (Avalon-MM) li a ak pò esklav OpenCL Memory Bank Divider la.
Nòt:
Pwoblèm li te ye sa a fiks nan lojisyèl Intel Quartus Prime ak Intel FPGA SDK pou OpenCL vèsyon 16.1.
Figi 2. Dyagram blòk yon sistèm memwa eterojèn twa bank ak yon pon tiyo intel Kreye sistèm memwa eterojèn nan FPGA SDK pou platfòm koutim OpenCL - fig 21.4. Modifye Pwogram Boardtest la ak Kòd Lame a pou Solisyon Memwa Eterogene ou a
Sèvi ak nwayo boardtest.cl ki vini ak Intel FPGA SDK pou OpenCL Custom Platform Toolkit pou teste fonksyonalite ak pèfòmans Custom Platform ou a.
Pwogram boardtest la se yon nwayo OpenCL ki pèmèt ou teste Pleasant lame a aparèy, Pleasant memwa, ak fonksyonalite jeneral Platfòm Custom ou a.

  1. Navige nan /board/ custom_platform_toolkit/tests/boardtest anyè.
  2. Louvri boardtest.cl la file nan yon editè tèks epi bay yon kote tanpon nan chak agiman memwa mondyal.
    Pou egzanpample:
    __kernel anile
    mem_stream (__global__attribute__((buffer_location(“DDR”)))) uint *src, __global __attribute__((buffer_location(“QDR”))) uint *dst, uint arg, uint arg2)
    Isit la, uint *src yo asiyen nan memwa DDR, epi uint *dst yo asiyen nan memwa QDR. board_spec.xml la file presize karakteristik tou de sistèm memwa yo.
  3. Pou ogmante solisyon memwa eterojèn ou a nan sistèm OpenCL ou a, modifye kòd lame ou a lè w ajoute drapo CL_MEM_HETEROGENEOUS_INTELFPGA nan apèl clCreateBuffer ou a.
    Pou egzanpample:
    ddatain = clCreateBuffer (kontèks, CL_MEM_READ_WRITE | memflags
    CL_MEM_HETEROGENEOUS_INTELFPGA, sizeof(unsigned) * vectorSize, NULL, &status);
    Intel rekòmande fòtman ke ou mete kote tanpon an kòm yon agiman nwayo anvan ou ekri tanpon an. Lè w ap itilize yon sèl memwa mondyal, ou ka ekri tanpon yo swa anvan oswa apre yo fin asiyen yo nan yon agiman nwayo. Nan sistèm memwa etewojèn, lame a mete kote tanpon an anvan li ekri tanpon an. Nan lòt mo, lame a pral rele fonksyon clSetKernelArgument anvan yo rele fonksyon clEnqueueWriteBuffer la.
    Nan kòd lame ou a, envoke clCreateBuffer, clSetKernelArg, ak clEnqueueWriteBuffer apèl yo nan lòd sa a:
    ddatain = clCreateBuffer (kontèks, CL_MEM_READ_WRITE | memflags |
    CL_MEM_HETEROGENEOUS_INTELFPGA, sizeof(unsigned) * vectorSize, NULL, &status);
    … estati = clSetKernelArg(kernel[k], 0, sizeof(cl_mem), (void*)&ddatain);
    … estati = clEnqueueWriteBuffer(queue, ddatain, CL_FALSE, 0, sizeof(unsigned) * vectorSize,hdatain, 0, NULL, NULL);
    ALTERAOCLSDKROOT/board/custom_platform_toolkit/tests/boardtest/host/memspeed.cpp file prezante yon lòd ki sanble nan apèl fonksyon sa yo.
  4.  Apre ou fin modifye boardtest.cl la file ak kòd lame a, konpile kòd lame a ak nwayo epi verifye fonksyonalite yo.
    Lè w ap konpile kòd nwayo w la, ou dwe enfim entèrlaminasyon pete nan tout sistèm memwa lè w enkli -no-interleaving. opsyon nan lòd aoc la.

Enfòmasyon ki gen rapò
Enfim Pete-Interleaving nan Memwa Global (–pa-pa gen entèlaksyon )

1.5. Verifye Fonksyonalite memwa eterojèn ou Sistèm
Pou asire ke sistèm memwa eterojèn nan fonksyone byen, dezaktive drapo CL_CONTEXT_COMPILER_MODE_INTELFPGA nan kòd lame w la.
Nan sistèm OpenCL ki gen memwa omojèn, ou gen opsyon pou mete drapo CL_CONTEXT_COMPILER_MODE_INTELFPGA=3 nan kòd lame ou a pou enfim lekti .aocx la. file ak repwogram nan FPGA la. Mete CL_CONTEXT_COMPILER_MODE_INTELFPGA=3 drapo a itil lè w enstansye tablo w la pou verifye fonksyonalite Custom Platfòm ou a san w pa desine plan etaj la epi presize rejyon LogicLock™ yo.
Avèk sistèm memwa etewojèn, anviwònman an ègzekutabl dwe li kote tanpon chak tanpon, ki dekri nan .aocx la. file, pou verifye fonksyonalite sistèm memwa yo. Sepandan, ou ta ka vle verifye fonksyonalite Custom Platfòm ou a san yo pa aplike karakteristik final konsepsyon tablo a, tankou konsepsyon plan etaj la ak espesifye rejyon LogicLock yo.

  1. Verifye ke CL_CONTEXT_COMPILER_MODE_INTELFPGA drapo a pa mete nan kòd lame w la.
  2. Navige sou tablo a/ /source/host/mmd anyè Platfòm Custom ou a.
  3. Louvri aparèy memwa mape acl_pcie_device.cpp (MMD) file nan yon editè tèks.
  4.  Modifye fonksyon repwogram nan acl_pcie_device.cpp la file lè w ajoute yon retounen 0; liy, jan yo montre anba a:
    int ACL_PCIE_DEVICE::repwogram (anile *done, size_t done_size)
    {
    retounen 0;
    // sipoze echèk
    int reprogram_failed = 1;
    // sipoze pa gen rbf oswa hash nan fpga.bin
    int rbf_or_hash_not_provided = 1;
    // sipoze baz ak enpòte hache revizyon pa matche
    int hash_mismatch = 1;

    }
  5. Rekonpile acl_pcie_device.cpp la file.
  6. Verifye ke CL_CONTEXT_COMPILER_MODE_INTELFPGA drapo a rete pa mete.
    Atansyon: Apre ou fin ajoute retounen 0; nan fonksyon an repwogram epi rekonpile MMD la file, anviwònman an ègzekutabl pral li .aocx la file epi bay kote tanpon yo men li pap repwograme FPGA la. Ou dwe manyèlman matche ak imaj FPGA ak .aocx la file. Pou ranvèse konpòtman sa a, retire return 0; soti nan fonksyon an repwogram epi rekonpile MMD la file.

1.6. Istwa revizyon dokiman

Dat Version Chanjman
17 desanm 2017.12.01 • Chanje non CL_MEM_HETEROGENEOUS_ALTERA an CL_MEM_HETEROGENEOUS_INTELFPGA.
16 desanm 2016.12.13 • Chanje non CL_CONTEXT_COMPILER_MODE_ALTERA an CL_CONTEXT_COMPILER_MODE_INTELFPGA.

intel - logoKreye sistèm memwa eterojèn nan Intel® FPGA SDK pou OpenCL
Platfòm Custom
intel Kreye sistèm memwa eterojèn nan FPGA SDK pou platfòm koutim OpenCL - icon 1 Voye Feedback
intel Kreye sistèm memwa eterojèn nan FPGA SDK pou platfòm koutim OpenCL - icon Online Version
intel Kreye sistèm memwa eterojèn nan FPGA SDK pou platfòm koutim OpenCL - icon 1 Voye Feedback
ID: 683654
Vèsyon: 2016.12.13

Dokiman / Resous

intel Kreye sistèm memwa eterojèn nan FPGA SDK pou platfòm koutim OpenCL [pdfEnstriksyon yo
Kreye sistèm memwa etewojèn nan FPGA SDK pou platfòm koutim OpenCL, kreye sistèm memwa etewojèn, FPGA SDK pou platfòm koutim OpenCL

Referans

Kite yon kòmantè

Adrès imel ou p ap pibliye. Jaden obligatwa yo make *