Intel - logoUkudala I-Heterogeneous Memory Systems ku-FPGA SDK ye-OpenCL Custom Platform
Iziyalezo

Ukudala I-Heterogeneous Memory Systems ku-Intel® FPGA SDK ye-OpenCL Custom Platforms

Ukuqaliswa kwenkumbulo ehlukahlukene ku-Custom Platform kuvumela umkhawulokudonsa owengeziwe wenkumbulo yangaphandle (EMIF) kanye nokufinyelela kwememori okukhudlwana nokusheshayo. Inhlanganisela yokufinyelela kwenkumbulo okungafani nokuthuthukisiwe
I-OpenCL ™(1)kernel ingaholela ekuthuthukisweni okuphawulekayo kokusebenza kwesistimu yakho ye-OpenCL.
Leli nothi lohlelo lokusebenza linikeza isiqondiso sokudala amasistimu enkumbulo ahlukahlukene ku-Custom Platform ezosetshenziswa ne-Intel® FPGA SDK ye-OpenCL(2). U-Intel uthatha ukuthi ungumklami we-FPGA onesipiliyoni owakha ama-Custom Platforms aqukethe amasistimu enkumbulo ahlukahlukene.
Ngaphambi kokwenza amasistimu enkumbulo ahlukahlukene, zijwayeze ne-Intel FPGA SDK yamadokhumenti e-OpenCL acaciswe ngezansi.
Ulwazi Oluhlobene

  • I-Intel FPGA SDK ye-OpenCL Programming Guide
  • I-Intel FPGA SDK ye-OpenCL Best Practices Guide
  • I-Intel FPGA SDK ye-OpenCL Arria 10 GX FPGA Development Kit Reference Platform Umhlahlandlela

1.1. Ukuqinisekisa Ukusebenza Kwebhodi Le-FPGA kanye Nezinhlaka Ezihlangene Ze-EMIF

Qinisekisa isixhumi esibonakalayo sememori ngayinye ngokuzimela bese uqinisekisa i-Custom Platform yakho usebenzisa inkumbulo yomhlaba wonke.

  1. Qinisekisa isixhumi esibonakalayo ngasinye usebenzisa imiklamo yehadiwe engahlola isivinini nokuzinza kwesixhumi esibonakalayo ngasinye.
  2. Qinisekisa i-Custom Platform yakho usebenzisa inkumbulo yomhlaba wonke.
    1. Okwesiboneloampfuthi, uma unezindawo ezintathu zokusebenzelana ze-DDR, eyodwa yazo kufanele ifakwe kumephu njengememori ehlukahlukene. Kulokhu, qinisekisa ukusebenza kwesitaki se-OpenCL ngesixhumi esibonakalayo se-DDR ngasinye ngokuzimela.
      I-OpenCL kanye nelogo ye-OpenCL yizimpawu zokuthengisa ze-Apple Inc. ezisetshenziswa ngemvume ye-Khronos Group™ .
    2.  I-Intel FPGA SDK ye-OpenCL isuselwe ku-Khronos Specification eshicilelwe, futhi iphumelele Inqubo Yokuhlola Ukuvumelana kwe-Khronos. Isimo samanje sokuvumelana singatholakala kokuthi www.khronos.org/conformance.

Inkampani ye-Intel Wonke Amalungelo Agodliwe. I-Intel, ilogo ye-Intel, nezinye izimpawu ze-Intel yizimpawu zokuthengisa ze-Intel Corporation noma izinkampani ezingaphansi kwayo. I-Intel iqinisekisa ukusebenza kwe-FPGA yayo kanye nemikhiqizo yesemiconductor ekucacisweni kwamanje ngokuvumelana newaranti evamile ye-Intel, kodwa igodla ilungelo lokwenza izinguquko kunoma imiphi imikhiqizo namasevisi nganoma yisiphi isikhathi ngaphandle kwesaziso. I-Intel ayithathi mthwalo noma isikweletu esivele ngenxa yesicelo noma ukusetshenziswa kwanoma yiluphi ulwazi, umkhiqizo, noma isevisi echazwe lapha ngaphandle kwalapho okuvunyelwene ngakho ngokubhaliwe yi-Intel. Amakhasimende e-Intel ayelulekwa ukuthi athole inguqulo yakamuva yokucaciswa kwedivayisi ngaphambi kokuthembela kunoma yiluphi ulwazi olushicilelwe nangaphambi kokufaka ama-oda emikhiqizo noma amasevisi. *Amanye amagama namabhrendi angafunwa njengempahla yabanye.
I-ISO 9001:2015 Ibhalisiwe
Kungenjalo, uma unezixhumanisi ezimbili ze-DDR kanye nesixhumi esibonakalayo esisodwa se-quad data rate (QDR), qinisekisa ukusebenza kwesitaki se-OpenCL se-interface ye-DDR ezimbili kanye nesixhumi esibonakalayo se-QDR ngokuzimela.
I-Intel incoma ukuthi usebenzise i-PCI Express® – (PCIe® -) noma imiklamo ekhethekile ye-EMIF ukuze uhlole inkumbulo yakho. Ngemva kokuqinisekisa ukuthi isixhumi esibonakalayo sememori ngasinye siyasebenza nokuthi idizayini yakho ye-OpenCL isebenza nesethi encane yezindawo zenkumbulo, qhubeka.
ukwakha uhlelo lwenkumbulo oluhlukahlukene olusebenza ngokugcwele. 
1.2. Ilungisa i-board_spec.xml File
Shintsha i-board_spec.xml file ukucacisa izinhlobo zezinhlelo zememori ezihlukile ezitholakala kuma-OpenCL kernels.
Ngesikhathi sokuhlanganiswa kwe-kernel, i-Intel FPGA SDK ye-OpenCL Offline Compiler yabela izimpikiswano ze-kernel kumemori ngokusekelwe ku-agumenti yendawo yebhafa oyicacisayo.
1. Phequlula ku-board_spec.xml file ohlwini lwezingxenyekazi zekhompuyutha ze-Custom Platform yakho.
2. Vula i-board_spec.xml file kusihleli sombhalo bese ulungisa i-XML ngokufanele.
Okwesiboneloampfuthi, uma isistimu yakho yezingxenyekazi zekhompuyutha inezinkumbulo ezimbili ze-DDR njengememori yomhlaba wonke ezenzakalelayo kanye namabhange amabili e-QDR owamodela njengememori ehlukahlukene, shintsha izingxenye zememori ze-board_spec.xml file ukuze kufane nalokhu okulandelayo:
















1.3. Ukusetha Izihlukanisi Zenkumbulo Eziningi ku-Qsys
Okwamanje, i-OpenCL Memory Bank Divider ekwakhiweni kwe-Qsys ayisekeli inombolo engenamandla ka-2 yamabhange enkumbulo, okungewona umkhawulo ekucushweni okujwayelekile. Kodwa-ke, kunezimo lapho inani lenkumbulo elingenamandla ka-2 lidingeka. Ukuze kuhlangatshezwane nenkumbulo engeyona amandla ka-2, sebenzisa I-OpenCL Memory Bank Divider eminingi ukuze udale amasistimu ememori ahlukahlukene anenombolo engeyona yamandla ka-2 yamabhange enkumbulo. Kufanele udale ama-OpenCL Memory Bank Divider amaningi uma unesistimu yenkumbulo ehlukahlukene. Cabangela isistimu ene-interface eyodwa yenkumbulo ye-DDR kanye nesixhumi esibonakalayo sememori ye-QDR eyodwa. Ngenxa yokuthi amabhange amabili anezinhlobo ezahlukene zenkumbulo, awukwazi ukuwahlanganisa ngaphansi kwenkumbulo eyodwa yomhlaba.
Umfanekiso 1. Umdwebo Webhulokhi Yesistimu Yenkumbulo Ehlukene Yamabhange Amathathu
Lolu hlelo lwenkumbulo oluhlukile luqukethe izixhumanisi ezimbili zememori ye-DDR kanye nesixhumi esibonakalayo sememori ye-QDR eyodwa.I-intel Idala I-Heterogeneous Memory Systems ku-FPGA SDK ye-OpenCL Custom Platforms - fig 1Uma usebenzisa inguqulo 16.0, 16.0.1, noma 16.0.2 yesofthiwe ye-Intel Quartus® Prime kanye ne-Altera SDK ye-OpenCL, i-OpenCL Memory Bank Divider iphatha ngokungalungile ukuqhuma kwenkumbulo kuyo yonke imingcele yekheli. Ukuze ubhekane nale nkinga eyaziwayo, engeza ibhuloho lepayipi elinosayizi wokuqhuma ongu-1 futhi uxhume okuyinhloko kwayo kwe-Avalon ®Memory-Mapped (Avalon-MM) embotsheni yezigqila ye-OpenCL Memory Bank Divider.
Qaphela:
Le nkinga eyaziwayo ilungiswe ku-Intel Quartus Prime software kanye ne-Intel FPGA SDK yenguqulo ye-OpenCL 16.1.
Umfanekiso 2. Umdwebo Webhulokhi Yesistimu Yenkumbulo Ehlukile Yamabhange Amathathu Nebhuloho Lepayipi I-intel Idala I-Heterogeneous Memory Systems ku-FPGA SDK ye-OpenCL Custom Platforms - fig 21.4. Ukulungisa Uhlelo Lwe-Boardtest kanye Nekhodi Yokusingatha Yesixazululo Sakho Senkumbulo Esihlukile
Sebenzisa i-boardtest.cl kernel eza ne-Intel FPGA SDK ye-OpenCL Custom Platform Toolkit ukuze uhlole ukusebenza nokusebenza kwe-Custom Platform yakho.
Uhlelo lwe-boardtest luyi-OpenCL kernel ekuvumela ukuthi uhlole umkhawulokudonsa womsingathi uye kudivayisi, umkhawulokudonsa wememori, kanye nokusebenza okuvamile kwe-Custom Platform yakho.

  1. Phequlula ku- /ibhodi/ custom_platform_toolkit/tests/boardtest directory.
  2. Vula i-boardtest.cl file kusihleli sombhalo bese unikeza indawo yebhafa kumpikiswano ngayinye yenkumbulo yomhlaba.
    Okwesiboneloample:
    __i-kernel ayisebenzi
    mem_stream (__global__attribute__((buffer_location(“DDR”))) uint *src, __global __attribute__((buffer_location(“QDR”)))) uint *dst, uint arg, uint arg2)
    Lapha, i-uint *src yabelwe imemori ye-DDR, futhi i-uint *dst yabelwa kumemori ye-QDR. Ibhodi_spec.xml file icacisa izici zazo zombili izinhlelo zememori.
  3. Ukuze usebenzise isisombululo sakho sememori ehlukahlukene kusistimu yakho ye-OpenCL, shintsha ikhodi yakho yokusingatha ngokwengeza ifulegi le-CL_MEM_HETEROGENEOUS_INTELFPGA ocingweni lwakho lwe-clCreateBuffer.
    Okwesiboneloample:
    ddatain = clCreateBuffer(context, CL_MEM_READ_WRITE | memflags
    CL_MEM_HETEROGENEOUS_INTELFPGA, usayizi(ongasayiniwe) * VectorSize, NULL, &status);
    I-Intel incoma kakhulu ukuthi usethe indawo yebhafa njengengxabano ye-kernel ngaphambi kokubhala ibhafa. Uma usebenzisa imemori yomhlaba wonke eyodwa, ungabhala amabhafa ngaphambi noma ngemva kokuwanikeza impikiswano ye-kernel. Kumasistimu enkumbulo ahlukahlukene, umsingathi usetha indawo yebhafa ngaphambi kokubhala isigcinalwazi. Ngamanye amazwi, umsingathi uzobiza umsebenzi we-clSetKernelArgument ngaphambi kokubiza umsebenzi we-clEnqueueWriteBuffer.
    Kukhodi yakho yokusingatha, cela izingcingo ze-clCreateBuffer, clSetKernelArg, kanye ne-clEnqueueWriteBuffer ngendlela elandelayo:
    ddatain = clCreateBuffer(context, CL_MEM_READ_WRITE | memflags |
    CL_MEM_HETEROGENEOUS_INTELFPGA, usayizi(ongasayiniwe) * VectorSize, NULL, &status);
    … isimo = clSetKernelArg(kernel[k], 0, sizeof(cl_mem), (ingenalutho*)&ddatain);
    … isimo = clEnqueueWriteBuffer(umugqa, ddatain, CL_FALSE, 0, sizeof(akubhaliwe) * vectorSize,hdatain, 0, NULL, NULL);
    I-ALTERAOCLSDKROOT/board/custom_platform_toolkit/tests/boardtest/host/memspeed.cpp file yethula ukuhleleka okufanayo kwalezi zingcingo zokusebenza.
  4.  Ngemva kokulungisa i-boardtest.cl file kanye nekhodi yomsingathi, hlanganisa umsingathi kanye nekhodi ye-kernel futhi uqinisekise ukusebenza kwazo.
    Lapho uhlanganisa ikhodi yakho ye-kernel, kufanele ukhubaze ukuqhuma kwe-interleaving yazo zonke izinhlelo zememori ngokufaka i--no-interleaving. inketho kumyalo we-aoc.

Ulwazi Oluhlobene
Ikhubaza i-Burst-Interleaving ye-Global Memory (-no-interleaving )

1.5. Ukuqinisekisa Ukusebenza Kwenkumbulo Yakho Ehlukahlukene Uhlelo
Ukuze uqinisekise ukuthi isistimu yememori ehlukahlukene isebenza kahle, yeka ukumisa ifulegi le-CL_CONTEXT_COMPILER_MODE_INTELFPGA kukhodi yakho yokusingatha.
Kuzinhlelo ze-OpenCL ezinememori efanayo, kufanele ukhethe ukusetha ifulegi le-CL_CONTEXT_COMPILER_MODE_INTELFPGA=3 kukhodi yakho yokusingatha ukuze uvale ukufundwa kwe-.aocx file kanye nokuhlelwa kabusha kwe-FPGA. Ukusetha ifulegi le-CL_CONTEXT_COMPILER_MODE_INTELFPGA=3 kuyasiza lapho uqinisekisa ibhodi lakho ukuze uqinisekise ukusebenza Kwenkundla Yakho Ngokwezifiso ngaphandle kokuklama i-floorplan kanye nokucacisa izifunda ze-LogicLock™.
Ngamasistimu enkumbulo ahlukahlukene, indawo yesikhathi sokusebenza kufanele ifunde izindawo zebhafa zebhafa ngayinye, echazwe ku-.aocx file, ukuze uqinisekise ukusebenza kwesistimu yememori. Nokho, ungase ufune ukuqinisekisa ukusebenza kwe-Custom Platform ngaphandle kokusebenzisa izici zokugcina zedizayini yebhodi, njengokuklama i-floorplan kanye nokucacisa izifunda ze-LogicLock.

  1. Qinisekisa ukuthi ifulegi le-CL_CONTEXT_COMPILER_MODE_INTELFPGA alisethiwe kukhodi yakho yokusingatha.
  2. Phequlula ebhodini/ /source/host/mmd directory of Custom Platform yakho.
  3. Vula idivayisi ye-acl_pcie_device.cpp ye-memory-mapped (MMD) file kusihleli sombhalo.
  4.  Lungisa umsebenzi wohlelo kabusha ku-acl_pcie_device.cpp file ngokwengeza imbuyiselo 0; umugqa, njengoba kukhonjisiwe ngezansi:
    int ACL_PCIE_DEVICE::reprogram(engenalutho *data, size_t data_size)
    {
    buyisela 0;
    // thatha ukwehluleka
    int reprogram_failed = 1;
    // ungacabangi ukuthi i-rbf noma i-hashi ku-fpga.bin
    int rbf_or_hash_not_provided = 1;
    // thatha isisekelo kanye nama-hashes okubuyekezwa kokungenisa awafani
    int hash_mismatch = 1;

    }
  5. Hlanganisa kabusha i-acl_pcie_device.cpp file.
  6. Qinisekisa ukuthi ifulegi le-CL_CONTEXT_COMPILER_MODE_INTELFPGA lihlala lingasethiwe.
    Qaphela: Ngemva kokwengeza ukubuyisela 0; kumsebenzi wohlelo kabusha futhi uhlanganise kabusha i-MMD file, indawo yesikhathi sokusebenza izofunda i-.aocx file futhi yabela izindawo zebhafa kodwa ngeke ihlele kabusha i-FPGA. Kufanele uqondanise mathupha isithombe se-FPGA ne-.aocx file. Ukuze uhlehlise lokhu kuziphatha, susa ukubuyisela 0; kusuka kumsebenzi wohlelo kabusha futhi uhlanganise kabusha i-MMD file.

1.6. Umlando Wokubuyekeza Idokhumenti

Usuku Inguqulo Izinguquko
Dec-17 2017.12.01 • Iqanjwe kabusha nge-CL_MEM_HETEROGENEOUS_ALTERA yaba yi-CL_MEM_HETEROGENEOUS_INTELFPGA.
Dec-16 2016.12.13 • Iqanjwe kabusha nge-CL_CONTEXT_COMPILER_MODE_ALTERA yaba yi-CL_CONTEXT_COMPILER_MODE_INTELFPGA.

Intel - logoUkudala I-Heterogeneous Memory Systems ku-Intel® FPGA SDK ye-OpenCL
Izinkundla ngokwezifiso
I-intel Idala I-Heterogeneous Memory Systems ku-FPGA SDK ye-OpenCL Custom Platforms - isithonjana 1 Thumela Impendulo
I-intel Idala I-Heterogeneous Memory Systems ku-FPGA SDK ye-OpenCL Custom Platforms - isithonjana I-Online Version
I-intel Idala I-Heterogeneous Memory Systems ku-FPGA SDK ye-OpenCL Custom Platforms - isithonjana 1 Thumela Impendulo
Inombolo yepholisi: 683654
Inguqulo: 2016.12.13

Amadokhumenti / Izinsiza

I-intel Idala I-Heterogeneous Memory Systems ku-FPGA SDK ye-OpenCL Custom Platforms [pdf] Iziyalezo
Ukudala I-Heterogeneous Memory Systems ku-FPGA SDK ye-OpenCL Custom Platforms, Ukudala I-Heterogeneous Memory Systems, i-FPGA SDK ye-OpenCL Custom Platforms

Izithenjwa

Shiya amazwana

Ikheli lakho le-imeyili ngeke lishicilelwe. Izinkambu ezidingekayo zimakiwe *