ஓபன்சிஎல் தனிப்பயன் தளங்களுக்கு FPGA SDK இல் பன்முக நினைவக அமைப்புகளை உருவாக்குதல்
வழிமுறைகள்
Intel® FPGA SDK இல் ஓபன்சிஎல் தனிப்பயன் பிளாட்ஃபார்ம்களுக்கு பன்முக நினைவக அமைப்புகளை உருவாக்குதல்
தனிப்பயன் பிளாட்ஃபார்மில் பன்முக நினைவகத்தை செயல்படுத்துவது அதிக வெளிப்புற நினைவக இடைமுகம் (EMIF) அலைவரிசை மற்றும் பெரிய மற்றும் வேகமான நினைவக அணுகலை அனுமதிக்கிறது. மேம்படுத்தப்பட்ட ஒரு பன்முக நினைவக அணுகல் சேர்க்கை
OpenCL ™(1)கர்னல் உங்கள் OpenCL கணினியில் குறிப்பிடத்தக்க செயல்திறன் மேம்பாடுகளை ஏற்படுத்தும்.
இந்த பயன்பாட்டுக் குறிப்பு OpenCL(2)க்கான Intel® FPGA SDK உடன் பயன்படுத்த தனிப்பயன் பிளாட்ஃபார்மில் பன்முக நினைவக அமைப்புகளை உருவாக்குவதற்கான வழிகாட்டுதலை வழங்குகிறது. நீங்கள் ஒரு அனுபவம் வாய்ந்த FPGA வடிவமைப்பாளர் என்று இன்டெல் கருதுகிறது, அவர் பன்முக நினைவக அமைப்புகளைக் கொண்ட தனிப்பயன் இயங்குதளங்களை உருவாக்குகிறார்.
பன்முக நினைவக அமைப்புகளை உருவாக்குவதற்கு முன், கீழே குறிப்பிடப்பட்டுள்ள OpenCL ஆவணங்களுக்கான Intel FPGA SDK உடன் உங்களைப் பற்றி அறிந்து கொள்ளுங்கள்.
தொடர்புடைய தகவல்
- OpenCL நிரலாக்க வழிகாட்டிக்கான Intel FPGA SDK
- OpenCL சிறந்த நடைமுறைகள் வழிகாட்டிக்கான Intel FPGA SDK
- Intel FPGA SDK for OpenCL Arria 10 GX FPGA டெவலப்மெண்ட் கிட் குறிப்பு இயங்குதள போர்டிங் கையேடு
1.1 FPGA போர்டு மற்றும் EMIF இடைமுகங்களின் செயல்பாட்டைச் சரிபார்க்கிறது
ஒவ்வொரு நினைவக இடைமுகத்தையும் தனித்தனியாகச் சரிபார்த்து, பின்னர் உலகளாவிய நினைவகத்தைப் பயன்படுத்தி உங்கள் தனிப்பயன் இயங்குதளத்தை நிறுவவும்.
- ஒவ்வொரு இடைமுகத்தின் வேகத்தையும் நிலைத்தன்மையையும் சோதிக்கக்கூடிய வன்பொருள் வடிவமைப்புகளைப் பயன்படுத்தி ஒவ்வொரு நினைவக இடைமுகத்தையும் சரிபார்க்கவும்.
- உலகளாவிய நினைவகத்தைப் பயன்படுத்தி உங்கள் தனிப்பயன் இயங்குதளத்தை உடனடியாக உருவாக்கவும்.
- உதாரணமாகample, உங்களிடம் மூன்று DDR இடைமுகங்கள் இருந்தால், அவற்றில் ஒன்று பன்முக நினைவகமாக மாற்றப்பட வேண்டும். இந்த வழக்கில், ஓபன்சிஎல் ஸ்டேக்கின் செயல்பாட்டை ஒவ்வொரு டிடிஆர் இடைமுகத்துடனும் சுயாதீனமாக சரிபார்க்கவும்.
OpenCL மற்றும் OpenCL லோகோ ஆகியவை க்ரோனோஸ் குழுவின் அனுமதியால் பயன்படுத்தப்படும் Apple Inc. இன் வர்த்தக முத்திரைகள். - OpenCL க்கான Intel FPGA SDK வெளியிடப்பட்ட க்ரோனோஸ் விவரக்குறிப்பை அடிப்படையாகக் கொண்டது, மேலும் க்ரோனோஸ் கன்ஃபார்மன்ஸ் டெஸ்டிங் செயல்முறையில் தேர்ச்சி பெற்றுள்ளது. தற்போதைய இணக்க நிலையை இங்கு காணலாம் www.khronos.org/conformance.
- உதாரணமாகample, உங்களிடம் மூன்று DDR இடைமுகங்கள் இருந்தால், அவற்றில் ஒன்று பன்முக நினைவகமாக மாற்றப்பட வேண்டும். இந்த வழக்கில், ஓபன்சிஎல் ஸ்டேக்கின் செயல்பாட்டை ஒவ்வொரு டிடிஆர் இடைமுகத்துடனும் சுயாதீனமாக சரிபார்க்கவும்.
இன்டெல் கார்ப்பரேஷன். அனைத்து உரிமைகளும் பாதுகாக்கப்பட்டவை. இன்டெல், இன்டெல் லோகோ மற்றும் பிற இன்டெல் குறிகள் இன்டெல் கார்ப்பரேஷன் அல்லது அதன் துணை நிறுவனங்களின் வர்த்தக முத்திரைகள். இன்டெல் அதன் FPGA மற்றும் செமிகண்டக்டர் தயாரிப்புகளின் செயல்திறன் இன்டெல்லின் நிலையான உத்தரவாதத்தின்படி தற்போதைய விவரக்குறிப்புகளுக்கு உத்தரவாதம் அளிக்கிறது, ஆனால் எந்த நேரத்திலும் அறிவிப்பு இல்லாமல் எந்த தயாரிப்புகள் மற்றும் சேவைகளில் மாற்றங்களைச் செய்வதற்கான உரிமையை கொண்டுள்ளது. Intel எழுத்துப்பூர்வமாக ஒப்புக்கொண்டதைத் தவிர, இங்கு விவரிக்கப்பட்டுள்ள எந்தவொரு தகவல், தயாரிப்பு அல்லது சேவையின் பயன்பாடு அல்லது பயன்பாட்டிலிருந்து எழும் எந்தப் பொறுப்பு அல்லது பொறுப்பையும் இன்டெல் ஏற்காது. Intel வாடிக்கையாளர்கள் வெளியிடப்பட்ட எந்த தகவலையும் நம்புவதற்கு முன் மற்றும் தயாரிப்புகள் அல்லது சேவைகளுக்கான ஆர்டர்களை வழங்குவதற்கு முன்பு சாதன விவரக்குறிப்புகளின் சமீபத்திய பதிப்பைப் பெற அறிவுறுத்தப்படுகிறார்கள். *பிற பெயர்கள் மற்றும் பிராண்டுகள் மற்றவர்களின் சொத்தாக உரிமை கோரப்படலாம்.
ISO 9001:2015 பதிவு செய்யப்பட்டது
மாற்றாக, உங்களிடம் இரண்டு டிடிஆர் இடைமுகங்கள் மற்றும் ஒரு குவாட் டேட்டா ரேட் (க்யூடிஆர்) இடைமுகம் இருந்தால், இரண்டு டிடிஆர் இடைமுகங்கள் மற்றும் க்யூடிஆர் இடைமுகத்தின் ஓபன்சிஎல் ஸ்டேக்கின் செயல்பாட்டைச் சரிபார்க்கவும்.
உங்கள் நினைவக இடைமுகங்களைச் சோதிக்க PCI Express® – (PCIe® -) அல்லது EMIF- பிரத்தியேக வடிவமைப்புகளைப் பயன்படுத்துமாறு Intel பரிந்துரைக்கிறது. ஒவ்வொரு நினைவக இடைமுகமும் செயல்படுவதையும், உங்கள் OpenCL வடிவமைப்பு நினைவக இடைமுகங்களின் துணைக்குழுவுடன் செயல்படுகிறது என்பதையும் நீங்கள் சரிபார்த்த பிறகு, தொடரவும்
முழு செயல்பாட்டு பன்முக நினைவக அமைப்பை உருவாக்க.
1.2 Board_spec.xml ஐ மாற்றுகிறது File
Board_spec.xml ஐ மாற்றவும் file ஓபன்சிஎல் கர்னல்களுக்குக் கிடைக்கும் பன்முக நினைவக அமைப்புகளின் வகைகளைக் குறிப்பிடவும்.
கர்னல் தொகுப்பின் போது, ஓபன்சிஎல் ஆஃப்லைன் கம்பைலருக்கான Intel FPGA SDK ஆனது, நீங்கள் குறிப்பிடும் தாங்கல் இருப்பிட வாதத்தின் அடிப்படையில் நினைவகத்திற்கு கர்னல் வாதங்களை ஒதுக்குகிறது.
1. board_spec.xml இல் உலாவவும் file உங்கள் தனிப்பயன் இயங்குதளத்தின் வன்பொருள் கோப்பகத்தில்.
2. board_spec.xmlஐத் திறக்கவும் file டெக்ஸ்ட் எடிட்டரில் எக்ஸ்எம்எல்லை அதற்கேற்ப மாற்றவும்.
உதாரணமாகampலெ, உங்கள் வன்பொருள் அமைப்பில் இரண்டு டிடிஆர் நினைவுகள் இயல்புநிலை குளோபல் மெமரி மற்றும் இரண்டு க்யூடிஆர் பேங்க்களை நீங்கள் பன்முக நினைவகமாக மாற்றினால், board_spec.xml இன் நினைவகப் பிரிவுகளை மாற்றவும். file பின்வருவனவற்றை ஒத்திருக்கும்:
1.3 Qsys இல் பல நினைவக வகுப்பிகளை அமைத்தல்
தற்போது, Qsys வடிவமைப்பில் உள்ள OpenCL மெமரி பேங்க் டிவைடர், பவர்-ஆஃப்-2 எண்ணிக்கையிலான நினைவக வங்கிகளை ஆதரிக்காது, இது வழக்கமான உள்ளமைவுகளுக்கு வரம்பு அல்ல. இருப்பினும், பவர்-ஆஃப்-2 எண்ணிக்கையிலான நினைவக இடைமுகங்கள் அவசியமான சூழ்நிலைகள் உள்ளன. பவர்-ஆஃப்-2 எண்ணிக்கையிலான நினைவக இடைமுகங்களுக்கு இடமளிக்க, பல ஓபன்சிஎல் மெமரி பேங்க் டிவைடர்களைப் பயன்படுத்தி பன்முக நினைவக அமைப்புகளை உருவாக்க, பவர்-ஆஃப்-2 எண்ணிக்கையிலான நினைவக வங்கிகள். உங்களிடம் உண்மையான பன்முக நினைவக அமைப்பு இருக்கும்போது பல OpenCL மெமரி பேங்க் டிவைடர்களை உருவாக்க வேண்டும். ஒரு 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 மெமரி பேங்க் டிவைடரின் ஸ்லேவ் போர்ட்டுடன் இணைக்கவும்.
குறிப்பு:
இந்த அறியப்பட்ட சிக்கல் Intel Quartus Prime மென்பொருள் மற்றும் OpenCL பதிப்பு 16.1க்கான Intel FPGA SDK இல் சரி செய்யப்பட்டது.
படம் 2. பைப்லைன் பாலத்துடன் கூடிய மூன்று-வங்கி பன்முக நினைவக அமைப்பின் தொகுதி வரைபடம் 1.4 உங்கள் பன்முக நினைவக தீர்வுக்கான போர்டுடெஸ்ட் நிரல் மற்றும் ஹோஸ்ட் குறியீட்டை மாற்றியமைத்தல்
உங்கள் தனிப்பயன் இயங்குதளத்தின் செயல்பாடு மற்றும் செயல்திறனைச் சோதிக்க OpenCL Custom Platform Toolkitக்கான 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 நினைவகத்திற்கும் ஒதுக்கப்பட்டுள்ளது. Board_spec.xml file இரண்டு நினைவக அமைப்புகளின் பண்புகளை குறிப்பிடுகிறது. - உங்கள் OpenCL அமைப்பில் உங்கள் பன்முக நினைவக தீர்வைப் பயன்படுத்த, உங்கள் clCreateBuffer அழைப்பில் CL_MEM_HETEROGENEOUS_INTELFPGA கொடியைச் சேர்ப்பதன் மூலம் உங்கள் ஹோஸ்ட் குறியீட்டை மாற்றவும்.
உதாரணமாகampலெ:
ddatain = clCreateBuffer(சூழல், CL_MEM_READ_WRITE | memflags
CL_MEM_HETEROGENEOUS_INTELFPGA, அளவு (கையொப்பமிடாதது) * திசையன் அளவு, NULL, &நிலை);
இடையகத்தை எழுதுவதற்கு முன், இடையக இருப்பிடத்தை கர்னல் வாதமாக அமைக்குமாறு இன்டெல் கடுமையாக பரிந்துரைக்கிறது. ஒற்றை உலகளாவிய நினைவகத்தைப் பயன்படுத்தும் போது, இடையகங்களை கர்னல் வாதத்திற்கு ஒதுக்குவதற்கு முன்னும் பின்னும் எழுதலாம். பன்முக நினைவக அமைப்புகளில், புரவலன் இடையகத்தை எழுதுவதற்கு முன் இடையக இருப்பிடத்தை அமைக்கிறது. வேறு வார்த்தைகளில் கூறுவதானால், ஹோஸ்ட் clEnqueueWriteBuffer செயல்பாட்டை அழைப்பதற்கு முன் clSetKernelArgument செயல்பாட்டை அழைக்கும்.
உங்கள் ஹோஸ்ட் குறியீட்டில், பின்வரும் வரிசையில் clCreateBuffer, clSetKernelArg மற்றும் clEnqueueWriteBuffer அழைப்புகளை அழைக்கவும்:
ddatain = clCreateBuffer(சூழல், CL_MEM_READ_WRITE | memflags |
CL_MEM_HETEROGENEOUS_INTELFPGA, அளவு (கையொப்பமிடாதது) * திசையன் அளவு, NULL, &நிலை);
… நிலை = clSetKernelArg(கர்னல்[k], 0, sizeof(cl_mem), (void*)&ddatain);
… நிலை = clEnqueueWriteBuffer(வரிசை, ddatain, CL_FALSE, 0, sizeof(signed) * vectorSize,hdatain, 0, NULL, NULL);
ALTERAOCLSDKROOT/board/custom_platform_toolkit/tests/boardtest/host/memspeed.cpp file இந்த செயல்பாடு அழைப்புகளின் ஒத்த வரிசையை வழங்குகிறது. - நீங்கள் boardtest.cl ஐ மாற்றிய பின் file மற்றும் ஹோஸ்ட் குறியீடு, ஹோஸ்ட் மற்றும் கர்னல் குறியீட்டை தொகுத்து அவற்றின் செயல்பாட்டை சரிபார்க்கவும்.
உங்கள் கர்னல் குறியீட்டை தொகுக்கும்போது, -no-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, நினைவக அமைப்புகளின் செயல்பாட்டை சரிபார்க்க. இருப்பினும், தரைத் திட்டத்தை வடிவமைத்தல் மற்றும் லாஜிக்லாக் பகுதிகளைக் குறிப்பிடுதல் போன்ற பலகை வடிவமைப்பின் இறுதி அம்சங்களைச் செயல்படுத்தாமல் உங்கள் தனிப்பயன் இயங்குதளத்தின் செயல்பாட்டை நீங்கள் சரிபார்க்க விரும்பலாம்.
- உங்கள் ஹோஸ்ட் குறியீட்டில் 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(செல்லம் *தரவு, அளவு_t தரவு_அளவு)
{
திரும்ப 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 சேர்த்த பிறகு; மறு நிரல் செயல்பாட்டிற்கு மற்றும் MMD ஐ மீண்டும் தொகுக்கவும் file, இயக்க நேர சூழல் .aocx ஐப் படிக்கும் file மற்றும் இடையக இருப்பிடங்களை ஒதுக்கவும் ஆனால் FPGA ஐ மறுநிரலாக்கம் செய்யாது. நீங்கள் FPGA படத்தை .aocx உடன் கைமுறையாக பொருத்த வேண்டும் file. இந்த நடத்தையை மாற்ற, ரிட்டர்ன் 0 ஐ அகற்றவும்; மறுநிரல் செயல்பாட்டிலிருந்து மற்றும் 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 இல் பன்முக நினைவக அமைப்புகளை உருவாக்குதல்
தனிப்பயன் தளங்கள்
கருத்தை அனுப்பவும்
ஆன்லைன் பதிப்பு
கருத்தை அனுப்பவும்
ஐடி: 683654
பதிப்பு: 2016.12.13
ஆவணங்கள் / ஆதாரங்கள்
![]() |
இன்டெல் ஓபன்சிஎல் கஸ்டம் பிளாட்ஃபார்ம்களுக்காக FPGA SDK இல் பன்முக நினைவக அமைப்புகளை உருவாக்குகிறது [pdf] வழிமுறைகள் ஓபன்சிஎல் தனிப்பயன் இயங்குதளங்களுக்கான எஃப்பிஜிஏ எஸ்டிகேயில் பன்முக நினைவக அமைப்புகளை உருவாக்குதல், பன்முக நினைவக அமைப்புகளை உருவாக்குதல், ஓபன்சிஎல் தனிப்பயன் இயங்குதளங்களுக்கான எஃப்பிஜிஏ எஸ்டிகே |