intel logotipiOpenCL maxsus platformalari uchun FPGA SDK da heterojen xotira tizimlarini yaratish
Ko'rsatmalar

OpenCL maxsus platformalari uchun Intel® FPGA SDK da heterojen xotira tizimlarini yaratish

Maxsus platformada heterojen xotirani amalga oshirish ko'proq tashqi xotira interfeysi (EMIF) tarmoqli kengligi, shuningdek, xotiraga kattaroq va tezroq kirish imkonini beradi. Optimallashtirilgan xotiraga heterojen kirishning kombinatsiyasi
OpenCL ™(1) yadrosi OpenCL tizimingiz uchun sezilarli ish faoliyatini yaxshilashga olib kelishi mumkin.
Ushbu ilova eslatmasi OpenCL(2) uchun Intel® FPGA SDK bilan foydalanish uchun maxsus platformada heterojen xotira tizimlarini yaratish bo'yicha ko'rsatmalar beradi. Intel sizni heterojen xotira tizimlarini o'z ichiga olgan maxsus platformalarni ishlab chiqayotgan tajribali FPGA dizayneri deb hisoblaydi.
Heterojen xotira tizimlarini yaratishdan oldin, quyida ko'rsatilgan OpenCL hujjatlari uchun Intel FPGA SDK bilan tanishib chiqing.
Tegishli ma'lumotlar

  • OpenCL dasturlash qo'llanmasi uchun Intel FPGA SDK
  • OpenCL uchun eng yaxshi amaliyotlar qo'llanmasi uchun Intel FPGA SDK
  • OpenCL Arria 10 GX FPGA ishlab chiqish toʻplami uchun Intel FPGA SDK. Platformani oʻtkazish boʻyicha qoʻllanma

1.1. FPGA kengashi va EMIF interfeyslarining funksionalligini tekshirish

Har bir xotira interfeysini mustaqil ravishda tekshirib ko'ring va keyin global xotiradan foydalangan holda Shaxsiy platformangizni yarating.

  1. Har bir interfeys tezligi va barqarorligini sinab ko'rishi mumkin bo'lgan apparat dizaynlari yordamida har bir xotira interfeysini tekshiring.
  2. Global xotiradan foydalangan holda shaxsiy platformangizni yarating.
    1. Misol uchunampAgar sizda uchta DDR interfeysi bo'lsa, ulardan biri heterojen xotira sifatida ko'rsatilishi kerak. Bunday holda, OpenCL stekining funksionalligini har bir DDR interfeysi bilan mustaqil ravishda tekshiring.
      OpenCL va OpenCL logotipi Apple Inc. kompaniyasining Khronos Group™ ruxsati bilan foydalaniladigan savdo belgilaridir.
    2.  OpenCL uchun Intel FPGA SDK nashr etilgan Khronos spetsifikatsiyasiga asoslangan va Khronos muvofiqlik sinovidan o‘tgan. Joriy muvofiqlik holatini quyidagi manzilda topishingiz mumkin www.khronos.org/conformance.

Intel korporatsiyasi. Barcha huquqlar himoyalangan. Intel, Intel logotipi va boshqa Intel belgilari Intel korporatsiyasi yoki uning sho'ba korxonalarining savdo belgilaridir. Intel o'zining FPGA va yarimo'tkazgich mahsulotlarining Intel standart kafolatiga muvofiq joriy spetsifikatsiyalarga muvofiq ishlashini kafolatlaydi, lekin istalgan vaqtda ogohlantirmasdan istalgan mahsulot va xizmatlarga o'zgartirish kiritish huquqini o'zida saqlab qoladi. Intel tomonidan yozma ravishda kelishilgan hollar bundan mustasno, bu erda tasvirlangan har qanday ma'lumot, mahsulot yoki xizmatdan foydalanish yoki qo'llash natijasida kelib chiqadigan hech qanday javobgarlik yoki javobgarlikni o'z zimmasiga olmaydi. Intel mijozlariga har qanday nashr etilgan ma'lumotlarga tayanishdan va mahsulot yoki xizmatlarga buyurtma berishdan oldin qurilma texnik xususiyatlarining so'nggi versiyasini olish tavsiya etiladi. *Boshqa nomlar va brendlar boshqalarning mulki sifatida da'vo qilinishi mumkin.
ISO 9001: 2015 Ro'yxatdan o'tgan
Shu bilan bir qatorda, agar sizda ikkita DDR interfeysi va bitta to'rtta ma'lumot tezligi (QDR) interfeysi bo'lsa, ikkita DDR interfeysi va QDR interfeysining OpenCL stekining funksionalligini mustaqil ravishda tekshiring.
Intel xotira interfeyslarini sinash uchun PCI Express® – (PCIe® -) yoki EMIF-eksklyuziv dizaynlardan foydalanishni tavsiya qiladi. Har bir xotira interfeysi ishlayotganini va OpenCL dizayningiz xotira interfeyslarining bir qismi bilan ishlashini tekshirgandan so'ng, davom eting.
to'liq ishlaydigan heterojen xotira tizimini yaratish. 
1.2. board_spec.xml faylini o'zgartirish File
board_spec.xml faylini o'zgartiring file OpenCL yadrolari uchun mavjud bo'lgan heterojen xotira tizimlarining turlarini belgilash.
Yadro kompilyatsiyasi vaqtida OpenCL Offline Compiler uchun Intel FPGA SDK siz belgilagan bufer joylashuvi argumenti asosida xotiraga yadro argumentlarini tayinlaydi.
1. board_spec.xml ni ko'rib chiqing file Shaxsiy platformangizning apparat katalogida.
2. board_spec.xml ni oching file matn muharririda va shunga mos ravishda XMLni o'zgartiring.
Misol uchunampAgar sizning apparat tizimingizda standart global xotira sifatida ikkita DDR xotirasi va siz heterojen xotira sifatida modellashtirilgan ikkita QDR banki bo'lsa, board_spec.xml xotira bo'limlarini o'zgartiring. file quyidagilarga o'xshash:
















1.3. Qsys-da bir nechta xotira ajratgichlarini o'rnatish
Hozirda Qsys dizaynidagi OpenCL xotira banki bo'linmasi 2 ta quvvatga ega bo'lmagan xotira banklarini qo'llab-quvvatlamaydi, bu odatiy konfiguratsiyalar uchun cheklov emas. Biroq, 2 ta quvvatga ega bo'lmagan xotira interfeyslari zarur bo'lgan stsenariylar mavjud. 2 ta quvvatga ega bo'lmagan xotira interfeyslarini joylashtirish uchun 2 ta quvvatga ega bo'lmagan xotira banklari bilan heterojen xotira tizimlarini yaratish uchun bir nechta OpenCL xotira banki ajratgichlaridan foydalaning. Haqiqiy heterojen xotira tizimiga ega bo'lsangiz, bir nechta OpenCL xotira banki bo'linuvchilarini yaratishingiz kerak. Bitta DDR xotira interfeysi va bitta QDR xotira interfeysi bo'lgan tizimni ko'rib chiqing. Ikki bank turli xil xotira topologiyalariga ega bo'lgani uchun ularni bitta global xotira ostida birlashtira olmaysiz.
Shakl 1. Uch bankli heterojen xotira tizimining blok diagrammasi
Ushbu heterojen xotira tizimi ikkita DDR xotira interfeysi va bitta QDR xotira interfeysini o'z ichiga oladi.intel OpenCL maxsus platformalari uchun FPGA SDK da heterojen xotira tizimlarini yaratish - 1-rasmAgar siz Intel Quartus® Prime dasturiy ta'minotining 16.0, 16.0.1 yoki 16.0.2 versiyalaridan va OpenCL uchun Altera SDK dan foydalanayotgan bo'lsangiz, OpenCL Memory Bank Divider manzil chegaralari bo'ylab xotira portlashlarini noto'g'ri boshqaradi. Ushbu ma'lum muammoni hal qilish uchun portlash o'lchami 1 bo'lgan quvur liniyasi ko'prigini qo'shing va uning Avalon ®Memory-Mapped (Avalon-MM) master-ni OpenCL Memory Bank Divider-ning tobe portiga ulang.
Eslatma:
Ushbu ma'lum muammo Intel Quartus Prime dasturida va OpenCL 16.1 versiyasi uchun Intel FPGA SDK da tuzatilgan.
Shakl 2. Quvur ko'prigi bilan uch bankli heterojen xotira tizimining blok diagrammasi intel OpenCL maxsus platformalari uchun FPGA SDK da heterojen xotira tizimlarini yaratish - 2-rasm1.4. Heterojen xotira yechimingiz uchun Boardtest dasturi va xost kodini o'zgartirish
Maxsus platformangizning funksionalligi va unumdorligini tekshirish uchun OpenCL Custom Platform Toolkit uchun Intel FPGA SDK bilan birga kelgan boardtest.cl yadrosidan foydalaning.
Bort test dasturi bu OpenCL yadrosi boʻlib, u sizga xost-qurilma oʻtkazish qobiliyatini, xotira oʻtkazish qobiliyatini va Shaxsiy platformangizning umumiy funksionalligini sinab koʻrish imkonini beradi.

  1. ga qarang /board/ custom_platform_toolkit/tests/boardtest katalogi.
  2. boardtest.cl ni oching file matn muharririda va har bir global xotira argumentiga bufer joylashuvini belgilang.
    Misol uchunampga:
    __ yadro bekor
    mem_stream (__global__attribute__((bufer_location(“DDR"))) uint *src, __global __attribute__((bufer_location(“QDR”))) uint *dst, uint arg, uint arg2)
    Bu yerda uint *src DDR xotirasiga, uint *dst esa QDR xotirasiga tayinlangan. board_spec.xml file ikkala xotira tizimining xususiyatlarini belgilaydi.
  3. OpenCL tizimingizda heterojen xotira yechimidan foydalanish uchun clCreateBuffer chaqiruvingizga CL_MEM_HETEROGENEOUS_INTELFPGA bayrog‘ini qo‘shish orqali xost kodingizni o‘zgartiring.
    Misol uchunampga:
    ddatain = clCreateBuffer (kontekst, CL_MEM_READ_WRITE | memflaglar
    CL_MEM_HETEROGENEOUS_INTELFPGA, sizeof(unsigned) * vektorSize, NULL, &holat);
    Intel buferni yozishdan oldin bufer joylashuvini yadro argumenti sifatida belgilashingizni qat'iy tavsiya qiladi. Yagona global xotiradan foydalanganda siz buferlarni yadro argumentiga tayinlashdan oldin yoki keyin yozishingiz mumkin. Geterogen xotira tizimlarida xost buferni yozishdan oldin bufer joyini o'rnatadi. Boshqacha qilib aytganda, xost clEnqueueWriteBuffer funksiyasini chaqirishdan oldin clSetKernelArgument funksiyasini chaqiradi.
    Xost kodingizda clCreateBuffer, clSetKernelArg va clEnqueueWriteBuffer chaqiruvlarini quyidagi tartibda chaqiring:
    ddatain = clCreateBuffer(kontekst, CL_MEM_READ_WRITE | memflags |
    CL_MEM_HETEROGENEOUS_INTELFPGA, sizeof(unsigned) * vektorSize, NULL, &holat);
    … status = clSetKernelArg(yadro [k], 0, sizeof(cl_mem), (void*)&ddatain);
    … status = clEnqueueWriteBuffer(navbat, ddatain, CL_FALSE, 0, sizeof(imzosiz) * vectorSize,hdatain, 0, NULL, NULL);
    ALTERAOCLSDKROOT/board/custom_platform_toolkit/tests/boardtest/host/memspeed.cpp file ushbu funktsiya chaqiruvlarining o'xshash tartibini taqdim etadi.
  4.  boardtest.cl ni o'zgartirganingizdan so'ng file va xost kodini, xost va yadro kodini kompilyatsiya qiling va ularning funksionalligini tekshiring.
    Yadro kodini kompilyatsiya qilishda siz barcha xotira tizimlarining interleavingni o'chirib qo'yishingiz kerak - no-interleaving. aoc buyrug'idagi variant.

Tegishli ma'lumotlar
Global xotiraning portlash-interleavingini o'chirib qo'yish (-interleaving )

1.5. Heterojen xotirangizning funksionalligini tekshirish Tizim
Heterojen xotira tizimining to'g'ri ishlashini ta'minlash uchun xost kodingizdagi CL_CONTEXT_COMPILER_MODE_INTELFPGA bayrog'ini olib tashlang.
Bir hil xotiraga ega OpenCL tizimlarida .aocx o'qishni o'chirish uchun xost kodingizda CL_CONTEXT_COMPILER_MODE_INTELFPGA=3 bayrog'ini o'rnatishingiz kerak. file va FPGA ni qayta dasturlash. CL_CONTEXT_COMPILER_MODE_INTELFPGA=3 bayrog'ini o'rnatish, pol rejasini loyihalashtirmasdan va LogicLock™ hududlarini ko'rsatmasdan, Shaxsiy platformangizning funksionalligini tekshirish uchun taxtangizni imitatsiya qilishda foydalidir.
Geterogen xotira tizimlarida ish vaqti muhiti .aocx da tavsiflangan har bir buferning bufer joylarini o'qishi kerak. file, xotira tizimlarining ishlashini tekshirish uchun. Biroq, siz taxta dizaynining yakuniy xususiyatlarini, masalan, qavat rejasini loyihalash va LogicLock hududlarini belgilashni amalga oshirmasdan, Shaxsiy platformangizning funksionalligini tekshirishni xohlashingiz mumkin.

  1. Xost kodingizda CL_CONTEXT_COMPILER_MODE_INTELFPGA bayrog‘i o‘rnatilmaganligini tekshiring.
  2. Doskaga o'tish/ Maxsus platformangizning /source/host/mmd katalogi.
  3. acl_pcie_device.cpp xotira xaritasi qurilmasini (MMD) oching file matn muharririda.
  4.  acl_pcie_device.cpp da qayta dasturlash funksiyasini o'zgartiring file qaytish 0 qo'shish orqali; qator, quyida ko'rsatilganidek:
    int ACL_PCIE_DEVICE :: qayta dasturlash (yaroqsiz * ma'lumotlar, o'lcham_t ma'lumotlar_sizi)
    {
    qaytish 0;
    // muvaffaqiyatsizlikni taxmin qilish
    int reprogram_failed = 1;
    // fpga.bin da rbf yoki xesh yo'q deb faraz qiling
    int rbf_or_hash_not_provided = 1;
    // asosiy va import qayta ko'rib chiqish xeshlari mos kelmaydi deb faraz qilamiz
    int hash_mismatch = 1;

    }
  5. acl_pcie_device.cpp faylini qayta kompilyatsiya qiling file.
  6. CL_CONTEXT_COMPILER_MODE_INTELFPGA bayrog‘i o‘rnatilmaganligini tekshiring.
    Diqqat: Qo'shganingizdan so'ng 0 qaytaring; qayta dasturlash funktsiyasiga o'ting va MMDni qayta kompilyatsiya qiling file, ish vaqti muhiti .aocx ni o'qiydi file va bufer joylarini tayinlang, lekin FPGA-ni qayta dasturlamaydi. FPGA tasvirini .aocx bilan qo'lda moslashtirishingiz kerak file. Ushbu xatti-harakatni o'zgartirish uchun, qaytish 0 ni olib tashlang; qayta dasturlash funktsiyasidan va MMDni qayta kompilyatsiya qiling file.

1.6. Hujjatlarni qayta ko‘rib chiqish tarixi

Sana Versiya O'zgarishlar
17 dekabr 2017.12.01 • CL_MEM_HETEROGENEOUS_ALTERA dan CL_MEM_HETEROGENEOUS_INTELFPGAga o‘zgartirildi.
16 dekabr 2016.12.13 • CL_CONTEXT_COMPILER_MODE_ALTERA dan CL_CONTEXT_COMPILER_MODE_INTELFPGA ga o‘zgartirildi.

intel logotipiOpenCL uchun Intel® FPGA SDK da heterojen xotira tizimlarini yaratish
Maxsus platformalar
intel OpenCL maxsus platformalari uchun FPGA SDK da heterojen xotira tizimlarini yaratish - 1-belgi Fikr-mulohaza yuborish
intel OpenCL maxsus platformalari uchun FPGA SDK da heterojen xotira tizimlarini yaratish - icon Onlayn versiya
intel OpenCL maxsus platformalari uchun FPGA SDK da heterojen xotira tizimlarini yaratish - 1-belgi Fikr-mulohaza yuborish
ID: 683654
Versiya: 2016.12.13

Hujjatlar / manbalar

intel OpenCL maxsus platformalari uchun FPGA SDK da heterojen xotira tizimlarini yaratish [pdf] Ko'rsatmalar
OpenCL maxsus platformalari uchun FPGA SDK da heterojen xotira tizimlarini yaratish, heterojen xotira tizimlarini yaratish, OpenCL maxsus platformalari uchun FPGA SDK

Ma'lumotnomalar

Fikr qoldiring

Sizning elektron pochta manzilingiz nashr etilmaydi. Majburiy maydonlar belgilangan *