這是《創(chuàng)建 Vitis 加速平臺(tái)》系列的第 2 篇博文。
在前文中,我們講解了如何創(chuàng)建硬件以及如何通過(guò) XSA 將元數(shù)據(jù) (metadata) 傳遞給 Vitis。
在本文中,我們將講解如何使用此 XSA 以及如何創(chuàng)建在目標(biāo)平臺(tái)上實(shí)現(xiàn)設(shè)計(jì)加速所需的軟件鏡像。
熟悉 OpenCL 的用戶可能對(duì)“內(nèi)核 (kernel)”一詞已耳熟能詳,在 OpenCL 中執(zhí)行功能的位置即被稱為“內(nèi)核”。
在 Vitis 加速流程中也使用同樣的命名法。但在其中使用 Xilinx Runtime (XRT) API 來(lái)執(zhí)行內(nèi)核。
XRT 基于 Linux 并在 x86 或開(kāi)發(fā)板(AArch64 或 Arm)上運(yùn)行。XRT 的功能與用于其執(zhí)行的架構(gòu)彼此獨(dú)立,即,它并不知曉自己是在 x86 上執(zhí)行還是在開(kāi)發(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
打開(kāi)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-opencv
petalinux-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>, <3? 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 庫(kù):
在 /usr/lib 目錄中對(duì) XRT 庫(kù)執(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ì)開(kāi)發(fā)板已啟用該支持。不僅如此,我們已生成了 Vitis 中執(zhí)行交叉編譯所需的 sysroot。如果您計(jì)劃設(shè)置一系列定制平臺(tái)用于相同架構(gòu),那么只需為每個(gè)版本創(chuàng)建 1 個(gè) sysroot 即可(例如,2020.1)。
原文標(biāo)題:開(kāi)發(fā)者分享 | 在 PetaLinux 中為加速平臺(tái)創(chuàng)建軟件工程
文章出處:【微信公眾號(hào):XILINX技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
責(zé)任編輯:haq
-
內(nèi)核
+關(guān)注
關(guān)注
3文章
1378瀏覽量
40339 -
Linux
+關(guān)注
關(guān)注
87文章
11326瀏覽量
209961 -
軟件
+關(guān)注
關(guān)注
69文章
4986瀏覽量
87807
原文標(biāo)題:開(kāi)發(fā)者分享 | 在 PetaLinux 中為加速平臺(tái)創(chuàng)建軟件工程
文章出處:【微信號(hào):gh_2d1c7e2d540e,微信公眾號(hào):XILINX開(kāi)發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論