這是《創(chuàng)建 Vitis 加速平臺(tái)》系列的第 2 篇博文。在前文中,我們講解了如何創(chuàng)建硬件以及如何通過 XSA 將元數(shù)據(jù) (metadata) 傳遞給 Vitis。
在本文中,我們將講解如何使用此 XSA 以及如何創(chuàng)建在目標(biāo)平臺(tái)上實(shí)現(xiàn)設(shè)計(jì)加速所需的軟件鏡像。
您可通過下列鏈接查看其它各部分:
第 1 部分:在 Vivado 中為加速平臺(tái)創(chuàng)建硬件工程
第 3 部分:在 Vitis 中封裝加速平臺(tái) (請(qǐng)點(diǎn)擊“閱讀原文”查看)
第 4 部分:在 Vitis 中測試定制加速平臺(tái)(請(qǐng)點(diǎn)擊“閱讀原文”查看)
引言:
熟悉 OpenCL 的用戶可能對(duì)“內(nèi)核 (kernel)”一詞已耳熟能詳,在 OpenCL 中執(zhí)行功能的位置即被稱為“內(nèi)核”。
在 Vitis 加速流程中也使用同樣的命名法。但在其中使用 Xilinx Runtime (XRT) API 來執(zhí)行內(nèi)核。
XRT 基于 Linux 并在 x86 或開發(fā)板(AArch64 或 Arm)上運(yùn)行。XRT 的功能與用于其執(zhí)行的架構(gòu)彼此獨(dú)立,即,它并不知曉自己是在 x86 上執(zhí)行還是在開發(fā)板(AArch64 或 Arm)上執(zhí)行。
但對(duì)于邊緣(AArch64 或 Arm)平臺(tái),我們需要添加 ZOCL 驅(qū)動(dòng)。ZOCL 驅(qū)動(dòng)用于為每個(gè)內(nèi)核分配資源。在本文中,我們將講解如何向全新或現(xiàn)有 PetaLinux 工程添加 XRT 和 ZOCL。
向 PetaLinux 工程添加 XRT:
petalinux-create -t project --template zynqMP -n zcu104_base_sw cd zcu104_base_sw petalinux-config --get-hw-description=Select DTG Settings -> (zcu104-revc) MACHINE_NAME
打開 project-spec/meta-user/conf/user-rootfsconfig,并添加如下內(nèi)容:
CONFIG_xrt CONFIG_xrt-dev CONFIG_zocl CONFIG_opencl-clhpp-dev CONFIG_opencl-headers-dev CONFIG_packagegroup-petalinux-opencvpetalinux-config -c rootfs User Packages, and select all here
下一步,將 zocl 驅(qū)動(dòng)節(jié)點(diǎn)添加到 system-user.dtsi。
/include/ "system-conf.dtsi" /{ }; &axi_intc_0 { xlnx,kind-of-intr = <0x0>; xlnx,num-intr-inputs = <0x20>; }; &amba { zyxclmm_drm { compatible = "xlnx,zocl"; status = "okay"; interrupt-parent = <&axi_intc_0>; interrupts = <0 4>,<1 4>, <2 4>, 4>, <4 4>, <5 4>, <6 4>, <7 4>, <8 4>, <9 4>, <10 4>, <11 4>, <12 4>, <13 4>, <14 4>,<15 4>, <16 4>, <17 4>, <18 4>, <19 4>, <20 4>, <21 4>, <22 4>, <23 4>, <24 4>, <25 4>, <26 4>, <27 4>, <28 4>, <29 4>, <30 4>, <31 4>; }; };
然后,運(yùn)行以下命令:
petalinux-build cd images/linux petalinux-build --sdk petalinux-package --sysroot
完整性檢查:
在封裝平臺(tái)之前,有必要執(zhí)行完整性檢查,以確保已將 XRT 和 ZOCL 添加到 rootfs 中。
方法是在板上啟動(dòng) Linux 鏡像:
cd images/linux petalinux-package --boot --fpga --u-boot
將以下文件置于啟動(dòng)器件上,然后啟動(dòng)
? image.ub
? BOOT.BIN
? boot.scr
驗(yàn)證 XRT 庫:
在 /usr/lib 目錄中對(duì) XRT 庫執(zhí)行 grep 操作:
ls /usr/lib | grep libxrt_core
針對(duì) libxilinxopencl 重復(fù)此操作:
ls /usr/lib | grep libxilinxopencl
驗(yàn)證 ZOCL DT 節(jié)點(diǎn):
列出 amba 下的所有節(jié)點(diǎn)
ls /sys/devices/platform/amba
至此大功告成。
這樣所得到的 Linux 鏡像中已包含了 XRT 支持,并且針對(duì)開發(fā)板已啟用該支持。不僅如此,我們已生成了 Vitis 中執(zhí)行交叉編譯所需的 sysroot。
如果您計(jì)劃設(shè)置一系列定制平臺(tái)用于相同架構(gòu),那么只需為每個(gè)版本創(chuàng)建 1 個(gè) sysroot 即可(例如,2020.1)。
如需了解后續(xù)步驟,請(qǐng)參閱本系列博客的第 3 部分:在 Vitis 中封裝加速平臺(tái)
責(zé)任編輯:lq
-
軟件
+關(guān)注
關(guān)注
69文章
5065瀏覽量
88460 -
鏡像
+關(guān)注
關(guān)注
0文章
174瀏覽量
10870 -
OpenCL
+關(guān)注
關(guān)注
2文章
48瀏覽量
33473
原文標(biāo)題:創(chuàng)建 Vitis 加速平臺(tái)第 2 部分:在 PetaLinux 中為加速平臺(tái)創(chuàng)建軟件工程
文章出處:【微信號(hào):FPGA-EETrend,微信公眾號(hào):FPGA開發(fā)圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
基于Docker鏡像逆向生成Dockerfile

docker-proxy鏡像加速倉庫

華為云 X 實(shí)例的鏡像管理詳解

基于Flexus X加速MySQL鏡像搭建XXL-JOB任務(wù)調(diào)度平臺(tái)

HAL庫在Arduino平臺(tái)上的使用
MK米客方德SD NAND:STM32平臺(tái)上的存儲(chǔ)方案

評(píng)論