intel - logoد OpenCL ګمرکي پلیټ فارمونو لپاره په FPGA SDK کې د متفاوت حافظې سیسټمونه رامینځته کول
لارښوونې

د OpenCL ګمرک پلیټ فارمونو لپاره Intel® FPGA SDK کې د متفاوت حافظې سیسټمونه رامینځته کول

په ګمرک پلیټ فارم کې د متضاد حافظې پلي کول د ډیر بهرني حافظې انٹرفیس (EMIF) بینڈوډت او همدارنګه لوی او ګړندي حافظې لاسرسي ته اجازه ورکوي. د مطلوب حافظې سره د heterogenous حافظې لاسرسي ترکیب
OpenCL ™ (1) کرنل ستاسو د OpenCL سیسټم لپاره د پام وړ فعالیت ښه کولو پایله کولی شي.
دا غوښتنلیک یادښت د OpenCL (2) لپاره د Intel® FPGA SDK سره کارولو لپاره په ګمرک پلیټ فارم کې د متفاوت حافظې سیسټمونو رامینځته کولو لارښود چمتو کوي. Intel ګومان کوي ​​چې تاسو د FPGA تجربه لرونکي ډیزاینر یاست چې د ګمرک پلیټ فارمونه رامینځته کوي چې د متفاوت حافظې سیسټمونه لري.
د متفاوت حافظې سیسټمونو رامینځته کولو دمخه ، لاندې مشخص شوي د OpenCL اسنادو لپاره د Intel FPGA SDK سره ځان وپیژنئ.
اړوند معلومات

  • د OpenCL پروګرام کولو لارښود لپاره Intel FPGA SDK
  • د OpenCL غوره کړنو لارښود لپاره Intel FPGA SDK
  • Intel FPGA SDK د OpenCL Arria 10 GX FPGA پراختیایی کټ ریفرنس پلیټ فارم پورټینګ لارښود لپاره

۱.۱. د FPGA بورډ او EMIF انٹرفیسونو فعالیت تایید کول

د هر حافظې انٹرفیس په خپلواکه توګه تایید کړئ او بیا د نړیوال حافظې په کارولو سره خپل دودیز پلیټ فارم انسټیټ کړئ.

  1. د هر حافظې انٹرفیس د هارډویر ډیزاینونو په کارولو سره تایید کړئ چې کولی شي د هر انٹرفیس سرعت او ثبات معاینه کړي.
  2. د نړیوال حافظې په کارولو سره خپل دودیز پلیټ فارم انسټیټ کړئ.
    1. د مثال لپارهample، که تاسو درې DDR انٹرفیسونه لرئ، یو یې باید د متفاوت حافظې په توګه نقشه شي. په دې حالت کې، د هر DDR انٹرفیس سره د OpenCL سټیک فعالیت په خپلواکه توګه تایید کړئ.
      OpenCL او OpenCL لوگو د Apple Inc. سوداګریزې نښې دي چې د Khronos Group™ په اجازې کارول کیږي.
    2.  د OpenCL لپاره Intel FPGA SDK د خپاره شوي Khronos مشخصاتو پر بنسټ والړ دی، او د Khronos Conformance ازموینې پروسې څخه تېر شوی. د اوسني موافقت حالت په کې موندل کیدی شي www.khronos.org/conformance.

Intel Corporation. ټول حقونه خوندي دي. Intel، د Intel لوگو، او د Intel نورې نښې د Intel Corporation یا د هغې د فرعي شرکتونو سوداګریزې نښې دي. Intel د خپل FPGA او سیمیکمډکټر محصولاتو فعالیت د Intel معیاري تضمین سره سم اوسني مشخصاتو ته تضمینوي، مګر دا حق خوندي کوي چې په هر وخت کې پرته له خبرتیا څخه په هر محصول او خدماتو کې بدلون راولي. Intel هیڅ مسؤلیت یا مسؤلیت په غاړه نه اخلي چې د غوښتنلیک یا د کوم معلوماتو، محصول، یا خدماتو کارولو څخه رامینځته کیږي چې دلته تشریح شوي پرته له دې چې د Intel لخوا په لیکلي ډول موافقه شوې وي. د انټیل پیرودونکو ته مشوره ورکول کیږي چې د وسیلې ځانګړتیاو وروستۍ نسخه ترلاسه کړي مخکې لدې چې په کوم خپاره شوي معلوماتو تکیه وکړي او د محصولاتو یا خدماتو لپاره امر کولو دمخه. * نور نومونه او نښې ممکن د نورو ملکیت په توګه ادعا شي.
ISO 9001:2015 ثبت شوی
په بدیل سره ، که تاسو دوه DDR انٹرفیسونه او یو کواډ ډیټا ریٹ (QDR) انٹرفیس لرئ ، د دوه DDR انٹرفیسونو او QDR انٹرفیس په خپلواکه توګه د OpenCL سټیک فعالیت تصدیق کړئ.
Intel وړاندیز کوي چې تاسو د PCI Express® - (PCIe® -) یا د EMIF ځانګړي ډیزاینونه د خپل حافظې انٹرفیس ازموینې لپاره وکاروئ. وروسته له دې چې تاسو تایید کړئ چې د حافظې هر انٹرفیس فعال دی او دا چې ستاسو د OpenCL ډیزاین د حافظې انٹرفیس د فرعي سیټ سره کار کوي، پرمخ لاړشئ
د بشپړ فعال متضاد حافظې سیسټم رامینځته کول. 
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که ستاسو هارډویر سیسټم د ډیفالټ ګلوبل میموری په توګه دوه DDR یادداشتونه او دوه QDR بانکونه ولري چې تاسو د متفاوت حافظې په توګه ماډل کړئ ، د board_spec.xml د حافظې برخې بدل کړئ. file د لاندې سره ورته والی:
















1.3. په Qsys کې د ډیری حافظې ویشونکي تنظیم کول
اوس مهال، د Qsys ډیزاین کې د OpenCL حافظې بانک ویشونکی د 2 شمیرې حافظې بانکونو ملاتړ نه کوي، کوم چې د عادي تشکیلاتو لپاره محدودیت ندی. په هرصورت، داسې سناریوګانې شتون لري چیرې چې د 2 شمیره د حافظې انٹرفیسونو غیر بریښنا ته اړتیا ده. د حافظې انٹرفیسونو کې د غیر ځواک - 2 شمیرې ځای په ځای کولو لپاره ، د ډیری OpenCL حافظې بانک ویشونکي وکاروئ ترڅو د حافظې بانکونو غیر بریښنا - 2 شمیرې سره متضاد حافظې سیسټمونه رامینځته کړي. تاسو باید ډیری د OpenCL حافظې بانک ویشونکي رامینځته کړئ کله چې تاسو د ریښتیني متفاوت حافظې سیسټم ولرئ. د یو DDR حافظې انٹرفیس او یو QDR حافظې انٹرفیس سره یو سیسټم په پام کې ونیسئ. ځکه چې دوه بانکونه د حافظې مختلف ډولونه لري، تاسو نشئ کولی دوی د یوې نړیوالې حافظې لاندې یوځای کړئ.
شکل 1. د درې بانک د متفاوت حافظې سیسټم بلاک ډیاګرام
دا متفاوت حافظه سیسټم دوه د DDR حافظې انٹرفیسونه او یو د QDR حافظې انٹرفیس لري.انټیل د OpenCL دودیز پلیټ فارمونو لپاره په FPGA SDK کې د متفاوت حافظې سیسټمونه رامینځته کوي - انځور 1که تاسو د Intel Quartus® Prime سافټویر 16.0، 16.0.1، یا 16.0.2 نسخه کاروئ او د OpenCL لپاره Altera SDK، د OpenCL میموري بانک ویشونکی په غلط ډول د پتې په حدودو کې د حافظې برسټ اداره کوي. د دې پیژندل شوي مسلې په شاوخوا کې د کار کولو لپاره، د 1 د برسټ اندازې سره د پایپ لاین پل اضافه کړئ او خپل Avalon ®Memory-Mapped (Avalon-MM) ماسټر د OpenCL Memory Bank Divider غلام بندر سره وصل کړئ.
یادونه:
دا پیژندل شوې مسله د Intel Quartus Prime سافټویر او د OpenCL نسخه 16.1 لپاره Intel FPGA SDK کې حل شوې.
شکل 2. د پایپ لاین پل سره د درې بانک متضاد حافظې سیسټم بلاک ډیاګرام انټیل د OpenCL دودیز پلیټ فارمونو لپاره په FPGA SDK کې د متفاوت حافظې سیسټمونه رامینځته کوي - انځور 21.4. ستاسو د متفاوت حافظې حل لپاره د بورډ ټیسټ برنامه او کوربه کوډ بدلول
د boardtest.cl کرنل وکاروئ چې د Intel FPGA SDK سره د OpenCL Custom Platform Toolkit لپاره راځي ترڅو ستاسو د ګمرک پلیټ فارم فعالیت او فعالیت ازموینه وکړي.
د بورډ ټیسټ برنامه د OpenCL کرنل دی چې تاسو ته اجازه درکوي د کوربه څخه تر وسیلې بینڈوډت ، د حافظې بینډ ویت ، او ستاسو د ګمرک پلیټ فارم عمومي فعالیت ازموینه وکړئ.

  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 حافظې ته ګمارل شوی. board_spec.xml file د دواړو حافظې سیسټمونو ځانګړتیاوې مشخصوي.
  3. ستاسو د OpenCL سیسټم کې د خپل متضاد حافظې حل څخه ګټه پورته کولو لپاره، خپل کوربه کوډ بدل کړئ د CL_MEM_HETEROGENEOUS_INTELFPGA بیرغ په خپل clCreateBuffer کال کې اضافه کولو سره.
    د مثال لپارهampLe:
    ddatain = clCreateBuffer(حالات، CL_MEM_READ_WRITE | یادګارونه
    CL_MEM_HETEROGENEEOUS_INTELFPGA، اندازه (نه لاسلیک شوی) * د ویکتور اندازه، NULL، & حیثیت؛
    Intel په کلکه سپارښتنه کوي چې تاسو د بفر لیکلو دمخه د کرنل دلیل په توګه د بفر موقعیت تنظیم کړئ. کله چې یو واحد نړیوال حافظه وکاروئ، تاسو کولی شئ بفرونه یا د کرنل دلیل ته وړاندې کولو دمخه یا وروسته ولیکئ. په متضاد حافظه سیسټمونو کې، کوربه د بفر لیکلو دمخه د بفر موقعیت ټاکي. په بل عبارت، کوربه به د clEnqueueWriteBuffer فنکشن زنګ وهلو دمخه د clSetKernelArgument فنکشن ته زنګ ووهي.
    ستاسو په کوربه کوډ کې، په لاندې ترتیب کې clCreateBuffer، clSetKernelArg، او clEnqueueWriteBuffer زنګ ووهئ:
    ddatain = clCreateBuffer(حالات، CL_MEM_READ_WRITE | memflags |
    CL_MEM_HETEROGENEEOUS_INTELFPGA، اندازه (نه لاسلیک شوی) * د ویکتور اندازه، NULL، & حیثیت؛
    … حالت = clSetKernelArg(kernel[k], 0, sizeof(cl_mem)، (void*)&ddatain؛
    … حالت = clEnqueueWriteBuffer(قطار، 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 او د کوربه کوډ، کوربه او کرنل کوډ تالیف کړئ او د دوی فعالیت تایید کړئ.
    کله چې خپل د کرنل کوډ تالیف کړئ، تاسو باید د -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. بورډ ته مراجعه وکړئ/ ستاسو د ګمرک پلیټ فارم / سرچینه / کوربه / mmd لارښود.
  3. acl_pcie_device.cpp د حافظې نقشه شوې وسیله (MMD) خلاص کړئ file په متن مدیر کې.
  4.  په acl_pcie_device.cpp کې د بیا پروګرام فعالیت بدل کړئ file د بیرته ستنیدو 0 اضافه کولو سره؛ کرښه، لکه څنګه چې لاندې ښودل شوي:
    int ACL_PCIE_DEVICE::ریپروګرام (باطل *ډاټا، د ډاټا اندازه
    {
    راستنیدنه 0;
    // ناکامي فرض کړئ
    int reprogram_failed = 1 ;
    // فرض کړئ چې په fpga.bin کې هیڅ rbf یا هش نشته
    int rbf_or_hash_not_provided = 1;
    // فرض کړئ بیس او د واردولو بیاکتنې هشونه سره سمون نلري
    int hash_mismatch = 1 ;

    }
  5. acl_pcie_device.cpp بیا تنظیم کړئ file.
  6. تایید کړئ چې د CL_CONTEXT_COMPILER_MODE_INTELFPGA بیرغ بې ترتیبه ​​پاتې دی.
    پاملرنه: وروسته له دې چې تاسو اضافه کړئ بیرته 0؛ د بیا پروګرام فعالیت ته او د MMD بیا تنظیم کړئ fileد چلولو وخت چاپیریال به .aocx لوستل شي file او د بفر ځایونه وټاکئ مګر د FPGA بیا پروګرام نه کوي. تاسو باید په لاسي ډول د FPGA عکس د .aocx سره میچ کړئ file. د دې چلند د بیرته راګرځولو لپاره، بیرته ستنیدنه 0 لرې کړئ؛ د ریپروګرام فنکشن څخه او MMD بیا تنظیم کړئ file.

1.6. د اسنادو بیاکتنې تاریخ

نیټه نسخه بدلونونه
ډیسمبر-۲۱ 2017.12.01 • CL_MEM_HETEROGENEOUS_ALTERA CL_MEM_HETEROGENEOUS_INTELFPGA ته بیا نومول شوی.
ډیسمبر-۲۱ 2016.12.13 • CL_CONTEXT_COMPILER_MODE_ALTERA CL_CONTEXT_COMPILER_MODE_INTELFPGA ته بیا برانډ شوی.

intel - logoد OpenCL لپاره Intel® FPGA SDK کې د متفاوت حافظې سیسټمونه رامینځته کول
دودیز پلیټ فارمونه
انټیل د OpenCL ګمرکي پلیټ فارمونو لپاره په FPGA SDK کې د متفاوت حافظې سیسټمونه رامینځته کوي - آیکون 1 فیډبیک واستوئ
intel د OpenCL دودیز پلیټ فارمونو لپاره په FPGA SDK کې د متفاوت حافظې سیسټمونه رامینځته کوي - آیکون آنلاین نسخه
انټیل د OpenCL ګمرکي پلیټ فارمونو لپاره په FPGA SDK کې د متفاوت حافظې سیسټمونه رامینځته کوي - آیکون 1 فیډبیک واستوئ
ID: 683654
نسخه: 2016.12.13

اسناد / سرچینې

انټیل د OpenCL دودیز پلیټ فارمونو لپاره په FPGA SDK کې د متفاوت حافظې سیسټمونه رامینځته کوي [pdf] لارښوونې
د OpenCL ګمرکي پلیټ فارمونو لپاره په FPGA SDK کې د متفاوت حافظې سیسټمونه رامینځته کول ، د متفاوت حافظې سیسټمونه رامینځته کول ، د OpenCL ګمرک پلیټ فارمونو لپاره FPGA SDK

حوالې

یو نظر پریږدئ

ستاسو بریښنالیک پته به خپره نشي. اړین ساحې په نښه شوي *