Intel - logoṢiṣẹda Awọn ọna Iranti Oniruuru ni FPGA SDK fun Awọn iru ẹrọ Aṣa Aṣa OpenCL
Awọn ilana

Ṣiṣẹda Awọn ọna Iranti Oniruuru ni Intel® FPGA SDK fun Ṣiṣii Awọn iru ẹrọ Aṣa aṣa

Imuse ti iranti orisirisi ni Platform Aṣa ngbanilaaye fun wiwo bandiwidi ita gbangba diẹ sii (EMIF) bakanna bi awọn iraye si iranti nla ati yiyara. Ijọpọ ti iraye si iranti orisirisi pẹlu iṣapeye
OpenCL ™(1) ekuro le ja si awọn ilọsiwaju iṣẹ ṣiṣe pataki fun eto OpenCL rẹ.
Akọsilẹ ohun elo yii n pese itọnisọna lori ṣiṣẹda awọn eto iranti oniruuru ni Platform Aṣa fun lilo pẹlu Intel® FPGA SDK fun OpenCL(2). Intel dawọle pe o jẹ oluṣeto FPGA ti o ni iriri ti o n ṣe agbekalẹ Awọn iru ẹrọ Aṣa ti o ni awọn eto iranti oniruuru.
Ṣaaju ṣiṣẹda awọn eto iranti oriṣiriṣi, mọ ararẹ mọ pẹlu Intel FPGA SDK fun awọn iwe aṣẹ OpenCL ti a sọ ni isalẹ.
Alaye ti o jọmọ

  • Intel FPGA SDK fun OpenCL Eto Itọsọna
  • Intel FPGA SDK fun OpenCL Itọsọna Awọn adaṣe Ti o dara julọ
  • Intel FPGA SDK fun ṢiiCL Arria 10 GX FPGA Idagbasoke Ohun elo Itọkasi Itọkasi Platform

1.1. Ṣiṣayẹwo Iṣiṣẹ ti Igbimọ FPGA ati Awọn atọkun EMIF

Ṣe idaniloju wiwo iranti kọọkan ni ominira ati lẹhinna ṣe imudara Platform Aṣa rẹ nipa lilo iranti agbaye.

  1. Daju ni wiwo iranti kọọkan nipa lilo awọn apẹrẹ ohun elo ti o le ṣe idanwo iyara ati iduroṣinṣin ti wiwo kọọkan.
  2. Ṣe agbekalẹ Platform Aṣa rẹ ni lilo iranti agbaye.
    1. Fun example, ti o ba ti o ba ni meta DDR atọkun, ọkan ninu wọn gbọdọ wa ni ya aworan bi orisirisi awọn iranti. Ni ọran yii, rii daju iṣẹ ṣiṣe ti akopọ OpenCL pẹlu wiwo DDR kọọkan ni ominira.
      OpenCL ati aami OpenCL jẹ aami-iṣowo ti Apple Inc. ti a lo nipasẹ igbanilaaye ti Khronos Group™.
    2.  Intel FPGA SDK fun OpenCL da lori Ikọye Khronos ti a tẹjade, ati pe o ti kọja Ilana Igbeyewo Iṣeduro Khronos. Ipo ibamu lọwọlọwọ le rii ni www.khronos.org/conformance.

Intel Corporation. Gbogbo awọn ẹtọ wa ni ipamọ. Intel, aami Intel, ati awọn ami Intel miiran jẹ aami-išowo ti Intel Corporation tabi awọn oniranlọwọ rẹ. Intel ṣe atilẹyin iṣẹ ti FPGA rẹ ati awọn ọja semikondokito si awọn pato lọwọlọwọ ni ibamu pẹlu atilẹyin ọja boṣewa Intel, ṣugbọn ni ẹtọ lati ṣe awọn ayipada si eyikeyi awọn ọja ati iṣẹ nigbakugba laisi akiyesi. Intel ko gba ojuse tabi layabiliti ti o dide lati inu ohun elo tabi lilo eyikeyi alaye, ọja, tabi iṣẹ ti a ṣalaye ninu rẹ ayafi bi a ti gba ni kikun si kikọ nipasẹ Intel. A gba awọn alabara Intel nimọran lati gba ẹya tuntun ti awọn pato ẹrọ ṣaaju gbigbekele eyikeyi alaye ti a tẹjade ati ṣaaju gbigbe awọn aṣẹ fun awọn ọja tabi awọn iṣẹ. * Awọn orukọ miiran ati awọn ami iyasọtọ le jẹ ẹtọ bi ohun-ini ti awọn miiran.
ISO 9001: 2015 forukọsilẹ
Ni omiiran, ti o ba ni awọn atọkun DDR meji ati wiwo oṣuwọn quad kan (QDR), rii daju iṣẹ ṣiṣe ti akopọ OpenCL ti wiwo DDR meji ati wiwo QDR ni ominira.
Intel ṣeduro pe ki o lo PCI Express® – (PCIe® -) tabi awọn aṣa iyasọtọ EMIF lati ṣe idanwo awọn atọkun iranti rẹ. Lẹhin ti o rii daju pe wiwo iranti kọọkan n ṣiṣẹ ati pe apẹrẹ OpenCL rẹ ṣiṣẹ pẹlu ipin ti awọn atọkun iranti, tẹsiwaju
lati ṣẹda eto iranti oniruuru iṣẹ-ṣiṣe ni kikun. 
1.2. Títúnṣe board_spec.xml File
Ṣe atunṣe board_spec.xml file lati pato awọn orisi ti orisirisi awọn ọna šiše iranti ti o wa si OpenCL kernels.
Lakoko iṣakojọpọ ekuro, Intel FPGA SDK fun OpenCL Aisinipo Alapilẹṣẹ fi awọn ariyanjiyan ekuro si iranti ti o da lori ariyanjiyan ipo ifipamọ ti o pato.
1. Kiri si board_spec.xml file ni awọn hardware liana ti rẹ Aṣa Platform.
2. Ṣii board_spec.xml file ninu olootu ọrọ ki o tun ṣe XML ni ibamu.
Fun example, ti o ba ti rẹ hardware eto ni o ni meji DDR ìrántí bi aiyipada globalmemory ati meji QDR bèbe ti o awoṣe bi orisirisi awọn iranti, yi awọn iranti ruju ti board_spec.xml file lati jọ awọn wọnyi:
















1.3. Ṣiṣeto Awọn Dividers Iranti pupọ ni Qsys
Lọwọlọwọ, Olupin Bank Memory OpenCL ninu apẹrẹ Qsys ko ṣe atilẹyin nọmba ti kii-agbara-2 ti awọn banki iranti, eyiti kii ṣe aropin fun awọn atunto aṣoju. Sibẹsibẹ, awọn oju iṣẹlẹ wa nibiti nọmba ti kii ṣe agbara-ti-2 ti awọn atọkun iranti jẹ pataki. Lati gba nọmba ti kii-agbara-ti-2 nọmba awọn atọkun iranti, lo ọpọlọpọ OpenCL Memory Bank Dividers lati ṣẹda awọn eto iranti oniruuru pẹlu nọmba ti kii-agbara-2 ti awọn banki iranti. O gbọdọ ṣẹda ọpọ OpenCL Memory Bank Dividers nigbati o ba ni eto iranti oniruuru otitọ. Ro a eto pẹlu ọkan DDR iranti ni wiwo ati ki o kan QDR iranti ni wiwo. Nitoripe awọn ile-ifowopamọ mejeeji ni awọn topologies iranti oriṣiriṣi, o ko le darapọ wọn labẹ iranti agbaye kan.
olusin 1. Àkọsílẹ aworan atọka ti a Mẹta-Bank Heterogeneous Memory System
Eto iranti oniruuru yii ni awọn atọkun iranti DDR meji ati wiwo iranti QDR kan.intel Ṣiṣẹda Awọn ọna Iranti Oniruuru ni FPGA SDK fun Awọn iru ẹrọ Aṣa Ṣiṣii CL - ọpọtọ 1Ti o ba nlo ẹya 16.0, 16.0.1, tabi 16.0.2 ti sọfitiwia Intel Quartus® Prime ati Altera SDK fun OpenCL, OpenCL Memory Bank Divider ti ko tọ mu iranti nwaye kọja awọn aala adirẹsi. Lati ṣiṣẹ ni ayika ọrọ ti a mọ yii, ṣafikun afara opo gigun ti epo pẹlu iwọn ti nwaye ti 1 ki o so Avalon ®Memory-Mapped (Avalon-MM) oluwa rẹ si ibudo ẹrú ti OpenCL Memory Bank Divider.
Akiyesi:
Ọrọ ti a mọ yii ti wa titi ninu sọfitiwia Intel Quartus Prime ati Intel FPGA SDK fun ẹya OpenCL 16.1.
olusin 2. Àkọsílẹ aworan atọka ti a Mẹta-Bank Heterogeneous Memory System pẹlu kan Pipeline Bridge intel Ṣiṣẹda Awọn ọna Iranti Oniruuru ni FPGA SDK fun Awọn iru ẹrọ Aṣa Ṣiṣii CL - ọpọtọ 21.4. Iyipada awọn Boardtest Eto ati awọn Gbalejo koodu fun awọn orisirisi rẹ Memory Solusan
Lo ekuro boardtest.cl ti o wa pẹlu Intel FPGA SDK fun OpenCL Custom Platform Toolkit lati ṣe idanwo iṣẹ ṣiṣe ati iṣẹ ti Platform Aṣa rẹ.
Eto igbimọ igbimọ jẹ ekuro OpenCL ti o fun ọ laaye lati ṣe idanwo bandiwidi ogun-si-ẹrọ, bandiwidi iranti, ati iṣẹ ṣiṣe gbogbogbo ti Platform Aṣa rẹ.

  1. Kiri si awọn / ọkọ/ custom_platform_toolkit/igbeyewo/boardtest liana.
  2. Ṣii boardtest.cl file ni olootu ọrọ ati fi ipo ifipamọ si ariyanjiyan iranti agbaye kọọkan.
    Fun example:
    __ekuro ofo
    mem_stream (__ agbaye__ abuda __ ((ibi_ipo (“DDR”))) uint *src, __agbaye __ abuda__((buffer_location(“QDR”))) uint *dst, uint arg, uint arg2)
    Nibi, uint * src ti wa ni sọtọ si DDR iranti, ati uint * dst ti wa ni sọtọ si QDR iranti. Board_spec.xml file pato awọn abuda kan ti awọn mejeeji iranti awọn ọna šiše.
  3. Lati lo ojutu iranti oniruuru rẹ ninu eto OpenCL rẹ, ṣe atunṣe koodu agbalejo rẹ nipa fifi asia CL_MEM_HETEROGENEOUS_INTELFPGA kun si ipe clCreateBuffer rẹ.
    Fun example:
    ddatain = clCreateBuffer (ọrọ, CL_MEM_READ_WRITE | memflags
    CL_MEM_HETEROGENEOUS_INTELFPGA, iwọn (ti ko fowo si) * vectorSize, NULL, & ipo);
    Intel ṣeduro ni pataki pe ki o ṣeto ipo ifipamọ bi ariyanjiyan ekuro ṣaaju kikọ ifipamọ naa. Nigbati o ba nlo iranti agbaye kan, o le kọ awọn ifipamọ boya ṣaaju tabi lẹhin fifi wọn si ariyanjiyan ekuro kan. Ninu awọn eto iranti oriṣiriṣi, agbalejo ṣeto ipo ifipamọ ṣaaju kikọ ifipamọ naa. Ni awọn ọrọ miiran, agbalejo yoo pe iṣẹ clSetKernelArgument ṣaaju pipe iṣẹ clEnqueueWriteBuffer.
    Ninu koodu agbalejo rẹ, pe clCreateBuffer, clSetKernelArg, ati clEnqueueWriteBuffer awọn ipe ni ilana atẹle:
    ddatain = clCreateBuffer (ọrọ, CL_MEM_READ_WRITE | memflags |
    CL_MEM_HETEROGENEOUS_INTELFPGA, iwọn (ti ko fowo si) * vectorSize, NULL, & ipo);
    … ipo = clSetKernelArg (kernel [k], 0, sizeof(cl_mem), (asan*)&ddatain);
    … ipo = clEnqueueWriteBuffer(isinyi, ddatain, CL_FALSE, 0, sizeof(ti ko fowo si) * vectorSize,hdatain, 0, NULL, NULL);
    Awọn ALTERAOCLSDKROOT/board/custom_platform_toolkit/ tests/boardtest/host/memspeed.cpp file iloju a iru ibere ti awọn wọnyi iṣẹ awọn ipe.
  4.  Lẹhin ti o yipada boardtest.cl file ati koodu ogun, ṣajọ ogun ati koodu ekuro ati rii daju iṣẹ ṣiṣe wọn.
    Nigbati o ba n ṣajọ koodu ekuro rẹ, o gbọdọ mu fifọ-interleaving ti gbogbo awọn eto iranti ṣiṣẹ nipa pẹlu –no-interleaving aṣayan ni aoc pipaṣẹ.

Alaye ti o jọmọ
Pa Burst-Interleaving of Global Memory (–ko si interleaving )

1.5. Ṣiṣayẹwo Iṣiṣẹ ti Iranti Oniruuru Rẹ Eto
Lati rii daju pe eto iranti oniruuru ṣiṣẹ daradara, yọọ asia CL_CONTEXT_COMPILER_MODE_INTELFPGA ninu koodu agbalejo rẹ.
Ninu awọn eto OpenCL pẹlu iranti isokan, o ni lati yan lati ṣeto asia CL_CONTEXT_COMPILER_MODE_INTELFPGA=3 ninu koodu agbalejo rẹ lati mu ki kika .aocx jẹ file ati awọn reprogramming ti FPGA. Ṣiṣeto asia CL_CONTEXT_COMPILER_MODE_INTELFPGA=3 wulo nigbati o ba nfi igbimọ rẹ mulẹ lati rii daju iṣẹ ṣiṣe ti Platform Aṣa rẹ laisi ṣiṣe apẹrẹ ilẹ-ilẹ ati pato awọn agbegbe LogicLock™.
Pẹlu awọn eto iranti oriṣiriṣi, agbegbe asiko asiko gbọdọ ka awọn ipo ifipamọ ti ifipamọ kọọkan, ti a ṣalaye ninu .aocx file, lati mọ daju awọn eto iranti 'iṣẹ. Bibẹẹkọ, o le fẹ lati rii daju iṣẹ ṣiṣe ti Platform Aṣa rẹ laisi imuse awọn ẹya ikẹhin ti apẹrẹ igbimọ, gẹgẹbi ṣiṣe apẹrẹ ilẹ-ilẹ ati asọye awọn agbegbe LogicLock.

  1. Daju pe asia CL_CONTEXT_COMPILER_MODE_INTELFPGA ko ti ṣeto ninu koodu agbalejo rẹ.
  2. Lọ kiri si igbimọ / /orisun/ogun/mmd liana ti Aṣa Platform rẹ.
  3. Ṣii ohun elo acl_pcie_device.cpp ti a ṣe iranti iranti (MMD) file ni a ọrọ olootu.
  4.  Ṣe atunṣe iṣẹ atunṣe ni acl_pcie_device.cpp file nipa fifi a pada 0; laini, bi a ṣe han ni isalẹ:
    int ACL_PCIE_DEVICE :: atunṣe (asan * data, size_t data_size)
    {
    pada 0;
    // ro ikuna
    int reprogram_failed = 1;
    // ro ko si rbf tabi hash ni fpga.bin
    int rbf_or_hash_not_provided = 1;
    // ro mimọ ati gbe wọle hashes àtúnyẹwò ko baramu
    int hash_mismatch = 1;

    }
  5. Ṣe igbasilẹ acl_pcie_device.cpp file.
  6. Daju pe asia CL_CONTEXT_COMPILER_MODE_INTELFPGA wa ni aito.
    Ifarabalẹ: Lẹhin ti o ṣafikun pada 0; si iṣẹ atunto ati ṣajọ MMD naa file, agbegbe asiko asiko yoo ka .aocx file ki o si yan awọn ipo ifipamọ ṣugbọn kii yoo tun ṣe FPGA naa. O gbọdọ fi ọwọ mu aworan FPGA pẹlu .aocx file. Lati yi ihuwasi pada, yọ pada 0; lati iṣẹ atunto ati ṣajọ MMD naa file.

1.6. Iwe Itan Atunyẹwo

Ọjọ Ẹya Awọn iyipada
Oṣu kejila-17 2017.12.01 • Tun ṣe CL_MEM_HETEROGENEOUS_ALTERA si CL_MEM_HETEROGENEOUS_INTELFPGA.
Oṣu kejila-16 2016.12.13 • Tun ṣe CL_CONTEXT_COMPILER_MODE_ALTERA si CL_CONTEXT_COMPILER_MODE_INTELFPGA.

Intel - logoṢiṣẹda Awọn ọna Iranti Oniruuru ni Intel® FPGA SDK fun OpenCL
Awọn iru ẹrọ aṣa
intel Ṣiṣẹda Awọn ọna Iranti Oniruuru ni FPGA SDK fun Awọn iru ẹrọ Aṣa Aṣa Ṣiṣii - aami 1 Fi esi ranṣẹ
intel Ṣiṣẹda orisirisi awọn ọna iranti ni FPGA SDK fun OpenCL Custom Platforms - aami Idajọ Ayelujara
intel Ṣiṣẹda Awọn ọna Iranti Oniruuru ni FPGA SDK fun Awọn iru ẹrọ Aṣa Aṣa Ṣiṣii - aami 1 Fi esi ranṣẹ
ID: 683654
Ẹya: 2016.12.13

Awọn iwe aṣẹ / Awọn orisun

intel Ṣiṣẹda Awọn ọna Iranti Oniruuru ni FPGA SDK fun Awọn iru ẹrọ Aṣa Aṣa OpenCL [pdf] Awọn ilana
Ṣiṣẹda Awọn ọna Iranti Oniruuru ni FPGA SDK fun Awọn iru ẹrọ Aṣa Aṣa Ṣiṣii, Ṣiṣẹda Awọn ọna Iranti Oniruuru, FPGA SDK fun Awọn iru ẹrọ Aṣa ṢiṣiiCL

Awọn itọkasi

Fi ọrọìwòye

Adirẹsi imeeli rẹ kii yoo ṣe atẹjade. Awọn aaye ti a beere ti wa ni samisi *