OpenCL üçün FPGA SDK
İstifadəçi təlimatı
UG-OCL009
2017.05.08
Intel® Quartus® Prime Design Suite üçün son yeniləmə: 17.0
Abunə ol
Əlaqə göndərin
OpenCL™ Intel® Cyclone®V SoC İnkişaf Dəsti üçün Intel® FPGA SDK Referans Platforma Portinq Bələdçisi
V SoC Development Kit Reference Platform Porting Guide OpenCL ™ üçün Intel ® FPGA SDK OpenCL ™ Intel Cyclone üçün Intel Software Development Kit (SDK) ilə istifadə üçün Intel Cyclone V SoC Development Kit Referans Platformasının (c5soc) aparat və proqram təminatı dizaynını təsvir edir. ® . Başlamazdan əvvəl Intel sizə aşağıdakı sənədlərin məzmunu ilə tanış olmağı tövsiyə edir:
- OpenCLIntel Cyclone V SoC üçün Intel FPGA SDK Başlanğıc Bələdçisi
- OpenCL Xüsusi Platforma Alətlər Dəsti İstifadəçi Təlimatı üçün Intel FPGA SDK
- Cyclone V Cihaz Təlimat Kitabı, Cild 3: Sərt Prosessor Sisteminin Texniki İstinad Təlimatına əlavə olaraq, Altera-nın Cyclone V SoC Development Kit və SoC Embedded Design Suite səhifəsinə baxın. webəlavə məlumat üçün sayt. 1 2
Diqqət: Intel güman edir ki, siz OpenCL Xüsusi Platforma Alətlər Dəsti İstifadəçi Təlimatı üçün Intel FPGA SDK-nı dərindən başa düşmüsünüz. Cyclone V SoC Development Kit Referans Platforma Portinq Bələdçisi, Cyclone V SoC İnkişaf Dəsti üçün Fərdi Platformanın həyata keçirilməsi üçün SDK-nın Xüsusi Platforma Alətlər dəstinin istifadəsini təsvir etmir. O, yalnız Cyclone V SoC Development Kit-də SDK dəstəyi ilə OpenCL Xüsusi Platforması üçün ümumi Intel FPGA SDK arasındakı fərqləri təsvir edir.
Əlaqədar Linklər
- OpenCL Cyclone V SoC üçün Intel FPGA SDK Başlanğıc Bələdçisi
- OpenCL Xüsusi Platforma Alətlər Dəsti İstifadəçi Təlimatı üçün Intel FPGA SDK
- Cyclone V Cihaz Təlimatları, Cild 3: Sərt Prosessor Sisteminin Texniki İstinad Təlimatları
- Altera-da Cyclone V SoC Development Kit və SoC Embedded Design Suite səhifəsi websayt
- OpenCL və OpenCL loqosu Khronos Group™-un icazəsi ilə istifadə edilən Apple Inc ticarət nişanlarıdır.
- OpenCL üçün Intel FPGA SDK nəşr edilmiş Khronos Spesifikasiyasına əsaslanır və Khronos Uyğunluq Sınaq Prosesindən keçib. Cari uyğunluq vəziyyəti ilə burada tanış olmaq olar www.khronos.org/conformance.
Intel Korporasiyası. Bütün hüquqlar qorunur. Intel, Intel loqosu, Altera, Arria, Cyclone, Enpirion, MAX, Nios, Quartus və Stratix sözləri və loqoları Intel Corporation və ya onun ABŞ və/və ya digər ölkələrdəki törəmə şirkətlərinin ticarət nişanlarıdır. Intel FPGA və yarımkeçirici məhsullarının Intel-in standart zəmanətinə uyğun olaraq cari spesifikasiyalara uyğun işləməsinə zəmanət verir, lakin istənilən vaxt xəbərdarlıq etmədən istənilən məhsul və xidmətlərə dəyişiklik etmək hüququnu özündə saxlayır. Intel tərəfindən yazılı şəkildə açıq şəkildə razılaşdırılan hallar istisna olmaqla, burada təsvir edilən hər hansı məlumat, məhsul və ya xidmətin tətbiqi və ya istifadəsi nəticəsində Intel heç bir məsuliyyət və ya öhdəlik götürmür. Intel müştərilərinə hər hansı dərc edilmiş məlumata etibar etməzdən və məhsul və ya xidmətlər üçün sifariş verməzdən əvvəl cihazın texniki xüsusiyyətlərinin ən son versiyasını əldə etmələri tövsiyə olunur.
*Başqa adlar və brendlər başqalarının mülkiyyəti kimi iddia oluna bilər.
1.1.1 Cyclone V SoC Development Kit Referans Platforma Şurasının Variantları
OpenCL Cyclone V SoC Development Kit Referans Platforması üçün Intel FPGA SDK iki lövhə variantını ehtiva edir.
- c5soc lövhəsi
Bu standart lövhə iki DDR yaddaş bankına girişi təmin edir. HPS DDR həm FPGA, həm də CPU tərəfindən əldə edilə bilər. FPGA DDR-ə yalnız FPGA vasitəsilə daxil olmaq mümkündür. - c5soc_sharedonly lövhəsi
Bu lövhə variantı yalnız HPS DDR bağlantısını ehtiva edir. FPGA DDR əlçatan deyil. Bu lövhə variantı daha səmərəlidir, çünki bir DDR yaddaş bankını dəstəkləmək üçün daha az avadanlıq lazımdır. c5soc_sharedonly lövhəsi eyni zamanda tək DDR yaddaş bankı olan son istehsal lövhəsi üçün yaxşı prototip platformasıdır.
OpenCL nüvənizi tərtib edərkən bu lövhə variantını hədəfləmək üçün aoc komandanıza -board c5soc_sharedonly seçimini daxil edin.
Ətraflı məlumat üçün lövhədə aoc əmrinin seçimi üçün OpenCL Proqramlaşdırma Bələdçisi üçün Intel FPGA SDK-ya baxın.
Əlaqədar Linklər
Xüsusi FPGA lövhəsi üçün nüvənin tərtib edilməsi (–board )
1.1.2 Cyclone V SoC Development Kit Referans Platformasının məzmunu
Cyclone V SoC Development Kit Referans Platforması aşağıdakılardan ibarətdir files və kataloqlar:
File və ya Directory | Təsvir |
board_env.xml | Genişləndirilə bilən İşarələmə Dili (XML) file OpenCL üçün Intel FPGA SDK-ya c5soc-u təsvir edir. |
linux_sd_card_image.tgz | Sıxılmış SD flash kart şəkli file SDK istifadəçisinin Cyclone V SoC Development Kit-dən SDK ilə istifadə etməsi üçün lazım olan hər şeyi ehtiva edir. |
qol32 | Aşağıdakıları ehtiva edən kataloq: |
1.1.3 Cyclone V SoC İnkişaf Kitinin müvafiq xüsusiyyətləri
Aşağıdakı siyahı OpenCL üçün Intel FPGA SDK ilə əlaqəli olan Cyclone V SoC Development Kit komponentlərini və xüsusiyyətlərini vurğulayır:
- 9-bit Linux ilə işləyən iki nüvəli ARM Cortex-A32 CPU.
- HPS və FPGA nüvəsi arasında təkmil genişləndirilə bilən İnterfeys (AXI) avtobusu.
- Hər biri 1 giqabayt (GB) DDR3 SDRAM-a qoşulan iki bərkidilmiş DDR yaddaş nəzarətçisi.
— Bir DDR nəzarətçisi yalnız FPGA nüvəsi üçün əlçatandır (yəni, FPGA DDR).
— Digər DDR nəzarətçi həm HPS, həm də FPGA (yəni, HPS DDR) üçün əlçatandır. Bu paylaşılan nəzarətçi CPU və FPGA nüvəsi arasında pulsuz yaddaş mübadiləsinə imkan verir. - CPU FPGA nüvəsini yenidən konfiqurasiya edə bilər.
1.1.3.1 Cyclone V SoC Development Kit Referans Platformasının Dizayn Məqsədləri və Qərarları Intel Cyclone V SoC Development Kit Referans Platformasının həyata keçirilməsini bir neçə dizayn məqsədləri və qərarlarına əsaslanır. Intel bu Referans Platformasını SoC FPGA boardunuza köçürərkən bu məqsədləri və qərarları nəzərə almanızı tövsiyə edir.
Aşağıda c5soc dizayn məqsədləri var:
- FPGA-dakı nüvələr və DDR yaddaş sistem(lər)i arasında mümkün olan ən yüksək bant genişliyini təmin edin.
- FPGA-da hesablamaların (yəni OpenCL ləpələri) periferik qurğulara xidmət göstərə biləcək digər CPU tapşırıqlarına mane olmadığından əmin olun.
- İnterfeys komponentləri yerinə nüvə hesablamaları üçün mümkün qədər çox FPGA resursu buraxın.
Aşağıda Intel-in dizayn məqsədlərinin birbaşa nəticələri olan yüksək səviyyəli dizayn qərarları verilmişdir:
- İstinad Platforması yalnız ən geniş mümkün konfiqurasiyaya (256 bit) malik sərt DDR yaddaş kontrollerlərindən istifadə edir.
- FPGA AXI avtobusu və HPS daxilindəki L3 keçidini cəlb etmədən birbaşa HPS DDR yaddaş nəzarətçisi ilə əlaqə saxlayır. Birbaşa əlaqə DDR-ə mümkün olan ən yaxşı ötürmə qabiliyyətini təmin edir və FPGA hesablamalarını CPU və onun periferiyası arasında əlaqəyə müdaxilə etməkdən qoruyur.
- Yaddaşa birbaşa giriş imkanı (SG-DMA) FPGA interfeys məntiqinin bir hissəsi deyil. DDR yaddaş sistemləri arasında böyük həcmdə məlumat ötürmək əvəzinə, məlumatları paylaşılan HPS DDR-də saxlayın. FPGA tərəfindən CPU yaddaşına birbaşa giriş DMA-dan daha səmərəlidir. O, aparat resurslarına (yəni FPGA sahəsi) qənaət edir və Linux nüvəsi sürücüsünü sadələşdirir.
Xəbərdarlıq: Paylaşılan HPS DDR sistemi ilə yalnız FPGA üçün əlçatan olan DDR sistemi arasında yaddaş ötürülməsi çox yavaşdır. Əgər seçsəniz
yaddaşı bu şəkildə köçürün, onu yalnız çox az miqdarda məlumat üçün istifadə edin. - Host və cihaz yalnız bir 2 bitlik portdan istifadə edərək HPS-to-FPGA (H32F) körpüsü vasitəsilə bir-biri arasında qeyri-DMA məlumat ötürülməsini həyata keçirir. Bunun səbəbi, DMA olmadan Linux nüvəsi yalnız bir 32 bitlik oxumaq və ya yazma sorğusu verə bilər, ona görə də daha geniş bir əlaqəyə ehtiyac yoxdur.
- Ev sahibi yüngül H2F (LH2F) körpüsü vasitəsilə cihaza nəzarət siqnallarını göndərir.
Ev sahibindən cihaza nəzarət siqnalları aşağı eni siqnallar olduğundan, LH2F körpüsü tapşırıq üçün idealdır.
1.2 İstinad Platformasının SoC FPGA Boardunuza daşınması
Cyclone V SoC Development Kit Referans Platformasını SoC FPGA boardunuza köçürmək üçün aşağıdakı tapşırıqları yerinə yetirin:
- Dizaynınızın başlanğıc nöqtəsi kimi bir DDR yaddaşını və ya c5soc Referans Platformasının iki DDR yaddaş versiyasını seçin.
- ALTERAOCLSDKROOT/board/c5soc/-da pin yerlərini yeniləyin /top.qsf file, burada ALTERAOCLSDKROOT OpenCL quraşdırılması üçün Intel FPGA SDK-nın yerinə gedən yoldur və lövhə variantının kataloq adıdır. c5soc_sharedonly kataloqu bir DDR yaddaş sistemi olan lövhə variantı üçündür. C5soc kataloqu iki DDR yaddaş sistemi olan lövhə variantı üçündür.
- ALTERAOCLSDKROOT/board/c5soc/-da HPS və/və ya FPGA SDRAM blokları üçün DDR parametrlərini yeniləyin /system.qsys file.
4. OpenCL üstünlük verilən lövhə dizaynları üçün bütün Intel FPGA SDK zəmanətli bağlanma vaxtı əldə etməlidir. Beləliklə, dizaynın yerləşdirilməsi vaxtı təmiz olmalıdır. C5soc board bölməsini (acl_iface_partition.qxp) SoC FPGA boardunuza köçürmək üçün aşağıdakı tapşırıqları yerinə yetirin:
Lövhə bölməsinin dəyişdirilməsi və qorunması ilə bağlı ətraflı təlimatlar üçün Quartus-a baxın
Quartus Prime Standart Buraxılış Təlimatının İerarxik və Komanda Əsaslı Dizayn bölməsi üçün Baş Artan Kompilyasiya.
a. acl_iface_partition.qxp faylını ALTERAOCLSDKROOT/board/c5soc/c5soc qovluğundan çıxarın.
b. Tcl komandasını set_global_assignment -name LL_ENABLED OFF -section_id acl_iface_region-u set_global_assignment -adı LL_ENABLED ON -section_id acl_iface_region olaraq dəyişdirərək acl_iface_region LogicLock™ regionunu aktivləşdirin
c. Lövhəniz üçün OpenCL nüvəsini tərtib edin.
d. Lazım gələrsə, LogicLock bölgəsinin ölçüsünü və yerini tənzimləyin.
e. Dizaynınızın yerləşdirilməsinin vaxt baxımından təmiz olduğuna əmin olduğunuz zaman həmin bölməni acl_iface_partition.qxp Quartus Prime Exported Partition kimi ixrac edin. File.
OpenCL Xüsusi Platforma Alət Dəsti İstifadəçi Təlimatı üçün AIntel FPGA SDK-nın Zəmanətli Zaman axınının yaradılması bölməsində təsvir edildiyi kimi, bu .qxp-ni idxal etməklə file yüksək səviyyəli dizayna daxil olmaqla, siz zəmanətli bağlanma axını ilə lövhə dizaynını təmin etmək tələbini yerinə yetirirsiniz.
İxrac edilmiş bölmənizin nəticələrinin keyfiyyətinə (QoR) təsir edə biləcək amillər üçün OpenCL Xüsusi Platforma Alətlər Dəsti İstifadəçi Təlimatı üçün Intel FPGA SDK-da İxrac edilmiş lövhə bölməsi üçün Nəticələrin Ümumi Keyfiyyəti Mülahizələrinə baxın.
f. 2-ci Addımdakı əmri set_global_assignment -name LL_ENABLED OFF bölmə_id acl_iface_region-a qaytarmaqla acl_iface_region LogicLock bölgəsini deaktiv edin. - SoC FPGA lövhəniz HPS blokunun müxtəlif sancaqlarından və periferiyalarından istifadə edirsə, ilkin yükləyicini və cihaz ağacı mənbəyini (DTS) bərpa edin. file. HPS DDR yaddaş nəzarətçisinin parametrlərini dəyişdirsəniz, əvvəlcədən yükləyicini yenidən yaradın.
- SD flash kart şəklini yaradın.
- SD flash kart şəklini ehtiva edən Xüsusi Platformanızı yaradın.
- OpenCL üçün Intel FPGA Runtime Environment (RTE) ilə istifadə etmək üçün Fərdi Platformanızın iş vaxtı mühiti versiyasını yaratmağı düşünün. Xüsusi Platformanızın RTE versiyasına aparat qovluqları və SD flash kartın təsviri daxil deyil. Bu Xüsusi Platforma host proqramlarının işləməsinə icazə vermək üçün SoC FPGA sisteminə yüklənir. Bunun əksinə olaraq, Xüsusi Platformanın SDK versiyası SDK-nın OpenCL ləpələrini tərtib etməsi üçün lazımdır.
İpucu: RTE üçün Fərdi Platformanızın SDK versiyasından istifadə edə bilərsiniz. Qorumaq
boşluq, SD fleş kart şəklini Xüsusi Platformanızın RTE versiyasından çıxarın. - Fərdi Platformanızı sınayın.
Əlavə məlumat üçün OpenCL Xüsusi Platforma Alətlər Dəsti İstifadəçi Təlimatı üçün Intel FPGA SDK-nın Avadanlıq Dizaynının Test Edilməsi bölməsinə baxın.
Əlaqədar Linklər
- Avadanlıq Dizaynının Test Edilməsi
- İerarxik və Komanda Əsaslı Dizayn üçün Quartus Prime Artan Kompilyasiyası
- Zəmanətli Zaman axınının qurulması
- İxrac edilmiş Şura Bölməsi üçün Nəticələrin Ümumi Keyfiyyəti Mülahizələri
1.2.1 Ported Referans Platformasının yenilənməsi
Cyclone V SoC Development Kit Reference Platform-un cari versiyasında HPS bloku bütün nüvə olmayan məntiqi müəyyən edən bölmənin içərisindədir. Bununla belə, siz HPS-i .qxp-nin bir hissəsi kimi ixrac edə bilməzsiniz file. c5soc-un əvvəlki versiyasından dəyişdirdiyiniz mövcud Fərdi Platformanı yeniləmək üçün QXP qorunma axınını həyata keçirin, ən son iş vaxtı mühitini əldə etmək üçün SD flash kart şəklini yeniləyin və board_spec.xml faylını yeniləyin. file avtomiqrasiyanı aktivləşdirmək üçün.
OpenCL 14.1 və ondan kənar versiyalar üçün Altera® SDK board_spec.xml file board məlumat üçün və avtomatik yeniləmələri həyata keçirir. Çünki siz dəyişdirirsiniz
QXP qorunma axını həyata keçirməklə dizayn etmək üçün board_spec.xml faylını yeniləməlisiniz file cari versiyada onun formatına. yenilənir file SDK-ya qorunmamış Xüsusi Platformalar və hazırkı QXP əsaslı Xüsusi Platformalar arasında fərq qoymağa imkan verir. Əlavə məlumat üçün OpenCL Xüsusi Platforma Alətlər Dəsti İstifadəçi Təlimatı üçün Intel FPGA SDK-da İrəli Uyğunluq üçün Xüsusi Platformanın Avtommiqrasiyasına baxın.
- C5soc-un əvvəlki versiyasından daşınan Cyclone V SoC FPGA aparat dizaynında QXP qorunma axınını həyata keçirmək üçün HPS-ni .qxp-dən xaric etmək üçün alt bölmə yaratmaq üçün aşağıdakı addımları yerinə yetirin. file:
a. Qeyri-nüvə məntiqi ətrafında bölmə yaratmazdan əvvəl, .qsf Quartus Prime Parametrlərində HPS ətrafında bölmə yaradın. File.
məsələnample:
# HPS üçün ayrılmış I/O set_instance_təyinatını modelləşdirən nümunəni əl ilə bölmək -ad PARTITION_HIERARCHY borde_18261 -to “sistem:the_system|system_acl_iface:acl_iface|system_acl_iface_hps_0:hps_ahpss|ios_hps_0:hps_acems0| system_acl_iface_hps_0_hps_io_border:border" -section_id "system_acl_iface_hps_0_hps_io_border:border"
# Quartusun qalan hissəsi tərəfindən düzgün işlənməsi üçün bölməni HPS_PARTITION növü olaraq təyin edin
set_qlobal_təyin -ad PARTITION_TYPE HPS_PARTITION -bölmə_id “sistem_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=on
–incremental_compilation_export_post_fit=on
–incremental_compilation_export_routing=on
–incremental_compilation_export_flatten=off
HPS-ni bölmədən çıxardıqdan sonra siz .qxp-ni idxal edə bilərsiniz file və dizaynınızı tərtib edin. - Aşağıdakı tapşırıqları yerinə yetirməklə SD fləş kartı şəklini OpenCL üçün Intel FPGA RTE-nin cari versiyası ilə yeniləyin:
a. montaj edin file ayırma cədvəli (fat32) və uzadılmışdır file sistem (ext3) arakəsmələri mövcud təsvirdə geri dönmə cihazları kimi. Ətraflı təlimatlar üçün SD Flash Kart Şəklinin Yaradılmasında 2-ci Addım-a baxın.
b. /home/root/opencl_arm32_rte qovluğunda silin files RTE-nin əvvəlki versiyasından.
c. RTE-nin cari versiyasını /home/root/opencl_arm32_rte qovluğuna yükləyin və açın.
d. İçində /driver/version.h file Fərdi Platformanızın ACL_DRIVER_VERSION təyinatını yeniləyin . (məsample, 16.1.x, burada 16.1 SDK versiyası, x isə təyin etdiyiniz sürücü versiyasıdır).
e. Sürücünü yenidən qurun.
f. Fərdi Platformanızın aparat qovluq(lar)ını silin. Xüsusi Platformanı yenilənmiş sürücü ilə birlikdə /home/root/opencl_arm_rte/board qovluğuna kopyalayın.
g. Altera.icd-ni kopyalayın file /home/root/opencl_arm32_rte qovluğundan və onu /etc/OpenCL/vendors qovluğuna əlavə edin.
h. Yeni şəkli ayırın və sınayın. Ətraflı təlimatlar üçün SD Flash Kart Şəklinin Yaradılması üzrə 8-11-ci Addımlara baxın.
Əlaqədar Linklər
- SD Fləş Kart Şəkilinin yaradılması səhifə 14
Siz həmçinin yeni SD flash kart şəkli yaratmaq seçiminiz var. - İrəli Uyğunluq üçün Xüsusi Platforma Avtomiqrasiya
1.3 Paylaşılan Yaddaş üçün Proqram Dəstəyi
FPGA və CPU arasında paylaşılan fiziki yaddaş, SoC FPGA-larda işləyən OpenCL nüvələri üçün üstünlük verilən yaddaşdır. FPGA, paylaşılan virtual yaddaşdan fərqli olaraq, paylaşılan fiziki yaddaşa daxil olduğu üçün, istifadəçi virtual ünvanlarını fiziki səhifə ünvanları ilə əlaqələndirən CPU-nun səhifə cədvəllərinə çıxışı yoxdur.
Aparatla əlaqədar olaraq, OpenCL ləpələri HPS DDR sabit yaddaş nəzarətçisinə birbaşa qoşulma vasitəsilə ortaq fiziki yaddaşa daxil olur. Proqram təminatına gəldikdə, ortaq fiziki yaddaşa dəstək aşağıdakı mülahizələri əhatə edir:
- CPU-da yaddaşın ayrılması üçün tipik proqram təminatı (məsample, malloc() funksiyası) FPGA-nın istifadə edə biləcəyi yaddaş bölgəsini ayıra bilməz.
Malloc() funksiyasının ayırdığı yaddaş virtual yaddaş ünvan məkanında bitişikdir, lakin hər hansı əsas fiziki səhifələrin fiziki olaraq bitişik olması ehtimalı azdır. Beləliklə, ev sahibi fiziki olaraq bitişik yaddaş bölgələrini ayıra bilməlidir. Lakin bu qabiliyyət Linux-da istifadəçi məkanı proqramlarında mövcud deyil. Buna görə də, Linux kernel sürücüsü ayırmanı yerinə yetirməlidir. - OpenCL SoC FPGA Linux nüvəsi drayveri paylaşılan fiziki yaddaşı ayırmaq və onu istifadəçi məkanına uyğunlaşdırmaq üçün mmap() funksiyasını ehtiva edir. mmap() funksiyası cihazla paylaşmaq üçün fiziki olaraq bitişik yaddaş bölgələrini tələb etmək üçün standart Linux nüvəsi dma_alloc_coherent() çağırışından istifadə edir.
- Varsayılan Linux nüvəsində dma_alloc_coherent() 0.5 meqabaytdan (MB) çox fiziki bitişik yaddaş ayırmır. dma_alloc_coherent()-ə böyük həcmdə fiziki bitişik yaddaş ayırmağa icazə vermək üçün Linux nüvəsinin bitişik yaddaş ayırıcısı (CMA) funksiyasını aktivləşdirin və sonra Linux nüvəsini yenidən kompilyasiya edin.
Cyclone V SoC Development Kit Referans Platforması üçün CMA 512 GB fiziki yaddaşdan 1 MB-ni idarə edir. Proqramın tələb etdiyi paylaşılan yaddaşın miqdarından asılı olaraq bu dəyəri artıra və ya azalda bilərsiniz. dma_alloc_coherent() çağırışı tam 512 MB fiziki bitişik yaddaşı ayıra bilməyəcək; lakin o, müntəzəm olaraq təxminən 450 MB yaddaş əldə edə bilər. - CPU dma_alloc_coherent() çağırışının ayırdığı yaddaşı keşləyə bilər. Xüsusilə, host proqramından yazma əməliyyatları OpenCL nüvələrinə görünmür. OpenCL SoC FPGA Linux kernel drayverindəki mmap() funksiyası yaddaşın bu bölgəsi üçün açıq şəkildə keşləşdirməni söndürmək üçün pgprot_noncached() və ya remap_pf_range() funksiyalarına edilən zəngləri ehtiva edir.
- dma_alloc_coherent() funksiyası fiziki olaraq bitişik yaddaşı ayırdıqdan sonra mmap() funksiyası virtual ünvanı ayırdığınız yaddaşın ünvan diapazonu olan diapazonun əvvəlinə qaytarır. Host proqramı yaddaşa daxil olmaq üçün bu virtual ünvanı tələb edir. Digər tərəfdən, OpenCL ləpələri fiziki ünvanlar tələb edir. Linux nüvəsi sürücüsü virtualdan fiziki ünvana xəritəçəkməni izləyir. Siz sürücüyə sorğu əlavə etməklə mmap() funksiyasının faktiki fiziki ünvanlara qaytardığı fiziki ünvanların xəritəsini çəkə bilərsiniz.
aocl_mmd_shared_mem_alloc() MMD tətbiq proqramlaşdırma interfeysi (API) çağırışı aşağıdakı sorğuları özündə birləşdirir:
a. Yaddaş ayıran və virtual ünvanı qaytaran mmap() funksiyası.
b. Qaytarılan virtual ünvanı fiziki ünvanla əlaqələndirən əlavə sorğu.
aocl_mmd_shared_mem_alloc() MMD API çağırışı sonra iki ünvanı qaytarır
— faktiki qaytarılmış ünvan virtual ünvandır, fiziki ünvan isə device_ptr_out ünvanına keçir.
Qeyd: Sürücü yalnız mmap() funksiyasının fiziki ünvanlara qaytardığı virtual ünvanları xəritələyə bilər. Hər hansı digər virtual göstəricinin fiziki ünvanını tələb etsəniz, sürücü NULL dəyəri qaytarır.
Xəbərdarlıq: OpenCL iş vaxtı kitabxanaları üçün Intel FPGA SDK, paylaşılan yaddaşın board_spec.xml siyahısında göstərilən ilk yaddaş olduğunu güman edir. file. Başqa sözlə, Linux nüvəsi sürücüsünün əldə etdiyi fiziki ünvan OpenCL nüvəsinin HPS SDRAM-a ötürdüyü Avalon® ünvanı olur.
İş vaxtı kitabxanası ilə əlaqədar olaraq, clCreateBuffer() çağırışından istifadə edərək, paylaşılan yaddaşı cihaz buferi kimi aşağıdakı şəkildə ayırın:
- Həm paylaşılan, həm də paylaşılmayan yaddaşa malik iki DDR board variantı üçün CL_MEM_USE_HOST_PTR bayrağını göstərsəniz, clCreateBuffer() paylaşılan yaddaşı ayırır. Digər bayraqlardan istifadə clCreateBuffer()-in paylaşılmayan yaddaşda bufer ayırmasına səbəb olur.
- Yalnız paylaşılan yaddaşa malik bir DDR board variantı üçün clCreateBuffer() hansı bayraq göstərdiyinizdən asılı olmayaraq paylaşılan yaddaşı ayırır.
Hal-hazırda, ARM CPU-da 32-bit Linux dəstəyi SDK iş vaxtı kitabxanalarında paylaşılan yaddaş dəstəyinin həcmini idarə edir. Başqa sözlə, digər mühitlər üçün tərtib edilmiş iş vaxtı kitabxanaları (məsample, x86_64 Linux və ya 64-bit Windows) paylaşılan yaddaşı dəstəkləmir.
C5soc aşağıdakı səbəblərə görə paylaşılan və paylaşılmayan yaddaşı ayırd etmək üçün heterojen yaddaş tətbiq etməyib:
1. Tarix—Heterojen yaddaş dəstəyi əvvəlcə paylaşılan yaddaş dəstəyi yaradılanda mövcud deyildi.
2. Uniform interfeys—OpenCL açıq standart olduğundan, Intel heterojen hesablama platforması təchizatçıları arasında ardıcıllığı qoruyur. Buna görə də, paylaşılan yaddaşın ayrılması və istifadəsi üçün digər board təchizatçılarının arxitekturaları ilə eyni interfeys istifadə olunur.
1.4 FPGA-nın yenidən konfiqurasiyası
SoC FPGA-lar üçün CPU CPU-nun işini dayandırmadan FPGA əsas quruluşunu yenidən konfiqurasiya edə bilər. HPS-i birləşdirən FPGA Manager aparat bloku və əsas FPGA yenidən konfiqurasiyanı həyata keçirir. Linux nüvəsi FPGA Menecerinə asan girişi təmin edən sürücüdən ibarətdir.
- Kimə view FPGA nüvəsinin statusu üçün cat /sys/class/fpga/fpga0/ status əmrini çağırın.
Cyclone V SoC Development Kit Referans Platforması ilə birlikdə mövcud olan OpenCL proqramı üçün Intel FPGA SDK FPGA-nı proqramlaşdırmaq üçün bu interfeysdən istifadə edir. FPGA nüvəsini işləyən CPU ilə yenidən proqramlaşdırarkən, proqram yardım proqramı aşağıdakı vəzifələrin hamısını yerinə yetirir:
1. Yenidən proqramlaşdırmadan əvvəl, FPGA və HPS, həm H2F, həm də LH2F körpüləri arasında bütün rabitə körpülərini söndürün.
Yenidən proqramlaşdırma tamamlandıqdan sonra bu körpüləri yenidən aktivləşdirin.
Diqqət: OpenCL sistemi FPGA-to-HPS (F2H) körpüsündən istifadə etmir. Ətraflı məlumat üçün Cyclone V Device Handbook, Cild 3: Hard Processor System Technical Reference Manual-da HPS-FPGA Interfaces bölməsinə baxın.
2. Yenidən proqramlaşdırma zamanı FPGA və HPS DDR nəzarətçi arasında əlaqənin söndürülməsinə əmin olun.
3. Yenidən proqramlaşdırma zamanı FPGA-da FPGA kəsmələrinin söndürülməsinə əmin olun.
Həmçinin, yenidən proqramlaşdırma zamanı FPGA-dan gələn hər hansı kəsilmələri rədd etməsi üçün sürücünü xəbərdar edin.
Faktiki icra ilə bağlı təfərrüatlar üçün proqram yardım proqramının mənbə koduna müraciət edin.
Xəbərdarlıq: CPU işləyərkən HPS DDR nəzarətçisinin konfiqurasiyasını dəyişməyin.
Bunu etmək ölümcül sistem xətasına səbəb ola bilər, çünki CPU-dan gözlənilməz yaddaş əməliyyatları olduqda DDR nəzarətçi konfiqurasiyasını dəyişə bilərsiniz. Bu o deməkdir ki, CPU işləyərkən siz FPGA nüvəsini fərqli konfiqurasiyada HPS DDR istifadə edən bir şəkil ilə yenidən proqramlaşdıra bilməzsiniz.
Unutmayın ki, OpenCL sistemi və Intel SoC FPGA Embedded Design Suite (EDS) ilə mövcud olan Qızıl Avadanlıq istinad dizaynı HPS DDR-ni tək 256 bitlik rejimə təyin edir.
Budaq proqnozlaşdırıcısı və ya səhifə cədvəlinin əvvəlcədən seçicisi kimi CPU sisteminin hissələri, hətta CPU-da heç bir şeyin işləmədiyi görünsə belə, DDR əmrləri verə bilər.
Buna görə yükləmə vaxtı HPS DDR nəzarətçi konfiqurasiyasını təyin etmək üçün yeganə təhlükəsiz vaxtdır.
Bu həm də o deməkdir ki, U-boot-un xam binar olması lazımdır file (.rbf) yaddaşa yükləmək üçün şəkil. Əks halda, siz FPGA-da istifadə olunmamış portlarla HPS DDR-ni aktivləşdirə və sonradan port konfiqurasiyalarını potensial olaraq dəyişə bilərsiniz. Bu səbəbdən, OpenCL Linux kernel sürücüsü artıq HPS DDR nəzarətçi konfiqurasiyasını təyin etmək üçün lazım olan məntiqi ehtiva etmir.
SW3 ikili in-line paketi (DIP) Cylone V SoC Development Kit-i işə salır (yəni, .rbf təsvirinin gözlənilən formasını (yəni, file sıxılmış və/və ya şifrələnmişdir). C5soc və SoC EDS ilə mövcud olan Qızıl Avadanlıq İstinad Dizaynına sıxılmış, lakin şifrələnməmiş .rbf şəkilləri daxildir. OpenCL Cyclone V SoC Başlanğıc Bələdçisi üçün Intel FPGA SDK-da təsvir edilən SW3 DIP keçid parametrləri bu .rbf şəkil konfiqurasiyasına uyğun gəlir.
Əlaqədar Linklər
- HPS-FPGA interfeysləri
- SW3 açarlarının konfiqurasiyası
1.4.1 FPGA Sisteminin Arxitektura Təfərrüatları
Cyclone V SoC Development Kit Referans Platformasına dəstək OpenCL üçün Intel FPGA SDK ilə mövcud olan Stratix® V Referans Platformasına (s5_ref) əsaslanır.
c5soc Qsys sisteminin ümumi təşkili və nüvə sürücüsü s5_ref-də olanlara çox oxşardır.
Aşağıdakı FPGA əsas komponentləri həm c5soc, həm də s5_ref-də eynidir:
- VERSION_ID bloku
- İstirahət mexanizmi
- Yaddaş bankı bölücü
- Cache snoop interfeysi
- Kernel saatı
- Nəzarət registrinə giriş (CRA) blokları
1.5 SD Flash Kart Şəkilinin yaradılması
Cyclone V SoC FPGA çip üzərində tam sistem olduğundan, sistemin tam tərifinin çatdırılmasına cavabdehsiniz. Intel onu SD flash kart şəkli şəklində təqdim etməyi tövsiyə edir. OpenCL istifadəçisi üçün Intel FPGA SDK sadəcə olaraq şəkli mikro SD fləş karta yaza bilər və SoC FPGA lövhəsi istifadəyə hazırdır.
Mövcud SD Fləş Kart Şəkilinin dəyişdirilməsi səhifə 13
Intel, sadəcə olaraq Cyclone V SoC Development Kit Referans Platforması ilə mövcud olan təsviri dəyişdirməyi tövsiyə edir. Siz həmçinin yeni SD flash kart şəkli yaratmaq seçiminiz var.
SD Fləş Kart Şəkilinin yaradılması səhifə 14
Siz həmçinin yeni SD flash kart şəkli yaratmaq seçiminiz var.
1.5.1 Mövcud SD Fləş Kart Şəkilinin dəyişdirilməsi
Intel sadəcə Cyclone V SoC ilə mövcud olan təsviri dəyişdirməyi tövsiyə edir
İnkişaf Kit Referans Platforması. Siz həmçinin yeni SD flash kart şəkli yaratmaq seçiminiz var.
c5soc linux_sd_card_image.tgz şəkli file ALTERAOCLSDKROOT/board/c5soc kataloqunda mövcuddur, burada ALTERAOCLSDKROOT OpenCL quraşdırma kataloqu üçün Intel FPGA SDK yolunu göstərir.
Diqqət: SD flash kart şəklini dəyişdirmək üçün kök və ya sudo imtiyazlarınız olmalıdır.
- $ALTERAOCLSDKROOT/board/c5soc/linux_sd_card_image.tgz faylını açmaq üçün file, tar xvfzlinux_sd_card_image.tgz əmrini işlədin.
- Hello_world OpenCL-i tərtib edinampXüsusi Platforma dəstəyinizdən istifadə edərək dizayn edin. .rbf adını dəyişin file OpenCL Offline Compiler üçün Intel FPGA SDK-nın opencl.rbf kimi yaratdığını və onu SD flash kart təsviri daxilində fat32 bölməsinə yerləşdirin.
Hello_world ex-i yükləyə bilərsinizampOpenCL Design Ex-dən dizaynampAlteradakı les səhifəsi websayt. - .rbf yerləşdirin file flash kart şəklinin fat32 bölməsinə daxil edin.
Diqqət: Fat32 bölməsində həm zImage olmalıdır file və .rbf file. .rbf olmadan file, sürücünü daxil etdiyiniz zaman ölümcül bir səhv baş verəcəkdir. - SD kart şəklini yaratdıqdan sonra aşağıdakı əmri çağıraraq onu mikro SD karta yazın: sudo dd if=/path/to/sdcard/image.bin of=/dev/sdcard
- SD flash kart şəklinizi yoxlamaq üçün aşağıdakı tapşırıqları yerinə yetirin:
a. Mikro SD flash kartı SoC FPGA lövhəsinə daxil edin.
b. Lövhəni gücləndirin.
c. aocl diaqnostika yardım proqramı əmrini çağırın.
1.5.2 SD Fləş Kart Şəkilinin yaradılması
Siz həmçinin yeni SD flash kart şəkli yaratmaq seçiminiz var. Yeni SD fleş kart şəklinin yaradılması və mövcud SD fleş kart şəklinin yenidən qurulması ilə bağlı ümumi təlimatlar RocketBoards.org-un GSRD v14.0.2 – SD Kart səhifəsində mövcuddur. websayt.
Aşağıdakı addımlar Qızıl Sistem Referans Dizaynı (GSRD) SD fleş kart görüntüsündən linux_sd_card_image.tgz şəklinin yaradılması prosedurunu təsvir edir:
Qeyd:
c5soc görüntüsündən şəkil yaratmaq üçün bu prosedurda qeyd olunan bütün müvafiq tapşırıqları yerinə yetirin.
- Rocketboards.org saytından 14.0 GSRD SD fleş kartı təsvir versiyasını yükləyin və paketdən çıxarın.
- montaj edin file ayırma cədvəli (fat32) və uzadılmışdır file sistem (ext3) arakəsmələri bu şəkildəki geri dönmə cihazları kimi. Bölməni quraşdırmaq üçün aşağıdakı addımları yerinə yetirin:
a. /sbin/fdisk -lu image_ çağıraraq, şəkil daxilində bölmənin bayt başlanğıcını təyin edin.file əmr.
məsələnample, W1 FAT tipli bölmə nömrəsi 95 blok ofsetinə malikdir 2121728. Hər bloka 512 bayt olan bayt ofset 512 bayt x 2121728 = 1086324736 baytdır.
b. Sərbəst döngə cihazını müəyyənləşdirin (məsample, /dev/loop0) itirilmiş -f əmrini yazaraq.
c. /dev/loop0-un pulsuz dövrə cihazı olduğunu fərz etsək, /dev/loop0 image_-i işə salmaqla flash kart şəklinizi loop blok cihazına təyin edin.file -0 1086324736 əmri.
d. Döngü cihazını mount /dev/loop0 /media/disk1 əmrini işə salaraq quraşdırın.
Şəkil daxilində file, /media/disk1 indi quraşdırılmış fat32 bölməsidir.
e. Ext3 bölməsi üçün a-dan d-yə qədər addımları təkrarlayın. - Altera-dakı Yükləmə Mərkəzindən OpenCL paketi üçün Intel FPGA Runtime Environment-in Cyclone V SoC FPGA versiyasını endirin. websayt.
a. Quartus Prime proqram nəşrinin yanında Yüklə düyməsini klikləyin.
b. Buraxılış versiyasını, əməliyyat sistemini və yükləmə metodunu göstərin.
c. Əlavə Proqram tabına klikləyin və Intel FPGA-nı endirmək üçün seçin
OpenCL Linux Cyclone V SoC TGZ üçün iş vaxtı mühiti.
d. aocl-rte-ni yüklədikdən sonra .arm32.tgz file, üçün paketdən çıxarın
sahibi olduğunuz bir kataloq. - Qablaşdırılmamış aocl-rte-ni yerləşdirin. .arm32 kataloqunu şəklin ext32 bölməsindəki /home/root/opencl_arm3_rte qovluğuna köçürün file.
- Fərdi Platformanızın aparat qovluq(lar)ını silin və sonra Xüsusi Platformanı /home/root/ opencl_arm32_rte lövhəsinin alt kataloquna yerləşdirin.
- init_opencl.sh yaradın file aşağıdakı məzmunlu /home/root kataloqunda: ixrac ALTERAOCLSDKROOT=/home/root/opencl_arm32_rte ixrac AOCL_BOARD_PACKAGE_ROOT=$ALTERAOCLSDKROOT/board/ ixrac PATH=$ALTERAOCLSDKROOT/bin:$PATH ixrac LD_LIBRARY_PATH=$ALTERAOCLSDKROOT/host/arm32/lib:$LD_LIBRARY_PATH insmod $AOCL_BOARD_PACKAGE_ROOT/driver/aclsoc_drv.ko
SDK istifadəçisi mühit dəyişənlərini və OpenCL Linux kernel sürücüsünü yükləmək üçün mənbə ./init_opencl.sh əmrini işlədir. - Önyükləyicini yeniləməlisinizsə, DTS files və ya Linux nüvəsi üçün sizə SoC EDS-dən arm-linux-gnueabihf-gcc kompilyatoru lazımdır. Proqram təminatını əldə etmək, onları yenidən tərtib etmək və müvafiq sənədləri yeniləmək üçün Intel SoC FPGA Embedded Design Suite İstifadəçi Təlimatında göstərilən təlimatlara əməl edin. files quraşdırılmış fat32 bölməsində.
Diqqət: Çox güman ki, Xüsusi Platformanızda c5soc-dan fərqli pin istifadələri varsa, önyükləyicini yeniləməlisiniz.
Unutmayın: Linux nüvəsini yenidən tərtib edirsinizsə, Linux nüvəsini eyni Linux nüvəsi mənbəyi ilə yenidən tərtib edin. files. Linux nüvəsi sürücüsü ilə Linux nüvəsi arasında uyğunsuzluq varsa, sürücü yüklənməyəcək. Həmçinin, CMA-nı aktivləşdirməlisiniz.
Əlavə məlumat üçün Linux Kernelinin Yenidən Tərtib edilməsinə baxın. - Hello_world OpenCL-i tərtib edinampXüsusi Platforma dəstəyinizdən istifadə edərək dizayn edin. .rbf adını dəyişin file OpenCL Offline Compiler üçün Intel FPGA SDK-nın opencl.rbf kimi yaratdığını və onu SD flash kart təsviri daxilində fat32 bölməsinə yerləşdirin.
Hello_world ex-i yükləyə bilərsinizampOpenCL Design Ex-dən dizaynampAlteradakı les səhifəsi websayt.
9. Bütün lazım olanları saxladıqdan sonra files flash kart şəklinə daxil edin, aşağıdakı əmrləri çağırın:
a. sinxronizasiya
b. ayırın /media/disk1
c. ayırın harada ext3 bölməsini 3-ci səhifə 3-də quraşdırmaq üçün istifadə etdiyiniz kataloq adıdır (məs.ample, /media/disk2).
d. losttup -d /dev/loop0
e. itirilmiş -d /dev/loop1 - Aşağıdakı əmri çağıraraq SD flash kart şəklini sıxın: tar cvfz .tgz linux_sd_card_image
- Çatdırın .tgz file Xüsusi Platformanızın kök qovluğunda.
- SD flash kart şəklinizi yoxlamaq üçün aşağıdakı tapşırıqları yerinə yetirin:
a. Nəticədə sıxılmamış şəkli micro SD flash karta yazın.
b. Mikro SD flash kartı SoC FPGA lövhəsinə daxil edin.
c. Lövhəni gücləndirin.
d. aocl diaqnostika yardım proqramı əmrini çağırın.
Əlaqədar Linklər
- Intel SoC FPGA Daxili Dizayn Paketi İstifadəçi Təlimatı
- OpenCL Design ExampAlteradakı les səhifəsi websayt
- Linux nüvəsinin yenidən tərtib edilməsi səhifə 16
CMA-nı aktivləşdirmək üçün əvvəlcə Linux nüvəsini yenidən tərtib etməlisiniz. - FPGA lövhənizin cihaz adının sorğulanması (diaqnoz)
1.6 Cyclone V SoC FPGA üçün Linux nüvəsinin tərtib edilməsi
Cyclone V SoC FPGA lövhəsində OpenCL proqramlarını işə salmazdan əvvəl siz Linux nüvəsi mənbəyini tərtib etməli və OpenCL Linux kernel sürücüsünü tərtib edib quraşdırmalısınız.
- Linux nüvəsinin yenidən tərtib edilməsi səhifə 16
CMA-nı aktivləşdirmək üçün əvvəlcə Linux nüvəsini yenidən tərtib etməlisiniz. - OpenCL Linux Kernel Driver-ın Tərtib edilməsi və Quraşdırılması səhifə 17 OpenCL Linux nüvəsi sürücüsünü tərtib edilmiş nüvə mənbəyinə qarşı tərtib edin.
1.6.1 Linux nüvəsinin yenidən tərtib edilməsi
CMA-nı aktivləşdirmək üçün əvvəlcə Linux nüvəsini yenidən tərtib etməlisiniz.
- RocketBoards.org saytının Resurslar səhifəsində GSRD v14.0 – Linux-un tərtib edilməsi linkinə klikləyin. webLinux nüvəsinin mənbə kodunun endirilməsi və yenidən qurulması ilə bağlı təlimatlara daxil olmaq üçün sayt.
OpenCL üçün ™ Intel FPGA SDK ilə istifadə etmək üçün socfpga-3.13-rel14.0 kimi təyin edin . - Qeyd: Tikinti prosesi arch/arm/configs/socfpga_defconfig yaradır file. Bu file socfpga standart konfiqurasiyası üçün parametrləri müəyyən edir.
Arx/arm/configs/socfpga_defconfig-in altına aşağıdakı sətirləri əlavə edin 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 konfiqurasiya dəyəri mövcud fiziki olaraq bitişik yaddaşın ümumi sayının yuxarı həddini təyin edir. Daha çox yaddaş tələb edirsinizsə, bu dəyəri artıra bilərsiniz. - Diqqət: SoC FPGA lövhəsində ARM prosessoru üçün mövcud olan fiziki yaddaşın ümumi həcmi 1 GB-dır. Intel CMA menecerini 1 GB-a yaxın təyin etməyi tövsiyə etmir.
- Cari konfiqurasiyanı təmizləmək üçün make mrproper əmrini yerinə yetirin.
- make ARCH=arm socfpga_deconfig əmrini yerinə yetirin.
ARCH=arm ARM arxitekturasını konfiqurasiya etmək istədiyinizi bildirir.
socfpga_defconfig defolt socfpga konfiqurasiyasından istifadə etmək istədiyinizi göstərir. - Export CROSS_COMPILE=arm-linux-gnueabihf- əmrini yerinə yetirin.
Bu əmr istədiyiniz alət zəncirinin prefiksini təyin etmək üçün CROSS_COMPILE mühit dəyişənini təyin edir. - make ARCH=arm zImage əmrini yerinə yetirin. Nəticə şəkli arch/arm/boot/zImage-də mövcuddur file.
- zImage-i yerləşdirin file flash kart şəklinin fat32 bölməsinə daxil edin. Ətraflı təlimatlar üçün Rocketboards.org saytındakı Cyclone V SoC FPGA üçün xüsusi GSRD İstifadəçi Təlimatına baxın.
- Qeyd: OpenCL Linux kernel sürücüsünü düzgün daxil etmək üçün əvvəlcə SDKgenerated.rbf yükləyin file FPGA üzərinə.
.rbf yaratmaq üçün file, SDK dizaynını tərtib edinampCyclone V SoC Development Kit Referans Platforması ilə hədəflənmiş Xüsusi Platforma kimi.
9. .rbf yerləşdirin file flash kart şəklinin fat32 bölməsinə daxil edin.
Diqqət: Fat32 bölməsində həm zImage olmalıdır file və .rbf file. .rbf olmadan file, sürücünü daxil etdiyiniz zaman ölümcül bir səhv baş verəcəkdir. - Daha əvvəl dəyişdirdiyiniz və ya yaratdığınız SD kart şəklini ehtiva edən proqramlaşdırılmış mikro SD kartı Cyclone V SoC Development Kit-ə daxil edin və sonra SoC FPGA lövhəsini işə salın.
- Uname -r əmrini işlətməklə quraşdırılmış Linux nüvəsinin versiyasını yoxlayın.
- SoC FPGA lövhəsi işə salınmış halda nüvədə CMA-nı uğurla aktivləşdirdiyinizi yoxlamaq üçün grep init_cma /proc/kallsyms əmrini işə salın.
Çıxış boş deyilsə, CMA aktivləşdirilir. - Yenidən tərtib edilmiş Linux nüvəsini SDK ilə istifadə etmək üçün Linux nüvəsi sürücüsünü tərtib edin və quraşdırın.
Əlaqədar Linklər
- Golden System Reference Design (GSRD) İstifadəçi Təlimatları
- SD Flash Kart Şəklinin yaradılması səhifə 13
Cyclone V SoC FPGA çip üzərində tam sistem olduğundan, sistemin tam tərifinin çatdırılmasına cavabdehsiniz.
1.6.2 OpenCL Linux Kernel Driver-ın tərtib edilməsi və quraşdırılması
OpenCL Linux kernel sürücüsünü tərtib edilmiş nüvə mənbəyinə qarşı tərtib edin.
Sürücü mənbəyi OpenCL üçün Intel FPGA Runtime Environment-in Cyclone V SoC FPGA versiyasında mövcuddur. Əlavə olaraq, OpenCL tərəfindən yaradılmış .rbf üçün Intel FPGA SDK yüklədiyinizə əmin olun. file Linux nüvə modulunun səhv quraşdırılmasının qarşısını almaq üçün FPGA-ya daxil edin.
- Altera-dakı Yükləmə Mərkəzindən OpenCL paketi üçün Intel FPGA Runtime Environment-in Cyclone V SoC FPGA versiyasını endirin. websayt.
a. Quartus Prime proqram nəşrinin yanında Yüklə düyməsini klikləyin.
b. Buraxılış versiyasını, əməliyyat sistemini və yükləmə metodunu göstərin.
c. Əlavə Proqram tabına klikləyin və Intel FPGA-nı endirmək üçün seçin
OpenCL Linux Cyclone V SoC TGZ üçün iş vaxtı mühiti.
d. aocl-rte-ni yüklədikdən sonra .arm32.tgz file, üçün paketdən çıxarın
sahibi olduğunuz bir kataloq.
Sürücü mənbəyi aocl-rte-dədir. .arm32/board/c5soc/ sürücü kataloqu. - OpenCL Linux nüvə sürücüsünü yenidən tərtib etmək üçün sürücünün Make-də KDIR dəyərini təyin edinfile Linux nüvə mənbəyini ehtiva edən qovluğa files.
- Alət zəncirinizin prefiksini göstərmək üçün ixrac CROSS_COMPILE=arm-linux-gnueabihf- əmrini yerinə yetirin.
- make clean əmrini yerinə yetirin.
- aclsoc_drv.ko yaratmaq üçün make əmrini yerinə yetirin file.
- Opencl_arm32_rte qovluğunu Cyclone V SoC FPGA lövhəsinə köçürün.
scp -r-ni işə salmaq root@your-ipaddress: komanda iş vaxtı mühitini/home/root qovluğuna yerləşdirir. - SD cardimage qurarkən yaratdığınız init_opencl.sh skriptini işə salın.
- aocl diaqnostika yardım proqramı əmrini çağırın. Siz init_opencl.sh-i uğurla işə saldıqdan sonra diaqnostika yardım proqramı keçən nəticəni qaytaracaq.
1.7 Məlum Məsələlər
Hal-hazırda, Cyclone V SoC Development Kit Referans Platforması ilə OpenCL üçün Intel FPGA SDK-nın istifadəsinə dair müəyyən məhdudiyyətlər var.
- Siz clGetDeviceInfo() çağırışının CL_DEVICE_VENDOR və CL_DEVICE_NAME sətirləri tərəfindən bildirilmiş satıcı və lövhə adlarını ləğv edə bilməzsiniz.
- Əgər host paylaşılan DDR sistemində (yəni HPS DDR) sabit yaddaş ayırırsa və nüvənin icrasından sonra daimi yaddaşı dəyişdirirsə, yaddaşdakı məlumatlar köhnələ bilər. Bu problem FPGA nüvəsinin CPU-HPS DDR əməliyyatlarını izləyə bilmədiyi üçün yaranır.
Sonrakı kernel icralarının köhnəlmiş məlumatlara daxil olmasının qarşısını almaq üçün aşağıdakı həll yollarından birini həyata keçirin:
• Sabit yaddaşı işə saldıqdan sonra dəyişdirməyin.
• Əgər çoxlu __daimi məlumat dəstinə ehtiyacınız varsa, çoxsaylı sabit yaddaş buferləri yaradın.
• Əgər varsa, sürətləndirici lövhənizdə FPGA DDR-də sabit yaddaş ayırın. - ARM-dəki SDK yardım proqramı yalnız proqramı və yardım proqramlarının diaqnostika əmrlərini dəstəkləyir.
Flaş, quraşdırma və quraşdırma əmrləri aşağıdakı səbəblərə görə Cyclone V SoC Development Kit üçün tətbiq edilmir:
a. Quraşdırma yardım proqramı aclsoc_drv Linux nüvəsi sürücüsünü tərtib etməli və onu SoC FPGA-da aktivləşdirməlidir. İnkişaf maşını kompilyasiyanı yerinə yetirməlidir; lakin o, artıq SoC FPGA üçün Linux nüvə mənbələrini ehtiva edir. İnkişaf maşını üçün Linux nüvəsi mənbələri SoC FPGA üçün olanlardan fərqlidir. SoC FPGA üçün Linux nüvə mənbələrinin yeri SDK istifadəçisi üçün çox güman ki, məlum deyil. Eynilə, silmə proqramı Cyclone V SoC Development Kit üçün də mövcud deyil.
Həmçinin, aclsoc_drv-ni SoC lövhəsinə çatdırmaq çətindir, çünki Cyclone V SoC Development Kit-in standart paylanması Linux nüvəsini ehtiva etmir. files və ya GNU Compiler Collection (GCC) tərtibçisi.
b. Flaş yardım proqramı .rbf yerləşdirməyi tələb edir file micro SD flash kartın FAT32 bölməsinə OpenCL dizaynı. Hazırda SDK istifadəçisi lövhəni işə saldıqda bu bölmə quraşdırılmır. Buna görə bölməni yeniləməyin ən yaxşı yolu bir flash kart oxuyucusu və inkişaf maşını istifadə etməkdir. - OpenCL Offline Compiler icra edilə bilən üçün Intel FPGA SDK arasında keçid edərkən filemüxtəlif lövhə variantlarına (yəni, c5soc və c5soc_sharedonly) uyğun gələn s (.aocx) .aocx yükləmək üçün SDK-nın proqram yardım proqramından istifadə etməlisiniz. file ilk dəfə yeni lövhə variantı üçün. Əgər siz sadəcə yeni lövhə variantından istifadə edərək host proqramını işlədirsinizsə, lakin FPGA başqa lövhə variantından olan təsviri ehtiva edirsə, ölümcül xəta baş verə bilər.
- .qxp file Quartus Prime proqramı ardıcıl olaraq bu bölmənin vaxt tələblərinə cavab verdiyi üçün interfeys bölməsi təyinatlarını daxil etmir.
- Lövhəni işə saldığınız zaman onun media girişinə nəzarət (MAC) ünvanı təsadüfi nömrəyə təyin edilir. LAN siyasətiniz bu davranışa icazə vermirsə, aşağıdakı tapşırıqları yerinə yetirərək MAC ünvanını təyin edin:
a. U-Boot-un işə salınması zamanı U-Boot əmr sorğusuna daxil olmaq üçün istənilən düyməni basın.
b. Komanda sorğusuna setenv etaddr 00:07:ed:00:00:03 yazın.
İstənilən MAC ünvanını seçə bilərsiniz.
c. saveenv əmrini yazın.
d. Lövhəni yenidən başladın.
1.8 Sənədin Təftiş Tarixçəsi
Cədvəl 1.
OpenCL Cyclone V SoC üçün Intel FPGA SDK-nın Sənəd Baxış Tarixçəsi
İnkişaf Dəsti İstinad Platformasının Portinq Bələdçisi
Tarix | Versiya | Dəyişikliklər |
May-17 | 2017.05.08 | • Baxım buraxılışı. |
Oktyabr 2016 | 2016.10.31 | •OpenCL üçün Altera SDK-dan OpenCL üçün Intel FPGA SDK-ya rebrendləşdirilmişdir. •OpenCL Offline Compiler üçün Intel FPGA SDK-ya rebrendləşdirilmiş Altera Offline Compiler. |
May-16 | 2016.05.02 | • SD flash kart şəklinin yaradılması və dəyişdirilməsi üzrə dəyişdirilmiş təlimatlar. •Linux nüvəsinin və OpenCL Linux ləpəsinin drayverinin yenidən tərtib edilməsinə dair dəyişdirilmiş təlimatlar. |
Noyabr-15 | 2015.11.02 | • Baxım buraxılışı və Quartus II nümunələri Quartus Prime-a dəyişdirildi. |
May-15 | 15.0.0 | •FPGA Yenidən Konfiqurasiyasında FPGA nüvəsini yenidən proqramlaşdırmaq üçün təlimat silindi ilə . pişiyi çağıraraq rbf şəkli fileadı>. rbf > /dev/ fpga0 əmri, çünki bu üsul tövsiyə edilmir. |
Dekabr-14 | 14.1.0 | •Sənədin adı Altera Cyclone V SoC Development Kit Reference Platform Porting Guide olaraq dəyişdirildi. • Aocl proqramına yenidən proqram təminatı yeniləndifilead>.aocx yardım proqramı əmri. •Aocl diaqnostikası və aocl diaqnostikasına diaqnostik yardım proqramı yeniləndi kommunal əmr. • İstinad Platformasının SoC Boardunuza daşınması bölməsindəki prosedur yeniləndi və zəmanətli zamanlamanın bağlanması axını üçün c5soc board bölməsinin daşınması və dəyişdirilməsi üzrə təlimatlar daxil edildi. •Aşağıdakı tapşırıqlar üçün prosedurları təsvir etmək üçün Ported Referans Platformasının Yenilənməsi mövzusu daxil edilib: 1. Lövhə bölməsində sərt prosessor sistemi (HPS) bloku istisna olmaqla 2. SD flash kart şəklinin yenilənməsi • SD Flash Kart Şəklinin Yaradılması bölməsi yeniləndi. SoC Embedded Design Suite (EDS) ilə mövcud olan təsvirin əvəzinə başlanğıc nöqtəsi kimi Qızıl Sistem Referans Dizaynı (GSRD) şəklinin 14.0 versiyasından istifadə edilməsi tövsiyə olunur. •Linux Kernelinin Yenidən Tərtib edilməsi və OpenCL Linux Kernel Driver bölməsi yeniləndi: 1.CROSS COMPILE dəyişənini təyin etmək üçün əlavə təlimat. 2.CMA-nın uğurla işə salındığını yoxlamaq üçün işlətdiyiniz əmr dəyişdirildi. |
İyul - 14 | 14.0.0 | • İlkin buraxılış. |
Sənədlər / Resurslar
![]() |
OpenCL üçün intel FPGA SDK [pdf] İstifadəçi təlimatı OpenCL üçün FPGA SDK, FPGA SDK, OpenCL üçün SDK, SDK |