Intel - လိုဂိုOpenCL အတွက် FPGA SDK
အသုံးပြုသူလမ်းညွှန်

UG-OCL009
2017.05.08
Intel® Quartus® Prime Design Suite: 17.0 အတွက် နောက်ဆုံး အပ်ဒိတ်လုပ်ထားသည်။

RENPHO RF FM059HS WiFi Smart Foot Massager - သင်္ကေတ ၈စာရင်းသွင်းပါ။
SAMSUNG SM A136UZKZAIO Galaxy A13 5G စမတ်ဖုန်း - သင်္ကေတ ၃၄တုံ့ပြန်ချက်ပေးပို့ပါ။

OpenCL™ Intel® Cyclone®V SoC Development Kit အတွက် Intel® FPGA SDK

V SoC Development Kit ရည်ညွှန်းပလပ်ဖောင်းပေါ်တင်ခြင်းလမ်းညွှန်သည် OpenCL အတွက် Intel Cyclone V SoC Development Kit Reference Platform (c5soc) ၏ ဟာ့ဒ်ဝဲနှင့် ဆော့ဖ်ဝဲဒီဇိုင်းကို ဖော်ပြသည် ® သင်မစတင်မီ၊ Intel မှ အောက်ပါစာရွက်စာတမ်းများ၏ အကြောင်းအရာများကို သင့်ကိုယ်သင် အကျွမ်းတဝင်ရှိစေရန် အလေးအနက်အကြံပြုပါသည်။

  1. OpenCLIntel Cyclone V SoC အတွက် Intel FPGA SDK စတင်အသုံးပြုခြင်း လမ်းညွှန်
  2. OpenCL Custom Platform Toolkit အတွက် Intel FPGA SDK
  3. Cyclone V စက်ပစ္စည်းလက်စွဲစာအုပ်၊ အတွဲ 3- Hard Processor စနစ်ပိုင်းဆိုင်ရာ ကိုးကားချက်လက်စွဲ ထို့အပြင်၊ Altera ၏ Cyclone V SoC Development Kit နှင့် SoC Embedded Design Suite စာမျက်နှာကို ကိုးကားပါ။ webပိုမိုသိရှိလိုပါကများအတွက် site ကို။ ၁ ၂

အာရုံစူးစိုက်မှု- Intel သည် OpenCL Custom Platform Toolkit အသုံးပြုသူလမ်းညွှန်အတွက် Intel FPGA SDK ကို နက်ရှိုင်းစွာနားလည်သဘောပေါက်သည်ဟု ယူဆပါသည်။ Cyclone V SoC ဖွံ့ဖြိုးတိုးတက်မှု Kit ရည်ညွှန်းပလပ်ဖောင်းပေါ်တင်ခြင်းလမ်းညွှန်တွင် Cyclone V SoC ဖွံ့ဖြိုးတိုးတက်မှု Kit အတွက် စိတ်ကြိုက်ပလပ်ဖောင်းတစ်ခုကို အကောင်အထည်ဖော်ရန် SDK ၏ စိတ်ကြိုက်ပလပ်ဖောင်းတူးလ်ကစ်၏အသုံးပြုမှုကို ဖော်ပြမထားပေ။ ၎င်းသည် Cyclone V SoC Development Kit တွင် SDK ပံ့ပိုးမှုနှင့် OpenCL Custom Platform အတွက် ယေဘုယျ Intel FPGA SDK အကြား ကွဲပြားမှုများကိုသာ ဖော်ပြသည်။

ဆက်စပ်လင့်ခ်များ

  • OpenCL Cyclone V SoC အတွက် Intel FPGA SDK စတင်အသုံးပြုခြင်း လမ်းညွှန်
  • OpenCL Custom Platform Toolkit အတွက် Intel FPGA SDK
  • Cyclone V စက်ပစ္စည်းလက်စွဲစာအုပ်၊ အတွဲ 3- Hard Processor စနစ်ပိုင်းဆိုင်ရာ ကိုးကားချက်လက်စွဲ
  • Altera ရှိ Cyclone V SoC Development Kit နှင့် SoC Embedded Design Suite စာမျက်နှာ website
  1. OpenCL နှင့် OpenCL လိုဂိုများသည် Khronos Group™ ၏ခွင့်ပြုချက်ဖြင့်အသုံးပြုသော Apple Inc. ၏ကုန်အမှတ်တံဆိပ်များဖြစ်သည်။
  2. OpenCL အတွက် Intel FPGA SDK သည် ထုတ်ဝေထားသော Khronos Specification ပေါ်တွင် အခြေခံထားပြီး Khronos Conformance Testing Process ကို ကျော်ဖြတ်ခဲ့သည်။ လက်ရှိ လိုက်လျောညီထွေမှု အခြေအနေကို မှာ တွေ့နိုင်ပါတယ်။ www.khronos.org/conformance.

Intel ကော်ပိုရေးရှင်း။ မူပိုင်ခွင့်ကိုလက်ဝယ်ထားသည်။ Intel၊ Intel လိုဂို၊ Altera၊ Arria၊ Cyclone၊ Enpirion၊ MAX၊ Nios၊ Quartus နှင့် Stratix စကားလုံးများနှင့် လိုဂိုများသည် Intel ကော်ပိုရေးရှင်း သို့မဟုတ် အမေရိကန်နှင့်/သို့မဟုတ် အခြားနိုင်ငံများရှိ ၎င်း၏လက်အောက်ခံကုမ္ပဏီများ၏ ကုန်အမှတ်တံဆိပ်များဖြစ်သည်။ Intel သည် Intel ၏ စံအာမခံချက်နှင့်အညီ ၎င်း၏ FPGA နှင့် တစ်ပိုင်းလျှပ်ကူးပစ္စည်းထုတ်ကုန်များ၏ စွမ်းဆောင်ရည်ကို လက်ရှိ သတ်မှတ်ချက်များအတိုင်း အာမခံထားသော်လည်း မည်သည့်ထုတ်ကုန်နှင့် ဝန်ဆောင်မှုများကိုမဆို အသိပေးခြင်းမရှိဘဲ အချိန်မရွေး အပြောင်းအလဲပြုလုပ်ပိုင်ခွင့်ကို လက်ဝယ်ရှိပါသည်။ Intel မှ စာဖြင့် အတိအလင်း သဘောတူထားသည့်အတိုင်း ဤနေရာတွင် ဖော်ပြထားသော အချက်အလက်၊ ထုတ်ကုန် သို့မဟုတ် ဝန်ဆောင်မှုကို အသုံးပြုခြင်း သို့မဟုတ် အသုံးပြုခြင်းမှ ဖြစ်ပေါ်လာသော တာဝန် သို့မဟုတ် တာဝန်ခံမှု မရှိဟု ယူဆပါသည်။ Intel သုံးစွဲသူများသည် ထုတ်ဝေထားသော အချက်အလက်များနှင့် ထုတ်ကုန် သို့မဟုတ် ဝန်ဆောင်မှုများအတွက် အမှာစာမတင်မီ နောက်ဆုံးဗားရှင်းကို ရယူရန် အကြံပြုအပ်ပါသည်။
*အခြားအမည်များနှင့် အမှတ်တံဆိပ်များကို အခြားသူများ၏ပိုင်ဆိုင်မှုအဖြစ် တောင်းဆိုနိုင်ပါသည်။

1.1.1 Cyclone V SoC Development Kit အကိုးအကား ပလပ်ဖောင်း ဘုတ်ဗားရှင်းများ
OpenCL Cyclone V SoC Development Kit Reference Platform အတွက် Intel FPGA SDK တွင် ဘုတ်ဗားရှင်းနှစ်မျိုး ပါဝင်သည်။

  • c5soc ဘုတ်
    ဤမူလဘုတ်သည် DDR မန်မိုရီဘဏ်နှစ်ခုသို့ ဝင်ရောက်ခွင့်ပေးသည်။ HPS DDR ကို FPGA နှင့် CPU နှစ်ခုလုံးက သုံးနိုင်သည်။ FPGA DDR ကို FPGA မှသာလျှင် ရယူနိုင်သည်။
  • c5soc_sharedonly ဘုတ်
    ဤဘုတ်ဗားရှင်းတွင် HPS DDR ချိတ်ဆက်မှုသာ ပါရှိသည်။ FPGA DDR ကို သုံး၍မရပါ။ DDR မန်မိုရီဘဏ်တစ်ခုအား ပံ့ပိုးရန် ဟာ့ဒ်ဝဲနည်းပါးသောကြောင့် ဤဘုတ်ဗားရှင်းသည် ဧရိယာပိုမိုထိရောက်ပါသည်။ c5soc_sharedonly board သည် DDR memory bank တစ်ခုတည်းဖြင့် နောက်ဆုံးထုတ်လုပ်ရေးဘုတ်အတွက် ကောင်းမွန်သော ပုံတူပုံစံပလပ်ဖောင်းတစ်ခုလည်းဖြစ်သည်။
    သင်၏ OpenCL kernel ကိုပြုစုသောအခါ ဤဘုတ်ဗားရှင်းကို ပစ်မှတ်ထားရန်၊ သင်၏ aoc အမိန့်တွင် -board c5soc_sharedonly ရွေးချယ်မှုကို ထည့်သွင်းပါ။
    -board တွင် ပိုမိုသိရှိလိုပါက aoc command ၏ရွေးချယ်ခွင့်၊ OpenCL ပရိုဂရမ်းမင်းလမ်းညွှန်အတွက် Intel FPGA SDK ကို ကိုးကားပါ။

ဆက်စပ်လင့်ခ်များ
တိကျသော FPGA ဘုတ်အဖွဲ့ (–board )
1.1.2 Cyclone V SoC Development Kit ရည်ညွှန်းပလပ်ဖောင်း၏ အကြောင်းအရာ
Cyclone V SoC Development Kit Reference Platform တွင် အောက်ပါတို့ ပါဝင်ပါသည်။ files နှင့် လမ်းညွှန်များ-

File သို့မဟုတ် လမ်းညွှန် ဖော်ပြချက်
board_env.xml eXtensible Markup Language (XML) file ၎င်းသည် OpenCL အတွက် Intel FPGA SDK သို့ c5soc ကိုဖော်ပြသည်။
linux_sd_card_image.tgz SD ဖလက်ရှ်ကတ်ပုံအား ဖိသိပ်ထားသည်။ file SDK အသုံးပြုသူတစ်ဦးသည် Cyclone V SoC Development Kit ကို SDK ဖြင့် အသုံးပြုရန် လိုအပ်သည့်အရာအားလုံးပါဝင်ပါသည်။
လက်မောင်း၃၂ အောက်ပါတို့ပါရှိသော လမ်းညွှန်ချက်

1.1.3 Cyclone V SoC Development Kit ၏ သက်ဆိုင်ရာ အင်္ဂါရပ်များ

အောက်ပါစာရင်းသည် OpenCL အတွက် Intel FPGA SDK နှင့်သက်ဆိုင်သည့် Cyclone V SoC Development Kit အစိတ်အပိုင်းများနှင့် အင်္ဂါရပ်များကို မီးမောင်းထိုးပြသည်-

  • Dual-core ARM Cortex-A9 CPU သည် 32-bit Linux ကို အသုံးပြုထားသည်။
  • HPS နှင့် FPGA core အထည်ကြားရှိ အဆင့်မြင့် eXtensible Interface (AXI) ဘတ်စ်ကား။
  • မာကျောသော DDR မမ်မိုရီ ထိန်းချုပ်ကိရိယာနှစ်ခု၊ တစ်ခုစီသည် 1 ဂစ်ဂါဘိုက် (GB) DDR3 SDRAM သို့ ချိတ်ဆက်သည်။
    - DDR ထိန်းချုပ်ကိရိယာတစ်ခုသည် FPGA core တွင်သာ (ဆိုလိုသည်မှာ FPGA DDR) တွင်သာ အသုံးပြုနိုင်သည်။
    - အခြား DDR ထိန်းချုပ်ကိရိယာကို HPS နှင့် FPGA နှစ်ခုလုံး (ဆိုလိုသည်မှာ HPS DDR) နှစ်ခုလုံးတွင် သုံးနိုင်သည်။ ဤမျှဝေထားသော ထိန်းချုပ်ကိရိယာသည် CPU နှင့် FPGA core အကြား အခမဲ့မှတ်ဉာဏ်မျှဝေမှုကို ခွင့်ပြုသည်။
  • CPU သည် FPGA core fabric ကို ပြန်လည်ပြင်ဆင်နိုင်သည်။

1.1.3.1 Cyclone V SoC Development Kit ရည်ညွှန်းပလပ်ဖောင်း ဒီဇိုင်းပန်းတိုင်များနှင့် ဆုံးဖြတ်ချက်များ Intel သည် Cyclone V SoC Development Kit Reference Platform အား ဒီဇိုင်းပန်းတိုင်များနှင့် ဆုံးဖြတ်ချက်များစွာတွင် အခြေခံထားသည်။ သင်၏ SoC FPGA ဘုတ်သို့ ဤအကိုးအကားပလပ်ဖောင်းကို သင်ထည့်သွင်းသည့်အခါ ဤပန်းတိုင်များနှင့် ဆုံးဖြတ်ချက်များကို ထည့်သွင်းစဉ်းစားရန် Intel မှ အကြံပြုထားသည်။
အောက်တွင် c5soc ဒီဇိုင်းပန်းတိုင်များဖြစ်သည်။

  1. FPGA နှင့် DDR မမ်မိုရီစနစ်(များ) ပေါ်ရှိ ကာနယ်များကြားတွင် ဖြစ်နိုင်ချေ အမြင့်ဆုံး bandwidth ကို ပေးပါ။
  2. FPGA ပေါ်ရှိ တွက်ချက်မှုများ (ဆိုလိုသည်မှာ OpenCL kernels) သည် ဝန်ဆောင်မှုပေးသည့် အရံပစ္စည်းများ ပါဝင်နိုင်သည့် အခြားသော CPU လုပ်ဆောင်ချက်များကို အနှောင့်အယှက်မဖြစ်စေကြောင်း သေချာပါစေ။
  3. အင်တာဖေ့စ် အစိတ်အပိုင်းများအစား kernel တွက်ချက်မှုများအတွက် ဖြစ်နိုင်သမျှ FPGA အရင်းအမြစ်များကို ချန်ထားပါ။

အောက်ဖော်ပြပါများသည် Intel ၏ ဒီဇိုင်းပန်းတိုင်များ၏ တိုက်ရိုက်အကျိုးဆက်များဖြစ်သည့် အဆင့်မြင့် ဒီဇိုင်းဆုံးဖြတ်ချက်များဖြစ်သည်-

  1. ရည်ညွှန်းပလပ်ဖောင်းသည် ဖြစ်နိုင်ချေအများဆုံးဖွဲ့စည်းပုံပုံစံ (256 bits) ဖြင့် hard DDR memory controllers များကိုသာ အသုံးပြုသည်။
  2. FPGA သည် AXI bus နှင့် HPS အတွင်းရှိ L3 ခလုတ်မပါဝင်ဘဲ HPS DDR memory controller နှင့် တိုက်ရိုက်ဆက်သွယ်သည်။ တိုက်ရိုက်ဆက်သွယ်ရေးသည် DDR သို့ အကောင်းဆုံးဖြစ်နိုင်သော bandwidth ကိုပေးဆောင်ပြီး FPGA တွက်ချက်မှုများကို CPU နှင့် ၎င်း၏အစွန်အဖျားကြား ဆက်သွယ်မှုများကို အနှောင့်အယှက်မဖြစ်အောင် တားဆီးပေးသည်။
  3. တိုက်ရိုက်မမ်မိုရီဝင်ရောက်မှု (SG-DMA) သည် FPGA အင်တာဖေ့စ် လော့ဂျစ်၏ မပါဝင်ပါ။ DDR မမ်မိုရီစနစ်များအကြား ဒေတာအများအပြားကို လွှဲပြောင်းခြင်းအစား ဒေတာများကို မျှဝေထားသော HPS DDR တွင် သိမ်းဆည်းပါ။ FPGA မှ CPU memory သို့ တိုက်ရိုက်ဝင်ရောက်ခြင်းသည် DMA ထက် ပိုမိုထိရောက်သည်။ ၎င်းသည် ဟာ့ဒ်ဝဲအရင်းအမြစ်များ (၎င်းသည် FPGA ဧရိယာ) ကို ကယ်တင်ပြီး Linux kernel driver ကို ရိုးရှင်းစေသည်။
    သတိပေးချက်- မျှဝေထားသော HPS DDR စနစ်နှင့် FPGA သို့သာဝင်ရောက်နိုင်သော DDR စနစ်ကြားတွင် မှတ်ဉာဏ်လွှဲပြောင်းမှုသည် အလွန်နှေးကွေးသည်။ သင်ရွေးချယ်လျှင်
    ဤနည်းဖြင့် မမ်မိုရီကို လွှဲပြောင်းပါ၊ အလွန်သေးငယ်သော ဒေတာပမာဏအတွက်သာ အသုံးပြုပါ။
  4. လက်ခံဆောင်ရွက်ပေးသူနှင့် စက်သည် 2-ဘစ် ပေါက်ပေါက်တစ်ခုတည်းကိုသာ အသုံးပြု၍ HPS-to-FPGA (H32F) တံတားမှတစ်ဆင့် အချင်းချင်းအကြား DMA မဟုတ်သော ဒေတာလွှဲပြောင်းခြင်းကို လုပ်ဆောင်သည်။ အကြောင်းပြချက်မှာ DMA မပါဘဲ Linux kernel သည် 32-bit read သို့မဟုတ် write request တစ်ခုတည်းကိုသာထုတ်ပေးနိုင်သောကြောင့် ပိုမိုကျယ်ပြန့်သောချိတ်ဆက်မှုရှိရန်မလိုအပ်ပါ။
  5. လက်ခံသူသည် ပေါ့ပါးသော H2F (LH2F) တံတားမှတစ်ဆင့် စက်ပစ္စည်းသို့ ထိန်းချုပ်အချက်ပြမှုများကို ပေးပို့သည်။
    ဟို့စ်မှ စက်သို့ ထိန်းချုပ်သည့် အချက်ပြမှုများသည် လှိုင်းနှုန်းနည်းသော အချက်ပြများဖြစ်သောကြောင့် LH2F တံတားသည် အလုပ်အတွက် စံပြဖြစ်သည်။

1.2 ရည်ညွှန်းပလပ်ဖောင်းကို သင်၏ SoC FPGA ဘုတ်သို့ ပို့ခြင်း။
Cyclone V SoC Development Kit ရည်ညွှန်းပလပ်ဖောင်းကို သင်၏ SoC FPGA ဘုတ်သို့ ပို့ရန်၊ အောက်ပါလုပ်ငန်းများကို လုပ်ဆောင်ပါ-

  1. သင့်ဒီဇိုင်း၏အစမှတ်အဖြစ် c5soc အကိုးအကားပလပ်ဖောင်း၏ DDR မှတ်ဉာဏ်တစ်ခု သို့မဟုတ် DDR မှတ်ဉာဏ်ဗားရှင်းနှစ်ခုကို ရွေးချယ်ပါ။
  2. ALTERAOCLSDKROOT/board/c5soc/ တွင် pin တည်နေရာများကို အပ်ဒိတ်လုပ်ပါ။ /top.qsf fileALTERAOCLSDKROOT သည် OpenCL တပ်ဆင်မှုအတွက် Intel FPGA SDK ၏တည်နေရာဆီသို့ လမ်းကြောင်းဖြစ်ပြီး၊ ဘုတ်ဗားရှင်း၏ လမ်းညွှန်အမည်ဖြစ်သည်။ c5soc_sharedonly လမ်းညွှန်သည် DDR မှတ်ဉာဏ်စနစ်တစ်ခုနှင့် ဘုတ်ဗားရှင်းအတွက်ဖြစ်သည်။ c5soc လမ်းညွှန်သည် DDR မှတ်ဉာဏ်စနစ်နှစ်ခုပါသော ဘုတ်ဗားရှင်းအတွက်ဖြစ်သည်။
  3.  ALTERAOCLSDKROOT/board/c5soc/ ရှိ HPS နှင့်/သို့မဟုတ် FPGA SDRAM ဘလောက်များအတွက် DDR ဆက်တင်များကို အပ်ဒိတ်လုပ်ပါ။ /system.qsys file.
    4. OpenCL နှစ်သက်သော ဘုတ်ဒီဇိုင်းများအတွက် Intel FPGA SDK အားလုံးသည် အာမခံချက်ရှိသော အချိန်ကိုက်ပိတ်ခြင်းကို ရရှိရပါမည်။ ထို့ကြောင့် ဒီဇိုင်းနေရာချထားမှုသည် အချိန်ကိုက် သန့်ရှင်းနေရမည်။ c5soc board partition (acl_iface_partition.qxp) ကို သင်၏ SoC FPGA ဘုတ်သို့ ပို့ရန်၊ အောက်ပါ လုပ်ဆောင်စရာများကို လုပ်ဆောင်ပါ။
    board partition ကိုပြုပြင်ခြင်းနှင့်ထိန်းသိမ်းခြင်းဆိုင်ရာအသေးစိတ်ညွှန်ကြားချက်များအတွက် Quartus ကိုကိုးကားပါ။
    Quartus Prime Standard Edition Handbook ၏ Hierarchical နှင့် Team-Based Design အခန်းအတွက် Prime Incremental Compilation
    a acl_iface_partition.qxp ကို ALTERAOCLSDKROOT/board/c5soc/c5soc လမ်းညွှန်မှ ဖယ်ရှားပါ။
    ခ Tcl command set_global_assignment -name LL_ENABLED OFF -section_id acl_iface_region ကို set_global_assignment -name LL_ENABLED ON -section_id acl_iface_region သို့ ပြောင်းလဲခြင်းဖြင့် acl_iface_region LogicLock™ ဒေသကို ဖွင့်ပါ
    ဂ။ သင့်ဘုတ်အတွက် OpenCL kernel တစ်ခုကို စုစည်းပါ။
    ဃ။ လိုအပ်ပါက LogicLock ဒေသ၏ အရွယ်အစားနှင့် တည်နေရာကို ချိန်ညှိပါ။
    င သင့်ဒီဇိုင်း၏နေရာချထားမှုသည် အချိန်ကိုက်သန့်ရှင်းနေကြောင်း ကျေနပ်သောအခါ၊ ထိုအပိုင်းကို acl_iface_partition.qxp Quartus Prime ထုတ်ယူထားသော အပိုင်းခွဲအဖြစ် ထုတ်ယူပါ။ File.
    ဤ .qxp ကို ထည့်သွင်းခြင်းဖြင့် OpenCL Custom Platform Toolkit အတွက် AIntel FPGA SDK ၏ Establishing Guaranteed Timing Flow ကဏ္ဍတွင် ဖော်ပြထားသည့်အတိုင်း၊  file ထိပ်တန်းဒီဇိုင်းတွင်၊ သင်သည် အာမခံအချိန်ကိုက်ပိတ်ခြင်းစီးဆင်းမှုဖြင့် ဘုတ်ဒီဇိုင်းကို ဖြည့်ဆည်းပေးသည့် လိုအပ်ချက်ကို ဖြည့်ဆည်းပေးသည်။
    သင်၏ တင်ပို့ထားသော အခန်းကန့်၏ ရလဒ်များ၏ အရည်အသွေး (QoR) ကို သက်ရောက်မှုရှိနိုင်သော အချက်များ အတွက်၊ OpenCL Custom Platform Toolkit အသုံးပြုသူ လမ်းညွှန်အတွက် Intel FPGA SDK မှ တင်ပို့ထားသော Board Partition ကဏ္ဍအတွက် အထွေထွေ အရည်အသွေး ရလဒ်များ ထည့်သွင်းစဉ်းစားမှုများကို ကိုးကားပါ။
    f အဆင့် 2 ရှိ command ကို set_global_assignment -name LL_ENABLED OFF section_id acl_iface_region သို့ ပြန်ပြောင်းခြင်းဖြင့် acl_iface_region LogicLock ဒေသကို ပိတ်လိုက်ပါ။
  4. သင်၏ SoC FPGA ဘုတ်သည် HPS ပိတ်ဆို့ခြင်း၏ မတူညီသော ပင်နံပါတ်များနှင့် အစွန်အဖျားများကို အသုံးပြုပါက၊ ကြိုတင်ထည့်သွင်းသူနှင့် စက်ပစ္စည်းသစ်ပင်ရင်းမြစ် (DTS) ကို ပြန်လည်ထုတ်ပေးပါ။ file. အကယ်၍ သင်သည် HPS DDR မမ်မိုရီ ထိန်းချုပ်ကိရိယာ ဆက်တင်များကို ပြောင်းလဲပါက၊ အကြိုတင်ဒါကို ပြန်ထုတ်ပါ။
  5. SD flash ကတ်ပုံ ဖန်တီးပါ။
  6. SD flash ကတ်ပုံပါ၀င်သည့် သင်၏စိတ်ကြိုက်ပလပ်ဖောင်းကို ဖန်တီးပါ။
  7. OpenCL အတွက် Intel FPGA Runtime Environment (RTE) နှင့် အသုံးပြုရန်အတွက် သင်၏ Custom Platform ၏ runtime environment ဗားရှင်းကို ဖန်တီးရန် စဉ်းစားပါ။ သင်၏ Custom Platform ၏ RTE ဗားရှင်းတွင် ဟာ့ဒ်ဝဲလမ်းညွှန်များနှင့် SD flash ကတ်ပုံ မပါဝင်ပါ။ ဤစိတ်ကြိုက်ပလပ်ဖောင်းသည် အိမ်ရှင်အက်ပ်လီကေးရှင်းများကိုလည်ပတ်ခွင့်ပြုရန် SoC FPGA စနစ်ပေါ်သို့တင်သည်။ ဆန့်ကျင်ဘက်အနေနှင့်၊ Custom Platform ၏ SDK ဗားရှင်းသည် OpenCL kernels များကို စုစည်းရန် SDK အတွက် လိုအပ်ပါသည်။
    အကြံပြုချက်- RTE အတွက် သင့်စိတ်ကြိုက်ပလပ်ဖောင်း၏ SDK ဗားရှင်းကို သင်အသုံးပြုနိုင်ပါသည်။ ကယ်တင်ရန်
    နေရာလွတ်၊ သင့်စိတ်ကြိုက်ပလပ်ဖောင်း၏ RTE ဗားရှင်းမှ SD flash ကတ်ပုံကို ဖယ်ရှားပါ။
  8. သင်၏စိတ်ကြိုက်ပလပ်ဖောင်းကိုစမ်းသပ်ပါ။
    အသေးစိတ်အချက်အလက်များအတွက် OpenCL Custom Platform Toolkit အသုံးပြုသူလမ်းညွှန်အတွက် Intel FPGA SDK ၏ ဟာ့ဒ်ဝဲဒီဇိုင်းစမ်းသပ်ခြင်းကဏ္ဍကို ကိုးကားပါ။

ဆက်စပ်လင့်ခ်များ

  • Hardware Design ကို စမ်းသပ်ခြင်း။
  • Hierarchical နှင့် Team-Based Design အတွက် Quartus Prime Incremental Compilation
  • အာမခံ Timing Flow ကို ထူထောင်ခြင်း။
  • Exported Board Partition အတွက် အထွေထွေ ရလဒ်များ ထည့်သွင်းစဉ်းစားမှုများ

1.2.1 Ported Reference Platform ကို အပ်ဒိတ်လုပ်ခြင်း။
Cyclone V SoC Development Kit Reference Platform ၏ လက်ရှိဗားရှင်းတွင်၊ HPS block သည် nonkernel logic အားလုံးကို သတ်မှတ်သည့် အခန်းကန့်အတွင်းတွင် ရှိပါသည်။ သို့သော်၊ သင်သည် .qxp ၏ တစ်စိတ်တစ်ပိုင်းအဖြစ် HPS ကို တင်ပို့၍မရပါ။ file. သင် c5soc ၏ ယခင်ဗားရှင်းတစ်ခုမှ ပြင်ဆင်ထားသော ရှိပြီးသား စိတ်ကြိုက်ပလပ်ဖောင်းကို အပ်ဒိတ်လုပ်ရန်၊ QXP ထိန်းသိမ်းမှု စီးဆင်းမှုကို အကောင်အထည်ဖော်ပါ၊ နောက်ဆုံး runtime ပတ်ဝန်းကျင်ကို ရယူရန် SD flash ကတ်ပုံကို အပ်ဒိတ်လုပ်ပြီး board_spec.xml ကို အပ်ဒိတ်လုပ်ပါ။ file automigration ကိုဖွင့်ရန်။
OpenCL ဗားရှင်း 14.1 အတွက် Altera SDK သည် ၎င်းကို စစ်ဆေးသည်။ board_spec.xml file ဘုတ်အဖွဲ့အချက်အလက်အတွက်၊ အလိုအလျောက်မွမ်းမံမှုများကို လုပ်ဆောင်ပေးသည်။ သင်ပြင်ဆင်ထားသောကြောင့်ဖြစ်သည်။
QXP ထိန်းသိမ်းမှု စီးဆင်းမှုကို အကောင်အထည်ဖော်ခြင်းဖြင့် ဒီဇိုင်း၊ သင်သည် board_spec.xml ကို မွမ်းမံရပါမည်။ file လက်ရှိဗားရှင်းတွင် ၎င်း၏ဖော်မတ်။ အဆင့်မြှင့်တင်ခြင်း။ file SDK အား ထိန်းသိမ်းမထားသော စိတ်ကြိုက်ပလပ်ဖောင်းများနှင့် လက်ရှိ QXP အခြေပြု စိတ်ကြိုက်ပလပ်ဖောင်းများအကြား ပိုင်းခြားရန် ခွင့်ပြုသည်။ ပိုမိုသိရှိလိုပါကများအတွက် OpenCL Custom Platform Toolkit အသုံးပြုသူလမ်းညွှန်အတွက် Intel FPGA SDK ရှိ ရှေ့သို့လိုက်ဖက်ညီမှုအတွက် Custom Platform Automigration ကို ကိုးကားပါ။

  1. C5soc ၏ ယခင်ဗားရှင်းတစ်ခုမှ ချိတ်ဆက်ထားသည့် Cyclone V SoC FPGA ဟာ့ဒ်ဝဲဒီဇိုင်းတွင် QXP ထိန်းသိမ်းစီးဆင်းမှုကို အကောင်အထည်ဖော်ရန်၊ HPS မှ .qxp မှဖယ်ထုတ်ရန် အောက်ပါအဆင့်ခွဲတစ်ခုကို ဖန်တီးရန် အောက်ပါအဆင့်များကို လုပ်ဆောင်ပါ။ file:
    a nonkernel logic ပတ်လည် အပိုင်းတစ်ခု မဖန်တီးမီ .qsf Quartus Prime ဆက်တင်များတွင် HPS ပတ်လည် အပိုင်းတစ်ခုကို ဖန်တီးပါ File.
    ဟောင်းအတွက်ample-
    # HPS-သီးသန့် I/O set_instance_assignment -name PARTITION_HIERARCHY borde_18261 -to “system:the_system|system_acl_iface:acl_iface|system_acl_iface_hps_0:hps_0|system_acl_0s_iface_0:hps_0|system_acl_XNUMXs_iface_XNUMX:hps_XNUMX|system_acl_XNUMXs_iface_XNUMX:hps_XNUMX|system_acl_XNUMXss_iface system_acl_iface_hps_XNUMX_hps_io_border:border" -section_id "system_acl_iface_hps_XNUMX_hps_io_border:border"
    # Partition ကို Quartus ၏ ကျန်ရှိသော မှန်ကန်စွာ လုပ်ဆောင်ရန် HPS_PARTITION အမျိုးအစားအဖြစ် သတ်မှတ်ပါ။
    set_global_assignment -name PARTITION_TYPE HPS_PARTITION -section_id “system_acl_iface_hps_0_hps_io_border:border”
    quartus_cdb ထိပ်တန်း -c ထိပ်
    –incremental_compilation_export=acl_iface_partition.qxp
    –incremental_compilation_export_partition_name=acl_iface_partition
    –incremental_compilation_export_post_synth=on
    –incremental_compilation_export_post_fit=on
    –incremental_compilation_export_routing=on
    –incremental_compilation_export_flatten=off
    သင်သည် HPS ကို အပိုင်းလိုက်မှ ဖယ်ထုတ်ပြီးနောက်၊ သင်သည် .qxp ကို ထည့်သွင်းနိုင်သည်။ file သင်၏ဒီဇိုင်းကိုပြုစုပါ။
  2. အောက်ပါလုပ်ဆောင်စရာများကိုလုပ်ဆောင်ခြင်းဖြင့် OpenCL အတွက် Intel FPGA RTE ၏လက်ရှိဗားရှင်းနှင့် SD flash ကတ်ပုံကို အပ်ဒိတ်လုပ်ပါ။
    a တောင်ပေါ် file ခွဲဝေဇယား (fat32) နှင့် ထပ်တိုးသည်။ file လက်ရှိပုံရှိ ပုံရှိ စနစ် (ext3) အခန်းကန့်များကို loop-back ကိရိယာများအဖြစ်။ အသေးစိတ်ညွှန်ကြားချက်များအတွက် SD Flash ကတ်ပုံတည်ဆောက်ခြင်းတွင် အဆင့် 2 ကို ကိုးကားပါ။
    ခ /home/root/opencl_arm32_rte လမ်းညွှန်တွင်၊ ဖယ်ရှားလိုက်ပါ။ fileRTE ၏ယခင်ဗားရှင်းမှ s ။
    ဂ။ RTE ၏ လက်ရှိဗားရှင်းကို /home/root/opencl_arm32_rte လမ်းညွှန်တွင် ဒေါင်းလုဒ်လုပ်ပြီး ထုပ်ပိုးလိုက်ပါ။
    ဃ။ ၌ /driver/version.h file သင့်စိတ်ကြိုက်ပလပ်ဖောင်း၏ ACL_DRIVER_VERSION တာဝန်ကို အပ်ဒိတ်လုပ်ပါ။ . (ဥပမာample၊ 16.1.x၊ 16.1 သည် SDK verison ဖြစ်ပြီး x သည် သင်သတ်မှတ်ထားသည့် driver ဗားရှင်းဖြစ်သည်)။
    င ယာဉ်မောင်းကို ပြန်လည်တည်ဆောက်ပါ။
    f သင့်စိတ်ကြိုက်ပလပ်ဖောင်း၏ ဟာ့ဒ်ဝဲဖိုင်တွဲ(များ)ကို ဖျက်ပါ။ မွမ်းမံထားသော ဒရိုက်ဘာနှင့်အတူ စိတ်ကြိုက်ပလပ်ဖောင်းကို /home/root/opencl_arm_rte/board directory သို့ ကူးယူပါ။
    ဆ Altera.icd ကိုကူးယူပါ။ file /home/root/opencl_arm32_rte directory မှ ၎င်းကို /etc/OpenCL/vendors directory သို့ ထည့်ပါ။
    ဇ ပုံအသစ်ကို ဖြုတ်ပြီး စမ်းသပ်ပါ။ အသေးစိတ်ညွှန်ကြားချက်များအတွက် SD Flash ကတ်ပုံတည်ဆောက်ခြင်းတွင် အဆင့် 8 မှ 11 ကို ကိုးကားပါ။

ဆက်စပ်လင့်ခ်များ

  • စာမျက်နှာ 14 တွင် SD Flash ကတ်ပုံ ဖန်တီးခြင်း။
    SD flash card ပုံအသစ်ဖန်တီးရန် သင့်တွင် ရွေးချယ်ခွင့်လည်းရှိသည်။
  • Forward Compatibility အတွက် စိတ်ကြိုက် Platform Automigration

1.3 Shared Memory အတွက် ဆော့ဖ်ဝဲလ်ပံ့ပိုးမှု
FPGA နှင့် CPU အကြား မျှဝေထားသော ရုပ်ပိုင်းဆိုင်ရာမှတ်ဉာဏ်သည် SoC FPGAs ပေါ်တွင် လုပ်ဆောင်နေသည့် OpenCL kernels အတွက် ဦးစားပေးမှတ်ဉာဏ်ဖြစ်သည်။ FPGA သည် မျှဝေထားသော ရုပ်ပိုင်းဆိုင်ရာမှတ်ဉာဏ်ကို အသုံးပြုထားသောကြောင့်၊ မျှဝေထားသော virtual memory နှင့် ဆန့်ကျင်ဘက်ဖြစ်သော၊ ၎င်းသည် အသုံးပြုသူ၏ virtual လိပ်စာများကို ရုပ်ပိုင်းဆိုင်ရာစာမျက်နှာလိပ်စာများသို့ မြေပုံညွှန်းပေးသည့် CPU ၏စာမျက်နှာဇယားများသို့ ဝင်ရောက်ခွင့်မရှိပါ။
ဟာ့ဒ်ဝဲနှင့်စပ်လျဉ်း၍ OpenCL kernels သည် HPS DDR hard memory controller သို့ တိုက်ရိုက်ချိတ်ဆက်မှုမှတစ်ဆင့် မျှဝေထားသော ရုပ်ပိုင်းဆိုင်ရာမှတ်ဉာဏ်ကို ဝင်ရောက်ကြည့်ရှုသည်။ ဆော့ဖ်ဝဲနှင့်စပ်လျဉ်း၍ မျှဝေထားသော ရုပ်ပိုင်းဆိုင်ရာမှတ်ဉာဏ်အတွက် ပံ့ပိုးမှုတွင် အောက်ပါအချက်များ ပါဝင်သည်-

  1. CPU တွင် Memory ခွဲဝေရန်အတွက် ပုံမှန်ဆော့ဖ်ဝဲလ် အကောင်အထည်ဖော်မှုများ (ဥပမာampmalloc() လုပ်ဆောင်ချက်) သည် FPGA အသုံးပြုနိုင်သည့် မမ်မိုရီဧရိယာကို ခွဲဝေပေးမည်မဟုတ်ပါ။
    malloc() လုပ်ဆောင်ချက် ခွဲဝေပေးသည့် မှတ်ဉာဏ်သည် virtual memory address space တွင် ဆက်စပ်နေသော်လည်း မည်သည့် အောက်ခြေ ရုပ်ပိုင်းဆိုင်ရာ စာမျက်နှာများသည် ရုပ်ပိုင်းဆိုင်ရာ ဆက်စပ်မှုမျှ မဖြစ်နိုင်ပါ။ ထို့ကြောင့်၊ အိမ်ရှင်သည် ရုပ်ပိုင်းဆိုင်ရာ ဆက်စပ်နေသော မှတ်ဉာဏ်နေရာများကို ခွဲဝေချထားနိုင်ရပါမည်။ သို့သော်၊ ဤစွမ်းရည်သည် Linux ရှိ အသုံးပြုသူနေရာလွတ်အက်ပ်များတွင် မရှိပါ။ ထို့ကြောင့်၊ Linux kernel driver သည် ခွဲဝေမှုကို လုပ်ဆောင်ရပါမည်။
  2. OpenCL SoC FPGA Linux kernel driver တွင် မျှဝေထားသော ရုပ်ပိုင်းဆိုင်ရာမှတ်ဉာဏ်ကို ခွဲဝေပေးပြီး အသုံးပြုသူနေရာသို့ မြေပုံဆွဲရန် mmap() လုပ်ဆောင်ချက် ပါဝင်ပါသည်။ mmap() လုပ်ဆောင်ချက်သည် စက်ပစ္စည်းတစ်ခုနှင့် မျှဝေရန်အတွက် ရုပ်ပိုင်းဆိုင်ရာ ဆက်စပ်နေသော မမ်မိုရီဒေသများကို တောင်းဆိုရန်အတွက် စံ Linux kernel ခေါ်ဆိုမှု dma_alloc_coherent() ကို အသုံးပြုသည်။
  3. မူရင်း Linux kernel တွင်၊ dma_alloc_coherent() သည် အရွယ်အစား 0.5 megabytes (MB) ထက်ပို၍ ရုပ်ပိုင်းဆိုင်ရာ ဆက်စပ်နေသော memory ကို ခွဲဝေပေးမည်မဟုတ်ပါ။ dma_alloc_coherent() သည် ရုပ်ပိုင်းဆိုင်ရာ ဆက်စပ်နေသော မမ်မိုရီ အများအပြားကို ခွဲဝေခွင့်ပြုရန်၊ Linux kernel ၏ ဆက်တိုက်မှတ်ဉာဏ် ခွဲဝေပေးသူ (CMA) အင်္ဂါရပ်ကို ဖွင့်ပြီးနောက် Linux kernel ကို ပြန်လည်ပေါင်းစည်းပါ။
    Cyclone V SoC Development Kit Reference Platform အတွက်၊ CMA သည် ရုပ်ပိုင်းဆိုင်ရာမှတ်ဉာဏ် 512 GB မှ 1 MB ကို စီမံခန့်ခွဲသည်။ အပလီကေးရှင်းမှ လိုအပ်သော မျှဝေထားသော မှတ်ဉာဏ်ပမာဏပေါ်မူတည်၍ ဤတန်ဖိုးကို သင် တိုးနိုင်သည် သို့မဟုတ် လျှော့ချနိုင်သည်။ dma_alloc_coherent() ခေါ်ဆိုမှုသည် ရုပ်ပိုင်းဆိုင်ရာ ဆက်စပ်နေသော မမ်မိုရီ၏ 512 MB အပြည့်အစုံကို ခွဲဝေပေးနိုင်မည် မဟုတ်ပါ။ သို့သော်၊ ၎င်းသည်ပုံမှန်အားဖြင့်ခန့်မှန်းခြေအားဖြင့် 450 MB memory ကိုရနိုင်သည်။
  4. CPU သည် dma_alloc_coherent() ခွဲဝေသတ်မှတ်ပေးသည့် မမ်မိုရီကို သိမ်းဆည်းနိုင်သည်။ အထူးသဖြင့်၊ host အပလီကေးရှင်းမှရေးသားသည့်လုပ်ဆောင်ချက်များကို OpenCL kernels မှမမြင်နိုင်ပါ။ OpenCL SoC FPGA Linux kernel driver ရှိ mmap() လုပ်ဆောင်ချက်တွင် ဤမှတ်ဉာဏ်၏ ဒေသအတွက် ကက်ရှ်ချခြင်းကို ပြတ်သားစွာ ပိတ်ရန် pgprot_noncached() သို့မဟုတ် remap_pf_range() လုပ်ဆောင်ချက်တို့လည်း ပါရှိသည်။
  5. dma_alloc_coherent() လုပ်ဆောင်ချက်သည် ရုပ်ပိုင်းဆိုင်ရာ ဆက်စပ်နေသော မမ်မိုရီကို ခွဲဝေပေးပြီးနောက်၊ mmap() လုပ်ဆောင်ချက်သည် သင်ခွဲဝေပေးသည့် မမ်မိုရီ၏ လိပ်စာအပိုင်းအခြားဖြစ်သည့် အပိုင်းအခြား၏အစသို့ virtual လိပ်စာကို ပြန်ပေးသည်။ မန်မိုရီကိုဝင်ရောက်ရန် လက်ခံအပလီကေးရှင်းသည် ဤ virtual လိပ်စာကို လိုအပ်သည်။ အခြားတစ်ဖက်တွင်၊ OpenCL kernels များသည် ရုပ်ပိုင်းဆိုင်ရာလိပ်စာများ လိုအပ်သည်။ Linux kernel driver သည် virtual-to-physical address mapping ကို ခြေရာခံသည်။ mmap() သည် driver သို့ query ပေါင်းထည့်ခြင်းဖြင့် အမှန်တကယ် ရုပ်ပိုင်းဆိုင်ရာ လိပ်စာများသို့ ပြန်သွားသော ရုပ်ပိုင်းဆိုင်ရာ လိပ်စာများကို မြေပုံဆွဲနိုင်ပါသည်။
    aocl_mmd_shared_mem_alloc() MMD အပလီကေးရှင်း ပရိုဂရမ်းမင်း အင်တာဖေ့စ် (API) ခေါ်ဆိုမှုတွင် အောက်ပါမေးခွန်းများ ပါဝင်သည်။
    a မန်မိုရီကို ခွဲဝေပေးပြီး virtual address ကို ပြန်ပေးသည့် mmap() လုပ်ဆောင်ချက်။
    ခ ပြန်လာသော virtual လိပ်စာကို ရုပ်ပိုင်းဆိုင်ရာလိပ်စာသို့ မြေပုံညွှန်းပေးသည့် အပိုမေးခွန်း။
    aocl_mmd_shared_mem_alloc() MMD API ခေါ်ဆိုမှုပြီးနောက် လိပ်စာနှစ်ခုကို ပြန်ပေးသည်
    — အမှန်တကယ် ပြန်ပေးသည့် လိပ်စာသည် ပကတိ လိပ်စာဖြစ်ပြီး၊ ရုပ်ပိုင်းဆိုင်ရာ လိပ်စာသည် device_ptr_out သို့ သွားပါသည်။
    မှတ်ချက် - ယာဉ်မောင်းသည် mmap() လုပ်ဆောင်ချက်သည် ရုပ်ပိုင်းဆိုင်ရာလိပ်စာများသို့ ပြန်သွားသည့် virtual လိပ်စာများကိုသာ မြေပုံဆွဲနိုင်သည်။ အခြား virtual pointer ၏ ရုပ်ပိုင်းဆိုင်ရာလိပ်စာကို တောင်းဆိုပါက၊ driver သည် NULL တန်ဖိုးကို ပြန်ပေးသည်။

သတိပေးချက်- OpenCL runtime libraries အတွက် Intel FPGA SDK သည် မျှဝေထားသော memory သည် board_spec.xml တွင် ဖော်ပြထားသော ပထမဆုံး memory ဖြစ်သည်ဟု ယူဆသည် file. တစ်နည်းဆိုရသော်၊ Linux kernel driver မှရရှိသော ရုပ်ပိုင်းဆိုင်ရာလိပ်စာသည် OpenCL kernel မှ HPS SDRAM သို့ပေးပို့သော Avalon® လိပ်စာဖြစ်လာသည်။
runtime စာကြည့်တိုက်နှင့် စပ်လျဉ်း၍ မျှဝေထားသော memory ကို စက်ပစ္စည်းကြားခံအဖြစ် ခွဲဝေသတ်မှတ်ရန် clCreateBuffer() ခေါ်ဆိုမှုကို အသုံးပြုပါ။

  • CL_MEM_USE_HOST_PTR အလံကို သတ်မှတ်ပါက clCreateBuffer() သည် မျှဝေထားသော မမ်မိုရီနှစ်ခုလုံးပါရှိသော DDR ဘုတ်ဗားရှင်းနှစ်မျိုးအတွက်၊ အခြားအလံများကိုအသုံးပြုခြင်းသည် clCreateBuffer() အား မျှဝေမထားသောမှတ်ဉာဏ်တွင် ကြားခံခွဲဝေရန်ဖြစ်စေသည်။
  • မျှဝေထားသည့်မှတ်ဉာဏ်တစ်ခုတည်းသာရှိသော DDR ဘုတ်ဗားရှင်းတစ်မျိုးအတွက်၊ clCreateBuffer() သည် သင်မည်သည့်အလံကိုမျှမသတ်မှတ်ဘဲ မျှဝေထားသောမှတ်ဉာဏ်ကို ခွဲဝေပေးသည်။
    လက်ရှိတွင်၊ ARM CPU ပေါ်ရှိ 32-bit Linux ပံ့ပိုးမှုသည် SDK runtime libraries များတွင် မျှဝေထားသော memory ပံ့ပိုးမှုအတိုင်းအတာကို အုပ်ချုပ်သည်။ တစ်နည်းဆိုရသော်၊ runtime libraries များသည် အခြားပတ်ဝန်းကျင်များသို့ စုစည်းထားသည် (ဥပမာample၊ x86_64 Linux သို့မဟုတ် 64-bit Windows) မျှဝေထားသော memory ကို မပံ့ပိုးပါ။
    C5soc သည် အောက်ဖော်ပြပါ အကြောင်းများကြောင့် မျှဝေထားသော နှင့် nonshared memory အကြား ကွဲပြားခြားနားသော မှတ်ဉာဏ်ကို အကောင်အထည်မဖော်ခဲ့ပါ။
    1. မှတ်တမ်း—မျှဝေထားသောမှတ်ဉာဏ်ပံ့ပိုးမှုကို မူလဖန်တီးထားသောအခါတွင် ကွဲပြားသောမှတ်ဉာဏ်ပံ့ပိုးမှုကို မရရှိနိုင်ပါ။
    2. Uniform interface—OpenCL သည် ပွင့်လင်းသောစံနှုန်းဖြစ်သောကြောင့် Intel သည် ကွဲပြားသောကွန်ပျူတာပလပ်ဖောင်းရောင်းချသူများကြား ညီညွတ်မှုကို ထိန်းသိမ်းထားသည်။ ထို့ကြောင့်၊ အခြားဘုတ်ရောင်းချသူများ၏ဗိသုကာလက်ရာများနှင့်တူညီသောအင်တာဖေ့စ်ကိုခွဲဝေသုံးစွဲရန်နှင့်မျှဝေထားသောမှတ်ဉာဏ်ကိုအသုံးပြုရန်အသုံးပြုသည်။

1.4 FPGA ပြန်လည်ဖွဲ့စည်းမှု
SoC FPGAs အတွက်၊ CPU သည် CPU ၏လုပ်ဆောင်ချက်ကို အနှောင့်အယှက်မဖြစ်စေဘဲ FPGA core ထည်ကို ပြန်လည်ပြင်ဆင်နိုင်သည်။ HPS ကိုလွန်ဆွဲနေသော FPGA မန်နေဂျာသည် ဟာ့ဒ်ဝဲပိတ်ဆို့ပြီး core FPGA သည် ပြန်လည်ဖွဲ့စည်းမှုကို လုပ်ဆောင်သည်။ Linux kernel တွင် FPGA Manager သို့ လွယ်ကူစွာဝင်ရောက်နိုင်စေမည့် driver တစ်ခုပါ၀င်သည် ။

  • ရန် view FPGA core ၏ အခြေအနေကို၊ cat /sys/class/fpga/fpga0/ status command ကို ခေါ်ဆိုပါ။
    Cyclone V SoC Development Kit Reference Platform ဖြင့်ရရှိနိုင်သော OpenCL ပရိုဂရမ်အတွက် Intel FPGA SDK သည် FPGA ပရိုဂရမ်အတွက် ဤအင်တာဖေ့စ်ကိုအသုံးပြုသည်။ လည်ပတ်နေသော CPU ဖြင့် FPGA core ကို ပြန်လည်ပရိုဂရမ်ပြုလုပ်သောအခါ၊ ပရိုဂရမ် utility သည် အောက်ပါအလုပ်များအားလုံးကို လုပ်ဆောင်သည်-
    1. ပြန်လည်ပရိုဂရမ်မတင်မီ FPGA နှင့် HPS၊ H2F နှင့် LH2F တံတားများကြားရှိ ဆက်သွယ်ရေးတံတားများအားလုံးကို ပိတ်ပါ။
    ပရိုဂရမ်ပြန်လည်ရေးဆွဲခြင်း ပြီးပါက ဤတံတားများကို ပြန်လည်ဖွင့်ပါ။
    သတိပြုရန်- OpenCL စနစ်သည် FPGA-to-HPS (F2H) တံတားကို အသုံးမပြုပါ။ နောက်ထပ်အချက်အလက်များအတွက် Cyclone V စက်ပစ္စည်းလက်စွဲစာအုပ်ရှိ HPS-FPGA Interfaces ကဏ္ဍ၊ အတွဲ 3- Hard Processor စနစ်ပိုင်းဆိုင်ရာ ကိုးကားချက်လက်စွဲကို ဖတ်ရှုပါ။
    2. FPGA နှင့် HPS DDR ထိန်းချုပ်ကိရိယာကြားရှိ လင့်ခ်အား ပြန်လည်ပရိုဂရမ်ရေးဆွဲစဉ်တွင် ပိတ်ထားကြောင်း သေချာပါစေ။
    3. ပြန်လည်ပရိုဂရမ်ရေးဆွဲနေစဉ် FPGA တွင် FPGA နှောင့်ယှက်မှုများကို ပိတ်ထားကြောင်း သေချာပါစေ။
    ထို့အပြင်၊ ပြန်လည်ပရိုဂရမ်ရေးဆွဲနေစဉ် FPGA မှ အနှောင့်အယှက်များကို ငြင်းပယ်ရန် ယာဉ်မောင်းအား အသိပေးပါ။

အမှန်တကယ်အကောင်အထည်ဖော်မှုဆိုင်ရာ အသေးစိတ်အချက်အလက်များအတွက် ပရိုဂရမ် utility ၏အရင်းအမြစ်ကုဒ်ကို ဖတ်ရှုပါ။

သတိပေးချက်- CPU အလုပ်လုပ်နေချိန်တွင် HPS DDR ထိန်းချုပ်ကိရိယာ၏ဖွဲ့စည်းပုံအား မပြောင်းလဲပါနှင့်။
ထိုသို့လုပ်ဆောင်ခြင်းသည် CPU မှ ထူးထူးခြားခြား မမ်မိုရီအပေးအယူများရှိနေချိန်တွင် DDR ထိန်းချုပ်မှုပုံစံကို သင်ပြောင်းလဲနိုင်သောကြောင့် ဆိုးရွားသောစနစ်အမှားအယွင်းဖြစ်စေနိုင်သည်။ ဆိုလိုသည်မှာ CPU လည်ပတ်နေချိန်တွင်၊ သင်သည် FPGA core ကို မတူညီသောပုံစံတစ်ခုဖြင့် HPS DDR ကိုအသုံးပြုသည့် ပုံတစ်ခုဖြင့် ပြန်လည်ပရိုဂရမ်လုပ်မည်မဟုတ်ပါ။
OpenCL စနစ်နှင့် Intel SoC FPGA Embedded Design Suite (EDS) ဖြင့် ရရှိနိုင်သော Golden Hardware ရည်ညွှန်းဒီဇိုင်းသည် HPS DDR ကို 256-bit မုဒ်တစ်ခုတည်းအဖြစ် သတ်မှတ်ပေးကြောင်း သတိရပါ။
ဌာနခွဲကြိုတင်ခန့်မှန်းသူ သို့မဟုတ် စာမျက်နှာဇယားကြိုတင်ပေးသူကဲ့သို့သော CPU စနစ်အစိတ်အပိုင်းများသည် CPU ပေါ်တွင် မည်သည့်အရာမျှလုပ်ဆောင်ခြင်းမရှိသည့်တိုင် DDR အမိန့်များကို ထုတ်ပြန်နိုင်သည်။
ထို့ကြောင့်၊ boot time သည် HPS DDR controller configuration ကို သတ်မှတ်ရန် တစ်ခုတည်းသော ဘေးကင်းသော အချိန်ဖြစ်သည်။
၎င်းသည် U-boot တွင် အကြမ်း binary ရှိရမည်ဟုလည်း ဆိုလိုသည်။ file (.rbf) ပုံရိပ်ကို မန်မိုရီတွင် တင်ရန်။ မဟုတ်ပါက သင်သည် FPGA တွင် အသုံးမပြုသော port များနှင့်အတူ HPS DDR ကိုဖွင့်ထားပြီး နောက်ပိုင်းတွင် port configurations များကို ပြောင်းလဲနိုင်သည်။ ဤအကြောင်းကြောင့် OpenCL Linux kernel driver တွင် HPS DDR controller configuration ကို သတ်မှတ်ရန် လိုအပ်သော logic မပါဝင်တော့ပါ။
SW3 dual in-line package (DIP) သည် Cylone V SoC Development Kit ပေါ်ရှိ ခလုတ်များသည် .rbf ရုပ်ပုံ၏ မျှော်လင့်ထားသော ပုံစံကို ထိန်းချုပ်သည် (ဆိုလိုသည်မှာ၊ file ချုံ့ပြီး/သို့မဟုတ် ကုဒ်ဝှက်ထားသည်)။ C5soc နှင့် SoC EDS ဖြင့်ရရှိနိုင်သော Golden Hardware Reference Design တွင် ဖိသိပ်ထားသော်လည်း ကုဒ်မထားသော .rbf ပုံများ ပါဝင်သည်။ OpenCL Cyclone V SoC စတင်ခြင်းလမ်းညွှန်အတွက် Intel FPGA SDK တွင်ဖော်ပြထားသော SW3 DIP ခလုတ်ဆက်တင်များသည် ဤ .rbf ရုပ်ပုံဖွဲ့စည်းပုံနှင့် ကိုက်ညီပါသည်။

ဆက်စပ်လင့်ခ်များ

  • HPS-FPGA မျက်နှာပြင်များ
  • SW3 Switches များကို ပြင်ဆင်ခြင်း။

1.4.1 FPGA စနစ်ဗိသုကာအသေးစိတ်
Cyclone V SoC Development Kit Reference Platform အတွက် ပံ့ပိုးမှုသည် OpenCL အတွက် Intel FPGA SDK ဖြင့် ရရှိနိုင်သော Stratix® V Reference Platform (s5_ref) ကို အခြေခံထားသည်။
c5soc Qsys စနစ်နှင့် kernel driver ၏ အလုံးစုံဖွဲ့စည်းပုံသည် s5_ref တွင်ရှိသည့်အရာများနှင့် အလွန်ဆင်တူသည်။
အောက်ပါ FPGA core အစိတ်အပိုင်းများသည် c5soc နှင့် s5_ref နှစ်ခုလုံးတွင် တူညီသည်-

  • VERSION_ID ပိတ်ဆို့ခြင်း။
  • ကျန်တာ ယန္တရား
  • မန်မိုရီဘဏ်ခွဲခြမ်း
  • Cache snoop အင်တာဖေ့စ်
  • Kernel နာရီ
  • မှတ်ပုံတင်ခွင့် (CRA) လုပ်ကွက်များကို ထိန်းချုပ်ပါ။

1.5 SD Flash Card ရုပ်ပုံတည်ဆောက်ခြင်း။
Cyclone V SoC FPGA သည် ချစ်ပ်တစ်ခုပေါ်ရှိ အပြည့်အဝစနစ်ဖြစ်သောကြောင့်၊ စနစ်၏ အဓိပ္ပါယ်အပြည့်အစုံကို ပေးဆောင်ရန် သင့်တွင် တာဝန်ရှိပါသည်။ Intel က ၎င်းကို SD flash ကတ်ပုံသဏ္ဍာန်ဖြင့် ပေးပို့ရန် အကြံပြုထားသည်။ OpenCL အသုံးပြုသူအတွက် Intel FPGA SDK သည် ရုပ်ပုံအား micro SD flash ကတ်သို့ ရိုးရှင်းစွာရေးနိုင်ပြီး SoC FPGA ဘုတ်သည် အသုံးပြုရန် အသင့်ဖြစ်နေပါပြီ။
စာမျက်နှာ 13 တွင် ရှိပြီးသား SD Flash ကတ်ပုံကို မွမ်းမံပြင်ဆင်ခြင်း။
Cyclone V SoC Development Kit Reference Platform ဖြင့် ရရှိနိုင်သော ပုံကို ရိုးရိုးရှင်းရှင်း ပြင်ဆင်ရန် Intel မှ အကြံပြုပါသည်။ SD flash card ပုံအသစ်ဖန်တီးရန် သင့်တွင် ရွေးချယ်ခွင့်လည်းရှိသည်။
စာမျက်နှာ 14 တွင် SD Flash ကတ်ပုံ ဖန်တီးခြင်း။
SD flash card ပုံအသစ်ဖန်တီးရန် သင့်တွင် ရွေးချယ်ခွင့်လည်းရှိသည်။

1.5.1 ရှိပြီးသား SD Flash ကတ်ပုံကို မွမ်းမံပြင်ဆင်ခြင်း။
Cyclone V SoC ဖြင့် ရရှိနိုင်သော ပုံကို ရိုးရှင်းစွာ ပြင်ဆင်ရန် Intel မှ အကြံပြုထားသည်။
Development Kit အကိုးအကား ပလပ်ဖောင်း။ SD flash card ပုံအသစ်ဖန်တီးရန် သင့်တွင် ရွေးချယ်ခွင့်လည်းရှိသည်။
c5soc linux_sd_card_image.tgz ပုံ file ALTERAOCLSDKROOT/board/c5soc directory တွင် ALTERAOCLSDKROOT သည် OpenCL ၏ တပ်ဆင်မှုလမ်းညွှန်အတွက် Intel FPGA SDK ၏ လမ်းကြောင်းကို ညွှန်ပြရာ။

အာရုံစူးစိုက်မှု- SD flash ကတ်ပုံကို မွမ်းမံရန်၊ သင့်တွင် root သို့မဟုတ် sudo အခွင့်ထူးများ ရှိရပါမည်။

  1. $ALTERAOCLSDKROOT/board/c5soc/linux_sd_card_image.tgz ကို ချုံ့ရန် filetar xvfzlinux_sd_card_image.tgz ညွှန်ကြားချက်ကို လုပ်ဆောင်ပါ။
  2. hello_world OpenCL ex ကို စုစည်းပါ။ampသင်၏ Custom Platform ပံ့ပိုးမှုကို အသုံးပြု၍ ဒီဇိုင်းဆွဲပါ။ .rbf ကို အမည်ပြောင်းပါ။ file OpenCL Offline Compiler အတွက် Intel FPGA SDK သည် opencl.rbf အဖြစ် ထုတ်ပေးပြီး SD flash card ပုံအတွင်း fat32 partition ပေါ်တွင် ထားရန်။
    hello_world ex ကို ဒေါင်းလုဒ်လုပ်နိုင်ပါသည်။ampOpenCL Design Ex မှ ဒီဇိုင်းampAltera ရှိ les စာမျက်နှာ website.
  3. .rbf ကိုထည့်ပါ။ file flash card image ၏ fat32 partition သို့။
    အာရုံစူးစိုက်မှု- fat32 partition တွင် zImage နှစ်ခုလုံးပါဝင်ရပါမည်။ file နှင့် .rbf file. .rbf မပါတဲ့ fileယာဉ်မောင်းကို ထည့်သွင်းသည့်အခါ ဆိုးရွားသော အမှားတစ်ခု ဖြစ်ပေါ်လိမ့်မည်။
  4. SD ကတ်ပုံအား ဖန်တီးပြီးနောက်၊ အောက်ပါ command ကိုခေါ်ဆိုခြင်းဖြင့် ၎င်းကို micro SD ကတ်သို့ ရေးပါ- sudo dd if=/path/to/sdcard/image.bin of=/dev/sdcard
  5. သင်၏ SD flash ကတ်ပုံအား စမ်းသပ်ရန် အောက်ပါလုပ်ဆောင်စရာများကို လုပ်ဆောင်ပါ-
    a micro SD flash card ကို SoC FPGA ဘုတ်ထဲသို့ ထည့်ပါ။
    ခ ဘုတ်ကို ပါဝါဖွင့်ပါ။
    ဂ။ aocl diagnose utility command ကို ခေါ်ပါ။

1.5.2 SD Flash ကတ်ပုံ ဖန်တီးခြင်း။
SD flash card ပုံအသစ်ဖန်တီးရန် သင့်တွင် ရွေးချယ်ခွင့်လည်းရှိသည်။ SD flash ကတ်ပုံအသစ်တစ်ခုတည်ဆောက်ခြင်းနှင့် လက်ရှိ SD flash ကတ်ပုံတစ်ပုံကို ပြန်လည်တည်ဆောက်ခြင်းဆိုင်ရာ ယေဘူယျညွှန်ကြားချက်များကို RocketBoards.org ၏ GSRD v14.0.2 – SD Card စာမျက်နှာတွင် ရနိုင်ပါသည်။ website.
အောက်ဖော်ပြပါအဆင့်များသည် Golden System Reference Design (GSRD) SD flash card ရုပ်ပုံမှ linux_sd_card_image.tgz ပုံကို ဖန်တီးရန်အတွက် လုပ်ထုံးလုပ်နည်းကို ဖော်ပြသည်-
မှတ်ချက် -
c5soc ရုပ်ပုံမှ ပုံကို ဖန်တီးရန်၊ ဤလုပ်ငန်းစဉ်တွင် ဖော်ပြထားသော သက်ဆိုင်ရာ အလုပ်များအားလုံးကို လုပ်ဆောင်ပါ။

  1. Rocketboards.org မှ GSRD SD flash card ရုပ်ပုံဗားရှင်း 14.0 ကို ဒေါင်းလုဒ်လုပ်ပြီး ထုပ်ပိုးလိုက်ပါ။
  2. တောင်ပေါ် file ခွဲဝေဇယား (fat32) နှင့် ထပ်တိုးသည်။ file ဤပုံရှိ စနစ် (ext3) အခန်းကန့်များကို လှည့်ပတ်သည့် ကိရိယာများအဖြစ်။ အခန်းကန့်တစ်ခုကို တပ်ဆင်ရန် အောက်ပါအဆင့်များကို လုပ်ဆောင်ပါ။
    a /sbin/fdisk -lu image_ ကိုခေါ်ဆိုခြင်းဖြင့် ပုံအတွင်းရှိ partition ၏ byte စတင်မှုကို သတ်မှတ်ပါfile အမိန့်။
    ဟောင်းအတွက်ample၊ W1 FAT အမျိုးအစား၏ အပိုင်းလိုက်နံပါတ် 95 တွင် ဘလောက်အော့ဖ်ဆက်သည် 2121728 ရှိသည်။ တစ်တုံးလျှင် 512 bytes ဖြင့်၊ ဘိုက် offset သည် 512 bytes x 2121728 = 1086324736 bytes ဖြစ်သည်။
    ခ အခမဲ့ကွင်းဆက်ကိရိယာကို ခွဲခြားသတ်မှတ်ပါ (ဥပမာample, /dev/loop0) losetup -f command ကိုရိုက်ထည့်ပါ။
    ဂ။ /dev/loop0 သည် အခမဲ့ loop device ဖြစ်သည်ဟု ယူဆပါက losetup /dev/loop0 image_ ကို ခေါ်ဆိုခြင်းဖြင့် သင်၏ flash card image ကို loop block device သို့ သတ်မှတ်ပေးပါ။file -0 1086324736 အမိန့်။
    ဃ။ mount /dev/loop0 /media/disk1 အမိန့်ကို ခေါ်ဆိုခြင်းဖြင့် စက်ကွင်းကို တပ်ဆင်ပါ။
    ပုံထဲမှာပဲ။ file၊ /media/disk1 သည် ယခု တပ်ဆင်ထားသော fat32 အပိုင်းတစ်ခုဖြစ်သည်။
    င ext3 partition အတွက် အဆင့် a မှ d ကို ပြန်လုပ်ပါ။
  3. Altera ရှိ ဒေါင်းလုဒ်စင်တာမှ OpenCL ပက်ကေ့ဂျ်အတွက် Intel FPGA Runtime Environment ၏ Cyclone V SoC FPGA ဗားရှင်းကို ဒေါင်းလုဒ်လုပ်ပါ website.
    a Quartus Prime software edition ဘေးရှိ ဒေါင်းလုဒ်ခလုတ်ကို နှိပ်ပါ။
    ခ ထုတ်ဝေသည့်ဗားရှင်း၊ လည်ပတ်မှုစနစ်နှင့် ဒေါင်းလုဒ်နည်းလမ်းကို သတ်မှတ်ပါ။
    ဂ။ အပိုဆော့ဖ်ဝဲတက်ဘ်ကို နှိပ်ပြီး Intel FPGA ကို ဒေါင်းလုဒ်လုပ်ရန် ရွေးချယ်ပါ။
    OpenCL Linux Cyclone V SoC TGZ အတွက် Runtime Environment
    ဃ။ aocl-rte- ကိုဒေါင်းလုဒ်လုပ်ပြီးနောက်၊ .arm32.tgz fileထုပ်ပိုးလိုက်ပါ။
    သင်ပိုင်ဆိုင်သော လမ်းညွှန်တစ်ခု။
  4. ထုပ်ပိုးထားသော aocl-rte- ကိုထည့်ပါ။ ပုံ၏ ext32 အကန့်ခွဲရှိ /home/root/opencl_arm32_rte လမ်းညွှန်ထဲသို့ .arm3 လမ်းညွှန် file.
  5. သင်၏ စိတ်ကြိုက်ပလပ်ဖောင်း၏ ဟာ့ဒ်ဝဲဖိုင်တွဲ(များ)ကို ဖျက်ပါ၊ ထို့နောက် စိတ်ကြိုက်ပလပ်ဖောင်းကို /home/root/ opencl_arm32_rte ၏ဘုတ်အဖွဲ့ခွဲသို့ ထားလိုက်ပါ။
  6. init_opencl.sh ကိုဖန်တီးပါ။ file အောက်ပါအကြောင်းအရာပါရှိသော /home/root directory တွင်- ALTERAOCLSDKROOT=/home/root/opencl_arm32_rte ထုတ်ယူရန် AOCL_BOARD_PACKAGE_ROOT=$ALTERAOCLSDKROOT/board/ PATH=$ALTERAOCLSDKROOT/bin-$PATH တင်ပို့ခြင်း LD_LIBRARY_PATH=$ALTERAOCLSDKROOT/host/arm32/lib:$LD_LIBRARY_PATH insmod $AOCL_BOARD_PACKAGE_ROOT/driver/aclsoc_drv.ko
    SDK အသုံးပြုသူသည် ပတ်ဝန်းကျင် ကိန်းရှင်များနှင့် OpenCL Linux kernel ဒရိုက်ဗာကို တင်ရန် အရင်းအမြစ် ./init_opencl.sh ညွှန်ကြားချက်ကို လုပ်ဆောင်သည်။
  7. preloader ကို အပ်ဒိတ်လုပ်ရန် လိုအပ်ပါက DTS files သို့မဟုတ် Linux kernel၊ သင်သည် SoC EDS မှ arm-linux-gnueabihf-gcc compiler လိုအပ်သည်။ Intel SoC FPGA Embedded Design Suite User Guide တွင်ဖော်ပြထားသော ညွှန်ကြားချက်များကို လိုက်နာပြီး ဆော့ဖ်ဝဲကို ရယူရန်၊ ၎င်းတို့ကို ပြန်လည်စုစည်းပြီး သက်ဆိုင်ရာကို အပ်ဒိတ်လုပ်ပါ။ fileတပ်ဆင်ထားသော fat32 partition တွင် s ။
    အာရုံစူးစိုက်မှု- သင်၏ Custom Platform တွင် c5soc တွင် မတူညီသော ပင်နံပါတ်အသုံးပြုမှုများရှိနေပါက preloader ကို အပ်ဒိတ်လုပ်ရန် လိုအပ်သည်မှာ ဖြစ်နိုင်ခြေများပါသည်။
    သတိရပါ- Linux kernel ကို ပြန်လည်ပေါင်းစည်းပါက၊ Linux kernel driver ကို တူညီသော Linux kernel အရင်းအမြစ်ဖြင့် ပြန်လည်ပေါင်းစပ်ပါ file၎။ Linux kernel driver နှင့် Linux kernel အကြား မကိုက်ညီပါက၊ driver သည် load လုပ်မည်မဟုတ်ပါ။ ထို့အပြင်၊ သင်သည် CMA ကိုဖွင့်ရပါမည်။
    နောက်ထပ်အချက်အလက်များအတွက် Linux Kernel ကို ပြန်လည်ပေါင်းစည်းခြင်းအား ကိုးကားပါ။
  8. hello_world OpenCL ex ကို စုစည်းပါ။ampသင်၏ Custom Platform ပံ့ပိုးမှုကို အသုံးပြု၍ ဒီဇိုင်းဆွဲပါ။ .rbf ကို အမည်ပြောင်းပါ။ file OpenCL Offline Compiler အတွက် Intel FPGA SDK သည် opencl.rbf အဖြစ် ထုတ်ပေးပြီး SD flash card ပုံအတွင်း fat32 partition ပေါ်တွင် ထားရန်။
    hello_world ex ကို ဒေါင်းလုဒ်လုပ်နိုင်ပါသည်။ampOpenCL Design Ex မှ ဒီဇိုင်းampAltera ရှိ les စာမျက်နှာ website.
    9. လိုအပ်သည်များအားလုံးကို သိမ်းဆည်းပြီးနောက် fileflash card image ပေါ်တွင် အောက်ပါ command များကို ခေါ်ဆိုပါ။
    a ထပ်တူကျသည်။
    ခ /media/disk1 ကိုဖြုတ်ပါ။
    ဂ။ unmount ဘယ်မှာလဲ။ စာမျက်နှာ 3 တွင် 3 တွင် ext3 partition ကို mount လုပ်ရန်အတွက် သင်အသုံးပြုသော directory name (ဥပမာ၊ample၊ /media/disk2)။
    ဃ။ Losetup -d /dev/loop0
    င ပျောက်ဆုံးမှု -d /dev/loop1
  9. အောက်ပါ command ကို ခေါ်ဆိုခြင်းဖြင့် SD flash ကဒ် ပုံကို ချုံ့ပါ - tar cvfz .tgz linux_sd_card_image
  10. ပေးပို့ပါ။ .tgz file သင်၏ Custom Platform ၏ root directory အတွင်း။
  11. သင်၏ SD flash ကတ်ပုံအား စမ်းသပ်ရန် အောက်ပါလုပ်ဆောင်စရာများကို လုပ်ဆောင်ပါ-
    a ရရှိလာသော ပုံအား micro SD flash card တွင် ချုံ့မထားသောပုံကို ရေးပါ။
    ခ micro SD flash card ကို SoC FPGA ဘုတ်ထဲသို့ ထည့်ပါ။
    ဂ။ ဘုတ်ကို ပါဝါဖွင့်ပါ။
    ဃ။ aocl diagnose utility command ကို ခေါ်ပါ။

ဆက်စပ်လင့်ခ်များ

  • Intel SoC FPGA Embedded Design Suite အသုံးပြုသူလမ်းညွှန်
  • OpenCL ဒီဇိုင်း ExampAltera ရှိ les စာမျက်နှာ website
  • စာမျက်နှာ 16 ရှိ Linux Kernel ကို ပြန်လည်ပေါင်းစည်းခြင်း။
    CMA ကိုဖွင့်ရန်၊ သင်သည် ပထမဦးစွာ Linux kernel ကို ပြန်လည်ပေါင်းစပ်ရပါမည်။
  • သင်၏ FPGA ဘုတ်အဖွဲ့၏ စက်ပစ္စည်းအမည်ကို မေးမြန်းခြင်း (ရောဂါရှာဖွေခြင်း)

1.6 Cyclone V SoC FPGA အတွက် Linux Kernel ကို စုစည်းခြင်း။
Cyclone V SoC FPGA ဘုတ်ပေါ်တွင် OpenCL အပလီကေးရှင်းများ မလည်ပတ်မီ၊ သင်သည် Linux kernel အရင်းအမြစ်ကို စုစည်းပြီး OpenCL Linux kernel driver ကို စုစည်းပြီး ထည့်သွင်းရပါမည်။

  1. စာမျက်နှာ 16 ရှိ Linux Kernel ကို ပြန်လည်ပေါင်းစည်းခြင်း။
    CMA ကိုဖွင့်ရန်၊ သင်သည် ပထမဦးစွာ Linux kernel ကို ပြန်လည်ပေါင်းစပ်ရပါမည်။
  2. စာမျက်နှာ 17 တွင် OpenCL Linux Kernel Driver ကို စုစည်းခြင်းနှင့် ထည့်သွင်းခြင်း OpenCL Linux kernel driver ကို စုစည်းထားသော kernel အရင်းအမြစ်နှင့် ပေါင်းစပ်ပါ။

1.6.1 Linux Kernel ကို ပြန်လည်ပေါင်းစည်းခြင်း။
CMA ကိုဖွင့်ရန်၊ သင်သည် ပထမဦးစွာ Linux kernel ကို ပြန်လည်ပေါင်းစပ်ရပါမည်။

  1. GSRD v14.0 - RocketBoards.org ၏အရင်းအမြစ်များစာမျက်နှာရှိ Linux လင့်ခ်ကို စုစည်းနေသည် webLinux kernel အရင်းအမြစ်ကုဒ်ကို ဒေါင်းလုဒ်လုပ်ခြင်းနှင့် ပြန်လည်တည်ဆောက်ခြင်းဆိုင်ရာ လမ်းညွှန်ချက်များကို ရယူရန် site။
    OpenCL အတွက်™ Intel FPGA SDK နှင့် အသုံးပြုရန်အတွက်၊ socfpga-3.13-rel14.0 အဖြစ် သတ်မှတ်ပါ။ .
  2. မှတ်ချက်- တည်ဆောက်မှုလုပ်ငန်းစဉ်သည် arch/arm/configs/socfpga_defconfig ကို ဖန်တီးသည် file. ဒီ file socfpga default configuration အတွက် ဆက်တင်များကို သတ်မှတ်ပေးသည်။
    arch/arm/configs/socfpga_defconfig ၏အောက်ခြေတွင် အောက်ပါစာကြောင်းများကို ထည့်ပါ file.
    CONFIG_MEMORY_ISOLATION=y
    CONFIG_CMA=y
    CONFIG_DMA_CMA=y
    CONFIG_CMA_DEBUG=y
    CONFIG_CMA_SIZE_MBYTES=512
    CONFIG_CMA_SIZE_SEL_MBYTES=y
    CONFIG_CMA_ALIGNMENT=၈
    CONFIG_CMA_AREAS=7
    CONFIG_CMA_SIZE_MBYTES ဖွဲ့စည်းမှုတန်ဖိုးသည် ရရှိနိုင်သော ရုပ်ပိုင်းဆိုင်ရာ ဆက်နွှယ်နေသော မမ်မိုရီ စုစုပေါင်း အရေအတွက်အပေါ် ကန့်သတ်ချက်ကို သတ်မှတ်ပေးပါသည်။ မန်မိုရီပိုလိုအပ်ပါက ဤတန်ဖိုးကို တိုးမြှင့်နိုင်သည်။
  3. အာရုံစူးစိုက်မှု- SoC FPGA ဘုတ်ပေါ်ရှိ ARM ပရိုဆက်ဆာအတွက် ရရှိနိုင်သော ရုပ်ပိုင်းဆိုင်ရာမှတ်ဉာဏ်စုစုပေါင်းပမာဏမှာ 1 GB ဖြစ်သည်။ Intel သည် CMA မန်နေဂျာကို 1 GB နှင့် နီးကပ်စွာထားရန် အကြံပြုထားခြင်းမရှိပါ။
  4. လက်ရှိ configuration ကိုရှင်းလင်းရန် make mrproper command ကိုဖွင့်ပါ။
  5. make ARCH=arm socfpga_deconfig အမိန့်ကို လုပ်ဆောင်ပါ။
    ARCH=arm သည် သင် ARM ဗိသုကာကို configure လုပ်လိုကြောင်း ညွှန်ပြသည်။
    socfpga_defconfig သည် သင်ပုံမှန် socfpga ဖွဲ့စည်းမှုပုံစံကို အသုံးပြုလိုကြောင်း ညွှန်ပြသည်။
  6. ထုတ်ယူခြင်း CROSS_COMPILE=arm-linux-gnueabihf- အမိန့်ကို လုပ်ဆောင်ပါ။
    ဤအမိန့်တော်သည် လိုချင်သောကိရိယာကွင်းဆက်၏ရှေ့ဆက်ကို သတ်မှတ်ရန် CROSS_COMPILE ပတ်၀န်းကျင်ကို ပြောင်းလဲသတ်မှတ်ပေးသည်။
  7. make ARCH=arm zImage command ကို run ပါ။ ရလာတဲ့ပုံကို arch/arm/boot/zImage မှာ ရနိုင်ပါတယ်။ file.
  8. zImage ကိုထည့်ပါ။ file flash card image ၏ fat32 partition သို့။ အသေးစိတ်ညွှန်ကြားချက်များအတွက်၊ Cyclone V SoC FPGA-specific GSRD အသုံးပြုသူလက်စွဲကို Rocketboards.org တွင် ကိုးကားပါ။
  9. မှတ်ချက်- OpenCL Linux kernel driver ကို မှန်ကန်စွာ ထည့်သွင်းရန် SDKgenerated.rbf ကို ဦးစွာ တင်ပါ။ file FPGA သို့။
    .rbf ကိုဖန်တီးရန် fileSDK ဒီဇိုင်းဟောင်းကို စုစည်းပါ။ampပစ်မှတ်ထားသော စိတ်ကြိုက်ပလပ်ဖောင်းအဖြစ် Cyclone V SoC Development Kit ရည်ညွှန်းပလပ်ဖောင်းနှင့်။
    9. .rbf ကိုထည့်ပါ။ file flash card image ၏ fat32 partition သို့။
    သတိပြုရန်- fat32 အကန့်ခွဲသည် zImage နှစ်ခုလုံးပါရမည်။ file နှင့် .rbf file. .rbf မပါတဲ့ fileယာဉ်မောင်းကို ထည့်သွင်းသည့်အခါ ဆိုးရွားသော အမှားတစ်ခု ဖြစ်ပေါ်လိမ့်မည်။
  10. သင်အစောပိုင်းက ပြင်ဆင်ထားသော သို့မဟုတ် ဖန်တီးထားသည့် SD ကတ်ပုံပါရှိသော ပရိုဂရမ်လုပ်ထားသော မိုက်ခရို SD ကတ်ကို Cyclone V SoC Development Kit ထဲသို့ ထည့်ပြီး SoC FPGA ဘုတ်ကို ပါဝါဖွင့်ပါ။
  11. uname -r ညွှန်ကြားချက်ကို လုပ်ဆောင်ခြင်းဖြင့် ထည့်သွင်းထားသော Linux kernel ၏ဗားရှင်းကို အတည်ပြုပါ။
  12. သင်သည် kernel တွင် CMA ကို အောင်မြင်စွာဖွင့်နိုင်ကြောင်း အတည်ပြုရန်အတွက် SoC FPGA ဘုတ်အား ပါဝါဖွင့်ထားခြင်းဖြင့်၊ grep init_cma /proc/kallsyms အမိန့်ကို ဖွင့်ပါ။
    အထွက်ဗလာမဟုတ်ပါက CMA ကို ဖွင့်ထားသည်။
  13. SDK ဖြင့် ပြန်လည်စုစည်းထားသော Linux kernel ကို အသုံးပြုရန်၊ Linux kernel driver ကို စုစည်းပြီး ထည့်သွင်းပါ။

ဆက်စပ်လင့်ခ်များ

  • Golden System Reference Design (GSRD) အသုံးပြုသူလက်စွဲများ
  • စာမျက်နှာ 13 တွင် SD Flash Card ပုံတစ်ခုတည်ဆောက်ခြင်း။
    Cyclone V SoC FPGA သည် ချစ်ပ်တစ်ခုပေါ်ရှိ အပြည့်အဝစနစ်ဖြစ်သောကြောင့်၊ စနစ်၏ အဓိပ္ပါယ်အပြည့်အစုံကို ပေးဆောင်ရန် သင့်တွင် တာဝန်ရှိပါသည်။

1.6.2 OpenCL Linux Kernel Driver ကို စုစည်းခြင်းနှင့် ထည့်သွင်းခြင်း။
စုစည်းထားသော kernel အရင်းအမြစ်နှင့် OpenCL Linux kernel driver ကို စုစည်းပါ။

ယာဉ်မောင်းရင်းမြစ်ကို OpenCL အတွက် Intel FPGA Runtime Environment ၏ Cyclone V SoC FPGA ဗားရှင်းတွင် ရနိုင်ပါသည်။ ထို့အပြင် OpenCL-generated .rbf အတွက် Intel FPGA SDK ကို သင်တင်ထားကြောင်း သေချာပါစေ။ file Linux kernel module ၏မှားယွင်းစွာထည့်သွင်းခြင်းကိုကာကွယ်ရန် FPGA ထဲသို့။

  1. Altera ရှိ ဒေါင်းလုဒ်စင်တာမှ OpenCL ပက်ကေ့ဂျ်အတွက် Intel FPGA Runtime Environment ၏ Cyclone V SoC FPGA ဗားရှင်းကို ဒေါင်းလုဒ်လုပ်ပါ website.
    a Quartus Prime software edition ဘေးရှိ ဒေါင်းလုဒ်ခလုတ်ကို နှိပ်ပါ။
    ခ ထုတ်ဝေသည့်ဗားရှင်း၊ လည်ပတ်မှုစနစ်နှင့် ဒေါင်းလုဒ်နည်းလမ်းကို သတ်မှတ်ပါ။
    ဂ။ အပိုဆော့ဖ်ဝဲတက်ဘ်ကို နှိပ်ပြီး Intel FPGA ကို ဒေါင်းလုဒ်လုပ်ရန် ရွေးချယ်ပါ။
    OpenCL Linux Cyclone V SoC TGZ အတွက် Runtime Environment
    ဃ။ aocl-rte- ကိုဒေါင်းလုဒ်လုပ်ပြီးနောက်၊ .arm32.tgz fileထုပ်ပိုးလိုက်ပါ။
    သင်ပိုင်ဆိုင်သော လမ်းညွှန်တစ်ခု။
    ယာဉ်မောင်းရင်းမြစ်သည် aocl-rte- တွင်ဖြစ်သည်။ .arm32/board/c5soc/ ယာဉ်မောင်းလမ်းညွှန်။
  2. OpenCL Linux kernel driver ကို ပြန်လည်ပေါင်းစည်းရန်၊ driver's Make တွင် KDIR တန်ဖိုးကို သတ်မှတ်ပါ။file Linux kernel ရင်းမြစ်ပါရှိသော လမ်းညွှန်သို့ files.
  3. သင်၏ကိရိယာကွင်းဆက်၏ရှေ့ဆက်ကိုညွှန်ပြရန် တင်ပို့ခြင်း CROSS_COMPILE=arm-linux-gnueabihf- အမိန့်ကို လုပ်ဆောင်ပါ။
  4. make clean command ကို run လိုက်ပါ။
  5. aclsoc_drv.ko ဖန်တီးရန် make command ကိုဖွင့်ပါ။ file.
  6. opencl_arm32_rte လမ်းညွှန်ကို Cyclone V SoC FPGA ဘုတ်သို့ လွှဲပြောင်းပါ။
    scp -r ကို run ပါ။ root@your-ipaddress- command သည် runtime environment ကို /home/root directory တွင် နေရာပေးသည်။
  7. SD cardimage ကိုတည်ဆောက်သောအခါ သင်ဖန်တီးခဲ့သော init_opencl.sh script ကိုဖွင့်ပါ။
  8.  aocl diagnose utility command ကို ခေါ်ပါ။ သင် init_opencl.sh ကို အောင်မြင်စွာ run ပြီးနောက် diagnose utility သည် passing ရလဒ်ကို ပြန်ပေးလိမ့်မည်။

1.7 သိပြီးသားကိစ္စများ
လက်ရှိတွင်၊ Cyclone V SoC Development Kit Reference Platform ဖြင့် OpenCL အတွက် Intel FPGA SDK ကို အသုံးပြုမှုအပေါ် အချို့သော ကန့်သတ်ချက်များ ရှိပါသည်။

  1. cl_DEVICE_VENDOR နှင့် CL_DEVICE_NAME ခေါ်ဆိုမှု၏ CL_DEVICE_VENDOR နှင့် CL_DEVICE_NAME စာတန်းများဖြင့် ဖော်ပြထားသော ရောင်းချသူနှင့် ဘုတ်အဖွဲ့အမည်များကို အစားထိုး၍မရပါ။
  2. အကယ်၍ လက်ခံသူသည် မျှဝေထားသော DDR စနစ်တွင် စဉ်ဆက်မပြတ်မှတ်ဉာဏ်ကို ခွဲဝေချထားပေးသည် (ဆိုလိုသည်မှာ HPS DDR) ဖြစ်ပြီး ၎င်းသည် kernel လုပ်ဆောင်ပြီးနောက် ကိန်းသေမှတ်ဉာဏ်ကို မွမ်းမံပါက၊ မမ်မိုရီရှိဒေတာသည် ခေတ်နောက်ကျသွားနိုင်သည်။ FPGA core သည် CPU-to-HPS DDR အရောင်းအ၀ယ်များကို ရှောင်လွှဲ၍မရသောကြောင့် ဤပြဿနာဖြစ်ပေါ်လာပါသည်။
    ခေတ်မမီတော့သော ဒေတာများ ဝင်ရောက်ခြင်းမှ နောက်ဆက်တွဲ kernel ကွပ်မျက်မှုများကို တားဆီးရန်၊ အောက်ပါ ဖြေရှင်းနည်းများထဲမှ တစ်ခုကို အကောင်အထည်ဖော်ပါ-
    • ၎င်း၏အစပျိုးပြီးနောက် အဆက်မပြတ်မှတ်ဉာဏ်ကို မပြုပြင်ပါနှင့်။
    • အကယ်၍ သင်သည် __constant ဒေတာအစုံများစွာကို လိုအပ်ပါက၊ အဆက်မပြတ်မှတ်ဉာဏ်ကြားခံများစွာကို ဖန်တီးပါ။
    • ရနိုင်လျှင် သင်၏အရှိန်မြှင့်ဘုတ်ပေါ်ရှိ FPGA DDR တွင် အဆက်မပြတ်မှတ်ဉာဏ်ကို ခွဲဝေပါ။
  3. ARM ရှိ SDK utility သည် ပရိုဂရမ်ကိုသာ ပံ့ပိုးပြီး utility commands များကို အဖြေရှာပါ။
    ဖလက်ရှ်၊ တပ်ဆင်ခြင်းနှင့် ဖယ်ရှားခြင်း အသုံးဝင်မှု ညွှန်ကြားချက်များသည် အောက်ပါအကြောင်းများကြောင့် Cyclone V SoC Development Kit နှင့် သက်ဆိုင်ခြင်း မရှိပါ-
    a ထည့်သွင်းအသုံးပြုမှုတွင် aclsoc_drv Linux kernel driver ကိုစုစည်းပြီး SoC FPGA တွင်ဖွင့်ရပါမည်။ ဖွံ့ဖြိုးတိုးတက်ရေးစက်သည် စုစည်းမှုကို လုပ်ဆောင်ရန် လိုအပ်သည်။ သို့သော်၊ ၎င်းတွင် SoC FPGA အတွက် Linux kernel ရင်းမြစ်များ ပါရှိပါသည်။ ဖွံ့ဖြိုးတိုးတက်ရေးစက်အတွက် Linux kernel အရင်းအမြစ်များသည် SoC FPGA အတွက်နှင့် ကွဲပြားသည်။ SoC FPGA အတွက် Linux kernel ရင်းမြစ်များ၏ တည်နေရာကို SDK အသုံးပြုသူ မသိနိုင်ပါ။ အလားတူ၊ uninstall utility ကို Cyclone V SoC Development Kit တွင်လည်း မရနိုင်ပါ။
    ထို့အပြင်၊ Cyclone V SoC Development Kit ၏ မူရင်းဖြန့်ဝေမှုတွင် Linux kernel မပါဝင်သောကြောင့် aclsoc_drv ကို SoC ဘုတ်သို့ ပို့ဆောင်ရာတွင် စိန်ခေါ်မှုရှိသည်။ files သို့မဟုတ် GNU Compiler Collection (GCC) compiler။
    ခ flash utility သည် .rbf ကို ထားရှိရန် လိုအပ်သည်။ file micro SD flash card ၏ FAT32 အပိုင်းတွင် OpenCL ဒီဇိုင်းတစ်ခု။ လောလောဆယ်တွင် SDK အသုံးပြုသူက ဘုတ်ကို ပါဝါဖွင့်သည့်အခါ ဤအပိုင်းကို မတပ်ဆင်ရသေးပါ။ ထို့ကြောင့်၊ partition ကိုမွမ်းမံရန်အကောင်းဆုံးနည်းလမ်းမှာ flash card reader နှင့် development machine ကိုသုံးခြင်းဖြစ်သည်။
  4. OpenCL အော့ဖ်လိုင်း Compiler အတွက် Intel FPGA SDK ကို ကူးပြောင်းသည့်အခါ စီမံဆောင်ရွက်နိုင်သည်။ fileမတူညီသော board မျိုးကွဲများ (ဆိုလိုသည်မှာ c5soc နှင့် c5soc_sharedonly) နှင့် သက်ဆိုင်သော s (.aocx) သည် .aocx ကိုဖွင့်ရန် SDK ၏ ပရိုဂရမ် utility ကို အသုံးပြုရပါမည်။ file ဘုတ်ဗားရှင်းအသစ်အတွက် ပထမဆုံးအကြိမ်ဖြစ်သည်။ အကယ်၍ သင်သည် ဘုတ်ဗားရှင်းအသစ်ကို အသုံးပြု၍ host အပလီကေးရှင်းကို ရိုးရိုးရှင်းရှင်း လုပ်ဆောင်သော်လည်း FPGA တွင် အခြားဘုတ်ဗားရှင်းမှ ရုပ်ပုံပါရှိသည်ဆိုလျှင်၊ ဆိုးရွားသော အမှားတစ်ခု ဖြစ်ပေါ်နိုင်သည်။
  5. အဲ.qxp file Quartus Prime ဆော့ဖ်ဝဲလ်သည် ဤအခန်းကန့်၏ အချိန်ကိုက်လိုအပ်ချက်များနှင့် အမြဲကိုက်ညီသောကြောင့် အင်တာဖေါင်းခွဲခြင်းတာဝန်များ မပါဝင်ပါ။
  6. သင်ဘုတ်အား ပါဝါဖွင့်သောအခါ၊ ၎င်း၏မီဒီယာဝင်ရောက်ထိန်းချုပ်မှု (MAC) လိပ်စာကို ကျပန်းနံပါတ်တစ်ခုအဖြစ် သတ်မှတ်ထားသည်။ သင်၏ LAN မူဝါဒသည် ဤအပြုအမူကို ခွင့်မပြုပါက၊ အောက်ပါလုပ်ဆောင်စရာများကို လုပ်ဆောင်ခြင်းဖြင့် MAC လိပ်စာကို သတ်မှတ်ပါ-
    a U-Boot ပါဝါဖွင့်ချိန်အတွင်း၊ U-Boot command prompt ကိုရိုက်ထည့်ရန် မည်သည့်သော့ကို နှိပ်ပါ။
    ခ command prompt တွင် setenv ethaddr 00:07:ed:00:00:03 ရိုက်ပါ။
    မည်သည့် MAC လိပ်စာကိုမဆို သင်ရွေးချယ်နိုင်ပါသည်။
    ဂ။ saveenv command ကိုရိုက်ထည့်ပါ။
    ဃ။ ဘုတ်ကို ပြန်ဖွင့်ပါ။

1.8 စာရွက်စာတမ်း ပြန်လည်ပြင်ဆင်မှုမှတ်တမ်း
ဇယား ၁။
OpenCL Cyclone V SoC အတွက် Intel FPGA SDK ၏ စာရွက်စာတမ်း ပြန်လည်ပြင်ဆင်မှု မှတ်တမ်း
Development Kit အကိုးအကား ပလပ်ဖောင်း ပို့ခြင်းလမ်းညွှန်

ရက်စွဲ ဗားရှင်း အပြောင်းအလဲများ
မေ-၂၈ 2017.05.08 • ပြုပြင်ထိန်းသိမ်းမှု ထုတ်ပေးခြင်း။
အောက်တိုဘာလ 2016 2016.10.31 • OpenCL အတွက် Intel FPGA SDK သို့ OpenCL အတွက် Altera SDK ဟု အမည်ပြောင်းထားသည်။
• OpenCL အော့ဖ်လိုင်း Compiler အတွက် Intel FPGA SDK သို့ Altera အော့ဖ်လိုင်း စုစည်းမှုဟု အမည်ပြောင်းထားသည်။
မေ-၂၈ 2016.05.02 • SD flash ကတ်ပုံတည်ဆောက်ခြင်းနှင့် ပြုပြင်မွမ်းမံခြင်းဆိုင်ရာ ညွှန်ကြားချက်များ။
• Linux kernel နှင့် OpenCL Linux kernel driver ကို ပြန်လည်ပေါင်းစည်းခြင်းအတွက် ပြင်ဆင်ထားသော ညွှန်ကြားချက်များ။
နိုဝင်ဘာ-၁၈ 2015.11.02 • ပြုပြင်ထိန်းသိမ်းမှုထုတ်ပြန်ပြီး Quartus II ၏ဥပမာများကို Quartus Prime သို့ ပြောင်းလဲခဲ့သည်။
မေ-၂၈ 15.0.0 • FPGA ပြန်လည်ဖွဲ့စည်းမှုတွင်၊ FPGA core ကို ပြန်လည်အစီအစဉ်ချရန် ညွှန်ကြားချက်ကို ဖယ်ရှားခဲ့သည်။
နှင့် ။ rbf ရုပ်ပုံသည် ကြောင်ကိုခေါ်သည်။ fileနာမည်>။ rbf
> /dev/ fpga0 command သည် ဤနည်းလမ်းကို မထောက်ခံသောကြောင့် ဖြစ်သည်။
ဒီဇင်ဘာ -၂၀၁၈ 14.1.0 •စာရွက်စာတမ်းအား Altera Cyclone V SoC Development Kit ရည်ညွှန်းပလပ်ဖောင်းပေါ်တင်ခြင်းလမ်းညွှန်အဖြစ် အမည်ပြောင်းခဲ့သည်။
• reprogram utility ကို aocl ပရိုဂရမ်သို့ အပ်ဒိတ်လုပ်ခဲ့သည်။filename>.aocx utility command
• aocl diagnose နှင့် aocl ရောဂါရှာဖွေခြင်းသို့ ရောဂါရှာဖွေရေး အသုံးဝင်ပုံကို အပ်ဒိတ်လုပ်ခဲ့သည် utility command
• အာမခံအချိန်ကိုက်ပိတ်ခြင်းအစီအစဥ်အတွက် အချိန်ကိုက်-သန့်ရှင်းသောအပိုင်းတစ်ခုဖန်တီးရန် ချိတ်ဆက်ခြင်းဆိုင်ရာ ညွှန်ကြားချက်များနှင့် c5soc ဘုတ်အပိုင်းအပိုင်းကို ပြင်ဆင်ခြင်းဆိုင်ရာ ညွှန်ကြားချက်များပါဝင်ရန် ရည်ညွှန်းပလပ်ဖောင်းကို သင်၏ SoC ဘုတ်အဖွဲ့သို့ ပို့ခြင်းကဏ္ဍတွင် လုပ်ထုံးလုပ်နည်းကို အပ်ဒိတ်လုပ်ခဲ့သည်။
• အောက်ဖော်ပြပါ လုပ်ငန်းဆောင်တာများအတွက် လုပ်ထုံးလုပ်နည်းများကို အကြမ်းဖျင်းဖော်ပြရန် Ported Reference Platform ကို အပ်ဒိတ်လုပ်ခြင်း ခေါင်းစဉ်ကို ထည့်သွင်းခဲ့သည်-
1. board partition ရှိ hard processor system (HPS) ပိတ်ဆို့ခြင်းမှ လွဲ၍
2. SD flash ကတ်ပုံကို အပ်ဒိတ်လုပ်ခြင်း။
• SD Flash Card ရုပ်ပုံတည်ဆောက်ခြင်းကဏ္ဍကို အပ်ဒိတ်လုပ်ထားသည်။ SoC Embedded Design Suite (EDS) ဖြင့် ရရှိနိုင်သော ပုံအစား Golden System Reference Design (GSRD) ပုံ၏ ဗားရှင်း 14.0 ကို အသုံးပြုရန် အကြံပြုထားသည်။
• Linux Kernel ကို ပြန်လည်စုစည်းခြင်းနှင့် OpenCL Linux Kernel Driver ကဏ္ဍကို အပ်ဒိတ်လုပ်ခဲ့သည်-
1. CROSS COMPILE variable ကို သတ်မှတ်ရန် ညွှန်ကြားချက်ကို ပေါင်းထည့်ပါ။
2. CMA ကို အောင်မြင်စွာ ဖွင့်ထားကြောင်း အတည်ပြုရန် သင်သုံးသည့် command ကို ပြောင်းပါ။
ဇူလိုင်-၂၁ 14.0.0 • ကနဦးဖြန့်ချိမှု။

စာရွက်စာတမ်းများ / အရင်းအမြစ်များ

OpenCL အတွက် Intel FPGA SDK [pdf] အသုံးပြုသူလမ်းညွှန်
OpenCL အတွက် FPGA SDK၊ FPGA SDK၊ OpenCL အတွက် SDK

ကိုးကား

မှတ်ချက်တစ်ခုချန်ထားပါ။

သင့်အီးမေးလ်လိပ်စာကို ထုတ်ပြန်မည်မဟုတ်ပါ။ လိုအပ်သောအကွက်များကို အမှတ်အသားပြုထားသည်။ *