intel - logoCreu Systemau Cof Heterogenaidd yn FPGA SDK ar gyfer Platfformau Custom OpenCL
Cyfarwyddiadau

Creu Systemau Cof Heterogenaidd yn Intel® FPGA SDK ar gyfer Platfformau Custom OpenCL

Mae gweithredu cof heterogenaidd mewn Platfform Custom yn caniatáu ar gyfer lled band rhyngwyneb cof allanol (EMIF) yn ogystal â mynediad cof mwy a chyflymach. Mae'r cyfuniad o fynediad cof heterogenaidd gyda optimized
Gall cnewyllyn OpenCL ™(1) arwain at welliannau perfformiad sylweddol ar gyfer eich system OpenCL.
Mae'r nodyn cais hwn yn rhoi arweiniad ar greu systemau cof heterogenaidd mewn Platfform Custom i'w defnyddio gyda'r Intel® FPGA SDK ar gyfer OpenCL(2). Mae Intel yn tybio eich bod chi'n ddylunydd FPGA profiadol sy'n datblygu Custom Platforms sy'n cynnwys systemau cof heterogenaidd.
Cyn creu'r systemau cof heterogenaidd, ymgyfarwyddwch â'r Intel FPGA SDK ar gyfer dogfennau OpenCL a nodir isod.
Gwybodaeth Gysylltiedig

  • Intel FPGA SDK ar gyfer Canllaw Rhaglennu OpenCL
  • Intel FPGA SDK ar gyfer Canllaw Arferion Gorau OpenCL
  • Intel FPGA SDK ar gyfer OpenCL Arria 10 GX FPGA Pecyn Datblygu Cyfeirnod Canllaw Portio Llwyfan

1.1. Gwirio Ymarferoldeb Bwrdd FPGA a'r Rhyngwynebau EMIF

Dilyswch bob rhyngwyneb cof yn annibynnol ac yna sythwch eich Platfform Personol gan ddefnyddio cof byd-eang.

  1. Dilyswch bob rhyngwyneb cof gan ddefnyddio dyluniadau caledwedd a all brofi cyflymder a sefydlogrwydd pob rhyngwyneb.
  2. Cychwynnwch eich Platfform Custom gan ddefnyddio cof byd-eang.
    1. Am gynample, os oes gennych dri rhyngwyneb DDR, rhaid mapio un ohonynt fel cof heterogenaidd. Yn yr achos hwn, gwiriwch ymarferoldeb y pentwr OpenCL gyda phob rhyngwyneb DDR yn annibynnol.
      Mae OpenCL a logo OpenCL yn nodau masnach Apple Inc. a ddefnyddir gyda chaniatâd y Khronos Group™ .
    2.  Mae'r Intel FPGA SDK ar gyfer OpenCL yn seiliedig ar Fanyleb Khronos cyhoeddedig, ac mae wedi pasio Proses Profi Cydymffurfiaeth Khronos. Mae'r statws cydymffurfio presennol i'w weld yn www.khronos.org/conformance.

Intel Gorfforaeth. Cedwir pob hawl. Mae Intel, logo Intel, a nodau Intel eraill yn nodau masnach Intel Corporation neu ei is-gwmnïau. Mae Intel yn gwarantu perfformiad ei gynhyrchion FPGA a lled-ddargludyddion i fanylebau cyfredol yn unol â gwarant safonol Intel, ond mae'n cadw'r hawl i wneud newidiadau i unrhyw gynhyrchion a gwasanaethau ar unrhyw adeg heb rybudd. Nid yw Intel yn cymryd unrhyw gyfrifoldeb nac atebolrwydd sy'n deillio o gymhwyso neu ddefnyddio unrhyw wybodaeth, cynnyrch neu wasanaeth a ddisgrifir yma ac eithrio fel y cytunwyd yn benodol yn ysgrifenedig gan Intel. Cynghorir cwsmeriaid Intel i gael y fersiwn ddiweddaraf o fanylebau dyfeisiau cyn dibynnu ar unrhyw wybodaeth gyhoeddedig a chyn archebu cynhyrchion neu wasanaethau. *Gellir hawlio enwau a brandiau eraill fel eiddo eraill.
ISO 9001:2015 Cofrestredig
Fel arall, os oes gennych ddau ryngwyneb DDR ac un rhyngwyneb cyfradd data cwad (QDR), gwiriwch ymarferoldeb pentwr OpenCL y ddau ryngwyneb DDR a'r rhyngwyneb QDR yn annibynnol.
Mae Intel yn argymell eich bod yn defnyddio PCI Express® - (PCIe® -) neu ddyluniadau unigryw EMIF i brofi eich rhyngwynebau cof. Ar ôl i chi wirio bod pob rhyngwyneb cof yn weithredol a bod eich dyluniad OpenCL yn gweithio gydag is-set o'r rhyngwynebau cof, ewch ymlaen
i greu system gof heterogenaidd gwbl weithredol. 
1.2. Wrthi'n addasu'r board_spec.xml File
Addasu'r board_spec.xml file i nodi'r mathau o systemau cof heterogenaidd sydd ar gael i'r cnewyllyn OpenCL.
Yn ystod llunio cnewyllyn, mae'r Intel FPGA SDK ar gyfer OpenCL Offline Compiler yn aseinio dadleuon cnewyllyn i gof yn seiliedig ar y ddadl lleoliad byffer rydych chi'n ei nodi.
1. Porwch i'r board_spec.xml file yng nghyfeiriadur caledwedd eich Platfform Custom.
2. Agorwch y board_spec.xml file mewn golygydd testun ac addasu'r XML yn unol â hynny.
Am gynample, os oes gan eich system caledwedd ddau atgof DDR fel globalmemory diofyn a dau fanc QDR yr ydych yn eu modelu fel cof heterogenaidd, addaswch adrannau cof y board_spec.xml file i fod yn debyg i'r canlynol:
















1.3. Sefydlu Rhanwyr Cof Lluosog yn Qsys
Ar hyn o bryd, nid yw Rhannwr Banc Cof OpenCL yn nyluniad y Qsys yn cefnogi nifer di-rym-o-2 o fanciau cof, nad yw'n gyfyngiad ar gyfer ffurfweddiadau nodweddiadol. Fodd bynnag, mae yna senarios lle mae angen nifer di-rym-o-2 o ryngwynebau cof. Er mwyn darparu ar gyfer nifer nad ydynt yn bŵer-o-2 o ryngwynebau cof, defnyddiwch sawl Rhannwr Banc Cof OpenCL i greu systemau cof heterogenaidd gyda nifer di-rym-o-2 o fanciau cof. Rhaid i chi greu sawl Rhannwr Banc Cof OpenCL pan fydd gennych wir system gof heterogenaidd. Ystyriwch system gydag un rhyngwyneb cof DDR ac un rhyngwyneb cof QDR. Oherwydd bod gan y ddau fanc dopolegau cof gwahanol, ni allwch eu cyfuno o dan un cof byd-eang.
Ffigur 1. Diagram Bloc o System Cof Heterogenaidd Tri Banc
Mae'r system gof heterogenaidd hon yn cynnwys dau ryngwyneb cof DDR ac un rhyngwyneb cof QDR.intel Creu Systemau Cof Heterogenaidd yn FPGA SDK ar gyfer Platfformau Custom OpenCL - ffig 1Os ydych chi'n defnyddio fersiwn 16.0, 16.0.1, neu 16.0.2 o feddalwedd Intel Quartus® Prime a'r Altera SDK ar gyfer OpenCL, mae Rhannwr Banc Cof OpenCL yn trin pyliau cof yn anghywir ar draws ffiniau cyfeiriadau. I weithio o amgylch y mater hysbys hwn, ychwanegwch bont biblinell gyda maint byrstio o 1 a chysylltwch ei feistr Avalon ® Memory-Mapped (Avalon-MM) â phorthladd caethweision y OpenCL Memory Bank Divider.
Nodyn:
Mae'r mater hysbys hwn yn sefydlog ym meddalwedd Intel Quartus Prime a'r Intel FPGA SDK ar gyfer fersiwn OpenCL 16.1.
Ffigur 2. Diagram Bloc o System Cof Heterogenaidd Tri Banc gyda Phont Piblinell intel Creu Systemau Cof Heterogenaidd yn FPGA SDK ar gyfer Platfformau Custom OpenCL - ffig 21.4. Addasu'r Rhaglen Boardtest a'r Cod Gwesteiwr ar gyfer Eich Ateb Cof Heterogenaidd
Defnyddiwch y cnewyllyn boardtest.cl sy'n dod gyda'r Intel FPGA SDK ar gyfer OpenCL Custom Platform Toolkit i brofi ymarferoldeb a pherfformiad eich Platfform Custom.
Mae'r rhaglen boardtest yn gnewyllyn OpenCL sy'n eich galluogi i brofi lled band gwesteiwr-i-ddyfais, lled band cof, ac ymarferoldeb cyffredinol eich Platfform Custom.

  1. Pori i'r /board/ custom_platform_toolkit/tests/boardtest directory.
  2. Agorwch y boardtest.cl file mewn golygydd testun a neilltuo lleoliad byffer i bob dadl cof byd-eang.
    Am gynample:
    __ gwagle cnewyllyn
    mem_stream (__byd-eang__nodwedd__((buffer_location("DDR")))) uint *src, __nodwedd __ byd-eang((buffer_location(“QDR”))) uint *dst, uint arg, uint arg2)
    Yma, mae uint *src yn cael ei neilltuo i gof DDR, ac mae uint * dst yn cael ei neilltuo i gof QDR. Mae'r bwrdd_spec.xml file yn pennu nodweddion y ddwy system gof.
  3. I drosoli eich datrysiad cof heterogenaidd yn eich system OpenCL, addaswch eich cod gwesteiwr trwy ychwanegu baner CL_MEM_HETEROGENEOUS_INTELFPGA at eich galwad clCreateBuffer.
    Am gynample:
    datain = clCreateBuffer(cyd-destun, CL_MEM_READ_WRITE | memflags
    CL_MEM_HETEROGENEOUS_INTELFPGA, maint(heb ei lofnodi) * fectorSize, NULL, &status);
    Mae Intel yn argymell yn gryf eich bod yn gosod y lleoliad byffer fel dadl cnewyllyn cyn ysgrifennu'r byffer. Wrth ddefnyddio un cof byd-eang, gallwch ysgrifennu'r byfferau naill ai cyn neu ar ôl eu neilltuo i ddadl cnewyllyn. Mewn systemau cof heterogenaidd, mae'r gwesteiwr yn gosod y lleoliad byffer cyn ysgrifennu'r byffer. Mewn geiriau eraill, bydd y gwesteiwr yn galw'r swyddogaeth clSetKernelArgument cyn galw'r swyddogaeth clEnqueueWriteBuffer.
    Yn eich cod gwesteiwr, galwch y galwadau clCreateBuffer, clSetKernelArg, a clEnqueueWriteBuffer yn y drefn ganlynol:
    datain = clCreateBuffer(cyd-destun, CL_MEM_READ_WRITE | memflags |
    CL_MEM_HETEROGENEOUS_INTELFPGA, maint(heb ei lofnodi) * fectorSize, NULL, &status);
    … statws = clSetKernelArg(cnewyllyn[k], 0, sizeof(cl_mem), (gwag*)&ddatain);
    … statws = clEnqueueWriteBuffer(ciw, datain, CL_FALSE, 0, sizeof(heb ei lofnodi) * vectorSize,hdatain, 0, NULL, NULL);
    Y ALTERAOCLSDKROOT/board/custom_platform_toolkit/tests/boardtest/host/memspeed.cpp file yn cyflwyno trefn debyg o'r galwadau swyddogaeth hyn.
  4.  Ar ôl i chi addasu'r boardtest.cl file a'r cod gwesteiwr, llunio'r cod gwesteiwr a chnewyllyn a gwirio eu swyddogaeth.
    Wrth lunio'ch cod cnewyllyn, mae'n rhaid i chi analluogi rhwyg-rhyngddelw pob system cof drwy gynnwys y –no-interleaving opsiwn yn y gorchymyn aoc.

Gwybodaeth Gysylltiedig
Analluogi Byrstio-Rhyng-ddal Cof Byd-eang (–dim-rhyngddalennog )

1.5. Gwirio Ymarferoldeb Eich Cof Heterogenaidd System
I sicrhau bod y system cof heterogenaidd yn gweithio'n iawn, dadosodwch y faner CL_CONTEXT_COMPILER_MODE_INTELFPGA yn eich cod gwesteiwr.
Mewn systemau OpenCL gyda chof homogenaidd, mae'n rhaid i chi ddewis gosod y faner CL_CONTEXT_COMPILER_MODE_INTELFPGA=3 yn eich cod gwesteiwr i analluogi darlleniad y .aocx file ac ailraglennu'r FPGA. Mae gosod y faner CL_CONTEXT_COMPILER_MODE_INTELFPGA=3 yn ddefnyddiol wrth amrantiad eich bwrdd i wirio ymarferoldeb eich Platfform Personol heb ddylunio'r cynllun llawr a nodi'r rhanbarthau LogicLock™.
Gyda systemau cof heterogenaidd, rhaid i'r amgylchedd amser rhedeg ddarllen lleoliadau byffer pob byffer, a ddisgrifir yn y .aocx file, i wirio ymarferoldeb y systemau cof. Fodd bynnag, efallai y byddwch am wirio ymarferoldeb eich Platfform Custom heb weithredu nodweddion terfynol dyluniad y bwrdd, megis dylunio'r cynllun llawr a nodi'r rhanbarthau LogicLock.

  1. Gwiriwch fod y faner CL_CONTEXT_COMPILER_MODE_INTELFPGA wedi'i dadosod yn eich cod gwesteiwr.
  2. Pori i'r bwrdd / / source/host/mmd cyfeiriadur o'ch Platfform Custom.
  3. Agorwch y ddyfais acl_pcie_device.cpp wedi'i mapio'r cof (MMD) file mewn golygydd testun.
  4.  Addasu'r swyddogaeth ailraglennu yn yr acl_pcie_device.cpp file trwy ychwanegu dychweliad 0; llinell, fel y dangosir isod:
    in ACL_PCIE_DEVICE ::ailraglen (gwag *data, maint_t data_size)
    {
    dychwelyd 0;
    // rhagdybio methiant
    int reprogram_failed = 1;
    // rhagdybio dim rbf na hash yn fpga.bin
    int rbf_or_hash_not_provided = 1;
    // rhagdybio nad yw hashes adolygu sylfaen a mewnforio yn cyfateb
    int hash_mismatch = 1;

    }
  5. Ail-grynhoi'r acl_pcie_device.cpp file.
  6. Gwiriwch fod y faner CL_CONTEXT_COMPILER_MODE_INTELFPGA yn aros heb ei gosod.
    Sylw: Ar ôl i chi ychwanegu dychweliad 0; i'r swyddogaeth ailraglennu ac ail-grynhoi'r MMD file, bydd yr amgylchedd runtime yn darllen y .aocx file a phennu'r lleoliadau byffer ond ni fydd yn ailraglennu'r FPGA. Rhaid i chi baru delwedd FPGA â'r .aocx file. I wrthdroi'r ymddygiad hwn, dileu dychwelyd 0; o'r swyddogaeth ailraglennu ac ail-grynhoi'r MMD file.

1.6. Hanes Adolygu Dogfennau

Dyddiad Fersiwn Newidiadau
Rhag-17 2017.12.01 • Wedi ailfrandio CL_MEM_HETEROGENEOUS_ALTERA i CL_MEM_HETEROGENEOUS_INTELFPGA.
Rhag-16 2016.12.13 • Wedi ailfrandio CL_CONTEXT_COMPILER_MODE_ALTERA i CL_CONTEXT_COMPILER_MODE_INTELFPGA.

intel - logoCreu Systemau Cof Heterogenaidd yn Intel® FPGA SDK ar gyfer OpenCL
Llwyfannau Custom
intel Creu Systemau Cof Heterogenaidd yn FPGA SDK ar gyfer Platfformau Personol OpenCL - eicon 1 Anfon Adborth
intel Creu Systemau Cof Heterogenaidd yn FPGA SDK ar gyfer Platfformau Custom OpenCL - eicon Fersiwn Ar-lein
intel Creu Systemau Cof Heterogenaidd yn FPGA SDK ar gyfer Platfformau Personol OpenCL - eicon 1 Anfon Adborth
ID: 683654
Fersiwn: 2016.12.13

Dogfennau / Adnoddau

intel Creu Systemau Cof Heterogenaidd yn FPGA SDK ar gyfer Platfformau Custom OpenCL [pdfCyfarwyddiadau
Creu Systemau Cof Heterogenaidd yn FPGA SDK ar gyfer Platfformau Custom OpenCL, Creu Systemau Cof Heterogenaidd, FPGA SDK ar gyfer Platfformau Custom OpenCL

Cyfeiriadau

Gadael sylw

Ni fydd eich cyfeiriad e-bost yn cael ei gyhoeddi. Mae meysydd gofynnol wedi'u marcio *