FPGA SDK барои OpenCL
Дастури корбар
UG-OCL009
2017.05.08
Охирин навсозӣ барои Intel® Quartus® Prime Design Suite: 17.0
Обуна шавед
Фиристодани фикру ақида
Intel® FPGA SDK барои OpenCL™ Intel® Cyclone®V маҷмӯаи таҳияи SoC Дастури истинод ба платформаи портинг
Дастури истинод ба платформаи портинги V SoC тарҳи сахтафзор ва нармафзори платформаи истинод ба Intel Cyclone V SoC Development Kit (c5soc) -ро барои истифода бо маҷмӯаи таҳияи нармафзори Intel (SDK) барои OpenCL Intel ® FPGA SDK барои OpenCL ™ Intel Cyclone тавсиф мекунад. ® . Пеш аз оғози кор, Intel ба шумо тавсия медиҳад, ки бо мундариҷаи ҳуҷҷатҳои зерин шинос шавед:
- Intel FPGA SDK барои OpenCLIntel Cyclone V SoC Дастури оғози кор
- Intel FPGA SDK барои Дастури корбар Toolkit OpenCL Custom Platform
- Дастур оид ба дастгоҳи Cyclone V, ҷилди 3: Дастур оид ба истинодҳои техникии системаи протсессори сахт Илова бар ин, ба саҳифаи Cyclone V SoC Development Kit ва SoC Embedded Design Suite-и Altera муроҷиат кунед. webсайт барои маълумоти бештар. 1 2
Диққат: Intel тахмин мекунад, ки шумо фаҳмиши амиқи Intel FPGA SDK барои Дастури корбар OpenCL Custom Platform Toolkit доред. Дастури истинод ба платформаи портинги маҷмӯаи Cyclone V SoC истифодаи маҷмӯаи платформаи фармоишии SDK-ро барои татбиқи платформаи фармоишӣ барои маҷмӯаи рушди Cyclone V SoC тавсиф намекунад. Он танҳо фарқияти байни дастгирии SDK дар Kit Development Cyclone V SoC ва як умумии Intel FPGA SDK барои OpenCL Custom Platform тавсиф мекунад.
Пайвандҳои марбут
- Intel FPGA SDK барои OpenCL Cyclone V SoC Дастури оғози кор
- Intel FPGA SDK барои Дастури корбар Toolkit OpenCL Custom Platform
- Дастур оид ба дастгоҳи Cyclone V, ҷилди 3: Дастур оид ба истинодҳои техникии системаи протсессори сахт
- Маҷмӯи таҳияи Cyclone V SoC ва саҳифаи SoC Embedded Design Suite дар Altera webсайт
- OpenCL ва логотипи OpenCL тамғаҳои тиҷоратии Apple Inc мебошанд, ки бо иҷозати Khronos Group™ истифода мешаванд.
- Intel FPGA SDK барои OpenCL ба мушаххасоти нашршудаи Khronos асос ёфтааст ва аз раванди санҷиши мутобиқати Khronos гузаштааст. Ҳолати кунунии мувофиқатро дар ин ҷо пайдо кардан мумкин аст www.khronos.org/conformance.
Корпоратсияи Intel. Ҳамаи ҳуқуқ маҳфуз аст. Intel, логотипи Intel, Altera, Arria, Cyclone, Enpirion, MAX, Nios, Quartus ва Stratix калимаҳо ва логотипҳо тамғаҳои тиҷоратии Intel Corporation ё филиалҳои он дар ИМА ва/ё кишварҳои дигар мебошанд. Intel иҷрои маҳсулоти FPGA ва нимноқилҳои худро мувофиқи мушаххасоти ҷорӣ мутобиқи кафолати стандартии Intel кафолат медиҳад, аммо ҳуқуқ дорад, ки дар вақти дилхоҳ бидуни огоҳӣ ба ҳама гуна маҳсулот ва хидматҳо тағйирот ворид кунад. Intel ҳеҷ гуна масъулият ё масъулиятеро, ки аз барнома ё истифодаи ҳама гуна маълумот, маҳсулот ё хидмати дар ин ҷо тавсифшуда бармеояд, ба дӯш намегирад, ба истиснои ҳолатҳое, ки Intel дар шакли хаттӣ розӣ шудааст. Ба муштариёни Intel тавсия дода мешавад, ки пеш аз такя ба ягон маълумоти нашршуда ва пеш аз фармоиш додани маҳсулот ё хидматҳо версияи охирини мушаххасоти дастгоҳро дастрас кунанд.
* Дигар номҳо ва брендҳо метавонанд ҳамчун моликияти дигарон даъво карда шаванд.
1.1.1 Вариантҳои Шӯрои истинод барои таҳияи маҷмӯаи Cyclone V SoC
Платформаи Reference Kit Intel FPGA SDK барои OpenCL Cyclone V SoC Development Kit аз ду варианти тахта иборат аст.
- тахтаи c5soc
Ин тахтаи пешфарз дастрасиро ба ду бонки хотираи DDR таъмин мекунад. HPS DDR ҳам аз ҷониби FPGA ва ҳам CPU дастрас аст. FPGA DDR танҳо тавассути FPGA дастрас аст. - тахтаи c5soc_sharedonly
Ин варианти тахта танҳо пайвасти HPS DDR-ро дар бар мегирад. FPGA DDR дастрас нест. Ин варианти тахта дар минтақа самараноктар аст, зеро барои дастгирии як бонки хотираи DDR сахтафзори камтар лозим аст. Шӯрои c5soc_sharedonly инчунин як платформаи хуби прототипсозӣ барои тахтаи ниҳоӣ бо як бонки хотираи DDR мебошад.
Барои ҳадафи ин варианти тахта ҳангоми тартиб додани ядрои OpenCL, варианти -board c5soc_sharedonly -ро дар фармони aoc-и худ дохил кунед.
Барои маълумоти бештар дар бораи -board имконоти фармони aoc, ба Intel FPGA SDK барои Дастури барномасозии OpenCL муроҷиат кунед.
Пайвандҳои марбут
Тартиб додани ядро барои Шӯрои мушаххаси FPGA (-board )
1.1.2 Мундариҷаи Платформаи истинод ба маҷмӯаи рушди Cyclone V SoC
Платформаи истинод ба маҷмӯаи таҳияи Cyclone V SoC аз зерин иборат аст files ва директорияҳо:
File ё Директория | Тавсифи |
board_env.xml | Забони тамғаи васеъшаванда (XML) file ки c5soc-ро ба Intel FPGA SDK барои OpenCL тавсиф мекунад. |
linux_sd_card_image.tgz | Тасвири корти флеши SD фишурдашуда file ки ҳама чизро дар бар мегирад, ки корбари SDK барои истифодаи маҷмӯаи рушди Cyclone V SoC бо SDK лозим аст. |
даст 32 | Директорияе, ки дорои инҳост: |
1.1.3 Хусусиятҳои дахлдори маҷмӯаи рушди Cyclone V SoC
Рӯйхати зерин ҷузъҳои Cyclone V SoC Development Kit-ро таъкид мекунад, ки ба Intel FPGA SDK барои OpenCL мувофиқанд:
- Дугона-аслӣ ARM Cortex-A9 CPU кор мекунад 32-бит Linux.
- Автобуси пешрафтаи eXtensible Interface (AXI) байни НБО ва матоъҳои асосии FPGA.
- Ду контроллерҳои хотираи сахтшудаи DDR, ки ҳар як ба 1 гигабайт (ГБ) DDR3 SDRAM пайваст мешаванд.
— Як контролери DDR танҳо ба ядрои FPGA дастрас аст (яъне FPGA DDR).
— Дигар контролери DDR ҳам барои HPS ва ҳам FPGA (яъне HPS DDR) дастрас аст. Ин контролери муштарак имкон медиҳад, ки мубодилаи хотираи ройгон байни CPU ва ядрои FPGA. - CPU метавонад матоъҳои асосии FPGA-ро аз нав танзим кунад.
1.1.3.1 Ҳадафҳо ва қарорҳои тарроҳии платформаи истинод ба таҳияи маҷмӯаи Cyclone V SoC Intel татбиқи Платформаи истинодҳои Cyclone V-и SoC-ро ба якчанд ҳадафҳо ва қарорҳои тарроҳӣ асос медиҳад. Intel тавсия медиҳад, ки ҳангоми интиқоли ин Платформаи истинод ба тахтаи SoC FPGA-и худ ин ҳадафҳо ва қарорҳоро баррасӣ кунед.
Дар зер ҳадафҳои тарроҳии c5soc мавҷуданд:
- Баландтарин фарохмаҷрои имконпазирро байни ядроҳои FPGA ва системаи хотираи DDR таъмин кунед.
- Боварӣ ҳосил кунед, ки ҳисобҳо дар FPGA (яъне ядроҳои OpenCL) ба дигар вазифаҳои CPU, ки метавонанд хидматрасонии перифериҳоро дар бар гиранд, халал нарасонанд.
- Ба ҷои ҷузъҳои интерфейс, то ҳадди имкон захираҳои FPGA-ро барои ҳисобҳои ядро гузоред.
Дар зер қарорҳои тарроҳии сатҳи баланд мавҷуданд, ки оқибатҳои бевоситаи ҳадафҳои тарроҳии Intel мебошанд:
- Платформаи истинод танҳо контроллерҳои хотираи сахти DDR-ро бо конфигуратсияи васеътарин (256 бит) истифода мебарад.
- FPGA мустақиман бо контролери хотираи HPS DDR бидуни ҷалби автобуси AXI ва гузариши L3 дар дохили НБО муошират мекунад. Муоширати мустақим беҳтарин фарохмаҷрои имконпазирро барои DDR таъмин мекунад ва ҳисобҳои FPGA-ро аз дахолат ба иртибот байни CPU ва периферияи он нигоҳ медорад.
- Дастрасии мустақими хотираи пароканда-ҷамъоварӣ (SG-DMA) қисми мантиқи интерфейси FPGA нест. Ба ҷои интиқоли миқдори зиёди маълумот байни системаҳои хотираи DDR, маълумотро дар HPS DDR муштарак нигоҳ доред. Дастрасии мустақим ба хотираи CPU аз ҷониби FPGA нисбат ба DMA самараноктар аст. Он захираҳои сахтафзорро сарфа мекунад (яъне майдони FPGA) ва драйвери ядрои Linuxро содда мекунад.
Огоҳӣ: Интиқоли хотира байни системаи муштараки HPS DDR ва системаи DDR, ки танҳо ба FPGA дастрас аст, хеле суст аст. Агар шумо интихоб кунед
хотираро бо ин роҳ интиқол диҳед, онро танҳо барои миқдори хеле ками маълумот истифода баред. - Хост ва дастгоҳ интиқоли додаҳои DMA-ро байни ҳамдигар тавассути пули HPS-to-FPGA (H2F) бо истифода аз танҳо як порти 32-бит анҷом медиҳанд. Сабаб дар он аст, ки бе DMA, ядрои Linux метавонад танҳо як дархости хондан ё навиштани 32-битро диҳад, аз ин рӯ пайвасти васеътар лозим нест.
- Хост сигналҳои назоратро ба дастгоҳ тавассути пули сабуки H2F (LH2F) мефиристад.
Азбаски сигналҳои назоратӣ аз ҳост ба дастгоҳ сигналҳои фарохмаҷрои паст мебошанд, пули LH2F барои ин вазифа беҳтарин аст.
1.2 Гузаронидани платформаи истинод ба Шӯрои SoC FPGA-и шумо
Барои интиқол додани платформаи истинод ба Cyclone V SoC Development Kit ба тахтаи SoC FPGA, вазифаҳои зеринро иҷро кунед:
- Як хотираи DDR ё ду версияи хотираи DDR-и Platform Reference c5soc -ро ҳамчун нуқтаи ибтидоии тарҳи худ интихоб кунед.
- Ҷойҳои пинҳоро дар ALTERAOCLSDKROOT/board/c5soc/ навсозӣ кунед /top.qsf file, ки дар он ALTERAOCLSDKROOT роҳи ҷойгиршавии Intel FPGA SDK барои насби OpenCL мебошад ва номи директорияи варианти тахта аст. Феҳристи c5soc_sharedonly барои варианти тахта бо як системаи хотираи DDR мебошад. Феҳристи c5soc барои варианти тахта бо ду системаи хотираи DDR мебошад.
- Танзимоти DDR-ро барои блокҳои HPS ва/ё FPGA SDRAM дар ALTERAOCLSDKROOT/board/c5soc/ навсозӣ кунед. /system.qsys file.
4. Ҳама Intel FPGA SDK барои тарҳҳои тахтаи афзалиятноки OpenCL бояд ба бастани вақти кафолатнок ноил шаванд. Ҳамин тариқ, ҷойгиркунии тарроҳӣ бояд вақт тоза бошад. Барои интиқол додани қисмати панели c5soc (acl_iface_partition.qxp) ба тахтаи SoC FPGA, вазифаҳои зеринро иҷро кунед:
Барои дастурҳои муфассал оид ба тағир додан ва нигоҳ доштани қисмати тахта, ба Quartus муроҷиат кунед
Маҷмӯаи афзояндаи ибтидоӣ барои боби тарроҳии иерархӣ ва ба гурӯҳ асосёфтаи дастури Quartus Prime Edition Standard Edition.
а. acl_iface_partition.qxp-ро аз феҳристи ALTERAOCLSDKROOT/board/c5soc/c5soc хориҷ кунед.
б. Минтақаи acl_iface_region LogicLock™-ро тавассути тағир додани фармони Tcl set_global_assignment -ном LL_ENABLED OFF -section_id acl_iface_region ба set_global_assignment -ном LL_ENABLED ON -section_id acl_iface_region фаъол созед
в. Барои тахтаи худ як ядрои OpenCL тартиб диҳед.
г. Агар лозим бошад, андоза ва ҷойгиршавии минтақаи LogicLock -ро танзим кунед.
д. Вақте ки шумо қаноатмандед, ки ҷойгиркунии тарроҳии шумо мӯҳлат тоза аст, он қисматро ҳамчун acl_iface_partition.qxp Quartus Prime Exported Partition содир кунед File.
Тавре ки дар қисмати Таъсиси гардиши замонаи замонавии SDK AIntel FPGA барои Дастури корбар OpenCL Toolkit Custom Platform, тавассути воридоти ин .qxp тавсиф шудааст. file ба тарҳи сатҳи олӣ, шумо талаботи таъмини тарҳи тахтаро бо ҷараёни кафолати бастани вақт иҷро мекунед.
Барои омилҳое, ки метавонанд ба сифати натиҷаҳо (QoR)-и қисмати содиротии шумо таъсир расонанд, ба Сифати умумии Мулоҳизаҳои натиҷаҳо барои бахши қисмати Шӯрои содиротӣ дар Intel FPGA SDK барои Дастури корбар OpenCL Toolkit Toolkit муроҷиат кунед.
f. Минтақаи acl_iface_region LogicLockро бо роҳи баргардонидани фармони Қадами 2 ба set_global_assignment -name LL_ENABLED OFF section_id acl_iface_region ғайрифаъол кунед. - Агар тахтаи FPGA-и SoC-и шумо пинҳо ва периферияҳои гуногуни блоки HPS-ро истифода барад, боркунаки пешакӣ ва манбаи дарахти дастгоҳро (DTS) барқарор кунед. file. Агар шумо танзимоти нозири хотираи HPS DDR-ро тағир диҳед, боркунаки пешакиро аз нав тавлид кунед.
- Тасвири корти SD-ро эҷод кунед.
- Платформаи фармоишии худро эҷод кунед, ки тасвири корти SD-ро дар бар мегирад.
- Эҷоди як версияи муҳити корбарии Платформаи фармоишии худро барои истифода бо Intel FPGA Runtime Environment (RTE) барои OpenCL баррасӣ кунед. Версияи RTE-и Платформаи фармоишии шумо феҳристҳои сахтафзор ва тасвири корти SD-ро дар бар намегирад. Ин Платформаи фармоишӣ ба системаи SoC FPGA бор мекунад, то барномаҳои мизбонро иҷро кунанд. Баръакс, версияи SDK-и Платформаи фармоишӣ барои SDK барои тартиб додани ядроҳои OpenCL зарур аст.
Маслиҳат: Шумо метавонед версияи SDK-и Платформаи фармоишии худро барои RTE истифода баред. Барои наҷот
фосила, хориҷ тасвири корти флешдор SD аз версияи RTE Платформаи фармоишии худ. - Платформаи фармоишии худро санҷед.
Барои маълумоти бештар ба бахши Санҷиши тарҳи сахтафзори Intel FPGA SDK барои Дастури корбарии OpenCL Toolkit Toolkit муроҷиат кунед.
Пайвандҳои марбут
- Санҷиши тарҳи сахтафзор
- Маҷмӯаи афзояндаи Quartus Prime барои тарроҳии иерархӣ ва ба гурӯҳ асосёфта
- Таъсиси ҷараёни кафолати вақт
- Мулоҳизаҳои сифати умумии натиҷаҳо барои қисмати Шӯрои содиротӣ
1.2.1 Навсозии платформаи истинод ба порт
Дар версияи ҷории Platform Reference Kit Cyclone V SoC, блоки HPS дар дохили қисмат ҷойгир аст, ки тамоми мантиқи ғайриядроро муайян мекунад. Аммо, шумо наметавонед HPS-ро ҳамчун як қисми .qxp содир кунед file. Барои навсозии Платформаи фармоишии мавҷуда, ки шумо аз версияи қаблии c5soc тағир додаед, ҷараёни нигоҳдории QXP-ро амалӣ кунед, тасвири корти SD-ро барои ба даст овардани муҳити охирини вақти корӣ навсозӣ кунед ва board_spec.xml -ро навсозӣ кунед. file барои имкон додани автомиграция.
Altera® SDK барои версияи OpenCL 14.1 ва берун аз он board_spec.xml file барои маълумоти Шӯрои, ва амалӣ навсозиҳои худкор. Зеро ки шумо онро тағир медиҳед
тарҳрезӣ тавассути татбиқи ҷараёни нигоҳдории QXP, шумо бояд board_spec.xml навсозӣ file ба формати он дар версияи ҷорӣ. Навсозии file ба SDK имкон медиҳад, ки байни платформаҳои фармоишии ҳифзнашуда ва платформаҳои фармоишии QXP-и ҷорӣ фарқ кунад. Барои маълумоти бештар ба Дастури корбарии OpenCL Platform Custom Toolkit барои мутобиқати пешқадам дар Intel FPGA SDK муроҷиат кунед.
- Барои амалӣ кардани ҷараёни нигоҳдории QXP дар тарҳи сахтафзори Cyclone V SoC FPGA, ки аз версияи қаблии c5soc интиқол дода шудааст, қадамҳои зеринро иҷро кунед, то зерҳисматро барои хориҷ кардани HPS аз .qxp созед. file:
а. Пеш аз сохтани қисмат дар атрофи мантиқи ғайриядроӣ, дар танзимоти .qsf Quartus Prime қисматро дар атрофи HPS созед. File.
Барои мисолampле:
# Намунаеро, ки ба HPS бахшидашудаи маҷмӯи_инстанцияи I/O моделсозӣ мекунад -ном PARTITION_HIERARCHY borde_18261 -ба "система:система|system_acl_iface:acl_iface|system_acl_iface_hps_0:hps_ios_hps_hps_0:hps_ac_0|hps_hps_hps_0" тақсим кунед. system_acl_iface_hps_0_hps_io_border:сарҳад" -section_id "system_acl_iface_hps_XNUMX_hps_io_border:сарҳад"
# Қисмро як навъи HPS_PARTITION таъин кунед, то аз ҷониби боқимондаи Quartus дуруст коркард карда шавад
set_global_assignment -ном 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=фаъол
–incremental_compilation_export_post_fit=дар
– incremental_compilation_export_routing=фаъол
–incremental_compilation_export_flatten=хомӯш
Пас аз он ки шумо HPS-ро аз қисм хориҷ мекунед, шумо метавонед .qxp-ро ворид кунед file ва тарҳи худро тартиб диҳед. - Тасвири корти флеши SD-ро бо версияи ҷории Intel FPGA RTE барои OpenCL бо иҷрои вазифаҳои зерин навсозӣ кунед:
а. Монтед file ҷадвали тақсимот (fat32) ва васеъ file бахшҳои система (ext3) дар тасвири мавҷуда ҳамчун дастгоҳҳои бозгашт. Барои дастурҳои муфассал, ба Қадами 2 дар сохтани тасвири корти флеши SD муроҷиат кунед.
б. Дар феҳристи /home/root/opencl_arm32_rte, хориҷ кунед fileс аз версияи қаблии RTE.
в. Версияи ҷории RTE-ро ба феҳристи /home/root/opencl_arm32_rte зеркашӣ ва кушоед.
г. Дар /driver/version.h file аз Платформаи фармоишии худ, таъиноти ACL_DRIVER_VERSION -ро навсозӣ кунед . (барои мисолample, 16.1.x, ки дар он 16.1 версияи SDK аст ва x версияи драйверест, ки шумо муқаррар кардаед).
д. Ронандаро аз нав созед.
f. Папка(ҳо)-и сахтафзори Платформаи фармоишии худро нест кунед. Платформаи фармоиширо дар якҷоягӣ бо драйвери навшуда ба феҳристи /home/root/opencl_arm_rte/board нусхабардорӣ кунед.
г. Altera.icd -ро нусхабардорӣ кунед file аз феҳристи /home/root/opencl_arm32_rte ва онро ба феҳристи /etc/OpenCL/vendors илова кунед.
ч. Тасвири навро ҷудо кунед ва санҷед. Барои дастурҳои муфассал, ба Қадамҳои 8 то 11 дар сохтани тасвири корти флеши SD муроҷиат кунед.
Пайвандҳои марбут
- Эҷоди тасвири корти SD Flash дар саҳифаи 14
Шумо инчунин имкон доред, ки тасвири нави корти флеши SD-ро эҷод кунед. - Автомуҳоҷирати платформаи фармоишӣ барои мутобиқати пеш
1.3 Дастгирии нармафзор барои хотираи муштарак
Хотираи физикии муштарак байни FPGA ва CPU хотираи афзалиятнок барои ядроҳои OpenCL, ки дар SoC FPGA кор мекунанд, мебошад. Азбаски FPGA ба хотираи физикии муштарак дастрасӣ дорад, бар хилофи хотираи муштараки виртуалӣ, он ба ҷадвалҳои саҳифаи CPU, ки суроғаҳои виртуалии корбарро ба суроғаҳои саҳифаи физикӣ харита мекунанд, дастрасӣ надорад.
Дар робита ба сахтафзор, ядроҳои OpenCL ба хотираи ҷисмонӣ тавассути пайвасти мустақим ба контролери хотираи сахти HPS DDR дастрасӣ пайдо мекунанд. Дар робита ба нармафзор, дастгирии хотираи муштараки ҷисмонӣ мулоҳизаҳои зеринро дар бар мегирад:
- Амалисозии маъмулии нармафзор барои тақсимоти хотира дар CPU (масаланample, функсияи malloc ()) наметавонад минтақаи хотираеро, ки FPGA истифода мебарад, ҷудо карда наметавонад.
Хотирае, ки функсияи malloc() ҷудо мекунад, дар фазои суроғаи хотираи виртуалӣ ҳамҷоя аст, аммо ҳама гуна саҳифаҳои физикии зеризаминӣ аз ҷиҳати физикӣ ба ҳам наздик нестанд. Ҳамин тариқ, мизбон бояд қодир бошад, ки минтақаҳои хотираи аз ҷиҳати ҷисмонӣ ҳамшафатро ҷудо кунад. Аммо, ин қобилият дар барномаҳои фазои корбар дар Linux вуҷуд надорад. Аз ин рӯ, драйвери ядрои Linux бояд тақсимотро иҷро кунад. - Драйвери ядрои OpenCL SoC FPGA Linux функсияи mmap()-ро барои ҷудо кардани хотираи физикии муштарак ва харитаи он дар фазои корбар дар бар мегирад. Функсияи mmap() занги стандартии ядрои Linux-ро истифода мебарад dma_alloc_coherent() барои дархост кардани минтақаҳои хотираи аз ҷиҳати ҷисмонӣ ҳамшафат барои мубодила бо дастгоҳ.
- Дар ядрои пешфарзи Linux, dma_alloc_coherent() хотираи аз ҷиҳати физикӣ ҳамбастаи зиёда аз 0.5 мегабайт (МБ) андоза ҷудо намекунад. Барои иҷозат додан ба dma_alloc_coherent() барои ҷудо кардани миқдори зиёди хотираи ба ҳам наздик, хусусияти ҷудокунандаи хотираи ҳамҷоя (CMA)-и ядрои Linuxро фаъол созед ва сипас ядрои Linux-ро аз нав тартиб диҳед.
Барои Platform Reference Kit Cyclone V SoC, CMA 512 МБ аз 1 ГБ хотираи физикиро идора мекунад. Шумо метавонед ин арзишро вобаста ба ҳаҷми хотираи муштараке, ки барнома талаб мекунад, зиёд ё кам кунед. Занги dma_alloc_coherent() метавонад 512 МБ пурраи хотираи ҳамҷаворро ҷудо карда натавонад; аммо он метавонад мунтазам тақрибан 450 МБ хотира ба даст орад. - CPU метавонад хотираеро кэш кунад, ки занги dma_alloc_coherent() ҷудо мекунад. Аз ҷумла, амалиёти навиштан аз барномаи ҳост ба ядроҳои OpenCL намоён нестанд. Функсияи mmap() дар драйвери ядрои OpenCL SoC FPGA Linux инчунин зангҳоро ба функсияи pgprot_noncached() ё remap_pf_range() барои хомӯш кардани кэш барои ин минтақаи хотира ба таври возеҳ дарбар мегирад.
- Пас аз он ки функсияи dma_alloc_coherent() хотираи аз ҷиҳати ҷисмонӣ ҳампайвандро ҷудо мекунад, функсияи mmap() суроғаи виртуалиро ба аввали диапазон бармегардонад, ки ин фосилаи суроғаи хотираи ҷудокардаи шумо мебошад. Барномаи мизбон ин суроғаи виртуалиро барои дастрасӣ ба хотира талаб мекунад. Аз тарафи дигар, ядроҳои OpenCL суроғаҳои физикиро талаб мекунанд. Драйвери ядрои Linux харитасозии суроғаҳои виртуалӣ ба физикиро пайгирӣ мекунад. Шумо метавонед суроғаҳои физикиро, ки mmap() ба суроғаҳои воқеии физикӣ бармегардад, бо илова кардани дархост ба драйвер харита карда метавонед.
Занги aocl_mmd_shared_mem_alloc() Интерфейси барномасозии MMD (API) дархостҳои зеринро дар бар мегирад:
а. Функсияи mmap(), ки хотираро ҷудо мекунад ва суроғаи виртуалиро бармегардонад.
б. Дархости иловагӣ, ки суроғаи виртуалии баргардонидашударо ба суроғаи физикӣ харита мекунад.
Занги API aocl_mmd_shared_mem_alloc() MMD пас ду суроғаро бармегардонад
—суроғаи воқеии баргардонидашуда суроғаи виртуалӣ аст ва суроғаи физикӣ ба device_ptr_out меравад.
Шарҳ: Драйвер метавонад танҳо суроғаҳои виртуалиро харита кунад, ки функсияи mmap() ба суроғаҳои физикӣ бармегардад. Агар шумо суроғаи физикии ягон нишондиҳандаи виртуалии дигарро дархост кунед, драйвер арзиши NULL-ро бармегардонад.
Огоҳӣ: Intel FPGA SDK барои китобхонаҳои вақти корӣ OpenCL тахмин мекунад, ки хотираи муштарак аввалин хотираест, ки дар board_spec.xml номбар шудааст file. Ба ибораи дигар, суроғаи физикӣ, ки драйвери ядрои Linux ба даст меорад, суроғаи Avalon® мегардад, ки ядрои OpenCL ба HPS SDRAM мегузарад.
Дар робита ба китобхонаи вақти корӣ, занги clCreateBuffer()-ро барои ҷудо кардани хотираи муштарак ҳамчун буфери дастгоҳ ба таври зерин истифода баред:
- Барои варианти тахтаи ду-DDR бо ҳам хотираи муштарак ва ҳам ҷудонашаванда, clCreateBuffer() хотираи муштаракро ҷудо мекунад, агар шумо парчами CL_MEM_USE_HOST_PTR-ро муайян кунед. Истифодаи парчамҳои дигар боиси clCreateBuffer() мешавад, ки буферро дар хотираи муштарак ҷудо кунад.
- Барои варианти тахтаи як-DDR, ки танҳо хотираи муштарак дорад, clCreateBuffer() новобаста аз он ки шумо кадом парчамро муайян мекунед, хотираи муштаракро ҷудо мекунад.
Дар айни замон, дастгирии 32-бит Linux дар ARM CPU ҳаҷми дастгирии хотираи муштаракро дар китобхонаҳои вақти SDK танзим мекунад. Ба ибораи дигар, китобхонаҳои вақти корӣ ба муҳитҳои дигар тартиб дода шудаанд (масаланample, x86_64 Linux ё 64-бита Windows) хотираи муштаракро дастгирӣ намекунад.
C5soc бо сабабҳои зерин хотираи гетерогениро барои фарқ кардани хотираи муштарак ва тақсимнашуда татбиқ накардааст:
1. Таърих — Дастгирии хотираи гетерогенӣ ҳангоми таъсиси дастгирии хотираи муштарак дастрас набуд.
2. Интерфейси ягона — Азбаски OpenCL стандарти кушода аст, Intel мутобиқати байни фурӯшандагони платформаи компютерии гетерогениро нигоҳ медорад. Аз ин рӯ, барои ҷудо кардан ва истифода бурдани хотираи муштарак ҳамон интерфейси меъмории дигар фурӯшандагони тахта истифода мешавад.
1.4 Аз нав танзимкунии FPGA
Барои FPGA-ҳои SoC, CPU метавонад матои асосии FPGA-ро бидуни халалдор кардани кори CPU аз нав танзим кунад. Блоки сахтафзори FPGA Manager, ки дар болои HPS ҷойгир аст ва FPGA аслӣ аз нав конфигуратсияро иҷро мекунад. Ядрои Linux дорои драйверест, ки дастрасии осонро ба менеҷери FPGA имкон медиҳад.
- Ба view ҳолати асосии FPGA, фармони ҳолати гурба /sys/class/fpga/fpga0/ -ро даъват кунед.
Барномаи Intel FPGA SDK барои барномаи OpenCL, ки бо Platform Reference Kit Cyclone V SoC дастрас аст, ин интерфейсро барои барномаи FPGA истифода мебарад. Ҳангоми аз нав барномарезӣ кардани як ядрои FPGA бо CPU коркунанда, утилитаи барнома ҳамаи вазифаҳои зеринро иҷро мекунад:
1. Пеш аз аз нав барномасозӣ, ҳама пулҳои иртиботӣ байни FPGA ва НБО, ҳам пулҳои H2F ва ҳам LH2F -ро ғайрифаъол кунед.
Пас аз анҷоми барномасозӣ ин пулҳоро дубора фаъол кунед.
Диққат: Системаи OpenCL пули FPGA-to-HPS (F2H) -ро истифода намебарад. Барои маълумоти бештар ба бахши интерфейсҳои HPS-FPGA дар Дастури дастгоҳи Cyclone V, ҷилди 3: Дастури истинодҳои техникии системаи протсессори сахт муроҷиат кунед.
2. Боварӣ ҳосил кунед, ки алоқаи байни FPGA ва контроллери HPS DDR ҳангоми аз нав барномасозӣ ғайрифаъол аст.
3. Боварӣ ҳосил кунед, ки қатъи FPGA дар FPGA ҳангоми аз нав барномасозӣ ғайрифаъол аст.
Инчунин, ба ронанда хабар диҳед, ки дар вақти азнавбарномасозӣ ҳамагуна танаффусҳоро аз FPGA рад кунад.
Барои гирифтани тафсилот дар бораи татбиқи воқеии барнома бо коди сарчашмаи утилитаи барнома муроҷиат кунед.
Огоҳӣ: Ҳангоми кор кардани CPU конфигуратсияи контроллери HPS DDR-ро тағир надиҳед.
Ин кор метавонад боиси хатогии марговари система гардад, зеро шумо метавонед конфигуратсияи контроллери DDR-ро ҳангоми мавҷуд будани транзаксияҳои хотираи барҷаста аз CPU тағир диҳед. Ин маънои онро дорад, ки вақте ки CPU кор мекунад, шумо метавонед ядрои FPGA-ро бо тасвире, ки HPS DDR-ро дар конфигуратсияи дигар истифода мебарад, дубора барномарезӣ накунед.
Дар хотир доред, ки системаи OpenCL ва тарҳи истинод ба сахтафзори тиллоӣ, ки бо Intel SoC FPGA Embedded Design Suite (EDS) дастрас аст, HPS DDR-ро ба як ҳолати ягонаи 256-бит муқаррар мекунад.
Қисмҳои системаи CPU ба монанди пешгӯии филиал ё пешакии ҷадвали саҳифа метавонанд фармонҳои DDR диҳанд, ҳатто вақте ки дар CPU ҳеҷ чиз кор намекунад.
Аз ин рӯ, вақти пурборкунӣ ягона вақти бехатар барои танзими конфигуратсияи контроллери HPS DDR мебошад.
Ин инчунин маънои онро дорад, ки U-boot бояд бинарии хом дошта бошад file (.rbf) тасвир барои бор кардан ба хотира. Дар акси ҳол, шумо метавонед HPS DDR-ро бо бандарҳои истифоданашуда дар FPGA фаъол созед ва пас эҳтимолан конфигуратсияҳои портро тағир диҳед. Аз ин сабаб, драйвери ядрои OpenCL Linux дигар мантиқи заруриро барои танзими конфигуратсияи контроллери HPS DDR дар бар намегирад.
Бастаи дугонаи дарунсохтаи SW3 (DIP) маҷмӯаи рушди Cylone V SoC-ро фаъол мекунад, шакли пешбинишудаи тасвири .rbf -ро назорат мекунад (яъне, оё file фишурда шудааст ва/ё рамзгузорӣ шудааст). C5soc ва тарҳи истинод ба сахтафзори тиллоӣ, ки бо EDS SoC дастрас аст, дорои тасвирҳои фишурдашуда, вале рамзнашуда .rbf. Танзимоти гузариши DIP SW3, ки дар Intel FPGA SDK барои OpenCL Cyclone V SoC Дастури оғоз тавсиф шудааст, ба ин конфигуратсияи тасвири .rbf мувофиқат мекунад.
Пайвандҳои марбут
- Интерфейси HPS-FPGA
- Танзими Гузаришҳои SW3
1.4.1 Тафсилоти меъмории системаи FPGA
Дастгирии платформаи истинод ба Cyclone V SoC Development Kit ба платформаи Stratix® V Reference (s5_ref) асос ёфтааст, ки бо Intel FPGA SDK барои OpenCL дастрас аст.
Ташкили умумии системаи c5soc Qsys ва драйвери ядро ба онҳое, ки дар s5_ref хеле монанданд.
Ҷузъҳои асосии FPGA зерин дар c5soc ва s5_ref якхелаанд:
- Блоки VERSION_ID
- Механизми истироҳат
- Тақсимкунандаи бонки хотира
- Интерфейси cache snoop
- Соати ядро
- Блокҳои дастрасии реестрро (CRA) назорат кунед
1.5 Сохтани тасвири корти SD Flash
Азбаски Cyclone V SoC FPGA як системаи мукаммали чип аст, шумо барои расонидани таърифи пурраи система масъулед. Intel тавсия медиҳад, ки шумо онро дар шакли тасвири корти флеши SD пешниҳод кунед. Intel FPGA SDK барои корбари OpenCL метавонад танҳо тасвирро ба корти флеши micro SD нависад ва тахтаи SoC FPGA барои истифода омода аст.
Тағир додани тасвири мавҷудаи корти SD Flash дар саҳифаи 13
Intel тавсия медиҳад, ки шумо танҳо тасвиреро, ки бо Platform Reference Kit Development Kit Cyclone V мавҷуд аст, тағир диҳед. Шумо инчунин имкон доред, ки тасвири нави корти флеши SD-ро эҷод кунед.
Эҷоди тасвири корти SD Flash дар саҳифаи 14
Шумо инчунин имкон доред, ки тасвири нави корти флеши SD-ро эҷод кунед.
1.5.1 Тағир додани тасвири мавҷудаи корти SD Flash
Intel тавсия медиҳад, ки шумо танҳо тасвиреро, ки бо Cyclone V SoC дастрас аст, тағир диҳед
Платформаи истинодҳои маҷмӯаи рушд. Шумо инчунин имкон доред, ки тасвири нави корти флеши SD-ро эҷод кунед.
Тасвири c5soc linux_sd_card_image.tgz file дар феҳристи ALTERAOCLSDKROOT/board/c5soc дастрас аст, ки дар он ALTERAOCLSDKROOT ба роҳи Intel FPGA SDK барои феҳристи насби OpenCL ишора мекунад.
Диққат: Барои тағир додани тасвири корти флеши SD, шумо бояд имтиёзҳои root ё sudo дошта бошед.
- Барои кушодани $ALTERAOCLSDKROOT/board/c5soc/linux_sd_card_image.tgz file, фармони tar xvfzlinux_sd_card_image.tgz -ро иҷро кунед.
- Собиқ hello_world OpenCL-ро тартиб диҳедampтарроҳии le бо истифода аз дастгирии Платформаи фармоишии шумо. Номи .rbf -ро тағир диҳед file ки Intel FPGA SDK барои OpenCL Offline Compiler ҳамчун opencl.rbf тавлид мекунад ва онро дар қисмати fat32 дар дохили тасвири корти флеши SD ҷойгир кунед.
Шумо метавонед hello_world собиқро зеркашӣ кунедample тарроҳӣ аз OpenCL Design Exampсаҳифаи les дар Altera webсайт. - .rbf -ро ҷойгир кунед file ба қисмати fat32 тасвири корти флешдор.
Диққат: Қисми fat32 бояд ҳам zImage-ро дар бар гирад file ва .rbf file. Бе .rbf file, вақте ки шумо драйверро ворид мекунед, хатои марговар рӯй медиҳад. - Пас аз эҷод кардани тасвири корти SD, онро ба корти micro SD бо истифода аз фармони зерин нависед: sudo dd if=/path/to/sdcard/image.bin of=/dev/sdcard
- Барои санҷидани тасвири флеши корти SD, вазифаҳои зеринро иҷро кунед:
а. Корти флеши micro SD-ро ба тахтаи SoC FPGA гузоред.
б. Тахтаро пур кунед.
в. Фармони utility diagnose aocl -ро даъват кунед.
1.5.2 Эҷоди тасвири корти SD Flash
Шумо инчунин имкон доред, ки тасвири нави корти флеши SD-ро эҷод кунед. Дастурҳои умумӣ оид ба сохтани тасвири нави корти флеши SD ва барқарор кардани тасвири мавҷудаи корти флеши SD дар GSRD v14.0.2 - Саҳифаи корти SD аз RocketBoards.org дастрасанд. webсайт.
Қадамҳои зер тартиби эҷоди тасвири linux_sd_card_image.tgz аз тасвири флеш-корти SD-и Тиллоӣ Reference Design (GSRD) тавсиф мекунанд:
Шарҳ:
Барои эҷод кардани тасвир аз тасвири c5soc, ҳамаи вазифаҳои мувофиқеро, ки дар ин тартиб оварда шудаанд, иҷро кунед.
- Нусхаи тасвири корти флеши GSRD SD 14.0-ро аз Rocketboards.org зеркашӣ ва кушоед.
- Монтед file ҷадвали тақсимот (fat32) ва васеъ file бахшҳои система (ext3) дар ин тасвир ҳамчун дастгоҳҳои бозгашт. Барои насб кардани қисм, қадамҳои зеринро иҷро кунед:
а. Бо истифода аз /sbin/fdisk -lu image_ оғози байти бахшро дар дохили тасвир муайян кунедfile фармон.
Барои мисолample, қисмати рақами 1 навъи W95 FAT дорои ҷуброни блоки 2121728. Бо 512 байт дар як блок, ҷуброни байт 512 байт x 2121728 = 1086324736 байт аст.
б. Дастгоҳи ҳалқаи ройгонро муайян кунед (масаланample, /dev/loop0) бо ворид кардани фармони losttup -f.
в. Фарз мекунем, ки /dev/loop0 дастгоҳи ҳалқаи ройгон аст, тасвири корти флеши худро ба дастгоҳи блоки даврӣ бо истифода аз kayıp /dev/loop0 image_ таъин кунед.file -0 1086324736 фармон.
г. Дастгоҳи ҳалқаро бо истифода аз фармони mount /dev/loop0 /media/disk1 насб кунед.
Дар дохили тасвир file, /media/disk1 ҳоло як қисмати насбшудаи fat32 аст.
д. Қадамҳои a то d барои қисмати ext3 такрор кунед. - Нусхаи Cyclone V SoC FPGA-и Intel FPGA Runtime Environment -ро барои бастаи OpenCL аз Маркази зеркашӣ дар Altera зеркашӣ кунед webсайт.
а. Тугмаи Боргириро дар паҳлӯи нашри нармафзори Quartus Prime клик кунед.
б. Версияи нашр, системаи амалиётӣ ва усули зеркаширо муайян кунед.
в. Ҷадвали нармафзори иловагиро клик кунед ва барои зеркашии Intel FPGA-ро интихоб кунед
Муҳити корӣ барои OpenCL Linux Cyclone V SoC TGZ.
г. Пас аз зеркашӣ кардани aocl-rte- .arm32.tgz file, онро кушоед
директорияе, ки шумо соҳиби он ҳастед. - aocl-rte-ро ҷойгир кунед. директорияи .arm32 ба феҳристи /home/root/opencl_arm32_rte дар қисмати ext3-и тасвир file.
- Папка(ҳо)-и сахтафзори Платформаи фармоишии худро нест кунед ва сипас Платформаи фармоиширо дар зеркаталоги /home/root/ opencl_arm32_rte ҷойгир кунед.
- init_opencl.sh эҷод кунед file дар феҳристи /home/root бо мундариҷаи зерин: содироти 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 фармони source ./init_opencl.sh -ро барои бор кардани тағирёбандаҳои муҳити зист ва драйвери ядрои OpenCL Linux иҷро мекунад. - Агар ба шумо лозим аст, ки пешакии боркуниро навсозӣ кунед, DTS files, ё ядрои Linux, ба шумо компилятори arm-linux-gnueabihf-gcc аз SoC EDS лозим аст. Дастурҳоеро, ки дар дастури корбари Intel SoC FPGA Embedded Design Suite оварда шудаанд, риоя кунед, то нармафзорро харидорӣ кунед, онҳоро аз нав тартиб диҳед ва навсозӣ кунед. fileс дар қисмати насбшудаи fat32.
Диққат: Эҳтимол дорад, ки ба шумо лозим аст, ки пешакии боркуниро навсозӣ кунед, агар Платформаи фармоишии шумо нисбат ба платформаҳои c5soc истифодаи пинҳои гуногун дошта бошад.
Дар хотир доред: Агар шумо ядрои Linux-ро аз нав тартиб диҳед, драйвери ядрои Linux-ро бо ҳамон манбаи ядрои Linux дубора тартиб диҳед fileс. Агар байни драйвери ядрои Linux ва ядрои Linux номувофиқатӣ мавҷуд бошад, драйвер бор намекунад. Инчунин, шумо бояд CMA-ро фаъол созед.
Барои маълумоти бештар ба Recompiling Kernel Linux нигаред. - Собиқ hello_world OpenCL-ро тартиб диҳедampтарроҳии le бо истифода аз дастгирии Платформаи фармоишии шумо. Номи .rbf -ро тағир диҳед file ки Intel FPGA SDK барои OpenCL Offline Compiler ҳамчун opencl.rbf тавлид мекунад ва онро дар қисмати fat32 дар дохили тасвири корти флеши SD ҷойгир кунед.
Шумо метавонед hello_world собиқро зеркашӣ кунедample тарроҳӣ аз OpenCL Design Exampсаҳифаи les дар Altera webсайт.
9. Пас аз он ки шумо тамоми заруриро нигоҳ доред files ба тасвири корти флешдор ворид кунед, фармонҳои зеринро иҷро кунед:
а. ҳамоҳанг
б. ҷудо кунед /media/disk1
в. ҷудо кардан дар куҷо номи директорияест, ки шумо барои васл кардани қисмати ext3 дар 3 дар саҳифаи 3 истифода мекунед (барои мисолample, /media/disk2).
г. losttup -d /dev/loop0
д. losttup -d /dev/loop1 - Тасвири флеш-корти SD-ро бо истифода аз фармони зерин фишурда кунед: tar cvfz .tgz linux_sd_card_image
- Расонидани .тгз file дар дохили директорияи решаи Платформаи фармоишии шумо.
- Барои санҷидани тасвири флеши корти SD, вазифаҳои зеринро иҷро кунед:
а. Тасвири фишурдашудаи натиҷашударо ба корти флеши micro SD нависед.
б. Корти флеши micro SD-ро ба тахтаи SoC FPGA гузоред.
в. Тахтаро пур кунед.
г. Фармони utility diagnose aocl -ро даъват кунед.
Пайвандҳои марбут
- Дастури корбар Intel SoC FPGA Embedded Design Suite
- OpenCL Design Exampсаҳифаи les дар Altera webсайт
- Тартиб додани ядрои Linux дар саҳифаи 16
Барои фаъол кардани CMA, шумо бояд аввал ядрои Linux-ро дубора тартиб диҳед. - Дархости номи дастгоҳи Шӯрои FPGA-и шумо (ташхис)
1.6 Тартиб додани ядрои Linux барои Cyclone V SoC FPGA
Пеш аз ба кор андохтани барномаҳои OpenCL дар тахтаи Cyclone V SoC FPGA, шумо бояд манбаи ядрои Linux-ро тартиб диҳед ва драйвери ядрои OpenCL Linux-ро тартиб диҳед ва насб кунед.
- Тартиб додани ядрои Linux дар саҳифаи 16
Барои фаъол кардани CMA, шумо бояд аввал ядрои Linux-ро дубора тартиб диҳед. - Тартиб додан ва насб кардани драйвери ядрои OpenCL Linux дар саҳифа 17 Драйвери ядрои OpenCL Linux-ро бар зидди манбаи ядрои тартибдодашуда тартиб диҳед.
1.6.1 Тартиб додани ядрои Linux
Барои фаъол кардани CMA, шумо бояд аввал ядрои Linux-ро дубора тартиб диҳед.
- Дар саҳифаи захираҳои RocketBoards.org истиноди GSRD v14.0 - Тартиб додани Linux -ро клик кунед webсайт барои дастрасӣ ба дастурҳо оид ба зеркашӣ ва аз нав сохтани рамзи сарчашмаи ядрои Linux.
Барои истифода бо ™ Intel FPGA SDK for OpenCL, socfpga-3.13-rel14.0-ро ҳамчун . - Эзоҳ: Раванди сохтмон arch/arm/configs/socfpga_defconfig-ро эҷод мекунад file. Ин file танзимотро барои конфигуратсияи пешфарз socfpga муайян мекунад.
Сатрҳои зеринро ба поёни 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_ALGNMENT=8
CONFIG_CMA_AREAS=7
Қимати конфигуратсияи CONFIG_CMA_SIZE_MBYTES маҳдудияти болоии шумораи умумии хотираи ҳамҷавори ҷисмонии дастрасро муқаррар мекунад. Агар шумо хотираи бештар талаб кунед, шумо метавонед ин арзишро зиёд кунед. - Диққат: Ҳаҷми умумии хотираи физикӣ барои протсессори ARM дар тахтаи SoC FPGA 1 ГБ аст. Intel тавсия намедиҳад, ки шумо мудири CMA-ро ба 1 ГБ наздик кунед.
- Барои тоза кардани конфигуратсияи ҷорӣ фармони make mrproper -ро иҷро кунед.
- Фармони make ARCH=arm socfpga_deconfig -ро иҷро кунед.
ARCH=арм нишон медиҳад, ки шумо меъмории ARM-ро танзим кардан мехоҳед.
socfpga_defconfig нишон медиҳад, ки шумо мехоҳед конфигуратсияи пешфарзии socfpga -ро истифода баред. - Фармони содироти CROSS_COMPILE=arm-linux-gnueabihf--ро иҷро кунед.
Ин фармон тағирёбандаи муҳити CROSS_COMPILE-ро барои муайян кардани префикси занҷири абзори дилхоҳ муқаррар мекунад. - Фармони make ARCH=arm zImage-ро иҷро кунед. Тасвири натиҷавӣ дар arch/arm/boot/zImage дастрас аст file.
- zImage -ро ҷойгир кунед file ба қисмати fat32 тасвири корти флешдор. Барои дастурҳои муфассал, ба дастури корбарии Cyclone V SoC FPGA мушаххаси GSRD дар Rocketboards.org муроҷиат кунед.
- Эзоҳ: Барои дуруст ворид кардани драйвери ядрои OpenCL Linux, аввал SDKgenerated.rbf -ро бор кунед file ба FPGA.
Барои сохтани .rbf file, тартиб додани тарҳи SDK собиқample бо Платформаи Reference Kit Development Cyclone V SoC ҳамчун Платформаи фармоишии мақсаднок.
9. .rbf-ро ҷойгир кунед file ба қисмати fat32 тасвири корти флешдор.
Диққат: Қисми fat32 бояд ҳарду zImage-ро дар бар гирад file ва .rbf file. Бе .rbf file, вақте ки шумо драйверро ворид мекунед, хатои марговар рӯй медиҳад. - Корти micro SD-и барномарезишударо, ки дорои тасвири корти SD-ро, ки шумо қаблан тағир додаед ё сохтаед, ба маҷмӯаи рушди Cyclone V SoC гузоред ва сипас тахтаи SoC FPGA-ро пур кунед.
- Бо иҷро кардани фармони uname -r версияи ядрои насбшудаи Linux-ро тафтиш кунед.
- Барои тасдиқи он, ки шумо CMA-ро дар ядро бомуваффақият фаъол мекунед, бо тахтаи SoC FPGA фаъол аст, фармони grep init_cma /proc/kallsyms -ро иҷро кунед.
Агар баромад холӣ набошад, CMA фаъол мешавад. - Барои истифодаи ядрои аз нав тартибдодашудаи Linux бо SDK, драйвери ядрои Linuxро тартиб диҳед ва насб кунед.
Пайвандҳои марбут
- Дастурҳои корбар барои тарҳрезии истинодҳои системаҳои тиллоӣ (GSRD).
- Сохтани тасвири корти SD Flash дар саҳифаи 13
Азбаски Cyclone V SoC FPGA як системаи мукаммали чип аст, шумо барои расонидани таърифи пурраи система масъулед.
1.6.2 Тартиб додан ва насб кардани драйвери ядрои OpenCL Linux
Драйвери ядрои OpenCL Linux-ро бар зидди манбаи ядрои тартибдодашуда тартиб диҳед.
Манбаи драйвер дар версияи Cyclone V SoC FPGA аз Intel FPGA Runtime Environment барои OpenCL дастрас аст. Илова бар ин, боварӣ ҳосил кунед, ки шумо Intel FPGA SDK-ро барои .rbf-и аз ҷониби OpenCL тавлидшуда бор кардаед. file ба FPGA барои пешгирӣ кардани насби нодурусти модули ядрои Linux.
- Нусхаи Cyclone V SoC FPGA-и Intel FPGA Runtime Environment -ро барои бастаи OpenCL аз Маркази зеркашӣ дар Altera зеркашӣ кунед webсайт.
а. Тугмаи Боргириро дар паҳлӯи нашри нармафзори Quartus Prime клик кунед.
б. Версияи нашр, системаи амалиётӣ ва усули зеркаширо муайян кунед.
в. Ҷадвали нармафзори иловагиро клик кунед ва барои зеркашии Intel FPGA-ро интихоб кунед
Муҳити корӣ барои OpenCL Linux Cyclone V SoC TGZ.
г. Пас аз зеркашӣ кардани aocl-rte- .arm32.tgz file, онро кушоед
директорияе, ки шумо соҳиби он ҳастед.
Манбаи драйвер дар aocl-rte- .arm32/board/c5soc/ феҳристи ронанда. - Барои аз нав тартиб додани драйвери ядрои OpenCL Linux, арзиши KDIR-ро дар Make драйвер таъин кунедfile ба феҳристи дорои манбаи ядрои Linux files.
- Фармони содироти CROSS_COMPILE=arm-linux-gnueabihf-ро иҷро кунед, то префикси занҷири асбобҳои худро нишон диҳад.
- Фармони make clean -ро иҷро кунед.
- Барои сохтани aclsoc_drv.ko фармони make-ро иҷро кунед file.
- Феҳристи opencl_arm32_rte -ро ба тахтаи Cyclone V SoC FPGA интиқол диҳед.
Иҷро кардани scp -r root@адреси шумо: фармон муҳити иҷроро дар феҳристи/home/root ҷойгир мекунад. - Скрипти init_opencl.sh -ро иҷро кунед, ки шумо ҳангоми сохтани SD cardimage сохтаед.
- Фармони utility diagnose aocl -ро даъват кунед. Утилитаи ташхис пас аз он ки шумо init_opencl.sh-ро бомуваффақият иҷро мекунед, натиҷаи гузарандаро бармегардонад.
1.7 Масъалаҳои маълум
Дар айни замон, маҳдудиятҳои муайян дар истифодаи Intel FPGA SDK барои OpenCL бо Platform Reference Kit Cyclone V SoC мавҷуданд.
- Шумо номҳои фурӯшанда ва тахтаро, ки аз ҷониби сатрҳои CL_DEVICE_VENDOR ва CL_DEVICE_NAME-и занги clGetDeviceInfo() гузориш дода шудаанд, бекор карда наметавонед.
- Агар мизбон хотираи доимиро дар системаи муштараки DDR (яъне HPS DDR) ҷудо кунад ва он хотираи доимиро пас аз иҷрои ядро тағир диҳад, маълумот дар хотира метавонад кӯҳна шавад. Ин масъала аз он сабаб ба миён меояд, ки ядрои FPGA транзаксияҳои CPU-ба-HPS DDR-ро тафтиш карда наметавонад.
Барои пешгирӣ кардани иҷрои минбаъдаи ядро аз дастрасии маълумоти кӯҳна, яке аз роҳҳои ҳалли зеринро иҷро кунед:
• Хотираи доимиро пас аз оғоз кардани он тағир надиҳед.
• Агар шумо маҷмӯи маълумотҳои __ доимиро талаб кунед, буферҳои хотираи доимии сершумор эҷод кунед.
• Агар дастрас бошад, хотираи доимиро дар FPGA DDR дар тахтаи суръатбахши худ ҷудо кунед. - Утилитаи SDK дар ARM танҳо барномаро дастгирӣ мекунад ва фармонҳои утилитаро ташхис мекунад.
Фармонҳои флешдор, насб ва нест кардани утилитаҳо ба маҷмӯаи рушди Cyclone V SoC бо сабабҳои зерин мувофиқ нестанд:
а. Утилитаи насб бояд драйвери ядрои aclsoc_drv Linux-ро тартиб диҳад ва онро дар SoC FPGA фаъол созад. Мошини таҳиякунанда бояд тартибдиҳиро иҷро кунад; аммо, он аллакай дорои сарчашмаҳои ядрои Linux барои SoC FPGA мебошад. Сарчашмаҳои ядрои Linux барои мошини таҳия аз манбаъҳои FPGA SoC фарқ мекунанд. Ҷойгиршавии манбаъҳои ядрои Linux барои SoC FPGA эҳтимол барои корбари SDK номаълум аст. Ба ҳамин монанд, утилитаи Uninstall низ барои маҷмӯаи рушди Cyclone V SoC дастнорас аст.
Инчунин, интиқоли aclsoc_drv ба тахтаи SoC душвор аст, зеро тақсимоти пешфарзии Kit Development Cyclone V SoC ядрои Linux-ро дар бар намегирад. files ё компилятори GNU Compiler Collection (GCC).
б. Утилитаи флеш ҷойгир кардани .rbf-ро талаб мекунад file тарҳи OpenCL ба қисмати FAT32 корти флеши micro SD. Дар айни замон, вақте ки корбари SDK тахтаро фаъол мекунад, ин қисм насб карда намешавад. Аз ин рӯ, роҳи беҳтарини навсозии қисм ин истифодаи флеш-корт хонанда ва мошини таҳия мебошад. - Ҳангоми гузариш байни Intel FPGA SDK барои OpenCL Offline Compiler иҷрошаванда files (.aocx), ки ба вариантҳои гуногуни тахта мувофиқат мекунанд (яъне c5soc ва c5soc_sharedonly), шумо бояд утилитаи барномаи SDK-ро барои бор кардани .aocx истифода баред. file барои варианти нави тахта бори аввал. Агар шумо танҳо барномаи мизбонро бо истифода аз варианти нави тахта иҷро кунед, аммо FPGA дорои тасвири варианти дигари тахта, метавонад хатои марговар рух диҳад.
- .qxp file супоришҳои тақсимоти интерфейсро дар бар намегирад, зеро нармафзори Quartus Prime пайваста ба талаботҳои вақти ин қисм мувофиқат мекунад.
- Вақте ки шумо тахтаро фаъол мекунед, суроғаи идоракунии дастрасии медиа (MAC) ба рақами тасодуфӣ муқаррар карда мешавад. Агар сиёсати LAN-и шумо ин рафторро иҷозат надиҳад, суроғаи MAC-ро тавассути иҷрои вазифаҳои зерин таъин кунед:
а. Ҳангоми фаъолсозии U-Boot, ягон калидро пахш кунед, то ба сатри фармони U-Boot ворид шавед.
б. Дар сатри фармон setenv etaddr 00:07:ed:00:00:03 -ро нависед.
Шумо метавонед ягон суроғаи MAC-ро интихоб кунед.
в. Фармони saveenv-ро ворид кунед.
г. Тахтаро аз нав оғоз кунед.
1.8 Таърихи бознигарии ҳуҷҷатҳо
Ҷадвали 1.
Таърихи бознигарии ҳуҷҷатҳои Intel FPGA SDK барои OpenCL Cyclone V SoC
Дастури портинги платформаи Reference Kit Development
Сана | Версия | Тағйирот |
— 17 май | 2017.05.08 | • Нашри нигоҳдорӣ. |
Октябри 2016 | 2016.10.31 | •Rebrended Altera SDK барои OpenCL ба Intel FPGA SDK барои OpenCL. •Rebrended Altera Offline Compiler ба Intel FPGA SDK барои OpenCL Offline Compiler. |
— 16 май | 2016.05.02 | •Дастурҳои тағирёфта оид ба сохтан ва тағир додани тасвири корти флеши SD. •Дастурҳои тағирёфта оид ба дубора тартиб додани ядрои Linux ва драйвери ядрои OpenCL Linux. |
15 ноябр | 2015.11.02 | •Иҷозати хидматрасонӣ ва тағир додани мисолҳои Quartus II ба Quartus Prime. |
— 15 май | 15.0.0 | •Дар Reconfiguration FPGA, дастур оид ба дубора барномарезии асосии FPGA хориҷ карда шудааст бо . тасвири rbf бо даъвати гурба fileном>. rbf > Фармони /dev/ fpga0, зеро ин усул тавсия дода намешавад. |
14 декабр | 14.1.0 | •Номи ҳуҷҷат ҳамчун Altera Cyclone V SoC Development Kit Reference Platform Porting Guide. •Утилити дубора барномарезӣ ба барномаи aocl навсозӣ карда шудfileфармони утилитаи ном>.aocx. •Утили диагностикӣ ба ташхиси aocl ва ташхиси aocl навсозӣ карда шуд фармони коммуналӣ. • Тартиби интиқоли платформаи истинод ба қисмати Шӯрои SoC-и шумо навсозӣ карда шуд, то дастурҳо оид ба интиқол ва тағир додани қисмати панели c5soc барои эҷоди як қисми тозаи вақт барои ҷараёни кафолати басташавии вақтро дар бар гирад. • Мавзӯи Навсозии платформаи истинодҳои портӣ барои тавсифи расмиёти вазифаҳои зерин ворид карда шудааст: 1.Excluding системаи протсессори сахт (HPS) блок дар ҳиҷобест Шӯрои 2.Updating тасвири корти флешдор SD • Бахши Сохтани тасвири корти SD Flash навсозӣ карда шуд. Тавсия дода мешавад, ки версияи 14.0-и тасвири Golden System Reference Design (GSRD) ҳамчун нуқтаи ибтидоӣ ба ҷои тасвире, ки бо SoC Embedded Design Suite (EDS) дастрас аст. •Таҷдиди дубораи ядрои Linux ва бахши драйвери ядрои OpenCL Linux навсозӣ шуд: 1.Дастури иловашуда барои таъини тағирёбандаи CROSS COMPILE. 2. Фармонеро, ки шумо иҷро мекунед, тағир дод, то тафтиш кунед, ки CMA бомуваффақият фаъол карда шудааст. |
14 июл | 14.0.0 | • Нашри аввал. |
Ҳуҷҷатҳо / Сарчашмаҳо
![]() |
Intel FPGA SDK барои OpenCL [pdf] Дастури корбар FPGA SDK барои OpenCL, FPGA SDK, SDK барои OpenCL, SDK |