intel - logoAfirandina Pergalên Bîra Heterogenous di FPGA SDK de ji bo Platformên Xweser ên OpenCL
Instructions

Afirandina Pergalên Bîra Heterogenous di Intel® FPGA SDK de ji bo Platformên Xweserî OpenCL

Pêkanîna bîranîna heterojen di Platformek Xweser de dihêle ku bêtir firehiya bandê ya navbera bîranîna derveyî (EMIF) û her weha gihîştina bîranîna mezintir û bileztir. Tevlihevkirina gihîştina bîranîna heterojen a bi optimîzekirin
OpenCL ™(1)kernel dikare ji bo pergala weya OpenCL-ê çêtirkirina performansa girîng encam bide.
Ev nîşeya serîlêdanê rêbernameyê li ser afirandina pergalên bîranîna heterojen di Platformek Xweser de ji bo karanîna bi Intel® FPGA SDK-ya OpenCL (2) peyda dike. Intel dihesibîne ku hûn sêwiranek FPGA-ya xwedî ezmûn in ku Platformên Xweser ên ku pergalên bîranînê yên heterojen vedihewîne pêşdixin.
Berî ku hûn pergalên bîranînê yên heterojen biafirînin, xwe bi Intel FPGA SDK-ya ji bo belgeyên OpenCL yên ku li jêr hatine destnîşan kirin nas bikin.
Information Related

  • Intel FPGA SDK ji bo Rêbernameya Bernamekirinê OpenCL
  • Intel FPGA SDK ji bo Rêbernameya Pratîkên Baştirîn OpenCL
  • Intel FPGA SDK ji bo OpenCL Arria 10 GX FPGA Pêşveçûna Kit Referansê Rêbernameya Veguhastina Platformê

1.1. Verastkirina Fonksiyona Desteya FPGA û Navrûyên EMIF

Her navbeynkariya bîranînê serbixwe verast bikin û dûv re Platforma Xweseriya xwe bi karanîna bîranîna gerdûnî destnîşan bikin.

  1. Her navbeynkariya bîranînê bi karanîna sêwiranên hardware verast bikin ku dikarin bilez û aramiya her navberê biceribînin.
  2. Platforma xweya Xweser bi karanîna bîranîna gerdûnî destnîşan bikin.
    1. Ji bo example, heke we sê navgînên DDR hene, divê yek ji wan wekî bîranîna heterojen were nexşandin. Di vê rewşê de, fonksiyona stack OpenCL bi her navbeynkariya DDR-ê serbixwe verast bikin.
      OpenCL û logoya OpenCL marqeyên Apple Inc. ne ku bi destûra Khronos Group™ têne bikar anîn.
    2.  Intel FPGA SDK-ya ji bo OpenCL-ê li ser bingeha taybetmendiyek Khronos-ê ya hatî weşandin e, û Pêvajoya Testkirina Hevrêziya Khronos derbas kiriye. Rewşa lihevhatina heyî dikare li vir were dîtin www.khronos.org/conformance.

Pargîdaniya Intel. Hemû maf parastî ne. Intel, logoya Intel, û nîşaneyên din ên Intel marqeyên Intel Corporation an pargîdaniyên wê ne. Intel garantiya performansa FPGA û hilberên xwe yên nîvconductor li gorî taybetmendiyên heyî li gorî garantiya standard a Intel digire, lê mafê ku di her kêliyê de bêyî agahdarî di her hilber û karûbaran de biguhezîne digire. Intel ti berpirsiyarî an berpirsiyariya ku ji serîlêdan an karanîna ti agahdarî, hilber, an karûbarê ku li vir hatî diyar kirin çêdibe, ji bilî ku bi eşkere bi nivîskî ji hêla Intel ve hatî pejirandin. Ji xerîdarên Intel re tê şîret kirin ku berî ku xwe bispêrin agahdariya hatî weşandin û berî ku emrê hilber an karûbaran bidin, guhertoya herî dawî ya taybetmendiyên cîhazê bistînin. *Dibe ku nav û marqeyên din wekî milkê kesên din werin îdîakirin.
ISO 9001:2015 Qeydkirî ye
Wekî din, heke we du navbeynkarên DDR û yek pêwendiya rêjeya daneya çaralî (QDR) heye, fonksiyona stûna OpenCL ya du navbeynkarên DDR û pêveka QDR-a serbixwe verast bikin.
Intel pêşniyar dike ku hûn PCI Express® - (PCIe® -) an sêwiranên taybetî yên EMIF-ê bikar bînin da ku pêwendiyên bîranîna xwe ceribandin. Piştî ku we piştrast kir ku her navbeynkariya bîranînê bikêr e û sêwirana weya OpenCL bi binkeyek navberên bîranînê re dixebite, bidomînin.
ji bo afirandina pergalek bîranîna heterojen a bi tevahî fonksiyonel. 
1.2. Guhertina board_spec.xml File
board_spec.xml biguherînin file ji bo diyarkirina cureyên pergalên bîranînê yên heterojen ên ku ji kernelên OpenCL re hene.
Di dema berhevkirina kernelê de, Intel FPGA SDK-ya ji bo OpenCL Offline Compiler argumanên kernelê li ser bingeha argumana cîhê tampon a ku hûn diyar dikin veqetîne.
1. Li board_spec.xml bigerin file di pelrêça hardware ya Platforma xweya Xweser de.
2. board_spec.xml veke file di edîtorek nivîsê de û li gorî wê XML biguhezînin.
Ji bo example, heke pergala weya hardware du bîranînên DDR wekî bîranîna gerdûnî ya xwerû û du bankên QDR hene ku hûn wekî bîranîna heterojen model dikin, beşên bîranînê yên board_spec.xml biguherînin. file ku dişibin yên jêrîn:
















1.3. Sazkirina Gelek Dabeşkerên Bîrê li Qsys
Heya nuha, Parçeya Banka Bîrê ya OpenCL di sêwirana Qsys-ê de ji jimareya ne-hêza-2-yê bankên bîranînê piştgirî nake, ku ev ji bo veavakirinên tîpîk ne sînorek e. Lêbelê, senaryo hene ku ne-hêza-2-hejmarên navberên bîranînê hewce ne. Ji bo cîbicîkirina jimareya 2-an-hêza navberên bîranînê, gelek Parçekerên Banka Bîrê OpenCL-ê bikar bînin da ku pergalên bîranînê yên heterojen bi jimareyên ne-hêza-2-yê bankên bîranînê biafirînin. Dema ku we xwedî pergalek bîranîna heterojen a rastîn be, divê hûn gelek Dabeşên Banka Bîra OpenCL biafirînin. Pergalek bi yek navberek bîranîna DDR û yek navberek bîranîna QDR-ê bihesibînin. Ji ber ku her du bank xwedan topolojiyên bîranînê yên cihê ne, hûn nikanin wan di binê bîranînek gerdûnî de yek bikin.
Wêne 1. Diyagrama blokê ya Sîstema Bîra Heterogeneous ya Sê Bank
Ev pergala bîranîna heterojen du navberên bîranîna DDR û yek navberek bîranîna QDR-ê vedihewîne.intel Afirandina Pergalên Bîra Heterogenous di FPGA SDK de ji bo Platformên Xweser ên OpenCL - jimar 1Heke hûn guhertoya 16.0, 16.0.1, an 16.0.2 ya nermalava Intel Quartus® Prime û Altera SDK-ya ji bo OpenCL bikar tînin, Parçekera Banka Bîrê ya OpenCL bi xeletî teqînên bîranînê li seranserê sînorên navnîşan digire. Ji bo ku hûn li dora vê pirsgirêka naskirî bixebitin, pirek boriyê ya bi mezinahiya teqînê 1 zêde bikin û mastera wê Avalon ®Memory-Mapped (Avalon-MM) bi bendera xulamê ya OpenCL Memory Bank Divider ve girêdin.
Not:
Vê pirsgirêka naskirî di nermalava Intel Quartus Prime û Intel FPGA SDK-ya ji bo guhertoya OpenCL 16.1 de hatî rast kirin.
Figure 2. Diyagrama blokê ya Pergala Bîra Heterogeneous ya Sê Bankî ya Bi Pira Pipeline intel Afirandina Pergalên Bîra Heterogenous di FPGA SDK de ji bo Platformên Xweser ên OpenCL - jimar 21.4. Guhertina Bernameya Boardtest û Koda Mêvandar ji bo Çareseriya Bîra Xweya Heterogenîk
Kernelê boardtest.cl-ê ku bi Intel FPGA SDK-ê ve tê ji bo Amûra Platforma Xweser a OpenCL-ê bikar bînin da ku fonksiyon û performansa Platforma xweya Xweser biceribîne.
Bernameya boardtest kernelek OpenCL-ê ye ku destûrê dide te ku hûn firehiya band-a host-a-cîhazê, firehiya band-a bîranînê, û fonksiyona gelemperî ya Platforma xweya Xweser biceribînin.

  1. Bigerin li /board/ custom_platform_toolkit/tests/boardtest pelrêça.
  2. boardtest.cl vekin file di edîtorek nivîsê de û ji her argumana bîranîna gerdûnî re cîhek tampon destnîşan bikin.
    Ji bo example:
    __kernel vala ye
    mem_stream (__global__attribute__((buffer_location ("DDR"))) unint *src, __global __attribute__((buffer_location ("QDR"))) uint *dst, uint arg, unint arg2)
    Li vir, uint *src ji bîra DDR re, û uint *dst ji bîranîna QDR re tê veqetandin. The board_spec.xml file taybetmendiyên her du pergalên bîranînê diyar dike.
  3. Ji bo ku çareseriya bîranîna xweya heterojen di pergala xweya OpenCL-ê de bikar bînin, koda mêvandarê xwe biguhezînin bi lê zêdekirina ala CL_MEM_HETEROGENEOUS_INTELFPGA li banga xweya clCreateBuffer.
    Ji bo example:
    ddatain = clCreateBuffer(context, CL_MEM_READ_WRITE | nîşan
    CL_MEM_HETEROGENEOUS_INTELFPGA, sizeof(nenîşankirî) * VectorSize, NULL, &status);
    Intel bi tundî pêşniyar dike ku hûn berî nivîsandina tampon cîhê tamponê wekî argumanek kernel destnîşan bikin. Dema ku bîranînek gerdûnî ya yekane bikar bînin, hûn dikarin tamponan berî an jî piştî ku wan li argumanek kernelê veqetînin binivîsin. Di pergalên bîranîna heterojen de, mêvandar cîhê tamponê berî nivîsandina tamponê saz dike. Bi gotineke din, mêvandar dê bangî fonksiyona clSetKernelArgument bike berî ku fonksiyona clEnqueueWriteBuffer bike.
    Di koda xweya mêvandar de, bangên clCreateBuffer, clSetKernelArg, û clEnqueueWriteBuffer bi rêza jêrîn bang bikin:
    ddatain = clCreateBuffer(context, CL_MEM_READ_WRITE | nîşan |
    CL_MEM_HETEROGENEOUS_INTELFPGA, sizeof(nenîşankirî) * VectorSize, NULL, &status);
    … status = clSetKernelArg(kernel[k], 0, sizeof(cl_mem), (vala*)&ddatain);
    … statû = clEnqueueWriteBuffer(dost, ddatain, CL_FALSE, 0, sizeof(nenîşankirî) * vectorSize,hdatain, 0, NULL, NULL);
    ALTERAOCLSDKROOT/board/custom_platform_toolkit/tests/boardtest/host/memspeed.cpp file rêzek wekhev a van bangên fonksiyonê pêşkêşî dike.
  4.  Piştî ku hûn boardtest.cl biguherînin file û koda mêvandar, koda mêvandar û kernelê berhev bikin û fonksiyona wan verast bikin.
    Dema ku koda xweya kernelê berhev dike, divê hûn bi tevlêkirina -no-navdêra hemî pergalên bîranînê neçalak bikin. vebijêrk di fermana aoc de.

Information Related
Neçalakkirina Burst-Interleaving of Global Memory (-bê-tevlihevkirin )

1.5. Verastkirina Fonksiyona Bîra Xweya Heterogenîk Sîstem
Ji bo ku pê ewle bibin ku pergala bîranîna heterojen bi rêkûpêk tevdigere, ala CL_CONTEXT_COMPILER_MODE_INTELFPGA di koda xweya mêvandar de rakin.
Di pergalên OpenCL yên bi bîranîna homojen de, divê hûn vebijarkê bikin ku hûn di koda mêvandar de CL_CONTEXT_COMPILER_MODE_INTELFPGA=3 ala destnîşan bikin da ku xwendina .aocx neçalak bikin. file û ji nû ve bernamekirina FPGA. Sazkirina ala CL_CONTEXT_COMPILER_MODE_INTELFPGA=3 bikêrhatî ye dema ku panela xwe destnîşan bike da ku fonksiyona Platforma Xweseriya xwe rast bike bêyî sêwirana plansaziya erdê û diyarkirina herêmên LogicLock™.
Digel pergalên bîranînê yên heterojen, divê hawîrdora dema xebitandinê cîhên tamponê yên her tamponê, ku di .aocx de hatî destnîşan kirin, bixwînin. file, ji bo verastkirina fonksiyonên pergalên bîranînê. Lêbelê, dibe ku hûn bixwazin fonksiyona Platforma Xweseriya xwe verast bikin bêyî ku taybetmendiyên paşîn ên sêwirana panelê bicîh bikin, wek sêwirana plansaziya erdê û diyarkirina herêmên LogicLock.

  1. Verast bikin ku ala CL_CONTEXT_COMPILER_MODE_INTELFPGA di koda weya mêvandar de nehatibe danîn.
  2. Li panelê bigerin/ / source / host / mmd pelrêça Platforma xweya Xweser.
  3. Amûra nexşeya bîranîn acl_pcie_device.cpp (MMD) veke file di edîtorek nivîsê de.
  4.  Di acl_pcie_device.cpp de fonksiyona bernameyê biguherînin file bi lêzêdekirina vegerek 0; rêz, wekî ku li jêr tê nîşandan:
    int ACL_PCIE_DEVICE::ji nû ve bername(betal *dane, size_t data_size)
    {
    vegera 0;
    // têkçûn bihesibînin
    int reprogram_failed = 1;
    // di fpga.bin de rbf an hash tune
    int rbf_or_hash_not_provided = 1;
    // bihesibînin ku haşên guhertoya bingehîn û import li hev nakin
    int hash_mismatch = 1;

    }
  5. Acl_pcie_device.cpp ji nû ve berhev bikin file.
  6. Piştrast bike ku ala CL_CONTEXT_COMPILER_MODE_INTELFPGA nesazkirî bimîne.
    Baldarî: Piştî ku hûn vegerê zêde bikin 0; fonksiyonê ji nû ve bername bike û MMD-ê ji nû ve berhev bike file, hawîrdora xebitandinê dê .aocx bixwîne file û cihên tampon destnîşan bikin lê dê FPGA ji nû ve bername neke. Divê hûn bi destan wêneya FPGA bi .aocx re hev bikin file. Ji bo berevajîkirina vê tevgerê, vegerê 0 jêbirin; ji fonksiyona ji nû ve bernamekirinê û MMD-ê ji nû ve berhev bikin file.

1.6. Dîroka Guhertoya Belgeyê

Rojek Awa Changes
Dec-17 2017.12.01 • CL_MEM_HETEROGENEOUS_ALTERA ji bo CL_MEM_HETEROGENEOUS_INTELFPGA veguherand.
Dec-16 2016.12.13 • CL_CONTEXT_COMPILER_MODE_ALTERA ji bo CL_CONTEXT_COMPILER_MODE_INTELFPGA veguherand.

intel - logoAfirandina Pergalên Bîra Heterogenous di Intel® FPGA SDK de ji bo OpenCL
Platformên Custom
intel Afirandina Pergalên Bîra Heterogenîk di FPGA SDK de ji bo Platformên Xweserî OpenCL - îkon 1 Send Feedback
intel Afirandina Pergalên Bîra Heterogenîk di FPGA SDK de ji bo Platformên Xweserî OpenCL - îkon Version
intel Afirandina Pergalên Bîra Heterogenîk di FPGA SDK de ji bo Platformên Xweserî OpenCL - îkon 1 Send Feedback
Nasname: 683654
Versiyon: 2016.12.13

Belge / Çavkanî

intel Afirandina Pergalên Bîra Heterogenous di FPGA SDK de ji bo Platformên Xweserî OpenCL [pdf] Rênîşander
Afirandina Pergalên Bîra Heterogenous di FPGA SDK de ji bo Platformên Xweser ên OpenCL, Afirandina Pergalên Bîra Heterogenous, FPGA SDK ji bo Platformên Xweser ên OpenCL

Çavkanî

Bihêle şîroveyek

Navnîşana e-nameya we nayê weşandin. Zeviyên pêwîst têne nîşankirin *