intel - ໂລໂກ້ການສ້າງລະບົບຄວາມຊົງຈໍາ Heterogeneous ໃນ FPGA SDK ສໍາລັບ OpenCL Custom Platforms
ຄໍາແນະນໍາ

ການສ້າງລະບົບຄວາມຊົງຈໍາທີ່ຮຸນແຮງໃນ Intel® FPGA SDK ສໍາລັບ OpenCL Custom Platforms

ການປະຕິບັດຂອງຫນ່ວຍຄວາມຈໍາ heterogeneous ໃນ Custom Platform ອະນຸຍາດໃຫ້ມີການໂຕ້ຕອບຫນ່ວຍຄວາມຈໍາພາຍນອກ (EMIF) ແບນວິດເພີ່ມເຕີມເຊັ່ນດຽວກັນກັບການເຂົ້າເຖິງຫນ່ວຍຄວາມຈໍາຂະຫນາດໃຫຍ່ແລະໄວຂຶ້ນ. ການປະສົມປະສານຂອງການເຂົ້າເຖິງຫນ່ວຍຄວາມຈໍາ heterogenous ກັບ optimized
OpenCL ™(1)kernel ສາມາດສົ່ງຜົນໃຫ້ມີການປັບປຸງປະສິດທິພາບທີ່ສໍາຄັນສໍາລັບລະບົບ OpenCL ຂອງທ່ານ.
ບັນທຶກແອັບພລິເຄຊັນນີ້ໃຫ້ຄຳແນະນຳໃນການສ້າງລະບົບຄວາມຊົງຈຳທີ່ຫຼາກຫຼາຍໃນເວທີທີ່ກຳນົດເອງເພື່ອໃຊ້ກັບ Intel® FPGA SDK ສຳລັບ OpenCL(2). Intel ສົມມຸດວ່າທ່ານເປັນຜູ້ອອກແບບ FPGA ທີ່ມີປະສົບການທີ່ກໍາລັງພັດທະນາ Custom Platforms ທີ່ມີລະບົບຄວາມຊົງຈໍາທີ່ແຕກຕ່າງກັນ.
ກ່ອນທີ່ຈະສ້າງລະບົບຄວາມຊົງຈໍາທີ່ຫຼາກຫຼາຍຊະນິດ, ໃຫ້ເຮັດຄວາມຄຸ້ນເຄີຍກັບ Intel FPGA SDK ສໍາລັບເອກະສານ OpenCL ທີ່ລະບຸໄວ້ຂ້າງລຸ່ມນີ້.
ຂໍ້ມູນທີ່ກ່ຽວຂ້ອງ

  • Intel FPGA SDK ສໍາລັບຄູ່ມືການດໍາເນີນໂຄງການ OpenCL
  • Intel FPGA SDK ສໍາລັບຄູ່ມືການປະຕິບັດທີ່ດີທີ່ສຸດ OpenCL
  • Intel FPGA SDK ສໍາລັບ OpenCL Arria 10 GX FPGA Development Kit Reference Platform Porting Guide

1.1. ການກວດສອບການທໍາງານຂອງຄະນະກໍາມະການ FPGA ແລະການໂຕ້ຕອບ EMIF

ກວດ​ສອບ​ແຕ່​ລະ​ສ່ວນ​ປະ​ສານ​ຄວາມ​ຊົງ​ຈໍາ​ເປັນ​ອິດ​ສະ​ຫຼະ​ແລະ​ຫຼັງ​ຈາກ​ນັ້ນ instantiate Custom Platform ຂອງ​ທ່ານ​ໂດຍ​ນໍາ​ໃຊ້​ຫນ່ວຍ​ຄວາມ​ຈໍາ​ທົ່ວ​ໂລກ​.

  1. ກວດສອບແຕ່ລະສ່ວນຕິດຕໍ່ຫນ່ວຍຄວາມຈໍາໂດຍໃຊ້ການອອກແບບຮາດແວທີ່ສາມາດທົດສອບຄວາມໄວແລະຄວາມຫມັ້ນຄົງຂອງແຕ່ລະສ່ວນຕິດຕໍ່.
  2. Instantiate Custom Platform ຂອງທ່ານໂດຍໃຊ້ຫນ່ວຍຄວາມຈໍາທົ່ວໂລກ.
    1. ຕົວຢ່າງampຖ້າ​ຫາກ​ວ່າ​ທ່ານ​ມີ​ສາມ​ການ​ໂຕ້​ຕອບ DDR​, ຫນຶ່ງ​ໃນ​ນັ້ນ​ຕ້ອງ​ໄດ້​ຮັບ​ການ​ສ້າງ​ແຜນ​ທີ່​ເປັນ​ຄວາມ​ຊົງ​ຈໍາ heterogeneous​. ໃນ​ກໍ​ລະ​ນີ​ນີ້, ກວດ​ສອບ​ການ​ທໍາ​ງານ​ຂອງ stack OpenCL ກັບ​ແຕ່​ລະ DDR interface ເປັນ​ອິດ​ສະ​ຫຼະ.
      OpenCL ແລະໂລໂກ້ OpenCL ແມ່ນເຄື່ອງໝາຍການຄ້າຂອງ Apple Inc. ທີ່ໃຊ້ໂດຍການອະນຸຍາດຈາກ Khronos Group™ .
    2.  Intel FPGA SDK ສໍາລັບ OpenCL ແມ່ນອີງໃສ່ການເຜີຍແຜ່ Khronos Specification, ແລະໄດ້ຜ່ານຂະບວນການທົດສອບຄວາມສອດຄ່ອງຂອງ Khronos. ສະຖານະການສອດຄ່ອງໃນປະຈຸບັນສາມາດພົບໄດ້ທີ່ www.khronos.org/conformance.

ບໍລິສັດ Intel. ສະຫງວນລິຂະສິດທັງໝົດ. Intel, ໂລໂກ້ Intel, ແລະເຄື່ອງໝາຍ Intel ອື່ນໆແມ່ນເຄື່ອງໝາຍການຄ້າຂອງ Intel Corporation ຫຼືບໍລິສັດຍ່ອຍຂອງມັນ. Intel ຮັບປະກັນປະສິດທິພາບຂອງຜະລິດຕະພັນ FPGA ແລະ semiconductor ຂອງຕົນຕໍ່ກັບຂໍ້ມູນຈໍາເພາະໃນປະຈຸບັນໂດຍສອດຄ່ອງກັບການຮັບປະກັນມາດຕະຖານຂອງ Intel, ແຕ່ສະຫງວນສິດທີ່ຈະປ່ຽນແປງຜະລິດຕະພັນແລະການບໍລິການໄດ້ທຸກເວລາໂດຍບໍ່ມີການແຈ້ງການ. Intel ຖືວ່າບໍ່ມີຄວາມຮັບຜິດຊອບ ຫຼືຄວາມຮັບຜິດຊອບທີ່ເກີດຂຶ້ນຈາກແອັບພລິເຄຊັນ ຫຼືການນຳໃຊ້ຂໍ້ມູນ, ຜະລິດຕະພັນ, ຫຼືບໍລິການໃດໜຶ່ງທີ່ໄດ້ອະທິບາຍໄວ້ໃນນີ້ ຍົກເວັ້ນຕາມທີ່ໄດ້ຕົກລົງຢ່າງຈະແຈ້ງໃນລາຍລັກອັກສອນໂດຍ Intel. ລູກຄ້າ Intel ໄດ້ຮັບຄໍາແນະນໍາໃຫ້ໄດ້ຮັບສະບັບຫລ້າສຸດຂອງຂໍ້ມູນຈໍາເພາະຂອງອຸປະກອນກ່ອນທີ່ຈະອີງໃສ່ຂໍ້ມູນໃດໆທີ່ຈັດພີມມາແລະກ່ອນທີ່ຈະວາງຄໍາສັ່ງສໍາລັບຜະລິດຕະພັນຫຼືການບໍລິການ. *ຊື່ ແລະຍີ່ຫໍ້ອື່ນໆອາດຈະຖືກອ້າງວ່າເປັນຊັບສິນຂອງຄົນອື່ນ.
ISO 9001:2015 ລົງທະບຽນ
ອີກທາງເລືອກ, ຖ້າທ່ານມີອິນເຕີເຟດ DDR ສອງອັນແລະອິນເຕີເຟດອັດຕາຂໍ້ມູນ quad (QDR), ກວດສອບການເຮັດວຽກຂອງ OpenCL stack ຂອງສອງ DDR interfaces ແລະການໂຕ້ຕອບ QDR ເປັນເອກະລາດ.
Intel ແນະນໍາໃຫ້ທ່ານໃຊ້ PCI Express® – (PCIe® -) ຫຼືການອອກແບບສະເພາະ EMIF ເພື່ອທົດສອບການໂຕ້ຕອບຫນ່ວຍຄວາມຈໍາຂອງທ່ານ. ຫຼັງຈາກທີ່ທ່ານກວດສອບວ່າແຕ່ລະສ່ວນຕິດຕໍ່ຫນ່ວຍຄວາມຈໍາເຮັດວຽກໄດ້ແລະການອອກແບບ OpenCL ຂອງທ່ານເຮັດວຽກກັບຊຸດຍ່ອຍຂອງການໂຕ້ຕອບຫນ່ວຍຄວາມຈໍາ, ດໍາເນີນການ.
ເພື່ອສ້າງລະບົບຄວາມຊົງຈໍາ heterogeneous ທີ່ເປັນປະໂຫຍດຢ່າງເຕັມສ່ວນ. 
1.2. ການແກ້ໄຂ board_spec.xml File
ແກ້ໄຂ board_spec.xml file ເພື່ອລະບຸປະເພດຂອງລະບົບຄວາມຊົງຈໍາ heterogeneous ທີ່ມີຢູ່ກັບ OpenCL kernels.
ໃນລະຫວ່າງການລວບລວມ kernel, Intel FPGA SDK ສໍາລັບ OpenCL Offline Compiler ມອບຫມາຍ kernel arguments ໃຫ້ກັບຫນ່ວຍຄວາມຈໍາໂດຍອີງໃສ່ buffer argument ທີ່ທ່ານລະບຸ.
1. ທ່ອງໄປຫາ board_spec.xml file ຢູ່ໃນໄດເລກະທໍລີຮາດແວຂອງ Custom Platform ຂອງທ່ານ.
2. ເປີດ board_spec.xml file ໃນຕົວແກ້ໄຂຂໍ້ຄວາມແລະດັດແປງ XML ຕາມຄວາມເຫມາະສົມ.
ຕົວຢ່າງampຖ້າ​ຫາກ​ວ່າ​ລະ​ບົບ​ຮາດ​ແວ​ຂອງ​ທ່ານ​ມີ​ສອງ​ຄວາມ​ຊົງ​ຈໍາ DDR ເປັນ​ຄ່າ​ເລີ່ມ​ຕົ້ນ globalmemory ແລະ​ສອງ​ທະ​ນາ​ຄານ QDR ທີ່​ທ່ານ​ສ້າງ​ແບບ​ຈໍາ​ລອງ​ເປັນ​ຄວາມ​ຊົງ​ຈໍາ heterogeneous, ປັບ​ປຸງ​ແກ້​ໄຂ​ພາກ​ສ່ວນ​ຄວາມ​ຊົງ​ຈໍາ​ຂອງ board_spec.xml file ເພື່ອ​ໃຫ້​ຄ້າຍ​ຄື​ດັ່ງ​ຕໍ່​ໄປ​ນີ້​:
















1.3. ການຕັ້ງຄ່າຕົວແບ່ງຄວາມຈໍາຫຼາຍໃນ Qsys
ໃນປັດຈຸບັນ, OpenCL Memory Bank Divider ໃນການອອກແບບ Qsys ບໍ່ສະຫນັບສະຫນູນຈໍານວນທະນາຄານຫນ່ວຍຄວາມຈໍາທີ່ບໍ່ມີພະລັງງານ 2, ເຊິ່ງບໍ່ແມ່ນຂໍ້ຈໍາກັດສໍາລັບການຕັ້ງຄ່າທົ່ວໄປ. ຢ່າງໃດກໍ່ຕາມ, ມີສະຖານະການທີ່ຈໍານວນການໂຕ້ຕອບຫນ່ວຍຄວາມຈໍາທີ່ບໍ່ແມ່ນພະລັງງານ 2 ແມ່ນມີຄວາມຈໍາເປັນ. ເພື່ອຮອງຮັບຕົວເຊື່ອມຕໍ່ໜ່ວຍຄວາມຈຳທີ່ບໍ່ມີພະລັງງານ 2 ອັນ, ໃຫ້ໃຊ້ຕົວແບ່ງທະນາຄານຄວາມຈຳ OpenCL ຫຼາຍໆອັນເພື່ອສ້າງລະບົບຄວາມຊົງຈຳທີ່ຫຼາກຫຼາຍດ້ວຍໜ່ວຍຄວາມຈຳທີ່ບໍ່ມີພະລັງງານ 2 ຈຳນວນ. ທ່ານຕ້ອງສ້າງ OpenCL Memory Bank Dividers ຫຼາຍໆຄັ້ງເມື່ອທ່ານມີລະບົບຄວາມຊົງຈໍາທີ່ຫຼາກຫຼາຍທີ່ແທ້ຈິງ. ພິ​ຈາ​ລະ​ນາ​ລະ​ບົບ​ທີ່​ມີ​ການ​ໂຕ້​ຕອບ​ຫນ່ວຍ​ຄວາມ​ຈໍາ DDR ຫນຶ່ງ​ແລະ​ຫນຶ່ງ​ໃນ​ການ​ໂຕ້​ຕອບ​ຫນ່ວຍ​ຄວາມ​ຈໍາ QDR​. ເນື່ອງຈາກວ່າທັງສອງທະນາຄານມີ topologies ຄວາມຊົງຈໍາທີ່ແຕກຕ່າງກັນ, ທ່ານບໍ່ສາມາດລວມພວກມັນພາຍໃຕ້ຫນ່ວຍຄວາມຈໍາທົ່ວໂລກດຽວ.
ຮູບທີ 1. ແຜນວາດຂອງລະບົບຄວາມຈຳສາມທະນາຄານ Heterogeneous
ລະບົບຄວາມຊົງຈໍາທີ່ຫຼາກຫຼາຍຊະນິດນີ້ມີສ່ວນຕິດຕໍ່ຄວາມຈຳ DDR ສອງອັນ ແລະອິນເຕີເຟດໜ່ວຍຄວາມຈຳ QDR ອັນໜຶ່ງ.intel ການສ້າງລະບົບຄວາມຊົງຈໍາ Heterogeneous ໃນ FPGA SDK ສໍາລັບ OpenCL Custom Platforms - fig 1ຖ້າທ່ານກໍາລັງໃຊ້ເວີຊັ່ນ 16.0, 16.0.1, ຫຼື 16.0.2 ຂອງຊອບແວ Intel Quartus® Prime ແລະ Altera SDK ສໍາລັບ OpenCL, OpenCL Memory Bank Divider ຈັດການກັບການລະເບີດຂອງຫນ່ວຍຄວາມຈໍາໃນທົ່ວຂອບເຂດທີ່ຢູ່ຢ່າງບໍ່ຖືກຕ້ອງ. ເພື່ອແກ້ໄຂບັນຫາທີ່ຮູ້ຈັກນີ້, ໃຫ້ເພີ່ມຂົວທໍ່ທີ່ມີຂະຫນາດລະເບີດຂອງ 1 ແລະເຊື່ອມຕໍ່ແມ່ບົດ Avalon ®Memory-Mapped (Avalon-MM) ຂອງຕົນກັບພອດສໍາລອງ OpenCL Memory Bank Divider.
ໝາຍເຫດ:
ບັນຫາທີ່ຮູ້ຈັກນີ້ແມ່ນຖືກແກ້ໄຂໃນຊອບແວ Intel Quartus Prime ແລະ Intel FPGA SDK ສໍາລັບ OpenCL ຮຸ່ນ 16.1.
ຮູບທີ 2. ແຜນວາດຂອງລະບົບຄວາມຊົງຈຳສາມທະນາຄານ Heterogeneous ທີ່ມີຂົວທໍ່. intel ການສ້າງລະບົບຄວາມຊົງຈໍາ Heterogeneous ໃນ FPGA SDK ສໍາລັບ OpenCL Custom Platforms - fig 21.4. ການແກ້ໄຂໂຄງການ Boardtest ແລະລະຫັດໂຮດສໍາລັບການແກ້ໄຂບັນຫາຄວາມຊົງຈໍາ Heterogeneous ຂອງທ່ານ
ໃຊ້ boardtest.cl kernel ທີ່ມາພ້ອມກັບ Intel FPGA SDK ສໍາລັບ OpenCL Custom Platform Toolkit ເພື່ອທົດສອບການທໍາງານແລະການປະຕິບັດຂອງ Custom Platform ຂອງທ່ານ.
ໂຄງການ boardtest ແມ່ນແກ່ນ OpenCL ທີ່ຊ່ວຍໃຫ້ທ່ານສາມາດທົດສອບແບນວິດຂອງເຈົ້າພາບກັບອຸປະກອນ, ແບນວິດຂອງຫນ່ວຍຄວາມຈໍາ, ແລະການເຮັດວຽກທົ່ວໄປຂອງແພລະຕະຟອມທີ່ກໍາຫນົດເອງຂອງທ່ານ.

  1. ທ່ອງໄປຫາ /board/ custom_platform_toolkit/tests/boardtest directory.
  2. ເປີດ boardtest.cl file ໃນຕົວແກ້ໄຂຂໍ້ຄວາມແລະກໍານົດສະຖານທີ່ buffer ໃຫ້ກັບແຕ່ລະ argument ຫນ່ວຍຄວາມຈໍາທົ່ວໂລກ.
    ຕົວຢ່າງample:
    __kernel void
    mem_stream (__global__attribute__((buffer_location(“DDR”))) uint *src, __global __attribute__((buffer_location(“QDR”))) uint *dst, uint arg, uint arg2)
    ທີ່ນີ້, uint *src ຖືກມອບຫມາຍໃຫ້ຫນ່ວຍຄວາມຈໍາ DDR, ແລະ uint *dst ຖືກມອບຫມາຍໃຫ້ຫນ່ວຍຄວາມຈໍາ QDR. board_spec.xml file ກໍານົດລັກສະນະຂອງລະບົບຄວາມຊົງຈໍາທັງສອງ.
  3. ເພື່ອໃຊ້ການແກ້ໄຂຄວາມຊົງຈໍາທີ່ຫຼາກຫຼາຍຂອງທ່ານໃນລະບົບ OpenCL, ແກ້ໄຂລະຫັດໂຮດຂອງທ່ານໂດຍການເພີ່ມທຸງ CL_MEM_HETEROGENEOUS_INTELFPGA ໃສ່ການໂທ clCreateBuffer ຂອງທ່ານ.
    ຕົວຢ່າງample:
    ddatain = clCreateBuffer(ບໍລິບົດ, CL_MEM_READ_WRITE | memflags
    CL_MEM_HETEROGENEOUS_INTELFPGA, sizeof(unsigned) * vectorSize, NULL, &status);
    Intel ແນະນໍາຢ່າງແຂງແຮງໃຫ້ທ່ານຕັ້ງສະຖານທີ່ buffer ເປັນ kernel argument ກ່ອນທີ່ຈະຂຽນ buffer. ເມື່ອໃຊ້ຫນ່ວຍຄວາມຈໍາທົ່ວໂລກອັນດຽວ, ທ່ານສາມາດຂຽນ buffers ບໍ່ວ່າກ່ອນຫຼືຫຼັງຈາກກໍານົດພວກມັນໃຫ້ກັບ kernel argument. ໃນລະບົບຄວາມຊົງຈໍາທີ່ຫຼາກຫຼາຍ, ເຈົ້າພາບກໍານົດສະຖານທີ່ຂອງບັຟເຟີກ່ອນທີ່ຈະຂຽນ buffer. ໃນຄໍາສັບຕ່າງໆອື່ນໆ, ເຈົ້າພາບຈະໂທຫາຟັງຊັນ clSetKernelArgument ກ່ອນທີ່ຈະເອີ້ນຟັງຊັນ clEnqueueWriteBuffer.
    ໃນລະຫັດໂຮດຂອງເຈົ້າ, ເອີ້ນ clCreateBuffer, clSetKernelArg, ແລະ clEnqueueWriteBuffer ໂທຫາຕາມລໍາດັບຕໍ່ໄປນີ້:
    ddatain = clCreateBuffer(ບໍລິບົດ, CL_MEM_READ_WRITE | memflags |
    CL_MEM_HETEROGENEOUS_INTELFPGA, sizeof(unsigned) * vectorSize, NULL, &status);
    … status = clSetKernelArg(kernel[k], 0, sizeof(cl_mem), (void*)&ddatain);
    … status = clEnqueueWriteBuffer(queue, ddatain, CL_FALSE, 0, sizeof(unsigned) * vectorSize,hdatain, 0, NULL, NULL);
    ALTERAOCLSDKROOT/board/custom_platform_toolkit/tests/boardtest/host/memspeed.cpp file ນໍາສະເຫນີຄໍາສັ່ງທີ່ຄ້າຍຄືກັນຂອງການໂທຟັງຊັນເຫຼົ່ານີ້.
  4.  ຫຼັງຈາກທີ່ທ່ານດັດແປງ boardtest.cl file ແລະລະຫັດໂຮດ, ລວບລວມລະຫັດໂຮດແລະ kernel ແລະກວດສອບການເຮັດວຽກຂອງພວກເຂົາ.
    ເມື່ອລວບລວມລະຫັດ kernel ຂອງທ່ານ, ທ່ານຕ້ອງປິດການແຊກແຊງຂອງລະບົບຫນ່ວຍຄວາມຈໍາທັງຫມົດໂດຍການລວມເອົາ -no-interleaving. ທາງເລືອກໃນຄໍາສັ່ງ aoc.

ຂໍ້ມູນທີ່ກ່ຽວຂ້ອງ
ການປິດການນຳໃຊ້ຄວາມຊົງຈຳທົ່ວໂລກແບບ Burst-Interleaving (–no-interleaving )

1.5. ການກວດສອບການທໍາງານຂອງຫນ່ວຍຄວາມຈໍາ Heterogeneous ຂອງທ່ານ ລະບົບ
ເພື່ອຮັບປະກັນວ່າລະບົບຄວາມຈຳທີ່ຕ່າງກັນເຮັດວຽກຢ່າງຖືກຕ້ອງ, ຍົກເລີກການຕັ້ງທຸງ CL_CONTEXT_COMPILER_MODE_INTELFPGA ໃນລະຫັດໂຮດຂອງທ່ານ.
ໃນລະບົບ OpenCL ທີ່ມີໜ່ວຍຄວາມຈຳທີ່ເປັນອັນດຽວກັນ, ທ່ານຕ້ອງເລືອກຕັ້ງທຸງ CL_CONTEXT_COMPILER_MODE_INTELFPGA=3 ໃນລະຫັດໂຮດຂອງທ່ານເພື່ອປິດການອ່ານ .aocx. file ແລະ reprogramming ຂອງ FPGA ໄດ້. ການຕັ້ງຄ່າທຸງ CL_CONTEXT_COMPILER_MODE_INTELFPGA=3 ແມ່ນເປັນປະໂຫຍດໃນເວລາທີ່ເຮັດໃຫ້ກະດານຂອງທ່ານທັນທີເພື່ອກວດສອບການທໍາງານຂອງເວທີທີ່ກໍາຫນົດເອງຂອງທ່ານໂດຍບໍ່ມີການອອກແບບພື້ນເຮືອນແລະກໍານົດພາກພື້ນ LogicLock™.
ດ້ວຍລະບົບຄວາມຊົງຈຳທີ່ຫຼາກຫຼາຍ, ສະພາບແວດລ້ອມຂອງເວລາແລ່ນຕ້ອງອ່ານບ່ອນເກັບຂໍ້ມູນຂອງແຕ່ລະ buffer, ອະທິບາຍໄວ້ໃນ .aocx. file, ເພື່ອກວດສອບການເຮັດວຽກຂອງລະບົບຄວາມຊົງຈໍາ. ຢ່າງໃດກໍຕາມ, ທ່ານອາດຈະຕ້ອງການກວດສອບການທໍາງານຂອງ Custom Platform ຂອງທ່ານໂດຍບໍ່ມີການປະຕິບັດຄຸນນະສົມບັດສຸດທ້າຍຂອງການອອກແບບກະດານ, ເຊັ່ນ: ການອອກແບບພື້ນເຮືອນແລະກໍານົດພາກພື້ນ LogicLock.

  1. ກວດ​ສອບ​ວ່າ​ທຸງ CL_CONTEXT_COMPILER_MODE_INTELFPGA ບໍ່​ໄດ້​ຖືກ​ຕັ້ງ​ຢູ່​ໃນ​ລະ​ຫັດ​ແມ່​ຂ່າຍ​ຂອງ​ທ່ານ.
  2. ທ່ອງ​ໄປ​ຫາ​ຄະ​ນະ / /source/host/mmd directory ຂອງ Custom Platform ຂອງທ່ານ.
  3. ເປີດ acl_pcie_device.cpp ອຸ​ປະ​ກອນ​ການ​ສ້າງ​ແຜນ​ທີ່​ຫນ່ວຍ​ຄວາມ​ຈໍາ (MMD​) file ໃນຕົວແກ້ໄຂຂໍ້ຄວາມ.
  4.  ແກ້ໄຂຟັງຊັນ reprogram ໃນ acl_pcie_device.cpp file ໂດຍການເພີ່ມຜົນຕອບແທນ 0; ເສັ້ນ, ດັ່ງທີ່ສະແດງຂ້າງລຸ່ມນີ້:
    int ACL_PCIE_DEVICE::reprogram(void *data, size_t data_size)
    {
    ກັບຄືນ 0;
    // ສົມມຸດວ່າລົ້ມເຫລວ
    int reprogram_failed = 1;
    // ສົມມຸດວ່າບໍ່ມີ rbf ຫຼື hash ໃນ fpga.bin
    int rbf_or_hash_not_provided = 1;
    // ສົມມຸດຖານແລະການນໍາເຂົ້າການດັດແກ້ hashes ບໍ່ກົງກັນ
    int hash_mismatch = 1;

    }
  5. ລວບລວມ acl_pcie_device.cpp ຄືນໃໝ່ file.
  6. ກວດສອບວ່າທຸງ CL_CONTEXT_COMPILER_MODE_INTELFPGA ຍັງຄົງບໍ່ໄດ້ຕັ້ງ.
    ເອົາໃຈໃສ່: ຫຼັງຈາກທີ່ທ່ານເພີ່ມຜົນຕອບແທນ 0; ກັບຟັງຊັນ reprogram ແລະ recompile MMD file, ສະພາບແວດລ້ອມ runtime ຈະອ່ານ .aocx file ແລະກໍານົດສະຖານທີ່ buffer ແຕ່ຈະບໍ່ reprogram FPGA. ທ່ານຕ້ອງຈັບຄູ່ຮູບ FPGA ດ້ວຍຕົນເອງກັບ .aocx file. ເພື່ອກັບຄືນພຶດຕິກໍານີ້, ເອົາການກັບຄືນ 0; ຈາກຟັງຊັນ reprogram ແລະ recompile MMD file.

1.6. ປະຫວັດການດັດແກ້ເອກະສານ

ວັນທີ ຮຸ່ນ ການປ່ຽນແປງ
ເດືອນທັນວາ-17 2017.12.01 • ປ່ຽນຊື່ໃໝ່ CL_MEM_HETEROGENEOUS_ALTERA ເປັນ CL_MEM_HETEROGENEOUS_INTELFPGA.
ເດືອນທັນວາ-16 2016.12.13 • ປ່ຽນຊື່ໃໝ່ CL_CONTEXT_COMPILER_MODE_ALTERA ເປັນ CL_CONTEXT_COMPILER_MODE_INTELFPGA.

intel - ໂລໂກ້ການສ້າງລະບົບຄວາມຊົງຈໍາ Heterogeneous ໃນ Intel® FPGA SDK ສໍາລັບ OpenCL
ເວທີທີ່ກໍາຫນົດເອງ
intel ການສ້າງລະບົບຄວາມຊົງຈໍາທີ່ຮຸນແຮງໃນ FPGA SDK ສໍາລັບ OpenCL Custom Platforms - icon 1 ສົ່ງຄຳຕິຊົມ
intel ການສ້າງລະບົບຄວາມຊົງຈໍາ Heterogeneous ໃນ FPGA SDK ສໍາລັບ OpenCL Custom Platforms - icon Online Version
intel ການສ້າງລະບົບຄວາມຊົງຈໍາທີ່ຮຸນແຮງໃນ FPGA SDK ສໍາລັບ OpenCL Custom Platforms - icon 1 ສົ່ງຄຳຕິຊົມ
ID: 683654
ລຸ້ນ: 2016.12.13

ເອກະສານ / ຊັບພະຍາກອນ

intel ການສ້າງລະບົບຄວາມຊົງຈໍາ Heterogeneous ໃນ FPGA SDK ສໍາລັບ OpenCL Custom Platforms [pdf] ຄໍາແນະນໍາ
ການສ້າງລະບົບຄວາມຊົງຈໍາ Heterogeneous ໃນ FPGA SDK ສໍາລັບ OpenCL Custom Platforms, ການສ້າງ Heterogeneous Memory Systems, FPGA SDK ສໍາລັບ OpenCL Custom Platforms

ເອກະສານອ້າງອີງ

ອອກຄໍາເຫັນ

ທີ່ຢູ່ອີເມວຂອງເຈົ້າຈະບໍ່ຖືກເຜີຍແຜ່. ຊ່ອງຂໍ້ມູນທີ່ຕ້ອງການຖືກໝາຍໄວ້ *