ኢንቴል - አርማለOpenCL ብጁ መድረኮች በFPGA ኤስዲኬ ውስጥ የተለያዩ የማህደረ ትውስታ ስርዓቶችን መፍጠር
መመሪያዎች

በIntel® FPGA SDK ውስጥ የተለያዩ የማህደረ ትውስታ ስርዓቶችን መፍጠር ለክፍት CL ብጁ መድረኮች

በብጁ ፕላትፎርም ውስጥ የተለያየ ማህደረ ትውስታን መተግበር ተጨማሪ የውጭ ማህደረ ትውስታ በይነገጽ (EMIF) የመተላለፊያ ይዘትን እንዲሁም ትላልቅ እና ፈጣን የማህደረ ትውስታ መዳረሻዎችን ይፈቅዳል. የተመቻቸ ጋር heterogenous ትውስታ መዳረሻ ጥምር
OpenCL ™(1) ከርነል ለOpenCL ስርዓትዎ ከፍተኛ የአፈጻጸም ማሻሻያዎችን ሊያስከትል ይችላል።
ይህ የመተግበሪያ ማስታወሻ ከIntel® FPGA SDK ለOpenCL(2) ጋር ለመጠቀም በብጁ ፕላትፎርም ውስጥ የተለያዩ የማህደረ ትውስታ ስርዓቶችን ስለመፍጠር መመሪያ ይሰጣል። ኢንቴል የተለያዩ የማህደረ ትውስታ ስርዓቶችን የያዙ ብጁ ፕላትፎርሞችን እየገነባህ ያለህ ልምድ ያለው የFPGA ዲዛይነር እንደሆንክ ይገምታል።
የተለያዩ የማህደረ ትውስታ ስርዓቶችን ከመፍጠርዎ በፊት እራስዎን ከIntel FPGA SDK በታች ለተገለጹት የOpenCL ሰነዶች እራስዎን ይወቁ።
ተዛማጅ መረጃ

  • ኢንቴል FPGA ኤስዲኬ ለOpenCL ፕሮግራሚንግ መመሪያ
  • ኢንቴል FPGA ኤስዲኬ ለOpenCL ምርጥ ልምዶች መመሪያ
  • ኢንቴል FPGA ኤስዲኬ ለOpenCL Arria 10 GX FPGA ልማት ኪት ማመሳከሪያ መድረክ ማስተላለፊያ መመሪያ

1.1. የFPGA ቦርድ እና የEMIF በይነገጾችን ተግባራዊነት ማረጋገጥ

እያንዳንዱን የማህደረ ትውስታ በይነገጾቹን ለብቻው ያረጋግጡ እና ከዚያ አለምአቀፍ ማህደረ ትውስታን በመጠቀም ብጁ መድረክዎን ያፋጥኑ።

  1. የእያንዳንዱን በይነገጽ ፍጥነት እና መረጋጋት ሊሞክሩ የሚችሉ የሃርድዌር ንድፎችን በመጠቀም እያንዳንዱን የማህደረ ትውስታ በይነገጽ ያረጋግጡ።
  2. ዓለም አቀፍ ማህደረ ትውስታን በመጠቀም ብጁ መድረክዎን ያፋጥኑ።
    1. ለ example, ሶስት የ DDR በይነገጾች ካለዎት, ከመካከላቸው አንዱ እንደ የተለያዩ ማህደረ ትውስታ መቀረጽ አለበት. በዚህ አጋጣሚ የOpenCL ቁልል ተግባራዊነት በእያንዳንዱ DDR በይነገፅ ለብቻው ያረጋግጡ።
      OpenCL እና OpenCL አርማ በ Khronos Group™ ፍቃድ ጥቅም ላይ የሚውሉ የ Apple Inc. የንግድ ምልክቶች ናቸው።
    2.  የIntel FPGA ኤስዲኬ ለOpenCL በታተመ ክሮኖስ ዝርዝር መግለጫ ላይ የተመሰረተ ነው እና የክሮኖስ የተግባርን የሙከራ ሂደት አልፏል። አሁን ያለው የተስማሚነት ሁኔታ በ ላይ ይገኛል። www.khronos.org/conformance።

ኢንቴል ኮርፖሬሽን. መብቱ በህግ የተጠበቀ ነው. ኢንቴል፣ የኢንቴል አርማ እና ሌሎች የኢንቴል ምልክቶች የኢንቴል ኮርፖሬሽን ወይም የስርጭቱ የንግድ ምልክቶች ናቸው። ኢንቴል የኤፍፒጂኤ እና ሴሚኮንዳክተር ምርቶቹን በIntel መደበኛ ዋስትና መሰረት ለአሁኑ ዝርዝር መግለጫዎች ዋስትና ይሰጣል፣ነገር ግን በማናቸውም ምርቶች እና አገልግሎቶች ላይ ያለማሳወቂያ በማንኛውም ጊዜ ለውጦችን የማድረግ መብቱ የተጠበቀ ነው። ኢንቴል በዚህ ውስጥ የተገለጸውን ማንኛውንም መረጃ፣ ምርት ወይም አገልግሎት ከመተግበሩ ወይም ከመጠቀሙ የተነሳ ምንም አይነት ሃላፊነት ወይም ተጠያቂነት አይወስድም። የኢንቴል ደንበኞች በማናቸውም የታተመ መረጃ ላይ ከመታመንዎ በፊት እና ለምርቶች ወይም አገልግሎቶች ትዕዛዝ ከማቅረባቸው በፊት የቅርብ ጊዜውን የመሳሪያ ዝርዝር መግለጫዎችን እንዲያገኙ ይመከራሉ። *ሌሎች ስሞች እና የንግድ ምልክቶች እንደሌሎች ንብረት ሊጠየቁ ይችላሉ።
ISO 9001: 2015 ተመዝግቧል
በአማራጭ፣ ሁለት የ DDR በይነገጾች እና አንድ ባለአራት ዳታ መጠን (QDR) በይነገጽ ካለዎት የሁለቱ DDR በይነገጽ የOpenCL ቁልል እና የQDR በይነገጽን ተግባር ያረጋግጡ።
ኢንቴል የማህደረ ትውስታ በይነገጾችህን ለመሞከር PCI Express® – (PCIe® -) ወይም EMIF ልዩ ንድፎችን እንድትጠቀም ይመክራል። እያንዳንዱ የማህደረ ትውስታ በይነገጹ የሚሰራ መሆኑን እና የእርስዎ OpenCL ንድፍ ከማህደረ ትውስታ በይነገጾች ንዑስ ስብስብ ጋር እንደሚሰራ ካረጋገጡ በኋላ ይቀጥሉ።
ሙሉ በሙሉ የሚሰራ የተለያየ ማህደረ ትውስታ ስርዓት ለመፍጠር. 
1.2. የቦርዱን_spec.xml በማስተካከል ላይ File
የቦርዱን_spec.xml ያሻሽሉ። file ለ OpenCL ከርነሎች የሚገኙትን የተለያዩ የማስታወሻ ስርዓቶች ዓይነቶችን ለመግለጽ።
የከርነል ማጠናቀር ወቅት፣ ኢንቴል FPGA ኤስዲኬ ለOpenCL Offline Compiler እርስዎ በገለጹት የማከማቻ ቦታ ክርክር ላይ በመመስረት የከርነል ክርክሮችን ወደ ማህደረ ትውስታ ይመድባል።
1. ወደ board_spec.xml ያስሱ file በእርስዎ ብጁ መድረክ የሃርድዌር ማውጫ ውስጥ።
2. ቦርዱን_spec.xml ይክፈቱ file በጽሑፍ አርታኢ ውስጥ እና ኤክስኤምኤልን በዚህ መሠረት ያስተካክሉት።
ለ exampለ፣ የእርስዎ የሃርድዌር ሲስተም ሁለት የ DDR ትውስታዎች እንደ ነባሪ ግሎባል ሜሞሪ እና ሁለት የQDR ባንኮች ካሉት እንደ ልዩ ልዩ ማህደረ ትውስታ የቦርድ_spec.xml ትውስታ ክፍሎችን ይቀይሩ። file የሚከተሉትን ለመምሰል:
















1.3. በQsys ውስጥ በርካታ የማህደረ ትውስታ ክፍሎችን በማዘጋጀት ላይ
በአሁኑ ጊዜ በ Qsys ንድፍ ውስጥ ያለው የ OpenCL ማህደረ ትውስታ ባንክ አከፋፋይ ኃይል-የሌለው-2 የማህደረ ትውስታ ባንኮችን አይደግፍም, ይህም ለተለመዱ ውቅሮች ገደብ አይደለም. ነገር ግን፣ ኃይል-የ-2 ቁጥር የማስታወሻ በይነገጾች አስፈላጊ የሆኑባቸው ሁኔታዎች አሉ። ሃይል-የ 2 ያልሆኑ የማህደረ ትውስታ መገናኛዎችን ለማስተናገድ፣ ብዙ የOpenCL Memory Bank Dividersን በመጠቀም የተለያዩ የማስታወሻ ስርዓቶችን ከሀይል-ከ-2-ያልሆኑ የማስታወሻ ባንኮች ብዛት። እውነተኛ የተለያዩ የማህደረ ትውስታ ስርዓት ሲኖርዎት ብዙ የOpenCL Memory Bank Dividers መፍጠር አለብዎት። አንድ የ DDR ማህደረ ትውስታ በይነገጽ እና አንድ QDR ማህደረ ትውስታ በይነገጽ ያለው ስርዓት አስቡበት። ሁለቱ ባንኮች የተለያዩ የማስታወሻ ቶፖሎጂዎች ስላሏቸው በአንድ ዓለም አቀፍ ማህደረ ትውስታ ውስጥ ማዋሃድ አይችሉም.
ምስል 1. የሶስት-ባንክ ሄትሮጂንስ ማህደረ ትውስታ ስርዓት አግድ ንድፍ
ይህ የተለያየ ማህደረ ትውስታ ስርዓት ሁለት የ DDR ማህደረ ትውስታ በይነገጽ እና አንድ የ QDR ማህደረ ትውስታ በይነገጽ ይዟል.ኢንቴል በFPGA ኤስዲኬ ውስጥ የተለያዩ የማህደረ ትውስታ ስርዓቶችን መፍጠር ለክፍት CL ብጁ መድረኮች - ምስል 1ስሪት 16.0፣ 16.0.1፣ ወይም 16.0.2 የኢንቴል ኳርትስ ፕራይም ሶፍትዌር እና Altera SDK for OpenCL እየተጠቀሙ ከሆነ የOpenCL Memory Bank Divider በአድራሻ ወሰኖች ውስጥ የሚፈጠሩትን የማህደረ ትውስታ ፍንዳታዎች በስህተት ያስተናግዳል። በዚህ የታወቀ ጉዳይ ዙሪያ ለመስራት፣ 1 ፍንዳታ መጠን ያለው የቧንቧ መስመር ድልድይ ጨምሩ እና የአቫሎን ®ሜሞሪ-ማፕድ (አቫሎን-ኤምኤም) ጌታውን ከOpenCL Memory Bank Divider ባሪያ ወደብ ጋር ያገናኙት።
ማስታወሻ፡-
ይህ የታወቀ ጉዳይ በIntel Quartus Prime ሶፍትዌር እና በIntel FPGA SDK ለOpenCL ስሪት 16.1 ተስተካክሏል።
ምስል 2. የሶስት-ባንክ ሄትሮጂንስ ማህደረ ትውስታ ስርዓት ከቧንቧ መስመር ድልድይ ጋር አግድ ንድፍ ኢንቴል በFPGA ኤስዲኬ ውስጥ የተለያዩ የማህደረ ትውስታ ስርዓቶችን መፍጠር ለክፍት CL ብጁ መድረኮች - ምስል 21.4. የቦርድትስት ፕሮግራምን እና የአስተናጋጅ ኮድን ማስተካከል ለተለያዩ የማህደረ ትውስታ መፍትሄ
የብጁ ፕላትፎርምዎን ተግባራዊነት እና አፈጻጸም ለመፈተሽ ከIntel FPGA SDK ጋር ለOpenCL Custom Platform Toolkit የሚመጣውን boardtest.cl kernel ይጠቀሙ።
የቦርድተስት ፕሮግራም የአስተናጋጅ-ወደ-መሣሪያ ባንድዊድዝ፣ የማስታወሻ ባንድዊድዝ እና የብጁ ፕላትፎርም አጠቃላይ ተግባርን ለመፈተሽ የሚያስችል የOpenCL ከርነል ነው።

  1. አስስ ወደ /ቦርድ/ ብጁ_platform_toolkit/ፈተናዎች/የቦርድtest ማውጫ።
  2. boardtest.clን ይክፈቱ file በጽሑፍ አርታኢ ውስጥ እና ለእያንዳንዱ ዓለም አቀፍ ማህደረ ትውስታ ነጋሪ እሴት ቋት ይመድቡ።
    ለ exampላይ:
    __የከርነል ባዶነት
    mem_stream (__ግሎባል__ባህሪ __((buffer_location("DDR"))) uint *src፣ __ግሎባል __ባህሪ__((buffer_location("QDR"))) uint *dst፣ uint arg፣ uint arg2)
    እዚህ, uint *src ለ DDR ማህደረ ትውስታ ተመድቧል, እና uint *dst ለ QDR ማህደረ ትውስታ ተመድቧል. የቦርዱ_spec.xml file የሁለቱም የማህደረ ትውስታ ስርዓቶች ባህሪያትን ይገልጻል.
  3. በOpenCL ስርዓትህ ውስጥ ያለውን የተለያዩ የማህደረ ትውስታ መፍትሄ ለመጠቀም የCL_MEM_HETEROGENEOUS_INTELFPGA ባንዲራ ወደ ክሎክሪቴቡፈር ጥሪህ በማከል የአስተናጋጅ ኮድህን ቀይር።
    ለ exampላይ:
    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)፣ ( ባዶ *)&ddatain);
    ሁኔታ = clEnqueueWriteBuffer (ወረፋ፣ ddatain፣ CL_FALSE፣ 0፣ የመጠን (ያልተፈረመ) * የቬክተር መጠን፣hdatain፣ 0፣ NULL፣ NULL)
    የ ALTERAOCLSDKROOT/ቦርድ/ብጁ_ፕላትፎርም_toolkit/tests/boardtest/host/memspeed.cpp file የእነዚህን የተግባር ጥሪዎች ተመሳሳይ ቅደም ተከተል ያቀርባል.
  4.  የ boardtest.cl ን ካሻሻሉ በኋላ file እና የአስተናጋጁ ኮድ, የአስተናጋጁን እና የከርነል ኮድን ያጠናቅቁ እና ተግባራቸውን ያረጋግጡ.
    የከርነል ኮድዎን በሚሰበስቡበት ጊዜ ሁሉንም የማስታወሻ ስርዓቶች -መጠላለፍን በማካተት ማሰናከል አለብዎት አማራጭ በ aoc ትዕዛዝ ውስጥ.

ተዛማጅ መረጃ
የዓለማቀፋዊ ማህደረ ትውስታን ፍንጥቅ ማሰናከል (–መጠላለፍ የለም። )

1.5. የእርስዎን የተለያየ ማህደረ ትውስታ ተግባራዊነት ማረጋገጥ ስርዓት
የተለያየ ማህደረ ትውስታ ስርዓት በትክክል መስራቱን ለማረጋገጥ የCL_CONTEXT_COMPILER_MODE_INTELFPGA ባንዲራ በአስተናጋጅ ኮድዎ ውስጥ ያራግፉ።
የ.aocxን ንባብ ለማሰናከል በOpenCL ሲስተሞች ውስጥ ተመሳሳይ ማህደረ ትውስታ ባለው የ CL_CONTEXT_COMPILER_MODE_INTELFPGA=3 ባንዲራ በአስተናጋጅ ኮድዎ ውስጥ ለማዘጋጀት መምረጥ አለብዎት። file እና የ FPGA ዳግም ፕሮግራም. የ CL_CONTEXT_COMPILER_MODE_INTELFPGA=3 ባንዲራ ማቀናበር የቦርድዎን ቅጽበታዊ ገጽ እይታ በመጠቀም የወለል ፕላኑን ሳይነድፉ እና የLogicLock™ ክልሎችን ሳይገልጹ የእርስዎን ብጁ ፕላትፎርም ተግባራዊነት ለማረጋገጥ ይጠቅማል።
ከተለያዩ የማህደረ ትውስታ ስርዓቶች ጋር፣ የሩጫ ጊዜ አከባቢ የእያንዳንዱ ቋት ቋት መገኛ ማንበብ አለበት፣ በ.aocx fileየማህደረ ትውስታ ስርዓቶችን ተግባራዊነት ለማረጋገጥ. ነገር ግን፣ እንደ የወለል ፕላን መንደፍ እና የ LogicLock ክልሎችን መግለጽ ያሉ የቦርዱ ዲዛይን የመጨረሻ ባህሪያትን ሳይተገበሩ የእርስዎን ብጁ ፕላትፎርም ተግባራዊነት ማረጋገጥ ይፈልጉ ይሆናል።

  1. የCL_CONTEXT_COMPILER_MODE_INTELFPGA ባንዲራ በአስተናጋጅ ኮድዎ ውስጥ እንዳልተዋቀረ ያረጋግጡ።
  2. ወደ ሰሌዳው ያስሱ/ የእርስዎ ብጁ መድረክ /ምንጭ/አስተናጋጅ/mmd ማውጫ።
  3. የ acl_pcie_device.cpp የማህደረ ትውስታ ካርታ መሳሪያ (ኤምኤምዲ) ይክፈቱ file በጽሑፍ አርታኢ ውስጥ.
  4.  በacl_pcie_device.cpp ውስጥ ያለውን የፕሮግራም ተግባር ቀይር file መመለሻ 0 በመጨመር; መስመር, ከታች እንደሚታየው:
    int ACL_PCIE_DEVICE:: ድጋሚ ፕሮግራም ( ባዶ * ውሂብ፣ መጠን_t የውሂብ_መጠን )
    {
    መመለስ 0;
    // አለመሳካቱን መገመት
    int reprogram_failed = 1;
    // ምንም rbf ወይም hash በfpga.bin አይገምቱ
    int RBf_ወይም_hash_አልቀረበም = 1;
    // መሰረት አድርገህ አስገባ እና የማስመጣት ክለሳ ሃሽ አይዛመድም።
    int hash_mismatch = 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 ዳግም ሰይሟል።

ኢንቴል - አርማበIntel® FPGA SDK ውስጥ ለOpenCL የተለያዩ የማህደረ ትውስታ ስርዓቶችን መፍጠር
ብጁ መድረኮች
ኢንቴል በFPGA ኤስዲኬ ውስጥ የተለያዩ የማህደረ ትውስታ ስርዓቶችን መፍጠር ለክፍት CL ብጁ መድረኮች - አዶ 1 ግብረ መልስ ላክ
intel በFPGA ኤስዲኬ ውስጥ የተለያዩ የማህደረ ትውስታ ስርዓቶችን መፍጠር ለክፍት CL ብጁ መድረኮች - አዶ የመስመር ላይ ስሪት
ኢንቴል በFPGA ኤስዲኬ ውስጥ የተለያዩ የማህደረ ትውስታ ስርዓቶችን መፍጠር ለክፍት CL ብጁ መድረኮች - አዶ 1 ግብረ መልስ ላክ
መታወቂያ፡ 683654
ስሪት: 2016.12.13

ሰነዶች / መርጃዎች

intel በFPGA ኤስዲኬ ውስጥ ለOpenCL ብጁ መድረኮች የተለያዩ የማህደረ ትውስታ ስርዓቶችን መፍጠር [pdf] መመሪያ
በFPGA ኤስዲኬ ውስጥ የተለያዩ የማህደረ ትውስታ ስርዓቶችን መፍጠር ለOpenCL Custom Platforms፣ የተለያዩ የማህደረ ትውስታ ስርዓቶችን መፍጠር፣ FPGA ኤስዲኬ ለOpenCL Custom Platforms

ዋቢዎች

አስተያየት ይስጡ

የኢሜል አድራሻዎ አይታተምም። አስፈላጊ መስኮች ምልክት ተደርጎባቸዋል *