OpenCL үшін FPGA SDK
Пайдаланушы нұсқаулығы
UG-OCL009
2017.05.08
Intel® Quartus® Prime Design Suite үшін соңғы жаңартылған: 17.0
Жазылу
Кері байланыс жіберу
OpenCL™ үшін Intel® FPGA SDK Intel® Cyclone®V SoC әзірлеу жинағы анықтамалық платформаны тасымалдау нұсқаулығы
V SoC Development Kit анықтамалық платформасын тасымалдау нұсқаулығы OpenCL ™ үшін Intel ® FPGA SDK OpenCL ™ Intel Cyclone үшін Intel Software Development Kit (SDK) бірге пайдалануға арналған Intel Cyclone V SoC Development Kit Reference Platform (c5soc) аппараттық және бағдарламалық жасақтама дизайнын сипаттайды. ® . Бастамас бұрын Intel келесі құжаттардың мазмұнымен танысуды ұсынады:
- OpenCLIntel Cyclone V SoC үшін Intel FPGA SDK Жұмысты бастау нұсқаулығы
- OpenCL Custom Platform Toolkit пайдаланушы нұсқаулығына арналған Intel FPGA SDK
- Cyclone V құрылғысының анықтамалығы, 3-том: Қатты процессорлар жүйесінің техникалық анықтамалық нұсқаулығы Сонымен қатар, Altera компаниясының Cyclone V SoC Development Kit және SoC Embedded Design Suite бетін қараңыз. webтолығырақ ақпарат алу үшін сайт. 1 2
Назар аударыңыз: Intel сізде OpenCL Custom Platform Toolkit пайдаланушы нұсқаулығына арналған Intel FPGA SDK туралы терең түсінігіңіз бар деп есептейді. Cyclone V SoC әзірлеу жинағының анықтамалық платформасын тасымалдау нұсқаулығы Cyclone V SoC әзірлеу жинағы үшін пайдаланушы платформасын іске асыру үшін SDK пайдаланушы платформасының құралдар жинағын пайдалануды сипаттамайды. Ол тек Cyclone V SoC әзірлеу жинағындағы SDK қолдауы мен OpenCL Custom Platform үшін жалпы Intel FPGA SDK арасындағы айырмашылықтарды сипаттайды.
Қатысты сілтемелер
- OpenCL Cyclone V SoC үшін Intel FPGA SDK Жұмысты бастау нұсқаулығы
- OpenCL Custom Platform Toolkit пайдаланушы нұсқаулығына арналған Intel FPGA SDK
- Cyclone V құрылғысының анықтамалығы, 3-том: қатты процессорлар жүйесінің техникалық анықтамалық нұсқаулығы
- Altera сайтындағы Cyclone V SoC Development Kit және SoC Embedded Design Suite беті webсайт
- OpenCL және OpenCL логотипі Khronos Group™ рұқсатымен пайдаланылатын Apple Inc. сауда белгілері болып табылады.
- OpenCL үшін Intel FPGA SDK жарияланған Khronos спецификациясына негізделген және Khronos сәйкестігін тексеру процесінен өтті. Ағымдағы сәйкестік күйін мына жерден табуға болады www.khronos.org/conformance.
Intel корпорациясы. Барлық құқықтар сақталған. Intel, Intel логотипі, Altera, Arria, Cyclone, Enpirion, MAX, Nios, Quartus және Stratix сөздері мен логотиптері Intel корпорациясының немесе оның АҚШ және/немесе басқа елдердегі еншілес компанияларының сауда белгілері болып табылады. Intel өзінің FPGA және жартылай өткізгіш өнімдерінің Intel стандартты кепілдігіне сәйкес ағымдағы техникалық сипаттамаларға сәйкес орындалуына кепілдік береді, бірақ кез келген өнімдер мен қызметтерге кез келген уақытта ескертусіз өзгертулер енгізу құқығын өзіне қалдырады. Intel жазбаша түрде тікелей келіскен жағдайларды қоспағанда, Intel компаниясы осы құжатта сипатталған кез келген ақпаратты, өнімді немесе қызметті қолданудан немесе пайдаланудан туындайтын жауапкершілікті немесе жауапкершілікті өз мойнына алмайды. Intel тұтынушыларына кез келген жарияланған ақпаратқа сенбес бұрын және өнімдерге немесе қызметтерге тапсырыс бермес бұрын құрылғы сипаттамаларының соңғы нұсқасын алу ұсынылады.
*Басқа атаулар мен брендтер басқалардың меншігі ретінде талап етілуі мүмкін.
1.1.1 Cyclone V SoC әзірлеу жинағы анықтамалық платформа тақтасының нұсқалары
OpenCL Cyclone V SoC Development Kit анықтамалық платформасына арналған Intel FPGA SDK екі тақта нұсқасын қамтиды.
- c5soc тақтасы
Бұл әдепкі тақта екі DDR жад банкіне қол жеткізуге мүмкіндік береді. HPS DDR-ге FPGA және CPU екеуі де қол жеткізе алады. FPGA DDR тек FPGA арқылы қол жетімді. - c5soc_sharedonly тақтасы
Бұл тақта нұсқасында тек HPS DDR қосылымы бар. FPGA DDR қол жетімді емес. Тақтаның бұл нұсқасы аймақты тиімдірек етеді, себебі бір DDR жад банкін қолдау үшін аз жабдық қажет. c5soc_sharedonly тақтасы сонымен қатар жалғыз DDR жады банкі бар соңғы өндірістік тақта үшін жақсы прототиптеу платформасы болып табылады.
OpenCL ядросын құрастыру кезінде осы тақта нұсқасын бағыттау үшін aoc пәрменіне -board c5soc_sharedonly опциясын қосыңыз.
Қосымша ақпарат алу үшін – тақтада aoc пәрменінің опциясы үшін OpenCL бағдарламалау нұсқаулығы үшін Intel FPGA SDK бөлімін қараңыз.
Қатысты сілтемелер
Арнайы FPGA тақтасы үшін ядроны құрастыру (–board )
1.1.2 Cyclone V SoC Development Kit анықтамалық платформасының мазмұны
Cyclone V SoC әзірлеу жинағының анықтамалық платформасы төмендегілерден тұрады files және каталогтар:
File немесе Каталог | Сипаттама |
board_env.xml | кеңейтілетін белгілеу тілі (XML) file OpenCL үшін Intel FPGA SDK үшін c5soc файлын сипаттайды. |
linux_sd_card_image.tgz | Сығылған SD флэш картасының кескіні file онда SDK пайдаланушысы Cyclone V SoC Development Kit бағдарламасын SDK-мен бірге пайдалану үшін қажет нәрсенің барлығы бар. |
қол32 | Мыналарды қамтитын каталог: |
1.1.3 Cyclone V SoC әзірлеу жинағының тиісті мүмкіндіктері
Келесі тізім OpenCL үшін Intel FPGA SDK-ға қатысты Cyclone V SoC Development Kit құрамдастары мен мүмкіндіктерін бөлектейді:
- 9 биттік Linux жүйесінде жұмыс істейтін екі ядролы ARM Cortex-A32 процессоры.
- HPS және FPGA негізгі матасы арасындағы кеңейтілген кеңейтілетін интерфейс (AXI) шинасы.
- Екі қатайтылған DDR жад контроллері, әрқайсысы 1 гигабайт (ГБ) DDR3 SDRAM-ға қосылады.
— Бір DDR контроллері тек FPGA өзегіне қол жетімді (яғни, FPGA DDR).
— Басқа DDR контроллері HPS және FPGA (яғни, HPS DDR) үшін де қолжетімді. Бұл ортақ контроллер процессор мен FPGA ядросы арасында бос жадты бөлісуге мүмкіндік береді. - CPU FPGA негізгі құрылымын қайта конфигурациялай алады.
1.1.3.1 Cyclone V SoC әзірлеу жинағының анықтамалық платформасын жобалау мақсаттары мен шешімдері Intel Cyclone V SoC Development Kit Reference Platform бағдарламасын бірнеше дизайн мақсаттары мен шешімдеріне негіздейді. Intel осы анықтамалық платформаны SoC FPGA тақтасына тасымалдаған кезде осы мақсаттар мен шешімдерді қарастыруды ұсынады.
Төменде c5soc дизайн мақсаттары берілген:
- FPGA және DDR жад жүйесіндегі ядролар арасындағы мүмкін болатын ең жоғары өткізу қабілеттілігін қамтамасыз етіңіз.
- FPGA (яғни, OpenCL ядролары) жүйесіндегі есептеулер перифериялық құрылғыларға қызмет көрсетуді қамтуы мүмкін басқа CPU тапсырмаларына кедергі келтірмейтініне көз жеткізіңіз.
- Интерфейс құрамдастарының орнына ядролық есептеулер үшін мүмкіндігінше FPGA ресурстарын қалдырыңыз.
Төменде Intel дизайн мақсаттарының тікелей салдары болып табылатын жоғары деңгейдегі дизайн шешімдері берілген:
- Анықтамалық платформа тек ең кең конфигурациясы (256 бит) бар қатты DDR жад контроллерін пайдаланады.
- FPGA HPS DDR жад контроллерімен AXI шинасы мен HPS ішіндегі L3 қосқышын қоспай-ақ тікелей байланысады. Тікелей байланыс DDR үшін ең жақсы өткізу қабілеттілігін қамтамасыз етеді және FPGA есептеулерін процессор мен оның перифериясы арасындағы байланысқа кедергі келтірмейді.
- Жадқа тікелей қол жеткізу (SG-DMA) FPGA интерфейс логикасының бөлігі емес. DDR жад жүйелері арасында деректердің үлкен көлемін тасымалдаудың орнына, деректерді ортақ HPS DDR ішінде сақтаңыз. FPGA арқылы CPU жадына тікелей қол жеткізу DMA қарағанда тиімдірек. Ол аппараттық ресурстарды (яғни, FPGA аймағы) үнемдейді және Linux ядросының драйверін жеңілдетеді.
Ескерту: Ортақ HPS DDR жүйесі мен тек FPGA қол жетімді DDR жүйесі арасындағы жадты тасымалдау өте баяу. Егер сіз таңдасаңыз
жадты осылайша тасымалдаңыз, оны деректердің өте аз көлемі үшін ғана пайдаланыңыз. - Хост пен құрылғы бір 2 биттік портты пайдаланып, HPS-FPGA (H32F) көпірі арқылы бір-бірінің арасында DMA емес деректерді тасымалдауды орындайды. Себебі, DMA болмаса, Linux ядросы бір ғана 32-биттік оқу немесе жазу сұрауын шығара алады, сондықтан кеңірек қосылым қажет емес.
- Хост жеңіл салмақты H2F (LH2F) көпірі арқылы құрылғыға басқару сигналдарын жібереді.
Хосттан құрылғыға дейінгі басқару сигналдары өткізу қабілеті төмен сигналдар болғандықтан, LH2F көпірі тапсырма үшін өте қолайлы.
1.2 Анықтамалық платформаны SoC FPGA тақтасына тасымалдау
Cyclone V SoC Development Kit анықтамалық платформасын SoC FPGA тақтасына тасымалдау үшін келесі тапсырмаларды орындаңыз:
- Дизайныңыздың бастапқы нүктесі ретінде c5soc анықтамалық платформасының бір DDR жадын немесе екі DDR жады нұсқасын таңдаңыз.
- ALTERAOCLSDKROOT/board/c5soc/ ішіндегі түйреуіш орындарын жаңартыңыз /top.qsf file, мұнда ALTERAOCLSDKROOT OpenCL орнатуға арналған Intel FPGA SDK орнына апаратын жол және тақта нұсқасының каталог атауы болып табылады. c5soc_sharedonly каталогы бір DDR жад жүйесі бар тақта нұсқасына арналған. c5soc каталогы екі DDR жады жүйесі бар тақта нұсқасына арналған.
- ALTERAOCLSDKROOT/board/c5soc/ ішіндегі HPS және/немесе FPGA SDRAM блоктары үшін DDR параметрлерін жаңартыңыз. /system.qsys file.
4. OpenCL таңдаулы тақта конструкцияларына арналған барлық Intel FPGA SDK кепілдік берілген уақытты жабуға қол жеткізуі керек. Осылайша, дизайнды орналастыру уақыты таза болуы керек. c5soc тақта бөлімін (acl_iface_partition.qxp) SoC FPGA тақтасына ауыстыру үшін келесі тапсырмаларды орындаңыз:
Тақта бөлімін өзгерту және сақтау бойынша толық нұсқауларды Quartus бөлімінен қараңыз
Quartus Prime Standard Edition анықтамалығының иерархиялық және командаға негізделген дизайн тарауы үшін негізгі қосымша жинақ.
а. acl_iface_partition.qxp файлын ALTERAOCLSDKROOT/board/c5soc/c5soc каталогынан жойыңыз.
б. Tcl пәрменін 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 ядросын құрастырыңыз.
г. Қажет болса, LogicLock аймағының өлшемін және орнын реттеңіз.
e. Дизайныңызды орналастыру уақыты таза екеніне қанағаттансаңыз, бұл бөлімді acl_iface_partition.qxp Quartus Prime экспортталған бөлімі ретінде экспорттаңыз. File.
Осы .qxp импорттау арқылы OpenCL Custom Platform Toolkit пайдаланушы нұсқаулығына арналған AIntel FPGA SDK бағдарламасының Кепілдендірілген уақыт ағынын орнату бөлімінде сипатталғандай file жоғарғы деңгейлі дизайнға енгенде, сіз кепілдік берілген уақытты жабу ағынымен тақта дизайнын қамтамасыз ету талабын орындайсыз.
Экспортталған бөлімнің нәтижелерінің сапасына (QoR) әсер етуі мүмкін факторларды алу үшін OpenCL Custom Platform Toolkit пайдаланушы нұсқаулығына арналған Intel FPGA SDK ішіндегі Экспортталған тақта бөліміне арналған нәтижелердің жалпы сапасын қарастыру бөлімін қараңыз.
f. 2-қадамдағы пәрменді set_global_assignment -name LL_ENABLED OFF section_id acl_iface_region параметріне қайтару арқылы acl_iface_region LogicLock аймағын өшіріңіз. - Егер SoC FPGA тақтасы HPS блогының әртүрлі түйреуіштері мен шеткі бөліктерін пайдаланса, алдын ала жүктегішті және құрылғы ағашының көзін (DTS) қалпына келтіріңіз. file. HPS DDR жад контроллерінің параметрлерін өзгертсеңіз, алдын ала жүктеушіні қайта жасаңыз.
- SD флэш картасының кескінін жасаңыз.
- SD флэш картасының кескінін қамтитын пайдаланушы платформасын жасаңыз.
- OpenCL үшін Intel FPGA Runtime Environment (RTE) арқылы пайдалану үшін пайдаланушы платформасының орындалу ортасының нұсқасын жасауды қарастырыңыз. Пайдаланушы платформасының RTE нұсқасы аппараттық құрал каталогтары мен SD флэш картасының кескінін қамтымайды. Бұл пайдаланушы платформасы хост қолданбаларының іске қосылуына мүмкіндік беру үшін SoC FPGA жүйесіне жүктеледі. Керісінше, пайдаланушы платформасының SDK нұсқасы SDK үшін OpenCL ядроларын құрастыру үшін қажет.
Кеңес: RTE үшін пайдаланушы платформасының SDK нұсқасын пайдалануға болады. Сақтау
бос орын болса, пайдаланушы платформасының RTE нұсқасынан SD флэш картасының кескінін жойыңыз. - Теңшелетін платформаңызды тексеріңіз.
Қосымша ақпарат алу үшін OpenCL Custom Platform Toolkit пайдаланушы нұсқаулығына арналған Intel FPGA SDK бағдарламасының «Аппараттық жасақтаманы сынау» бөлімін қараңыз.
Қатысты сілтемелер
- Аппараттық дизайнды сынау
- Иерархиялық және командалық дизайнға арналған Quartus Prime қосымша жинағы
- Кепілдендірілген уақыт ағынын орнату
- Экспортталған тақта бөліміне арналған нәтижелердің жалпы сапасы
1.2.1 Порталды анықтамалық платформаны жаңарту
Cyclone V SoC Development Kit анықтамалық платформасының ағымдағы нұсқасында HPS блогы барлық ядролық емес логиканы анықтайтын бөлімнің ішінде болады. Дегенмен, .qxp бөлігі ретінде HPS экспорттау мүмкін емес file. c5soc бағдарламасының алдыңғы нұсқасынан өзгерткен бар пайдаланушы платформасын жаңарту үшін QXP сақтау ағынын іске асырыңыз, соңғы орындалу ортасын алу үшін SD флэш картасының кескінін жаңартыңыз және board_spec.xml файлын жаңартыңыз. file автомиграцияны қосу үшін.
OpenCL 14.1 және одан кейінгі нұсқасына арналған Altera® SDK board_spec.xml file тақта ақпараты үшін және автоматты жаңартуларды жүзеге асырады. Өйткені сіз өзгертесіз
QXP сақтау ағынын енгізу арқылы жобалау үшін board_spec.xml жаңартуыңыз қажет file ағымдағы нұсқадағы пішіміне. Жаңарту file SDK сақталмаған пайдаланушы платформалары мен ағымдағы QXP негізіндегі пайдаланушы платформаларын ажыратуға мүмкіндік береді. Қосымша ақпарат алу үшін OpenCL Custom Platform Toolkit пайдаланушы нұсқаулығына арналған Intel FPGA SDK файлындағы Форвард үйлесімділік үшін пайдаланушы платформасының автомиграциясын қараңыз.
- C5soc бағдарламасының алдыңғы нұсқасынан тасымалданатын Cyclone V SoC FPGA аппараттық жасақтамасында QXP сақтау ағынын жүзеге асыру үшін, HPS-ті .qxp ішінен шығару үшін ішкі бөлімді жасау үшін келесі қадамдарды орындаңыз. file:
а. Ядролық емес логика айналасында бөлім жасамас бұрын, .qsf Quartus Prime параметрлерінде HPS айналасында бөлім жасаңыз. File.
Мысалыampле:
# HPS-арнайы енгізу/шығару жиыны_данасының_тағайындауын модельдейтін дананы қолмен бөлу -атауы PARTITION_HIERARCHY borde_18261 -"жүйе:жүйе|жүйе_acl_iface:acl_iface|system_acl_iface_hps_0:hps_iolps_0:hps_iolps_0:hps_iolps_0" system_acl_iface_hps_0_hps_io_border:border" -section_id "system_acl_iface_hps_XNUMX_hps_io_border:border"
# Бөлімді қалған Quartus дұрыс өңдейтін HPS_PARTITION түрі етіп орнатыңыз
set_global_assignment -атауы PARTITION_TYPE HPS_PARTITION -section_id “system_acl_iface_hps_0_hps_io_border:border”
quartus_cdb top -c top
–incremental_compilation_export=acl_iface_partition.qxp
–incremental_compilation_export_partition_name=acl_iface_partition
–incremental_compilation_export_post_synth=қосу
–incremental_compilation_export_post_fig=on
–қосымша_құрастыру_экспорттау_бағыттау=қосу
–incremental_compilation_export_flatten=off
Бөлімнен HPS шығарып тастағаннан кейін .qxp файлын импорттай аласыз file және дизайныңызды құрастырыңыз. - Келесі тапсырмаларды орындау арқылы SD флэш картасының кескінін OpenCL үшін Intel FPGA RTE ағымдағы нұсқасымен жаңартыңыз:
а. орнатыңыз file бөлу кестесі (fat32) және кеңейтілген file кері цикл құрылғылары ретінде бар кескіндегі жүйелік (ext3) бөлімдері. Егжей-тегжейлі нұсқауларды SD флэш картасының кескінін құрудағы 2-қадамнан қараңыз.
б. /home/root/opencl_arm32_rte каталогында жою fileRTE алдыңғы нұсқасынан.
в. RTE ағымдағы нұсқасын /home/root/opencl_arm32_rte каталогына жүктеп алып, орауыштан шығарыңыз.
г. Ішінде /driver/version.h file Пайдаланушы платформасының ACL_DRIVER_VERSION тағайындауын келесіге жаңартыңыз . (мысалыample, 16.1.x, мұндағы 16.1 - SDK нұсқасы және x - сіз орнатқан драйвер нұсқасы).
e. Драйверді қайта жасаңыз.
f. Пайдаланушы платформасының аппараттық қалта(лар)ын жойыңыз. Пайдаланушы платформасын жаңартылған драйвермен бірге /home/root/opencl_arm_rte/board каталогына көшіріңіз.
g. Altera.icd көшіріңіз file /home/root/opencl_arm32_rte каталогынан және оны /etc/OpenCL/vendors каталогына қосыңыз.
h. Жаңа кескінді ажыратыңыз және тексеріңіз. Егжей-тегжейлі нұсқауларды SD флэш картасының кескінін құрудағы 8-11 қадамдарды қараңыз.
Қатысты сілтемелер
- SD флэш картасының кескінін жасау 14-бетте
Сондай-ақ, сізде жаңа SD флэш картасының кескінін жасау мүмкіндігі бар. - Алдын ала үйлесімділік үшін теңшелетін платформаны автоматтандыру
1.3 Ортақ жадты бағдарламалық қамтамасыз етуді қолдау
FPGA және CPU арасындағы ортақ физикалық жад SoC FPGA құрылғыларында жұмыс істейтін OpenCL ядролары үшін қолайлы жад болып табылады. FPGA ортақ виртуалды жадқа қарағанда ортақ физикалық жадқа қатынасатындықтан, оның пайдаланушының виртуалды мекенжайларын физикалық бет мекенжайларымен салыстыратын процессордың бет кестелеріне қатынасы жоқ.
Аппараттық құралға қатысты, OpenCL ядролары ортақ физикалық жадқа HPS DDR қатты жад контроллеріне тікелей қосылу арқылы қол жеткізеді. Бағдарламалық құралға қатысты ортақ физикалық жадты қолдау келесі ойларды қамтиды:
- Орталық процессордағы жадты бөлуге арналған типтік бағдарламалық жасақтама (мысалы,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() функциясына физикалық сабақтас жадтың үлкен көлемін бөлуге рұқсат беру үшін Linux ядросының іргелес жад бөлушісі (CMA) мүмкіндігін қосыңыз, содан кейін Linux ядросын қайта құрастырыңыз.
Cyclone V SoC Development Kit анықтамалық платформасы үшін CMA 512 ГБ физикалық жадтың 1 МБ-ын басқарады. Қолданба талап ететін ортақ жад көлеміне байланысты бұл мәнді арттыруға немесе азайтуға болады. dma_alloc_coherent() шақыруы толық 512 Мбайт физикалық жақын жадты бөле алмауы мүмкін; дегенмен, ол әдеттегідей шамамен 450 Мбайт жадты ала алады. - CPU dma_alloc_coherent() шақыруы бөлетін жадты кэштей алады. Атап айтқанда, хост қолданбасынан жазу әрекеттері OpenCL ядроларына көрінбейді. OpenCL SoC FPGA Linux ядросының драйверіндегі mmap() функциясы жадтың осы аймағы үшін кэштеуді анық ажырату үшін pgprot_noncached() немесе remap_pf_range() функцияларына шақыруларды қамтиды.
- dma_alloc_coherent() функциясы физикалық іргелес жадты бөлгеннен кейін mmap() функциясы виртуалды мекенжайды ауқымның басына қайтарады, ол сіз бөлетін жадтың мекенжай аралығы болып табылады. Хост қолданбасы жадқа кіру үшін осы виртуалды мекенжайды қажет етеді. Екінші жағынан, OpenCL ядролары физикалық мекенжайларды қажет етеді. Linux ядросының драйвері виртуалды-физикалық мекенжай салыстыруын қадағалайды. Драйверге сұрау қосу арқылы mmap() нақты физикалық мекенжайларға қайтаратын физикалық мекенжайларды салыстыруға болады.
aocl_mmd_shared_mem_alloc() MMD қолданбалы бағдарламалау интерфейсі (API) шақыруы келесі сұрауларды қамтиды:
а. Жадты бөлетін және виртуалды мекенжайды қайтаратын mmap() функциясы.
б. Қайтарылған виртуалды мекенжайды физикалық мекенжайға салыстыратын қосымша сұрау.
aocl_mmd_shared_mem_alloc() MMD API шақыруы екі мекенжайды қайтарады
—нақты қайтарылған мекенжай виртуалды мекенжай болып табылады, ал физикалық мекенжай device_ptr_out мекенжайына өтеді.
Ескерту: Драйвер mmap() функциясы физикалық мекенжайларға қайтаратын виртуалды мекенжайларды ғана салыстыра алады. Кез келген басқа виртуалды көрсеткіштің физикалық мекенжайын сұрасаңыз, драйвер NULL мәнін қайтарады.
Ескерту: OpenCL жұмыс уақыты кітапханаларына арналған Intel FPGA SDK ортақ жад board_spec.xml тізімінде тізімделген бірінші жад деп есептейді. file. Басқаша айтқанда, Linux ядросының драйвері алатын физикалық мекенжай OpenCL ядросы HPS SDRAM-ге беретін Avalon® мекенжайы болады.
Орындалу уақыты кітапханасына қатысты ортақ жадты құрылғы буфері ретінде келесі жолмен бөлу үшін clCreateBuffer() шақыруын пайдаланыңыз:
- Ортақ және ортақ емес жады бар екі DDR тақтасының нұсқасы үшін CL_MEM_USE_HOST_PTR жалауын көрсетсеңіз, clCreateBuffer() ортақ жадты бөледі. Басқа жалаушаларды пайдалану clCreateBuffer() буферін ортақ емес жадта бөлуге әкеледі.
- Тек ортақ жады бар бір DDR тақтасының нұсқасы үшін clCreateBuffer() сіз көрсеткен жалаушаға қарамастан ортақ жадты бөледі.
Қазіргі уақытта ARM процессорындағы 32 биттік Linux қолдауы SDK жұмыс уақыты кітапханаларында ортақ жад қолдауының көлемін басқарады. Басқаша айтқанда, басқа орталарға құрастырылған жұмыс уақыты кітапханалары (мысample, x86_64 Linux немесе 64-биттік Windows) ортақ жадты қолдамайды.
C5soc келесі себептерге байланысты ортақ және ортақ емес жадты ажырату үшін гетерогенді жадты қолданбады:
1. History (Тарих) — ортақ жад қолдауы бастапқыда жасалған кезде біртекті емес жад қолдауы қолжетімді болмады.
2. Бірыңғай интерфейс — OpenCL ашық стандарт болғандықтан, Intel гетерогенді есептеу платформасының жеткізушілері арасындағы сәйкестікті сақтайды. Сондықтан ортақ жадты бөлу және пайдалану үшін басқа плата жеткізушілерінің архитектуралары сияқты бірдей интерфейс қолданылады.
1.4 FPGA қайта конфигурациялау
SoC FPGA үшін процессор процессордың жұмысын тоқтатпай FPGA негізгі құрылымын қайта конфигурациялай алады. HPS және негізгі FPGA біріктіретін FPGA Manager аппараттық блогы қайта конфигурациялауды орындайды. Linux ядросында FPGA менеджеріне оңай қол жеткізуге мүмкіндік беретін драйвер бар.
- Кімге view FPGA ядросының күйін анықтау үшін cat /sys/class/fpga/fpga0/ күй пәрменін шақырыңыз.
Cyclone V SoC Development Kit анықтамалық платформасында қолжетімді OpenCL бағдарламасына арналған Intel FPGA SDK бағдарламасы FPGA бағдарламасын бағдарламалау үшін осы интерфейсті пайдаланады. Жұмыс істеп тұрған процессоры бар FPGA өзегін қайта бағдарламалағанда, бағдарлама утилитасы келесі тапсырмалардың барлығын орындайды:
1. Қайта бағдарламалау алдында FPGA және HPS арасындағы барлық байланыс көпірлерін, H2F және LH2F көпірлерін өшіріңіз.
Қайта бағдарламалау аяқталғаннан кейін бұл көпірлерді қайта қосыңыз.
Назар аударыңыз: OpenCL жүйесі FPGA-HPS (F2H) көпірін пайдаланбайды. Қосымша ақпарат алу үшін Cyclone V құрылғы анықтамалығының 3-том: қатты процессор жүйесінің техникалық анықтамалық нұсқаулығындағы HPS-FPGA интерфейстері бөлімін қараңыз.
2. Қайта бағдарламалау кезінде FPGA және HPS DDR контроллері арасындағы байланыс өшірілгеніне көз жеткізіңіз.
3. Қайта бағдарламалау кезінде FPGA-дағы FPGA үзулерінің өшірілгеніне көз жеткізіңіз.
Сондай-ақ, драйверді қайта бағдарламалау кезінде FPGA үзулерінен бас тарту туралы хабарлаңыз.
Нақты іске асыру туралы мәліметтер алу үшін бағдарлама утилитасының бастапқы кодын қараңыз.
Ескерту: CPU жұмыс істеп тұрған кезде HPS DDR контроллерінің конфигурациясын өзгертпеңіз.
Олай жасау қауіпті жүйе қатесін тудыруы мүмкін, себебі процессордан күтпеген жад транзакциялары болған кезде DDR контроллерінің конфигурациясын өзгертуге болады. Бұл процессор жұмыс істеп тұрғанда, басқа конфигурацияда HPS DDR пайдаланатын кескінмен FPGA өзегін қайта бағдарламаламауыңыз мүмкін екенін білдіреді.
OpenCL жүйесі және Intel SoC FPGA ендірілген дизайн жиынтығымен (EDS) қолжетімді Golden Hardware анықтамалық дизайны HPS DDR бір 256 биттік режимге орнататынын есте сақтаңыз.
Тармақ болжаушысы немесе бет кестесін алдын ала алу құралы сияқты процессор жүйесінің бөліктері, тіпті процессорда ештеңе істемей тұрғандай көрінсе де, DDR пәрмендерін шығаруы мүмкін.
Сондықтан, жүктеу уақыты HPS DDR контроллерінің конфигурациясын орнатудың жалғыз қауіпсіз уақыты болып табылады.
Бұл сонымен қатар U-жүктеуінде шикі екілік болуы керек дегенді білдіреді file (.rbf) жадқа жүктелетін кескін. Әйтпесе, сіз HPS DDR мүмкіндігін FPGA жүйесіндегі пайдаланылмаған порттармен қосып, содан кейін порт конфигурацияларын өзгертуіңіз мүмкін. Осы себепті, OpenCL Linux ядросының драйвері бұдан былай HPS DDR контроллерінің конфигурациясын орнату үшін қажетті логиканы қамтымайды.
SW3 қос желілік бумасы (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 қосқыштарын конфигурациялау
1.4.1 FPGA жүйесінің архитектуралық мәліметтері
Cyclone V SoC Development Kit анықтамалық платформасына қолдау OpenCL үшін Intel FPGA SDK қол жетімді Stratix® V анықтамалық платформасына (s5_ref) негізделген.
c5soc Qsys жүйесінің жалпы ұйымдастырылуы және ядро драйвері s5_ref ішіндегілерге өте ұқсас.
Келесі FPGA негізгі құрамдастары c5soc және s5_ref екеуінде бірдей:
- VERSION_ID блогы
- Демалыс механизмі
- Жад банкінің бөлгіші
- Кэшті іздеу интерфейсі
- Ядро сағаты
- Басқару тіркеліміне қол жеткізу (CRA) блоктары
1.5 SD флэш картасының кескінін құру
Cyclone V SoC FPGA чиптегі толық жүйе болғандықтан, сіз жүйенің толық анықтамасын жеткізуге жауаптысыз. Intel оны SD флэш картасының кескіні түрінде жеткізуді ұсынады. OpenCL пайдаланушысына арналған Intel FPGA SDK кескінді микро SD флэш картасына жаза алады және SoC FPGA тақтасы пайдалануға дайын.
Бар SD флэш картасының кескінін өзгерту 13-бетте
Intel Cyclone V SoC Development Kit Reference Platform арқылы қол жетімді кескінді жай ғана өзгертуді ұсынады. Сондай-ақ, сізде жаңа SD флэш картасының кескінін жасау мүмкіндігі бар.
SD флэш картасының кескінін жасау 14-бетте
Сондай-ақ, сізде жаңа SD флэш картасының кескінін жасау мүмкіндігі бар.
1.5.1 Бар SD флэш картасының кескінін өзгерту
Intel Cyclone V SoC көмегімен қол жетімді кескінді жай ғана өзгертуді ұсынады
Әзірлеу жинағының анықтамалық платформасы. Сондай-ақ, сізде жаңа SD флэш картасының кескінін жасау мүмкіндігі бар.
c5soc linux_sd_card_image.tgz кескіні file ALTERAOCLSDKROOT/board/c5soc каталогында қол жетімді, мұнда ALTERAOCLSDKROOT OpenCL орнату каталогына арналған Intel FPGA SDK жолын көрсетеді.
Назар аударыңыз: SD флэш картасының кескінін өзгерту үшін сізде root немесе sudo артықшылықтары болуы керек.
- $ALTERAOCLSDKROOT/board/c5soc/linux_sd_card_image.tgz файлын ашу үшін file, tar xvfzlinux_sd_card_image.tgz пәрменін іске қосыңыз.
- hello_world OpenCL мысалын құрастырыңызampПайдаланушы платформасының қолдауын пайдаланып дизайн жасаңыз. .rbf атауын өзгертіңіз file OpenCL офлайн компиляторына арналған Intel FPGA SDK opencl.rbf ретінде жасайды және оны SD флэш картасы кескініндегі fat32 бөліміне орналастырыңыз.
Hello_world бұрынғы нұсқасын жүктеп алуға боладыampOpenCL Design ExampAltera-дағы les беті 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 тақтасына салыңыз.
б. Тақтаны қуаттандырыңыз.
в. aocl диагностика утилитасының пәрменін шақырыңыз.
1.5.2 SD флэш картасының кескінін жасау
Сондай-ақ, сізде жаңа SD флэш картасының кескінін жасау мүмкіндігі бар. Жаңа SD флэш картасының кескінін құру және бар SD флэш картасының кескінін қайта құру бойынша жалпы нұсқаулар RocketBoards.org сайтының GSRD v14.0.2 – SD картасы бетінде қолжетімді. webсайт.
Төмендегі қадамдар Golden System Reference Design (GSRD) SD флэш картасы кескінінен linux_sd_card_image.tgz кескінін жасау процедурасын сипаттайды:
Ескерту:
c5soc кескінінен кескін жасау үшін осы процедурада көрсетілген барлық қолданылатын тапсырмаларды орындаңыз.
- Rocketboards.org сайтынан GSRD SD флэш картасы кескінінің 14.0 нұсқасын жүктеп алыңыз және орауыштан шығарыңыз.
- орнатыңыз file бөлу кестесі (fat32) және кеңейтілген file бұл кескіндегі жүйелік (ext3) бөлімдері кері цикл құрылғылары ретінде. Бөлімді орнату үшін келесі қадамдарды орындаңыз:
а. /sbin/fdisk -lu image_ шақыру арқылы кескіндегі бөлімнің байт басталуын анықтаңыз.file пәрмен.
Мысалыample, W1 FAT түрінің 95-бөлімінің блок ығысуы 2121728. Әр блокқа 512 байт болса, байт ығысуы 512 байт x 2121728 = 1086324736 байт.
б. Еркін цикл құрылғысын анықтаңыз (мысалыample, /dev/loop0) losstup -f пәрменін теру арқылы.
в. /dev/loop0 тегін цикл құрылғысы деп есептей отырып, /dev/loop0 image_ жоғалтуды шақыру арқылы флэш-карта кескінін цикл блоктау құрылғысына тағайындаңыз.file -0 1086324736 пәрмені.
d. mount /dev/loop0 /media/disk1 пәрменін шақыру арқылы цикл құрылғысын бекітіңіз.
Сурет ішінде file, /media/disk1 енді бекітілген fat32 бөлімі.
e. Ext3 бөлімі үшін a және d қадамдарын қайталаңыз. - Altera сайтындағы Жүктеу орталығынан OpenCL бумасына арналған Intel FPGA Runtime Environment Cyclone V SoC FPGA нұсқасын жүктеп алыңыз. webсайт.
а. Quartus Prime бағдарламалық құралының шығарылымының жанындағы Жүктеп алу түймесін басыңыз.
б. Шығарылым нұсқасын, амалдық жүйені және жүктеу әдісін көрсетіңіз.
в. Қосымша бағдарламалық құрал қойындысын басып, Intel FPGA жүктеп алу үшін таңдаңыз
OpenCL Linux Cyclone V SoC TGZ үшін жұмыс ортасы.
г. aocl-rte жүктеп алғаннан кейін .arm32.tgz file, оны орау үшін ашыңыз
сізге тиесілі каталог. - Орамнан шығарылған aocl-rte-ді салыңыз. .arm32 каталогын кескіннің ext32 бөліміндегі /home/root/opencl_arm3_rte каталогына енгізіңіз 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 пайдаланушысы ортаның айнымалы мәндерін және OpenCL Linux ядросының драйверін жүктеу үшін ./init_opencl.sh көзі пәрменін іске қосады. - Алдын ала жүктеушіні жаңарту қажет болса, DTS files немесе Linux ядросы үшін SoC EDS жүйесінен arm-linux-gnueabihf-gcc компиляторы қажет. Бағдарламалық құралды сатып алу, оларды қайта құрастыру және сәйкесті жаңарту үшін Intel SoC FPGA ендірілген дизайн жиынтығының пайдаланушы нұсқаулығында сипатталған нұсқауларды орындаңыз. files орнатылған fat32 бөлімінде.
Назар аударыңыз: Өзгертпелі платформаңызда c5soc жүйесіндегіден басқа PIN пайдаланулары болса, алдын ала жүктеушіні жаңарту қажет болуы мүмкін.
Есіңізде болсын: Linux ядросын қайта құрастырсаңыз, Linux ядросының драйверін сол Linux ядросының көзімен қайта құрастырыңыз. fileс. Linux ядросының драйвері мен Linux ядросының арасында сәйкессіздік болса, драйвер жүктелмейді. Сондай-ақ, CMA қосу керек.
Қосымша ақпарат алу үшін Linux ядросын қайта құрастыру бөлімін қараңыз. - hello_world OpenCL мысалын құрастырыңызampПайдаланушы платформасының қолдауын пайдаланып дизайн жасаңыз. .rbf атауын өзгертіңіз file OpenCL офлайн компиляторына арналған Intel FPGA SDK opencl.rbf ретінде жасайды және оны SD флэш картасы кескініндегі fat32 бөліміне орналастырыңыз.
Hello_world бұрынғы нұсқасын жүктеп алуға боладыampOpenCL Design ExampAltera-дағы les беті webсайт.
9. Барлық қажетті заттарды сақтағаннан кейін files флэш-карта кескінінде келесі пәрмендерді шақырыңыз:
а. синхрондау
б. ажырату /медиа/диск1
в. ажырату қайда ext3 бөлімін 3-бетте 3-бетте орнату үшін пайдаланатын каталог атауы (мысалы,ample, /media/disk2).
г. losttup -d /dev/loop0
e. losttup -d /dev/loop1 - SD флэш картасының кескінін келесі пәрменді шақыру арқылы сығыңыз: tar cvfz .tgz linux_sd_card_image
- жеткізіңіз .tgz file Пайдаланушы платформасының түбірлік каталогында.
- SD флэш картасының кескінін тексеру үшін келесі тапсырмаларды орындаңыз:
а. Алынған қысылмаған кескінді micro SD флэш картасына жазыңыз.
б. Micro SD флэш картасын SoC FPGA тақтасына салыңыз.
в. Тақтаны қуаттандырыңыз.
г. aocl диагностика утилитасының пәрменін шақырыңыз.
Қатысты сілтемелер
- Intel SoC FPGA ендірілген дизайн жиынтығының пайдаланушы нұсқаулығы
- OpenCL Design ExampAltera-дағы les беті webсайт
- Linux ядросын қайта құрастыру 16-бетте
CMA қосу үшін алдымен Linux ядросын қайта құрастыру керек. - FPGA тақтасының құрылғы атауын сұрау (диагностика)
1.6 Cyclone V SoC FPGA үшін Linux ядросын құрастыру
Cyclone V SoC FPGA тақтасында OpenCL қолданбаларын іске қоспас бұрын, Linux ядросының көзін құрастыру және OpenCL Linux ядросының драйверін құрастыру және орнату қажет.
- Linux ядросын қайта құрастыру 16-бетте
CMA қосу үшін алдымен Linux ядросын қайта құрастыру керек. - OpenCL Linux ядросының драйверін құрастыру және орнату 17-бетте OpenCL Linux ядросының драйверін құрастырылған ядро көзіне қарсы құрастырыңыз.
1.6.1 Linux ядросын қайта құрастыру
CMA қосу үшін алдымен Linux ядросын қайта құрастыру керек.
- RocketBoards.org сайтының Ресурстар бетіндегі GSRD v14.0 – Linux құрастыру сілтемесін басыңыз. webLinux ядросының бастапқы кодын жүктеп алу және қайта құру нұсқауларына қол жеткізу үшін сайт.
OpenCL үшін™ Intel FPGA SDK көмегімен пайдалану үшін socfpga-3.13-rel14.0 параметрін келесідей көрсетіңіз. . - Ескерту: Құрылыс процесі arch/arm/configs/socfpga_defconfig жасайды file. Бұл file socfpga әдепкі конфигурациясының параметрлерін көрсетеді.
Arm/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=8
CONFIG_CMA_AREAS=7
CONFIG_CMA_SIZE_MBYTES конфигурация мәні қол жетімді физикалық жақын жадтың жалпы санының жоғарғы шегін орнатады. Көбірек жад қажет болса, бұл мәнді арттыруға болады. - Назар аударыңыз: SoC FPGA тақтасындағы ARM процессоры үшін қол жетімді физикалық жадтың жалпы көлемі 1 ГБ құрайды. Intel CMA менеджерін 1 Гбайтқа жақын орнатуды ұсынбайды.
- Ағымдағы конфигурацияны тазалау үшін make mrproper пәрменін іске қосыңыз.
- make ARCH=arm socfpga_deconfig пәрменін іске қосыңыз.
ARCH=arm ARM архитектурасын конфигурациялағыңыз келетінін көрсетеді.
socfpga_defconfig әдепкі socfpga конфигурациясын пайдаланғыңыз келетінін көрсетеді. - CROSS_COMPILE=arm-linux-gnueabihf- экспорттау пәрменін іске қосыңыз.
Бұл пәрмен қажетті құралдар тізбегінің префиксін көрсету үшін CROSS_COMPILE ортасының айнымалы мәнін орнатады. - make ARCH=arm zImage пәрменін орындаңыз. Алынған кескін arch/arm/boot/zImage ішінде қол жетімді file.
- zImage орнатыңыз file флэш-карта кескінінің fat32 бөліміне. Толық нұсқауларды Rocketboards.org сайтындағы Cyclone V SoC FPGA арнайы GSRD пайдаланушы нұсқаулығынан қараңыз.
- Ескертпе: OpenCL Linux ядросының драйверін дұрыс енгізу үшін алдымен SDKgenerated.rbf жүктеңіз. file FPGA-ға.
.rbf жасау үшін file, SDK дизайнын құрастырыңыз, мысалыampмақсатты пайдаланушы платформасы ретінде Cyclone V SoC Development Kit анықтамалық платформасымен.
9. .rbf қойыңыз file флэш-карта кескінінің fat32 бөліміне.
Назар аударыңыз: fat32 бөлімінде zImage екеуі де болуы керек file және .rbf file. .rbf жоқ file, драйверді енгізген кезде қауіпті қате орын алады. - Сіз өзгерткен немесе бұрын жасалған SD картасының кескінін қамтитын бағдарламаланған микро SD картасын Cyclone V SoC Development Kitіне салыңыз, содан кейін SoC FPGA тақтасын қосыңыз.
- Uname -r пәрменін іске қосу арқылы орнатылған Linux ядросының нұсқасын тексеріңіз.
- SoC FPGA тақтасы қосылған кезде ядрода CMA сәтті қосылғанын тексеру үшін grep init_cma /proc/kallsyms пәрменін іске қосыңыз.
Егер шығыс бос емес болса, CMA қосылады. - Қайта құрастырылған Linux ядросын SDK көмегімен пайдалану үшін Linux ядросының драйверін құрастырыңыз және орнатыңыз.
Қатысты сілтемелер
- Golden System Reference Design (GSRD) пайдаланушы нұсқаулығы
- SD флэш картасының кескінін жасау 13-бетте
Cyclone V SoC FPGA чиптегі толық жүйе болғандықтан, сіз жүйенің толық анықтамасын жеткізуге жауаптысыз.
1.6.2 OpenCL Linux ядросының драйверін құрастыру және орнату
OpenCL Linux ядросының драйверін құрастырылған ядро көзіне қарсы құрастырыңыз.
Драйвер көзі OpenCL үшін Intel FPGA Runtime Environment жүйесінің Cyclone V SoC FPGA нұсқасында қол жетімді. Оған қоса, OpenCL жасаған .rbf үшін Intel FPGA SDK жүктеп алғаныңызды тексеріңіз. file Linux ядро модулінің қате орнатылуын болдырмау үшін FPGA.
- Altera сайтындағы Жүктеу орталығынан OpenCL бумасына арналған Intel FPGA Runtime Environment Cyclone V SoC FPGA нұсқасын жүктеп алыңыз. webсайт.
а. Quartus Prime бағдарламалық құралының шығарылымының жанындағы Жүктеп алу түймесін басыңыз.
б. Шығарылым нұсқасын, амалдық жүйені және жүктеу әдісін көрсетіңіз.
в. Қосымша бағдарламалық құрал қойындысын басып, Intel FPGA жүктеп алу үшін таңдаңыз
OpenCL Linux Cyclone V SoC TGZ үшін жұмыс ортасы.
г. aocl-rte жүктеп алғаннан кейін .arm32.tgz file, оны орау үшін ашыңыз
сізге тиесілі каталог.
Драйвер көзі aocl-rte-де .arm32/board/c5soc/ драйвер каталогы. - OpenCL Linux ядросының драйверін қайта құрастыру үшін драйвердің жасауында KDIR мәнін орнатыңыз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@your-ipaddress: пәрмен орындалу ортасын/home/root каталогына орналастырады. - SD картасын құрастырған кезде жасалған init_opencl.sh сценарийін іске қосыңыз.
- aocl диагностика утилитасының пәрменін шақырыңыз. Диагностика утилитасы init_opencl.sh файлын сәтті іске қосқаннан кейін өтпелі нәтижені қайтарады.
1.7 Белгілі мәселелер
Қазіргі уақытта Cyclone V SoC Development Kit анықтамалық платформасымен OpenCL үшін Intel FPGA SDK пайдалануында белгілі шектеулер бар.
- clGetDeviceInfo() шақыруының CL_DEVICE_VENDOR және CL_DEVICE_NAME жолдары арқылы хабарланған жеткізуші мен тақта атауларын қайта анықтау мүмкін емес.
- Егер хост тұрақты жадты ортақ DDR жүйесінде (яғни, HPS DDR) бөлсе және ол ядроны орындағаннан кейін тұрақты жадты өзгертсе, жадтағы деректер ескіруі мүмкін. Бұл мәселе FPGA өзегі CPU-HPS DDR транзакцияларын бақылауға алмайтындықтан туындайды.
Кейінгі ядролық орындалулардың ескірген деректерге қол жеткізуін болдырмау үшін келесі уақытша шешімдердің бірін орындаңыз:
• Баптандырудан кейін тұрақты жадты өзгертпеңіз.
• Бірнеше __тұрақты деректер жиынын қажет етсеңіз, бірнеше тұрақты жад буферін жасаңыз.
• Бар болса, үдеткіш тақтадағы FPGA DDR ішінде тұрақты жадты бөліңіз. - ARM жүйесіндегі SDK қызметтік бағдарламасы тек бағдарламаны және қызметтік бағдарлама пәрмендерін диагностикалауды қолдайды.
Жарқыл, орнату және жою утилиталары келесі себептерге байланысты Cyclone V SoC Development Kit үшін қолданылмайды:
а. Орнату утилитасы aclsoc_drv Linux ядросының драйверін құрастырып, оны SoC FPGA жүйесінде қосуы керек. Әзірлеу машинасы компиляцияны орындауы керек; дегенмен, оның құрамында SoC FPGA үшін Linux ядросының көздері бар. Әзірлеу машинасына арналған Linux ядросының көздері SoC FPGA үшін басқаша. SoC FPGA үшін Linux ядросы көздерінің орны SDK пайдаланушысына белгісіз болуы мүмкін. Сол сияқты, жою утилитасы Cyclone V SoC Development Kit үшін де қолжетімсіз.
Сондай-ақ, aclsoc_drv файлын SoC тақтасына жеткізу қиын, себебі Cyclone V SoC Development Kit әдепкі таратылымында Linux ядросы жоқ. files немесе GNU Compiler Collection (GCC) компиляторы.
б. Жарқыл утилитасы .rbf орнатуды қажет етеді file Micro SD флэш картасының FAT32 бөліміне OpenCL дизайны. Қазіргі уақытта бұл бөлім SDK пайдаланушысы тақтаны қосқанда орнатылмайды. Сондықтан, бөлімді жаңартудың ең жақсы жолы - флэш-картаны оқу құралы мен әзірлеу машинасын пайдалану. - OpenCL Offline Compiler орындалатын файлына арналған Intel FPGA SDK арасында ауысу кезінде files (.aocx) әртүрлі тақта нұсқаларына сәйкес келеді (яғни, c5soc және c5soc_sharedonly), .aocx жүктеу үшін SDK бағдарламасының утилитасын пайдалану керек. file бірінші рет жаңа тақта нұсқасы үшін. Егер сіз жай ғана жаңа тақта нұсқасын пайдаланып хост қолданбасын іске қоссаңыз, бірақ FPGA басқа тақта нұсқасындағы кескінді қамтыса, қауіпті қате орын алуы мүмкін.
- .qxp file интерфейс бөлімі тағайындауларын қамтымайды, себебі Quartus Prime бағдарламалық құралы осы бөлімнің уақыт талаптарына сәйкес келеді.
- Тақтаны қосқан кезде оның медиаға қол жеткізуді басқару (MAC) мекенжайы кездейсоқ санға орнатылады. LAN саясаты бұл әрекетке рұқсат бермесе, келесі тапсырмаларды орындау арқылы MAC мекенжайын орнатыңыз:
а. U-Boot қосулы кезде, U-Boot пәрмен жолына кіру үшін кез келген пернені басыңыз.
б. Пәрмен жолында setenv ethaddr 00:07:ed:00:00:03 теріңіз.
Сіз кез келген MAC мекенжайын таңдай аласыз.
в. saveenv пәрменін теріңіз.
г. Тақтаны қайта жүктеңіз.
1.8 Құжатты қайта қарау тарихы
1-кесте.
OpenCL Cyclone V SoC үшін Intel FPGA SDK құжатын қайта қарау тарихы
Әзірлеу жинағының анықтамалық платформасын тасымалдау нұсқаулығы
Күн | Нұсқа | Өзгерістер |
17 мамыр | 2017.05.08 | •Қызмет көрсету шығарылымы. |
2016 жылдың қазан айы | 2016.10.31 | •OpenCL үшін Altera SDK ребрендтелген және OpenCL үшін Intel FPGA SDK. •OpenCL офлайн компиляторы үшін Intel FPGA SDK-ге ребрендтелген Altera офлайн компиляторы. |
16 мамыр | 2016.05.02 | •SD флэш картасының кескінін құру және өзгерту бойынша өзгертілген нұсқаулар. •Linux ядросы мен OpenCL Linux ядросының драйверін қайта құрастыру бойынша өзгертілген нұсқаулар. |
15 қараша | 2015.11.02 | •Қызмет көрсету шығарылымы және Quartus II даналары Quartus Prime-ға өзгертілді. |
15 мамыр | 15.0.0 | •FPGA қайта конфигурациясында FPGA өзегін қайта бағдарламалау нұсқаулығы жойылды -мен. мысықты шақыру арқылы rbf кескіні fileаты>. rbf > /dev/ fpga0 пәрмені себебі бұл әдіс ұсынылмайды. |
14 желтоқсан | 14.1.0 | •Құжаттың атауы Altera Cyclone V SoC Development Kit Reference Platform Porting Guide деп өзгертілді. • Қайта бағдарламалау утилитасы aocl бағдарламасына жаңартылдыfilename>.aocx утилита командасы. •Аокл диагностикасы мен аокл диагностикасына диагностикалық қызметтік бағдарлама жаңартылды утилита командасы. •Анықтамалық платформаны SoC тақтасына тасымалдау бөліміндегі процедура жаңартылған, кепілдік берілген уақытты жабу ағыны үшін уақытты тазалау бөлімін жасау үшін c5soc тақта бөлімін тасымалдау және өзгерту туралы нұсқауларды қамтиды. •Келесі тапсырмалардың процедураларын сипаттау үшін Порталды анықтамалық платформаны жаңарту тақырыбы енгізілді: 1.Тақта бөліміндегі қатты процессор жүйесінің (HPS) блогын қоспағанда 2.SD флэш картасының кескінін жаңарту •SD флэш картасының кескінін құру бөлімі жаңартылды. SoC Embedded Design Suite (EDS) бар кескіннің орнына бастапқы нүкте ретінде Golden System Reference Design (GSRD) кескінінің 14.0 нұсқасын пайдалану ұсынылады. •Linux ядросын қайта құрастыру және OpenCL Linux ядросының драйвері бөлімі жаңартылды: 1. CROSS COMPILE айнымалысын орнатуға арналған нұсқаулық қосылды. 2. CMA сәтті қосылғанын тексеру үшін орындалатын пәрмен өзгертілді. |
14 шілде | 14.0.0 | •Бастапқы шығарылым. |
Құжаттар / Ресурстар
![]() |
OpenCL үшін intel FPGA SDK [pdf] Пайдаланушы нұсқаулығы OpenCL үшін FPGA SDK, FPGA SDK, OpenCL үшін SDK, SDK |