OpenCL අභිරුචි වේදිකා සඳහා FPGA SDK හි විෂම මතක පද්ධති නිර්මාණය කිරීම
උපදෙස්
OpenCL Custom Platforms සඳහා Intel® FPGA SDK හි විෂම මතක පද්ධති නිර්මාණය කිරීම
අභිරුචි වේදිකාවක විෂමජාතීය මතකය ක්රියාත්මක කිරීම මඟින් වැඩි බාහිර මතක අතුරුමුහුණත් (EMIF) කලාප පළලක් මෙන්ම විශාල හා වේගවත් මතක ප්රවේශයන් සඳහා ඉඩ ලබා දේ. ප්රශස්ත එකක් සමඟ විෂම මතක ප්රවේශයේ සංයෝජනය
OpenCL ™(1)kernel මඟින් ඔබේ OpenCL පද්ධතිය සඳහා සැලකිය යුතු කාර්ය සාධනයක් වැඩිදියුණු කළ හැක.
මෙම යෙදුම් සටහන OpenCL(2) සඳහා Intel® FPGA SDK සමඟ භාවිතා කිරීම සඳහා අභිරුචි වේදිකාවක විෂමජාතීය මතක පද්ධති නිර්මාණය කිරීම සඳහා මාර්ගෝපදේශ සපයයි. Intel උපකල්පනය කරන්නේ ඔබ විෂම මතක පද්ධති අඩංගු Custom Platforms සංවර්ධනය කරන පළපුරුදු FPGA නිර්මාණකරුවෙකු බවයි.
විෂමජාතීය මතක පද්ධති නිර්මාණය කිරීමට පෙර, පහත දක්වා ඇති OpenCL ලේඛන සඳහා Intel FPGA SDK සමඟ ඔබව හුරු කරවන්න.
අදාළ තොරතුරු
- OpenCL ක්රමලේඛන මාර්ගෝපදේශය සඳහා Intel FPGA SDK
- OpenCL හොඳම භාවිතයන් මාර්ගෝපදේශය සඳහා Intel FPGA SDK
- OpenCL Arria 10 GX FPGA සංවර්ධන කට්ටල සඳහා Intel FPGA SDK යොමු වේදිකා වරාය මාර්ගෝපදේශය
1.1 FPGA මණ්ඩලයේ සහ EMIF අතුරුමුහුණත්වල ක්රියාකාරීත්වය තහවුරු කිරීම
සෑම මතක අතුරුමුහුණතක්ම ස්වාධීනව සත්යාපනය කර ගෝලීය මතකය භාවිතයෙන් ඔබේ අභිරුචි වේදිකාව ක්ෂණිකව කරන්න.
- එක් එක් අතුරු මුහුණතෙහි වේගය සහ ස්ථායීතාවය පරීක්ෂා කළ හැකි දෘඪාංග සැලසුම් භාවිතයෙන් එක් එක් මතක අතුරුමුහුණත තහවුරු කරන්න.
- ගෝලීය මතකය භාවිතයෙන් ඔබේ අභිරුචි වේදිකාව ක්ෂණික කරන්න.
- උදාහරණයක් ලෙසample, ඔබට DDR අතුරුමුහුණත් තුනක් තිබේ නම්, ඒවායින් එකක් විෂම මතකය ලෙස සිතියම්ගත කළ යුතුය. මෙම අවස්ථාවේදී, එක් එක් DDR අතුරුමුහුණත සමඟ OpenCL තොගයේ ක්රියාකාරීත්වය ස්වාධීනව තහවුරු කරන්න.
OpenCL සහ OpenCL ලාංඡනය Khronos Group™ හි අවසරය ඇති Apple Inc. හි වෙළඳ ලකුණු වේ. - OpenCL සඳහා Intel FPGA SDK ප්රකාශිත Khronos පිරිවිතර මත පදනම් වී ඇති අතර, Khronos අනුකූලතා පරීක්ෂණ ක්රියාවලිය සමත් වී ඇත. වත්මන් අනුකූලතා තත්ත්වය සොයා ගත හැක www.khronos.org/conformance.
- උදාහරණයක් ලෙසample, ඔබට DDR අතුරුමුහුණත් තුනක් තිබේ නම්, ඒවායින් එකක් විෂම මතකය ලෙස සිතියම්ගත කළ යුතුය. මෙම අවස්ථාවේදී, එක් එක් DDR අතුරුමුහුණත සමඟ OpenCL තොගයේ ක්රියාකාරීත්වය ස්වාධීනව තහවුරු කරන්න.
ඉන්ටෙල් සංස්ථාව. සියලුම හිමිකම් ඇවිරිණි. Intel, Intel ලාංඡනය සහ අනෙකුත් Intel සලකුණු Intel Corporation හෝ එහි අනුබද්ධිත සමාගම්වල වෙළඳ ලකුණු වේ. Intel හි FPGA සහ අර්ධ සන්නායක නිෂ්පාදනවල ක්රියාකාරීත්වය Intel හි සම්මත වගකීම් වලට අනුකූලව වත්මන් පිරිවිතරයන්ට අනුකූලව සහතික කරයි, නමුත් දැනුම්දීමකින් තොරව ඕනෑම වේලාවක ඕනෑම භාණ්ඩයක් සහ සේවාවක් වෙනස් කිරීමට අයිතිය රඳවා තබා ගනී. Intel විසින් ලිඛිතව ලිඛිතව එකඟ වී ඇති පරිදි හැර මෙහි විස්තර කර ඇති ඕනෑම තොරතුරක්, නිෂ්පාදනයක් හෝ සේවාවක් යෙදුමෙන් හෝ භාවිතා කිරීමෙන් පැන නගින කිසිදු වගකීමක් හෝ වගකීමක් Intel භාර නොගනී. Intel පාරිභෝගිකයින්ට ඕනෑම ප්රකාශිත තොරතුරු මත විශ්වාසය තැබීමට පෙර සහ නිෂ්පාදන හෝ සේවා සඳහා ඇණවුම් කිරීමට පෙර උපාංග පිරිවිතරවල නවතම අනුවාදය ලබා ගැනීමට උපදෙස් දෙනු ලැබේ. *අනෙකුත් නම් සහ වෙළඳ නාම වෙනත් අයගේ දේපළ ලෙස හිමිකම් පෑමට හැකිය.
ISO 9001:2015 ලියාපදිංචි කර ඇත
විකල්පයක් ලෙස, ඔබට DDR අතුරුමුහුණත් දෙකක් සහ එක් quad data rate (QDR) අතුරුමුහුණතක් තිබේ නම්, DDR අතුරුමුහුණත් දෙකෙහි OpenCL තොගයේ සහ QDR අතුරු මුහුණතේ ස්වාධීනව ක්රියාකාරීත්වය තහවුරු කරන්න.
ඔබේ මතක අතුරුමුහුණත් පරීක්ෂා කිරීමට PCI Express® – (PCIe® -) හෝ EMIF-විශේෂිත මෝස්තර භාවිතා කරන ලෙස Intel නිර්දේශ කරයි. ඔබ සෑම මතක අතුරුමුහුණතක්ම ක්රියාකාරී බව සහ ඔබේ OpenCL සැලසුම මතක අතුරුමුහුණත්වල උප කුලකයක් සමඟ ක්රියා කරන බව තහවුරු කරගත් පසු, ඉදිරියට යන්න
පූර්ණ ක්රියාකාරී විෂමජාතීය මතක පද්ධතියක් නිර්මාණය කිරීමට.
1.2 board_spec.xml වෙනස් කරමින් File
board_spec.xml වෙනස් කරන්න file OpenCL කර්නල් සඳහා ලබා ගත හැකි විෂමජාතීය මතක පද්ධති වර්ග සඳහන් කිරීමට.
කර්නල් සම්පාදනය අතරතුර, OpenCL Offline Compiler සඳහා Intel FPGA SDK ඔබ සඳහන් කරන බෆර ස්ථාන තර්කය මත පදනම්ව මතකයකට කර්නල් තර්ක ලබා දෙයි.
1. board_spec.xml වෙත බ්රවුස් කරන්න file ඔබගේ අභිරුචි වේදිකාවේ දෘඪාංග නාමාවලියෙහි.
2. board_spec.xml විවෘත කරන්න file පෙළ සංස්කාරකයක සහ ඒ අනුව XML වෙනස් කරන්න.
උදාහරණයක් ලෙසample, ඔබේ දෘඪාංග පද්ධතියට DDR මතකයන් දෙකක් default globalmemory ලෙස සහ QDR බැංකු දෙකක් ඔබ විෂම මතකය ලෙස ආදර්ශයට ගෙන තිබේ නම්, board_spec.xml හි මතක කොටස් වෙනස් කරන්න. file පහත සඳහන් දේට සමාන වීමට:
1.3 Qsys හි බහු මතක බෙදුම් සැකසීම
දැනට, Qsys සැලසුමේ ඇති OpenCL Memory Bank Divider, සාමාන්ය වින්යාසයන් සඳහා සීමාවක් නොවන මතක බැංකු 2ක බලය නොවන සංඛ්යාවට සහය නොදක්වයි. කෙසේ වෙතත්, 2-බල නොවන මතක අතුරුමුහුණත් සංඛ්යාවක් අවශ්ය වන අවස්ථා තිබේ. 2-බල නොවන මතක අතුරුමුහුණත් සංඛ්යාවකට ඉඩ සැලසීමට, බහුවිධ OpenCL Memory Bank Dividers භාවිතා කර 2-බල නොවන මතක බැංකු සංඛ්යාවක් සහිත විෂම මතක පද්ධති නිර්මාණය කරන්න. ඔබට සැබෑ විෂම මතක පද්ධතියක් ඇති විට ඔබ OpenCL Memory Bank Dividers කිහිපයක් සෑදිය යුතුය. එක් DDR මතක අතුරුමුහුණතක් සහ එක් QDR මතක අතුරු මුහුණතක් සහිත පද්ධතියක් සලකා බලන්න. බැංකු දෙක එකිනෙකට වෙනස් මතක ස්ථලක ඇති නිසා, ඔබට ඒවා තනි ගෝලීය මතකයක් යටතේ ඒකාබද්ධ කළ නොහැක.
රූපය 1. බැංකු තුනේ විෂම මතක පද්ධතියක බ්ලොක් රූප සටහන
මෙම විෂම මතක පද්ධතියේ DDR මතක අතුරුමුහුණත් දෙකක් සහ QDR මතක අතුරුමුහුණතක් අඩංගු වේ.ඔබ Intel Quartus® Prime මෘදුකාංගයේ 16.0, 16.0.1, හෝ 16.0.2 අනුවාදය සහ OpenCL සඳහා Altera SDK භාවිතා කරන්නේ නම්, OpenCL Memory Bank Divider ලිපින මායිම් හරහා මතක පිපිරීම් වැරදි ලෙස හසුරුවයි. මෙම දන්නා ගැටලුව විසඳා ගැනීමට, 1 පිපිරුම් ප්රමාණයකින් යුත් නල මාර්ග පාලමක් එක් කර එහි Avalon ®Memory-Mapped (Avalon-MM) මාස්ටර් OpenCL Memory Bank Divider's slave port වෙත සම්බන්ධ කරන්න.
සටහන:
මෙම දන්නා ගැටළුව Intel Quartus Prime මෘදුකාංගයේ සහ OpenCL අනුවාදය 16.1 සඳහා Intel FPGA SDK හි විසඳා ඇත.
රූපය 2. නල මාර්ග පාලමක් සහිත බැංකු තුනේ විෂම මතක පද්ධතියක බ්ලොක් රූප සටහන 1.4 ඔබගේ විෂම මතක විසඳුම සඳහා Boardtest වැඩසටහන සහ ධාරක කේතය වෙනස් කිරීම
ඔබේ අභිරුචි වේදිකාවේ ක්රියාකාරීත්වය සහ ක්රියාකාරීත්වය පරීක්ෂා කිරීමට OpenCL Custom Platform මෙවලම් කට්ටලය සඳහා Intel FPGA SDK සමඟ එන boardtest.cl කර්නලය භාවිතා කරන්න.
බෝඩ්ටෙස්ට් වැඩසටහන යනු OpenCL කර්නලයක් වන අතර එය සත්කාරක-උපාංග කලාප පළල, මතක කලාප පළල සහ ඔබේ අභිරුචි වේදිකාවේ සාමාන්ය ක්රියාකාරීත්වය පරීක්ෂා කිරීමට ඉඩ සලසයි.
- වෙත බ්රවුස් කරන්න /board/ custom_platform_toolkit/tests/boardtest නාමාවලිය.
- Boardtest.cl විවෘත කරන්න file පෙළ සංස්කාරකයක සහ එක් එක් ගෝලීය මතක තර්කයට බෆර ස්ථානයක් පවරන්න.
උදාහරණයක් ලෙසampලෙ:
__ කර්නලය හිස්
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 මතකයට ද පවරා ඇත. පුවරුව_spec.xml file මතක පද්ධති දෙකෙහිම ලක්ෂණ නියම කරයි. - ඔබේ OpenCL පද්ධතිය තුළ ඔබේ විෂම මතක විසඳුම භාවිතා කිරීමට, ඔබේ clCreateBuffer ඇමතුමට CL_MEM_HETEROGENEOUS_INTELFPGA ධජය එක් කිරීමෙන් ඔබේ සත්කාරක කේතය වෙනස් කරන්න.
උදාහරණයක් ලෙසampලෙ:
ddatain = clCreateBuffer(සන්දර්භය, CL_MEM_READ_WRITE | memflags
CL_MEM_HETEROGENEOUS_INTELFPGA, sizeof(අත්සන් නොකළ) * vectorSize, NULL, &තත්ත්වය);
බෆරය ලිවීමට පෙර ඔබ බෆර ස්ථානය කර්නල් තර්කයක් ලෙස සකසන ලෙස Intel තරයේ නිර්දේශ කරයි. තනි ගෝලීය මතකයක් භාවිතා කරන විට, ඔබට බෆර කර්නල් තර්කයකට පැවරීමට පෙර හෝ පසුව ලිවිය හැක. විෂමජාතීය මතක පද්ධතිවල, ධාරකය බෆරය ලිවීමට පෙර බෆර ස්ථානය සකසයි. වෙනත් වචන වලින් කිවහොත්, clEnqueueWriteBuffer ශ්රිතය ඇමතීමට පෙර ධාරකය clSetKernelArgument ශ්රිතය අමතනු ඇත.
ඔබගේ සත්කාරක කේතය තුළ, clCreateBuffer, clSetKernelArg, සහ clEnqueueWriteBuffer ඇමතුම් පහත අනුපිළිවෙලින් ඉල්ලා සිටින්න:
ddatain = clCreateBuffer(සන්දර්භය, CL_MEM_READ_WRITE | memflags |
CL_MEM_HETEROGENEOUS_INTELFPGA, sizeof(අත්සන් නොකළ) * vectorSize, NULL, &තත්ත්වය);
… තත්ත්වය = clSetKernelArg(kernel[k], 0, sizeof(cl_mem), (void*)&ddatain);
… තත්ත්වය = clEnqueueWriteBuffer(පෝලිමේ, ddatain, CL_FALSE, 0, sizeof(අත්සන් නොකළ) * vectorSize,hdatain, 0, NULL, NULL);
ALTERAOCLSDKROOT/board/custom_platform_toolkit/tests/boardtest/host/memspeed.cpp file මෙම ශ්රිත ඇමතුම්වල සමාන අනුපිළිවෙලක් ඉදිරිපත් කරයි. - ඔබ boardtest.cl වෙනස් කළ පසු file සහ ධාරක කේතය, සත්කාරක සහ කර්නල් කේතය සම්පාදනය කර ඒවායේ ක්රියාකාරීත්වය තහවුරු කරන්න.
ඔබගේ කර්නල් කේතය සම්පාදනය කරන විට, -no-interleaving ඇතුලත් කිරීමෙන් සියලුම මතක පද්ධතිවල burst-interleaving අක්රිය කළ යුතුය. aoc විධානයේ විකල්පය.
අදාළ තොරතුරු
ගෝලීය මතකයේ පිපිරීම-අන්තර්ගත කිරීම අක්රීය කිරීම (-අන්තර්ගත වීම නැත )
1.5 ඔබේ විෂම මතකයේ ක්රියාකාරීත්වය තහවුරු කිරීම පද්ධතිය
විෂමජාතීය මතක පද්ධතිය නිසියාකාරව ක්රියාත්මක වන බව සහතික කිරීම සඳහා, CL_CONTEXT_COMPILER_MODE_INTELFPGA ධජය ඔබේ සත්කාරක කේතයෙන් ඉවත් කරන්න.
සමජාතීය මතකයක් සහිත OpenCL පද්ධතිවල, .aocx හි කියවීම අක්රිය කිරීමට ඔබේ සත්කාරක කේතයේ CL_CONTEXT_COMPILER_MODE_INTELFPGA=3 ධජය සැකසීමට ඔබට විකල්පයක් ඇත. file සහ FPGA හි නැවත වැඩසටහන්කරණය. CL_CONTEXT_COMPILER_MODE_INTELFPGA=3 ධජය සැකසීම, බිම් සැලැස්ම සැලසුම් නොකර LogicLock™ කලාප සඳහන් නොකර ඔබේ අභිරුචි වේදිකාවේ ක්රියාකාරීත්වය සත්යාපනය කිරීමට ඔබේ පුවරුව ක්රියාත්මක කිරීමේදී ප්රයෝජනවත් වේ.
විෂමජාතීය මතක පද්ධති සමඟින්, ධාවන කාල පරිසරය .aocx හි විස්තර කර ඇති එක් එක් බෆරයේ බෆර ස්ථාන කියවිය යුතුය. file, මතක පද්ධති ක්රියාකාරීත්වය තහවුරු කිරීමට. කෙසේ වෙතත්, බිම් සැලැස්ම සැලසුම් කිරීම සහ LogicLock කලාප සඳහන් කිරීම වැනි පුවරු සැලසුමේ අවසාන විශේෂාංග ක්රියාත්මක නොකර ඔබේ අභිරුචි වේදිකාවේ ක්රියාකාරීත්වය සත්යාපනය කිරීමට ඔබට අවශ්ය විය හැකිය.
- CL_CONTEXT_COMPILER_MODE_INTELFPGA ධජය ඔබේ සත්කාරක කේතය තුළ සකසා නොමැති බව තහවුරු කරන්න.
- පුවරුව වෙත බ්රවුස් කරන්න/ ඔබගේ අභිරුචි වේදිකාවේ /source/host/mmd නාමාවලිය.
- acl_pcie_device.cpp මතක සිතියම්ගත උපාංගය (MMD) විවෘත කරන්න file පෙළ සංස්කාරකයක.
- acl_pcie_device.cpp හි නැවත වැඩසටහන් ශ්රිතය වෙනස් කරන්න file ආපසු 0 එකතු කිරීමෙන්; පහත දැක්වෙන පරිදි රේඛාව:
int ACL_PCIE_DEVICE::reprogram(හිස් *දත්ත, size_t data_size)
{
ආපසු 0;
// අසාර්ථක යැයි උපකල්පනය කරන්න
int reprogram_failed = 1;
// fpga.bin හි rbf හෝ hash නැතැයි උපකල්පනය කරන්න
int rbf_or_hash_not_provided = 1;
// පදනම සහ ආනයන සංශෝධන හැෂ් නොගැලපේ
int hash_mmatch = 1;
…
} - acl_pcie_device.cpp නැවත සම්පාදනය කරන්න file.
- CL_CONTEXT_COMPILER_MODE_INTELFPGA ධජය සකසා නොමැති බව තහවුරු කරන්න.
අවධානය: ඔබ ආපසු 0 එකතු කළ පසු; reprogram කාර්යයට සහ MMD නැවත සම්පාදනය කරන්න file, ධාවන කාල පරිසරය .aocx කියවනු ඇත file සහ බෆර ස්ථාන පවරන නමුත් FPGA නැවත ක්රමලේඛනය නොකරයි. ඔබ FPGA රූපය .aocx සමඟ අතින් ගැලපිය යුතුය file. මෙම හැසිරීම ආපසු හැරවීමට, ආපසු 0 ඉවත් කරන්න; reprogram ශ්රිතයෙන් සහ 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 දක්වා නැවත සන්නාමගත කරන ලදී. |
OpenCL සඳහා Intel® FPGA SDK හි විෂම මතක පද්ධති නිර්මාණය කිරීම
අභිරුචි වේදිකා
ප්රතිපෝෂණ යවන්න
මාර්ගගත සංස්කරණය
ප්රතිපෝෂණ යවන්න
ID: 683654
අනුවාදය: 2016.12.13
ලේඛන / සම්පත්
![]() |
intel OpenCL Custom Platforms සඳහා FPGA SDK හි විෂම මතක පද්ධති නිර්මාණය කිරීම [pdf] උපදෙස් OpenCL අභිරුචි වේදිකා සඳහා FPGA SDK හි විෂම මතක පද්ධති නිර්මාණය කිරීම, විෂම මතක පද්ධති නිර්මාණය කිරීම, OpenCL අභිරුචි වේදිකා සඳහා FPGA SDK |