ഇന്റൽ - ലോഗോഓപ്പൺസിഎൽ കസ്റ്റം പ്ലാറ്റ്ഫോമുകൾക്കായി FPGA SDK-യിൽ വൈവിധ്യമാർന്ന മെമ്മറി സിസ്റ്റങ്ങൾ സൃഷ്ടിക്കുന്നു
നിർദ്ദേശങ്ങൾ

OpenCL കസ്റ്റം പ്ലാറ്റ്‌ഫോമുകൾക്കായി Intel® FPGA SDK-ൽ വൈവിധ്യമാർന്ന മെമ്മറി സിസ്റ്റങ്ങൾ സൃഷ്ടിക്കുന്നു

ഒരു ഇഷ്‌ടാനുസൃത പ്ലാറ്റ്‌ഫോമിൽ വൈവിധ്യമാർന്ന മെമ്മറി നടപ്പിലാക്കുന്നത് കൂടുതൽ ബാഹ്യ മെമ്മറി ഇന്റർഫേസ് (EMIF) ബാൻഡ്‌വിഡ്ത്തും വലുതും വേഗതയേറിയതുമായ മെമ്മറി ആക്‌സസ്സുകളും അനുവദിക്കുന്നു. ഒപ്റ്റിമൈസ് ചെയ്തിട്ടുള്ള വൈവിധ്യമാർന്ന മെമ്മറി ആക്‌സസിന്റെ സംയോജനം
ഓപ്പൺസിഎൽ ™(1)കേർണലിന് നിങ്ങളുടെ ഓപ്പൺസിഎൽ സിസ്റ്റത്തിന് കാര്യമായ പ്രകടനം മെച്ചപ്പെടുത്താൻ കഴിയും.
OpenCL(2)-നുള്ള Intel® FPGA SDK-നൊപ്പം ഉപയോഗിക്കുന്നതിനായി ഒരു ഇഷ്‌ടാനുസൃത പ്ലാറ്റ്‌ഫോമിൽ വൈവിധ്യമാർന്ന മെമ്മറി സിസ്റ്റങ്ങൾ സൃഷ്ടിക്കുന്നതിനുള്ള മാർഗ്ഗനിർദ്ദേശം ഈ ആപ്ലിക്കേഷൻ കുറിപ്പ് നൽകുന്നു. വൈവിധ്യമാർന്ന മെമ്മറി സിസ്റ്റങ്ങൾ ഉൾക്കൊള്ളുന്ന ഇഷ്‌ടാനുസൃത പ്ലാറ്റ്‌ഫോമുകൾ വികസിപ്പിക്കുന്ന പരിചയസമ്പന്നനായ ഒരു FPGA ഡിസൈനർ നിങ്ങളാണെന്ന് ഇന്റൽ അനുമാനിക്കുന്നു.
വൈവിധ്യമാർന്ന മെമ്മറി സിസ്റ്റങ്ങൾ സൃഷ്ടിക്കുന്നതിന് മുമ്പ്, ചുവടെ വ്യക്തമാക്കിയിരിക്കുന്ന OpenCL ഡോക്യുമെന്റുകൾക്കായി Intel FPGA SDK പരിചയപ്പെടുക.
ബന്ധപ്പെട്ട വിവരങ്ങൾ

  • OpenCL പ്രോഗ്രാമിംഗ് ഗൈഡിനായി Intel FPGA SDK
  • OpenCL മികച്ച പ്രാക്ടീസ് ഗൈഡിനായി Intel FPGA SDK
  • OpenCL Arria 10 GX FPGA ഡെവലപ്‌മെന്റ് കിറ്റ് റഫറൻസ് പ്ലാറ്റ്‌ഫോം പോർട്ടിംഗ് ഗൈഡിനായുള്ള ഇന്റൽ FPGA SDK

1.1 FPGA ബോർഡിന്റെയും EMIF ഇന്റർഫേസുകളുടെയും പ്രവർത്തനക്ഷമത പരിശോധിക്കുന്നു

ഓരോ മെമ്മറി ഇന്റർഫേസും സ്വതന്ത്രമായി പരിശോധിച്ച് ഗ്ലോബൽ മെമ്മറി ഉപയോഗിച്ച് നിങ്ങളുടെ ഇഷ്‌ടാനുസൃത പ്ലാറ്റ്‌ഫോം തൽക്ഷണം ചെയ്യുക.

  1. ഓരോ ഇന്റർഫേസിന്റെയും വേഗതയും സ്ഥിരതയും പരിശോധിക്കാൻ കഴിയുന്ന ഹാർഡ്‌വെയർ ഡിസൈനുകൾ ഉപയോഗിച്ച് ഓരോ മെമ്മറി ഇന്റർഫേസും പരിശോധിക്കുക.
  2. ഗ്ലോബൽ മെമ്മറി ഉപയോഗിച്ച് നിങ്ങളുടെ ഇഷ്‌ടാനുസൃത പ്ലാറ്റ്‌ഫോം തൽക്ഷണം ചെയ്യുക.
    1. ഉദാample, നിങ്ങൾക്ക് മൂന്ന് DDR ഇന്റർഫേസുകൾ ഉണ്ടെങ്കിൽ, അവയിലൊന്ന് വൈവിധ്യമാർന്ന മെമ്മറിയായി മാപ്പ് ചെയ്തിരിക്കണം. ഈ സാഹചര്യത്തിൽ, ഓരോ ഡിഡിആർ ഇന്റർഫേസുമായും സ്വതന്ത്രമായി OpenCL സ്റ്റാക്കിന്റെ പ്രവർത്തനക്ഷമത പരിശോധിക്കുക.
      OpenCL ഉം OpenCL ലോഗോയും ക്രോണോസ് ഗ്രൂപ്പിന്റെ അനുമതിയോടെ ഉപയോഗിക്കുന്ന Apple Inc. ന്റെ വ്യാപാരമുദ്രകളാണ്.
    2.  OpenCL-നുള്ള Intel FPGA SDK, പ്രസിദ്ധീകരിച്ച ക്രോണോസ് സ്പെസിഫിക്കേഷനെ അടിസ്ഥാനമാക്കിയുള്ളതാണ്, കൂടാതെ ക്രോണോസ് കൺഫോർമൻസ് ടെസ്റ്റിംഗ് പ്രോസസ് പാസായി. നിലവിലെ അനുരൂപ നില കണ്ടെത്താനാകും www.khronos.org/conformance.

ഇന്റൽ കോർപ്പറേഷൻ. എല്ലാ അവകാശങ്ങളും നിക്ഷിപ്തം. ഇന്റൽ, ഇന്റൽ ലോഗോ, മറ്റ് ഇന്റൽ മാർക്കുകൾ എന്നിവ ഇന്റൽ കോർപ്പറേഷന്റെയോ അതിന്റെ അനുബന്ധ സ്ഥാപനങ്ങളുടെയോ വ്യാപാരമുദ്രകളാണ്. ഇന്റലിന്റെ സ്റ്റാൻഡേർഡ് വാറന്റിക്ക് അനുസൃതമായി അതിന്റെ FPGA, അർദ്ധചാലക ഉൽപ്പന്നങ്ങളുടെ പ്രകടനം നിലവിലെ സ്പെസിഫിക്കേഷനുകളിലേക്ക് Intel വാറന്റ് ചെയ്യുന്നു, എന്നാൽ അറിയിപ്പ് കൂടാതെ ഏത് സമയത്തും ഏത് ഉൽപ്പന്നങ്ങളിലും സേവനങ്ങളിലും മാറ്റങ്ങൾ വരുത്താനുള്ള അവകാശം നിക്ഷിപ്തമാണ്. Intel രേഖാമൂലം രേഖാമൂലം സമ്മതിച്ചതല്ലാതെ ഇവിടെ വിവരിച്ചിരിക്കുന്ന ഏതെങ്കിലും വിവരങ്ങളുടെയോ ഉൽപ്പന്നത്തിന്റെയോ സേവനത്തിന്റെയോ ആപ്ലിക്കേഷനിൽ നിന്നോ ഉപയോഗത്തിൽ നിന്നോ ഉണ്ടാകുന്ന ഉത്തരവാദിത്തമോ ബാധ്യതയോ Intel ഏറ്റെടുക്കുന്നില്ല. ഏതെങ്കിലും പ്രസിദ്ധീകരിച്ച വിവരങ്ങളെ ആശ്രയിക്കുന്നതിന് മുമ്പും ഉൽപ്പന്നങ്ങൾക്കോ ​​സേവനങ്ങൾക്കോ ​​​​ഓർഡറുകൾ നൽകുന്നതിനുമുമ്പ് ഉപകരണ സവിശേഷതകളുടെ ഏറ്റവും പുതിയ പതിപ്പ് നേടുന്നതിന് ഇന്റൽ ഉപഭോക്താക്കളോട് നിർദ്ദേശിക്കുന്നു. *മറ്റ് പേരുകളും ബ്രാൻഡുകളും മറ്റുള്ളവരുടെ സ്വത്തായി അവകാശപ്പെടാം.
ISO 9001:2015 രജിസ്റ്റർ ചെയ്തു
പകരമായി, നിങ്ങൾക്ക് രണ്ട് ഡിഡിആർ ഇന്റർഫേസുകളും ഒരു ക്വാഡ് ഡാറ്റ റേറ്റ് (ക്യുഡിആർ) ഇന്റർഫേസും ഉണ്ടെങ്കിൽ, രണ്ട് ഡിഡിആർ ഇന്റർഫേസുകളുടെയും ക്യുഡിആർ ഇന്റർഫേസിന്റെയും ഓപ്പൺസിഎൽ സ്റ്റാക്കിന്റെ പ്രവർത്തനക്ഷമത പരിശോധിക്കുക.
നിങ്ങളുടെ മെമ്മറി ഇന്റർഫേസുകൾ പരിശോധിക്കാൻ PCI Express® – (PCIe® -) അല്ലെങ്കിൽ EMIF-എക്‌സ്‌ക്ലൂസീവ് ഡിസൈനുകൾ ഉപയോഗിക്കാൻ ഇന്റൽ ശുപാർശ ചെയ്യുന്നു. ഓരോ മെമ്മറി ഇന്റർഫേസും പ്രവർത്തനക്ഷമമാണെന്നും നിങ്ങളുടെ ഓപ്പൺസിഎൽ ഡിസൈൻ മെമ്മറി ഇന്റർഫേസുകളുടെ ഒരു ഉപവിഭാഗത്തിൽ പ്രവർത്തിക്കുന്നുണ്ടെന്നും നിങ്ങൾ പരിശോധിച്ചുറപ്പിച്ച ശേഷം, തുടരുക
പൂർണ്ണമായും പ്രവർത്തനക്ഷമമായ വൈവിധ്യമാർന്ന മെമ്മറി സിസ്റ്റം സൃഷ്ടിക്കാൻ. 
1.2 Board_spec.xml പരിഷ്ക്കരിക്കുന്നു File
board_spec.xml പരിഷ്‌ക്കരിക്കുക file OpenCL കേർണലുകൾക്ക് ലഭ്യമായ വൈവിധ്യമാർന്ന മെമ്മറി സിസ്റ്റങ്ങളുടെ തരങ്ങൾ വ്യക്തമാക്കുന്നതിന്.
കേർണൽ കംപൈലേഷൻ സമയത്ത്, OpenCL ഓഫ്‌ലൈൻ കംപൈലറിനായുള്ള Intel FPGA SDK, നിങ്ങൾ വ്യക്തമാക്കുന്ന ബഫർ ലൊക്കേഷൻ ആർഗ്യുമെന്റിനെ അടിസ്ഥാനമാക്കി ഒരു മെമ്മറിയിലേക്ക് കേർണൽ ആർഗ്യുമെന്റുകൾ നൽകുന്നു.
1. board_spec.xml-ലേക്ക് ബ്രൗസ് ചെയ്യുക file നിങ്ങളുടെ ഇഷ്‌ടാനുസൃത പ്ലാറ്റ്‌ഫോമിന്റെ ഹാർഡ്‌വെയർ ഡയറക്‌ടറിയിൽ.
2. board_spec.xml തുറക്കുക file ഒരു ടെക്സ്റ്റ് എഡിറ്ററിൽ, അതിനനുസരിച്ച് XML പരിഷ്ക്കരിക്കുക.
ഉദാampനിങ്ങളുടെ ഹാർഡ്‌വെയർ സിസ്റ്റത്തിൽ ഡിഫോൾട്ട് ഗ്ലോബൽമെമ്മറിയായി രണ്ട് ഡിഡിആർ മെമ്മറികളും നിങ്ങൾ ഹെറ്ററോജീനിയസ് മെമ്മറിയായി മോഡൽ ചെയ്യുന്ന രണ്ട് ക്യുഡിആർ ബാങ്കുകളും ഉണ്ടെങ്കിൽ, board_spec.xml-ന്റെ മെമ്മറി വിഭാഗങ്ങൾ പരിഷ്‌ക്കരിക്കുക. file ഇനിപ്പറയുന്നവയോട് സാമ്യമുള്ളതാണ്:
















1.3 Qsys-ൽ മൾട്ടിപ്പിൾ മെമ്മറി ഡിവൈഡറുകൾ സജ്ജീകരിക്കുന്നു
നിലവിൽ, Qsys ഡിസൈനിലുള്ള OpenCL മെമ്മറി ബാങ്ക് ഡിവൈഡർ, നോൺ-പവർ-ഓഫ്-2 മെമ്മറി ബാങ്കുകളെ പിന്തുണയ്ക്കുന്നില്ല, ഇത് സാധാരണ കോൺഫിഗറേഷനുകൾക്ക് ഒരു പരിമിതിയല്ല. എന്നിരുന്നാലും, നോൺ-പവർ-ഓഫ്-2 എണ്ണം മെമ്മറി ഇന്റർഫേസുകൾ ആവശ്യമായ സാഹചര്യങ്ങളുണ്ട്. നോൺ-പവർ-ഓഫ്-2 മെമ്മറി ഇന്റർഫേസുകൾ ഉൾക്കൊള്ളാൻ, ഒന്നിലധികം ഓപ്പൺസിഎൽ മെമ്മറി ബാങ്ക് ഡിവൈഡറുകൾ ഉപയോഗിച്ച് നോൺ-പവർ-ഓഫ്-2 മെമ്മറി ബാങ്കുകൾ ഉപയോഗിച്ച് വൈവിധ്യമാർന്ന മെമ്മറി സിസ്റ്റങ്ങൾ സൃഷ്ടിക്കുക. നിങ്ങൾക്ക് ഒരു യഥാർത്ഥ വൈവിധ്യമാർന്ന മെമ്മറി സിസ്റ്റം ഉള്ളപ്പോൾ നിങ്ങൾ ഒന്നിലധികം OpenCL മെമ്മറി ബാങ്ക് ഡിവൈഡറുകൾ സൃഷ്ടിക്കണം. ഒരു DDR മെമ്മറി ഇന്റർഫേസും ഒരു QDR മെമ്മറി ഇന്റർഫേസും ഉള്ള ഒരു സിസ്റ്റം പരിഗണിക്കുക. രണ്ട് ബാങ്കുകൾക്കും വ്യത്യസ്ത മെമ്മറി ടോപ്പോളജികൾ ഉള്ളതിനാൽ, നിങ്ങൾക്ക് അവയെ ഒരൊറ്റ ഗ്ലോബൽ മെമ്മറിയിൽ സംയോജിപ്പിക്കാൻ കഴിയില്ല.
ചിത്രം 1. മൂന്ന്-ബാങ്ക് ഹെറ്ററോജെനിയസ് മെമ്മറി സിസ്റ്റത്തിന്റെ ബ്ലോക്ക് ഡയഗ്രം
ഈ വൈവിധ്യമാർന്ന മെമ്മറി സിസ്റ്റത്തിൽ രണ്ട് DDR മെമ്മറി ഇന്റർഫേസുകളും ഒരു QDR മെമ്മറി ഇന്റർഫേസും അടങ്ങിയിരിക്കുന്നു.ഓപ്പൺസിഎൽ കസ്റ്റം പ്ലാറ്റ്ഫോമുകൾക്കായി എഫ്പിജിഎ എസ്ഡികെയിൽ ഇന്റൽ ഹെറ്ററോജീനിയസ് മെമ്മറി സിസ്റ്റങ്ങൾ സൃഷ്ടിക്കുന്നു - ചിത്രം 1നിങ്ങൾ Intel Quartus® Prime സോഫ്‌റ്റ്‌വെയറിന്റെ 16.0, 16.0.1, അല്ലെങ്കിൽ 16.0.2 പതിപ്പും OpenCL-ന് Altera SDK-ഉം ഉപയോഗിക്കുന്നുണ്ടെങ്കിൽ, OpenCL മെമ്മറി ബാങ്ക് ഡിവൈഡർ വിലാസ പരിധികളിലുടനീളം മെമ്മറി ബർസ്റ്റുകൾ തെറ്റായി കൈകാര്യം ചെയ്യുന്നു. അറിയപ്പെടുന്ന ഈ പ്രശ്‌നം പരിഹരിക്കുന്നതിന്, 1 ന്റെ ബർസ്റ്റ് സൈസ് ഉള്ള ഒരു പൈപ്പ് ലൈൻ ബ്രിഡ്ജ് ചേർക്കുകയും അതിന്റെ Avalon ®Memory-Mapped (Avalon-MM) മാസ്റ്ററെ OpenCL മെമ്മറി ബാങ്ക് ഡിവൈഡറിന്റെ സ്ലേവ് പോർട്ടുമായി ബന്ധിപ്പിക്കുകയും ചെയ്യുക.
കുറിപ്പ്:
ഈ അറിയപ്പെടുന്ന പ്രശ്നം Intel Quartus Prime സോഫ്‌റ്റ്‌വെയറിലും OpenCL പതിപ്പ് 16.1-നുള്ള Intel FPGA SDK-ലും പരിഹരിച്ചിരിക്കുന്നു.
ചിത്രം 2. ഒരു പൈപ്പ് ലൈൻ ബ്രിഡ്ജുള്ള മൂന്ന്-ബാങ്ക് ഹെറ്ററോജീനിയസ് മെമ്മറി സിസ്റ്റത്തിന്റെ ബ്ലോക്ക് ഡയഗ്രം ഓപ്പൺസിഎൽ കസ്റ്റം പ്ലാറ്റ്ഫോമുകൾക്കായി എഫ്പിജിഎ എസ്ഡികെയിൽ ഇന്റൽ ഹെറ്ററോജീനിയസ് മെമ്മറി സിസ്റ്റങ്ങൾ സൃഷ്ടിക്കുന്നു - ചിത്രം 21.4 നിങ്ങളുടെ വൈവിധ്യമാർന്ന മെമ്മറി പരിഹാരത്തിനായി ബോർഡ് ടെസ്റ്റ് പ്രോഗ്രാമും ഹോസ്റ്റ് കോഡും പരിഷ്ക്കരിക്കുന്നു
നിങ്ങളുടെ ഇഷ്‌ടാനുസൃത പ്ലാറ്റ്‌ഫോമിന്റെ പ്രവർത്തനക്ഷമതയും പ്രകടനവും പരിശോധിക്കുന്നതിന് OpenCL കസ്റ്റം പ്ലാറ്റ്‌ഫോം ടൂൾകിറ്റിനായി Intel FPGA SDK-യ്‌ക്കൊപ്പം വരുന്ന boardtest.cl കേർണൽ ഉപയോഗിക്കുക.
ഹോസ്റ്റ്-ടു-ഡിവൈസ് ബാൻഡ്‌വിഡ്ത്ത്, മെമ്മറി ബാൻഡ്‌വിഡ്ത്ത്, നിങ്ങളുടെ ഇഷ്‌ടാനുസൃത പ്ലാറ്റ്‌ഫോമിന്റെ പൊതുവായ പ്രവർത്തനക്ഷമത എന്നിവ പരിശോധിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്ന ഒരു ഓപ്പൺസിഎൽ കേർണലാണ് ബോർഡ്ടെസ്റ്റ് പ്രോഗ്രാം.

  1. എന്നതിലേക്ക് ബ്രൗസ് ചെയ്യുക /board/ custom_platform_toolkit/tests/boardtest ഡയറക്ടറി.
  2. boardtest.cl തുറക്കുക file ഒരു ടെക്സ്റ്റ് എഡിറ്ററിൽ ഓരോ ഗ്ലോബൽ മെമ്മറി ആർഗ്യുമെന്റിനും ഒരു ബഫർ ലൊക്കേഷൻ നൽകുക.
    ഉദാampLe:
    __കേർണൽ ശൂന്യമാണ്
    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 മെമ്മറിയിലും നൽകിയിരിക്കുന്നു. the board_spec.xml file രണ്ട് മെമ്മറി സിസ്റ്റങ്ങളുടെയും സവിശേഷതകൾ വ്യക്തമാക്കുന്നു.
  3. നിങ്ങളുടെ OpenCL സിസ്റ്റത്തിൽ നിങ്ങളുടെ വൈവിധ്യമാർന്ന മെമ്മറി സൊല്യൂഷൻ പ്രയോജനപ്പെടുത്തുന്നതിന്, നിങ്ങളുടെ clCreateBuffer കോളിലേക്ക് CL_MEM_HETEROGENEOUS_INTELFPGA ഫ്ലാഗ് ചേർത്ത് നിങ്ങളുടെ ഹോസ്റ്റ് കോഡ് പരിഷ്‌ക്കരിക്കുക.
    ഉദാampLe:
    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 ഈ ഫംഗ്‌ഷൻ കോളുകളുടെ സമാനമായ ക്രമം അവതരിപ്പിക്കുന്നു.
  4.  നിങ്ങൾ 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, മെമ്മറി സിസ്റ്റങ്ങളുടെ പ്രവർത്തനക്ഷമത പരിശോധിക്കാൻ. എന്നിരുന്നാലും, ഫ്ലോർപ്ലാൻ രൂപകൽപ്പന ചെയ്യുന്നതും ലോജിക്‌ലോക്ക് പ്രദേശങ്ങൾ വ്യക്തമാക്കുന്നതും പോലുള്ള ബോർഡ് ഡിസൈനിന്റെ അന്തിമ സവിശേഷതകൾ നടപ്പിലാക്കാതെ തന്നെ നിങ്ങളുടെ ഇഷ്‌ടാനുസൃത പ്ലാറ്റ്‌ഫോമിന്റെ പ്രവർത്തനക്ഷമത പരിശോധിക്കാൻ നിങ്ങൾ ആഗ്രഹിച്ചേക്കാം.

  1. നിങ്ങളുടെ ഹോസ്റ്റ് കോഡിൽ CL_CONTEXT_COMPILER_MODE_INTELFPGA ഫ്ലാഗ് സജ്ജീകരിച്ചിട്ടില്ലെന്ന് പരിശോധിക്കുക.
  2. ബോർഡിലേക്ക് ബ്രൗസ് ചെയ്യുക/ നിങ്ങളുടെ കസ്റ്റം പ്ലാറ്റ്‌ഫോമിന്റെ /source/host/mmd ഡയറക്ടറി.
  3. acl_pcie_device.cpp മെമ്മറി-മാപ്പ് ചെയ്‌ത ഉപകരണം (MMD) തുറക്കുക file ഒരു ടെക്സ്റ്റ് എഡിറ്ററിൽ.
  4.  acl_pcie_device.cpp-ൽ റിപ്രോഗ്രാം ഫംഗ്‌ഷൻ പരിഷ്‌ക്കരിക്കുക file ഒരു റിട്ടേൺ 0 ചേർത്ത്; വരി, താഴെ കാണിച്ചിരിക്കുന്നത് പോലെ:
    int ACL_PCIE_DEVICE::reprogram(അസാധുവായ *ഡാറ്റ, size_t data_size)
    {
    മടക്കം 0;
    // പരാജയം അനുമാനിക്കുക
    int reprogram_failed = 1;
    // fpga.bin-ൽ rbf അല്ലെങ്കിൽ ഹാഷ് ഇല്ലെന്ന് കരുതുക
    int rbf_or_hash_not_provided = 1;
    // അടിസ്ഥാനവും ഇറക്കുമതി റിവിഷൻ ഹാഷുകളും പൊരുത്തപ്പെടുന്നില്ലെന്ന് കരുതുക
    int hash_mmatch = 1;

    }
  5. acl_pcie_device.cpp വീണ്ടും കംപൈൽ ചെയ്യുക file.
  6. CL_CONTEXT_COMPILER_MODE_INTELFPGA ഫ്ലാഗ് സജ്ജീകരിച്ചിട്ടില്ലെന്ന് പരിശോധിക്കുക.
    ശ്രദ്ധ: നിങ്ങൾ റിട്ടേൺ 0 ചേർത്തതിന് ശേഷം; റീപ്രോഗ്രാം ഫംഗ്ഷനിലേക്ക്, എംഎംഡി വീണ്ടും കംപൈൽ ചെയ്യുക file, റൺടൈം എൻവയോൺമെന്റ് .aocx വായിക്കും file കൂടാതെ ബഫർ ലൊക്കേഷനുകൾ അസൈൻ ചെയ്യുക എന്നാൽ FPGA റീപ്രോഗ്രാം ചെയ്യില്ല. നിങ്ങൾ FPGA ഇമേജ് .aocx-മായി നേരിട്ട് പൊരുത്തപ്പെടുത്തണം file. ഈ സ്വഭാവം മാറ്റാൻ, റിട്ടേൺ 0 നീക്കം ചെയ്യുക; റീപ്രോഗ്രാം ഫംഗ്‌ഷനിൽ നിന്ന് എംഎംഡി വീണ്ടും കംപൈൽ ചെയ്യുക 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-ൽ വൈവിധ്യമാർന്ന മെമ്മറി സിസ്റ്റങ്ങൾ സൃഷ്ടിക്കുന്നു
ഇഷ്ടാനുസൃത പ്ലാറ്റ്ഫോമുകൾ
ഓപ്പൺസിഎൽ കസ്റ്റം പ്ലാറ്റ്ഫോമുകൾക്കായി എഫ്പിജിഎ എസ്ഡികെയിൽ ഇന്റൽ ഹെറ്ററോജീനിയസ് മെമ്മറി സിസ്റ്റങ്ങൾ സൃഷ്ടിക്കുന്നു - ഐക്കൺ 1 ഫീഡ്‌ബാക്ക് അയയ്‌ക്കുക
ഓപ്പൺസിഎൽ കസ്റ്റം പ്ലാറ്റ്ഫോമുകൾക്കായി എഫ്പിജിഎ എസ്ഡികെയിൽ ഇന്റൽ ഹെറ്ററോജീനിയസ് മെമ്മറി സിസ്റ്റങ്ങൾ സൃഷ്ടിക്കുന്നു - ഐക്കൺ ഓൺലൈൻ പതിപ്പ്
ഓപ്പൺസിഎൽ കസ്റ്റം പ്ലാറ്റ്ഫോമുകൾക്കായി എഫ്പിജിഎ എസ്ഡികെയിൽ ഇന്റൽ ഹെറ്ററോജീനിയസ് മെമ്മറി സിസ്റ്റങ്ങൾ സൃഷ്ടിക്കുന്നു - ഐക്കൺ 1 ഫീഡ്‌ബാക്ക് അയയ്‌ക്കുക
ഐഡി: 683654
പതിപ്പ്: 2016.12.13

പ്രമാണങ്ങൾ / വിഭവങ്ങൾ

ഓപ്പൺസിഎൽ കസ്റ്റം പ്ലാറ്റ്ഫോമുകൾക്കായി എഫ്പിജിഎ എസ്ഡികെയിൽ ഇന്റൽ വൈവിധ്യമാർന്ന മെമ്മറി സിസ്റ്റങ്ങൾ സൃഷ്ടിക്കുന്നു [pdf] നിർദ്ദേശങ്ങൾ
ഓപ്പൺസിഎൽ കസ്റ്റം പ്ലാറ്റ്ഫോമുകൾക്കായി എഫ്പിജിഎ എസ്ഡികെയിൽ വൈവിധ്യമാർന്ന മെമ്മറി സിസ്റ്റങ്ങൾ സൃഷ്ടിക്കുന്നു, വൈവിധ്യമാർന്ന മെമ്മറി സിസ്റ്റങ്ങൾ സൃഷ്ടിക്കുന്നു, ഓപ്പൺസിഎൽ കസ്റ്റം പ്ലാറ്റ്ഫോമുകൾക്കായി എഫ്പിജിഎ എസ്ഡികെ

റഫറൻസുകൾ

ഒരു അഭിപ്രായം ഇടൂ

നിങ്ങളുടെ ഇമെയിൽ വിലാസം പ്രസിദ്ധീകരിക്കില്ല. ആവശ്യമായ ഫീൽഡുകൾ അടയാളപ്പെടുത്തി *