-
Notifications
You must be signed in to change notification settings - Fork 11
ERA on alternative platforms
In this page you will find how-to run ERA on platforms other than x86 as well as findings and discoveries of such process.
ZCU102 is not OpenCL capable. Therefore OpenCL cannot be used to perform computation in the Mali GPU. [1]
The goal of this process is to run Ubuntu 16.04 on the ZYNQ Platform. In order to be able easy access to the FPGA resources linux kernel must include the fpga_manager kernel module provided by xilinx in their version of the linux kernel (e.i. petalinux). The idea is to combine a linux kernel image bootable from an SD card with an Ubuntu 16.04 rootfs. This can be done by following the instructions of the following link [2]. To use full capabilities of the platform, use a rootfs for aarch64 (arm64), this can be found at ubuntu's website. The one provided in [2] is armhf (arm32).
With this you will be able to boot Ubuntu 16.04, without GUI support.
Follow the indications for installing ERA as usual [3].
Currently installing gnuradio from ubuntu:arm64 repositories will provide a volk version that does not support neon extensions.
To make use of volk kernels, volk must be compiled from sources, and change the /lib/libvolk.so to point to the new compiled library
When compiling gnuradio from sources (9.7.9.3), if you are compiling it with volk 1.4 or later apply this patch: https://github.com/gnuradio/gnuradio/commit/00c6f258259c61f25dc220402a9d07544942b414
Check PYTHONPATH
Set Switch SW6 to (1:on,2:off,3:off,4:off) for booting from SD Card.
UART through usb (115200 8N1 ttyUSB0)
delete_head_blocking used instead
Adjusted memset size
FPGA Implementation:
Implementing a Design with the DMA IP requires recompiling the petalinux kernel without DMA support:
petalinux-config -c kernel
look for Device Drivers
Disable DMA
If petalinux-build fails, Enable DMA but make sure all the flags inside are deasserted
NEON vectorized
VOLK vectorized (watchout with this implementation, since it seems to have much lower precision than the other two)
NEON vectorized
[1] https://forums.xilinx.com/t5/Embedded-Linux/opencl-mali-gpu-Petalinux-zcu102/td-p/812797 [2] https://medium.com/developments-and-implementations-on-zynq-7000-ap/install-ubuntu-16-04-lts-on-zynq-zc702-using-petalinux-2016-4-e1da902eaff7 [3] https://github.com/IBM/era