intel - logotipoaMemoria sistema heterogeneoak sortzea FPGA SDK-n OpenCL pertsonalizatutako plataformaetarako
Argibideak

Memoria sistema heterogeneoak sortzea Intel® FPGA SDK-n OpenCL pertsonalizatutako plataformaetarako

Plataforma pertsonalizatu batean memoria heterogeneoa ezartzeak kanpoko memoria-interfazea (EMIF) banda zabalera gehiago eta memoria sarbide handiagoak eta azkarragoak ahalbidetzen ditu. Memoria heterogeneoaren sarbide optimizatu batekin konbinatzea
OpenCL ™(1)kernel-ek errendimendu hobekuntza nabarmenak izan ditzake zure OpenCL sistemarentzat.
Aplikazio-ohar honek plataforma pertsonalizatu batean memoria-sistema heterogeneoak sortzeko jarraibideak eskaintzen ditu OpenCL(2) Intel® FPGA SDK-rekin erabiltzeko. Intelek suposatzen du memoria-sistema heterogeneoak dituzten plataforma pertsonalizatuak garatzen ari den FPGA diseinatzaile esperientziaduna zarela.
Memoria-sistema heterogeneoak sortu aurretik, ezagutu behean zehaztutako OpenCL dokumentuetarako Intel FPGA SDK-a.
Lotutako informazioa

  • Intel FPGA SDK OpenCL Programazio Gida
  • OpenCL-rako Intel FPGA SDK Praktika Egokien Gida
  • Intel FPGA SDK-rako OpenCL Arria 10 GX FPGA Development Kit Reference Platform Porting Guide

1.1. FPGA plakaren eta EMIF interfazeen funtzionaltasuna egiaztatzea

Egiaztatu memoria-interfaze bakoitza modu independentean eta, ondoren, instantziatu zure plataforma pertsonalizatua memoria globala erabiliz.

  1. Egiaztatu memoria interfaze bakoitza interfaze bakoitzaren abiadura eta egonkortasuna proba dezaketen hardware diseinuak erabiliz.
  2. Instantziatu zure plataforma pertsonalizatua memoria globala erabiliz.
    1. Adibidezample, hiru DDR interfaze badituzu, horietako bat memoria heterogeneo gisa mapatu behar da. Kasu honetan, egiaztatu OpenCL pilaren funtzionaltasuna DDR interfaze bakoitzarekin modu independentean.
      OpenCL eta OpenCL logotipoa Apple Inc.-ren marka komertzialak dira, Khronos Group™-ren baimenarekin erabiltzen direnak.
    2.  OpenCL-rako Intel FPGA SDK argitaratutako Khronos zehaztapen batean oinarritzen da, eta Khronos-en adostasun-probaren prozesua gainditu du. Uneko adostasun-egoera helbidean aurki daiteke www.khronos.org/conformance.

Intel Corporation. Eskubide guztiak erreserbatuak. Intel, Intel logotipoa eta beste Intel marka Intel Corporation edo bere filialen marka komertzialak dira. Intel-ek bere FPGA eta erdieroaleen produktuen errendimendua bermatzen du uneko zehaztapenekin, Intel-en berme estandarraren arabera, baina edozein unetan edozein produktu eta zerbitzutan aldaketak egiteko eskubidea gordetzen du jakinarazi gabe. Intel-ek ez du bere gain hartzen hemen deskribatutako edozein informazio, produktu edo zerbitzuren aplikazio edo erabileratik eratorritako erantzukizunik edo erantzukizunik, Intel-ek idatziz berariaz hitzartutakoa izan ezik. Intel-eko bezeroei gomendatzen zaie gailuaren zehaztapenen azken bertsioa eskuratzea argitaratutako edozein informaziotan oinarritu aurretik eta produktu edo zerbitzuen eskaerak egin aurretik. *Beste izen eta markak beste batzuen jabetza direla erreklamatu daitezke.
ISO 9001:2015 Erregistratua
Bestela, bi DDR interfaze eta datu-tasa lauko (QDR) interfaze bat badituzu, egiaztatu bi DDR interfazeen OpenCL pilaren eta QDR interfazearen funtzionaltasuna modu independentean.
Intelek gomendatzen du PCI Express® – (PCIe® -) edo EMIF esklusiboak erabiltzea zure memoria interfazeak probatzeko. Memoria-interfaze bakoitza funtzionala dela eta zure OpenCL diseinuak memoria-interfazeen azpimultzo batekin funtzionatzen duela egiaztatu ondoren, jarraitu
memoria-sistema heterogeneo guztiz funtzionala sortzeko. 
1.2. board_spec.xml aldatzea File
Aldatu board_spec.xml file OpenCL nukleoetarako erabilgarri dauden memoria-sistema heterogeneo motak zehazteko.
Nukleoa konpilatzean, Intel FPGA SDK for OpenCL Offline Compiler-ek nukleoaren argumentuak esleitzen dizkio memoria bati zuk zehazten duzun buffer-kokapen argumentuan oinarrituta.
1. Arakatu board_spec.xml atalera file Zure Plataforma pertsonalizatuko hardware direktorioan.
2. Ireki board_spec.xml file testu-editore batean eta horren arabera aldatu XMLa.
Adibidezample, zure hardware-sistemak memoria global lehenetsi gisa bi DDR memoria eta memoria heterogeneo gisa modelatzen dituzun bi QDR banku baditu, aldatu board_spec.xml-ko memoria-atalak. file honako hauen antza izateko:
















1.3. Memoria zatitzaile anitz konfiguratzea Qsys-en
Gaur egun, Qsys diseinuko OpenCL Memory Bank Divider-ek ez du onartzen 2 memoria-banku kopurua ez-potentzia, eta hori ez da konfigurazio tipikoetarako muga. Hala ere, badaude 2 memoria-interfaze kopurua beharrezkoak diren eszenatokiak. Power-of-2-ko memoria-interfaze kopurua egokitzeko, erabili OpenCL Memory Bank Dividers bat baino gehiago memoria-sistema heterogeneoak sortzeko 2-power-of-XNUMX-ko memoria-banku kopuru batekin. OpenCL Memoria Banku Banatzaile bat baino gehiago sortu behar dituzu benetako memoria-sistema heterogeneoa duzunean. Demagun DDR memoria interfaze bat eta QDR memoria interfaze bat dituen sistema bat. Bi bankuek memoria-topologia desberdinak dituztenez, ezin dituzu memoria global bakar batean konbinatu.
1. irudia. Hiru bankuko memoria-sistema heterogeneo baten bloke-diagrama
Memoria-sistema heterogeneo honek bi DDR memoria interfaze eta QDR memoria interfaze bat ditu.intel Memoria sistema heterogeneoak sortzea FPGA SDK-n OpenCL plataforma pertsonalizatuetarako - 1. irudiaIntel Quartus® Prime softwarearen 16.0, 16.0.1 edo 16.0.2 bertsioak eta OpenCLrako Altera SDK erabiltzen ari bazara, OpenCL Memory Bank Divider-ek oker kudeatzen ditu memoria-leherketak helbide-mugetan zehar. Arazo ezagun honi aurre egiteko, gehitu 1-ko leherketa-tamaina duen kanalizazio-zubi bat eta konektatu bere Avalon ®Memory-Mapped (Avalon-MM) maisua OpenCL Memory Bank Divider-en esklabo atakara.
Oharra:
Arazo ezagun hau Intel Quartus Prime softwarean eta OpenCL 16.1 bertsiorako Intel FPGA SDK-n konponduta dago.
2. Irudia. Hiru bankuko memoria-sistema heterogeneo baten bloke-diagrama, kanalizazio-zubi batekin intel Memoria sistema heterogeneoak sortzea FPGA SDK-n OpenCL plataforma pertsonalizatuetarako - 2. irudia1.4. Boardtest programa eta ostalariaren kodea aldatzea zure memoria heterogeneoaren soluziorako
Erabili Intel FPGA SDK for OpenCL Custom Platform Toolkit-arekin datorren boardtest.cl nukleoa zure plataforma pertsonalizatuaren funtzionaltasuna eta errendimendua probatzeko.
Boardtest programa OpenCL kernel bat da, ostalaritik gailuko banda-zabalera, memoria-banda zabalera eta zure Plataforma pertsonalizatuaren funtzionalitate orokorrak probatzeko aukera ematen duena.

  1. Arakatu /board/ custom_platform_toolkit/tests/boardtest direktorioa.
  2. Ireki boardtest.cl file testu-editore batean eta esleitu buffer-kokapen bat memoria globalaren argumentu bakoitzari.
    Adibidezample:
    __kernel hutsa
    mem_stream (__global__attribute__((buffer_location(“DDR”)))) uint *src, __global __attribute__((buffer_location(“QDR”))) uint *dst, uint arg, uint arg2)
    Hemen, uint *src DDR memoriari esleitzen zaio eta uint *dst QDR memoriari. board_spec.xml file bi memoria-sistemen ezaugarriak zehazten ditu.
  3. Zure OpenCL sisteman zure memoria heterogeneoaren soluzioa aprobetxatzeko, aldatu zure ostalari kodea CL_MEM_HETEROGENEOUS_INTELFPGA marka gehituz zure clCreateBuffer deian.
    Adibidezample:
    ddatain = clCreateBuffer (testuingurua, CL_MEM_READ_WRITE | memflags
    CL_MEM_HETEROGENEOUS_INTELFPGA, sizeof(unsigned) * vectorSize, NULL, &status);
    Intelek gomendatzen du buffer-aren kokapena nukleoaren argumentu gisa ezartzea buffera idatzi aurretik. Memoria global bakarra erabiltzean, buffer-ak idatz ditzakezu nukleoko argumentu bati esleitu aurretik edo ondoren. Memoria-sistema heterogeneoetan, ostalariak buffer-aren kokapena ezartzen du buffer-a idatzi aurretik. Beste era batera esanda, ostalariak clSetKernelArgument funtzioari deituko dio clEnqueueWriteBuffer funtzioari deitu aurretik.
    Zure ostalari-kodean, deitu clCreateBuffer, clSetKernelArg eta clEnqueueWriteBuffer deiak hurrenkera honetan:
    ddatain = clCreateBuffer(testuingurua, CL_MEM_READ_WRITE | memflags |
    CL_MEM_HETEROGENEOUS_INTELFPGA, sizeof(unsigned) * vectorSize, NULL, &status);
    … status = clSetKernelArg(kernel[k], 0, sizeof(cl_mem), (void*)&ddatain);
    … egoera = clEnqueueWriteBuffer (ilara, ddatain, CL_FALSE, 0, sizeof (unsigned) * vectorSize, hdatain, 0, NULL, NULL);
    ALTERAOCLSDKROOT/board/custom_platform_toolkit/tests/boardtest/host/memspeed.cpp file funtzio-dei horien ordena antzeko bat aurkezten du.
  4.  Boardtest.cl aldatu ondoren file eta ostalariaren kodea, ostalari eta nukleoaren kodea konpilatu eta haien funtzionaltasuna egiaztatu.
    Zure nukleoaren kodea konpilatzean, memoria-sistema guztien burst-interleaving desgaitu behar duzu –no-interleaving barne. aukera aoc komandoan.

Lotutako informazioa
Memoria globalaren leherketa-tartekatzea desgaitzea (– tartekaturik ez )

1.5. Zure memoria heterogeneoaren funtzionaltasuna egiaztatzea Sistema
Memoria heterogeneoaren sistemak behar bezala funtzionatzen duela ziurtatzeko, kendu CL_CONTEXT_COMPILER_MODE_INTELFPGA marka zure ostalari-kodean.
Memoria homogeneoa duten OpenCL sistemetan, zure ostalari kodean CL_CONTEXT_COMPILER_MODE_INTELFPGA=3 marka ezartzeko aukera izan behar duzu .aocx-ren irakurketa desgaitzeko. file eta FPGAren birprogramazioa. CL_CONTEXT_COMPILER_MODE_INTELFPGA=3 bandera ezartzea erabilgarria da zure taula instantziatzerakoan zure Plataforma pertsonalizatuaren funtzionaltasuna egiaztatzeko oinplanoa diseinatu gabe eta LogicLock™ eskualdeak zehaztu gabe.
Memoria-sistema heterogeneoekin, exekuzio-inguruneak buffer bakoitzaren buffer-kokapenak irakurri behar ditu, .aocx-n deskribatuta. file, memoria sistemen funtzionaltasuna egiaztatzeko. Hala ere, baliteke zure plataforma pertsonalizatuaren funtzionaltasuna egiaztatu nahi izatea plaka-diseinuaren azken ezaugarriak ezarri gabe, hala nola oinplanoa diseinatzea eta LogicLock eskualdeak zehaztu gabe.

  1. Egiaztatu CL_CONTEXT_COMPILER_MODE_INTELFPGA bandera ezarri gabe dagoela zure ostalari-kodean.
  2. Arakatu taulara/ Zure Plataforma pertsonalizatuaren /source/host/mmd direktorioa.
  3. Ireki acl_pcie_device.cpp memoria-mapatutako gailua (MMD) file testu-editore batean.
  4.  Aldatu birprogramatzeko funtzioa acl_pcie_device.cpp-n file 0 itzulera gehituz; lerroa, behean erakusten den moduan:
    int ACL_PCIE_DEVICE::reprogram(void *data, size_t data_size)
    {
    itzuli 0;
    // porrota suposatu
    int reprogram_failed = 1;
    // fpga.bin-en ez dago rbf edo hashik
    int rbf_or_hash_not_provided = 1;
    // suposatu oinarrizko eta inportazio berrikuspen hashak ez datozela bat
    int hash_desmatch = 1;

    }
  5. Berriro konpilatu acl_pcie_device.cpp file.
  6. Egiaztatu CL_CONTEXT_COMPILER_MODE_INTELFPGA bandera ezarri gabe dagoela.
    Arreta: itzulera 0 gehitu ondoren; birprogramatu funtziora eta MMD birkonpilatu file, exekuzio-inguruneak .aocx irakurriko du file eta buffer kokapenak esleitu baina ez du FPGA birprogramatuko. Eskuz lotu behar duzu FPGA irudia .aocx-ekin file. Portaera hori alderantzikatzeko, kendu itzulera 0; birprogramatu funtziotik eta MMD birkonpilatu file.

1.6. Dokumentuen berrikuspen historia

Data Bertsioa Aldaketak
Abenduak 17 2017.12.01 • CL_MEM_HETEROGENEOUS_ALTERA CL_MEM_HETEROGENEOUS_INTELFPGA bihurtu da.
Abenduak 16 2016.12.13 • CL_CONTEXT_COMPILER_MODE_ALTERA CL_CONTEXT_COMPILER_MODE_INTELFPGA bihurtu da.

intel - logotipoaMemoria sistema heterogeneoak sortzea OpenCL-rako Intel® FPGA SDK-n
Plataforma pertsonalizatuak
intel Memoria sistema heterogeneoak sortzea FPGA SDK-n OpenCL Custom Platforms for - ikonoa 1 Bidali Iritzia
intel Memoria sistema heterogeneoak sortzea FPGA SDK-n OpenCL Custom Platforms for - ikonoa Lineako bertsioa
intel Memoria sistema heterogeneoak sortzea FPGA SDK-n OpenCL Custom Platforms for - ikonoa 1 Bidali Iritzia
ID: 683654
Bertsioa: 2016.12.13

Dokumentuak / Baliabideak

intel Memoria Heterogeneoen Sistemak sortzea FPGA SDK-n OpenCL Custom Platforms for [pdfArgibideak
Memoria-sistema heterogeneoak sortzea FPGA SDK-n OpenCL plataforma pertsonalizatuetarako, memoria-sistema heterogeneoak sortzea, FPGA SDK OpenCL pertsonalizatutako plataformaetarako

Erreferentziak

Utzi iruzkin bat

Zure helbide elektronikoa ez da argitaratuko. Beharrezko eremuak markatuta daude *