Kategorien
FPGA specific Parallel programming

Xilinx Runtime Library (xrt) für Ubuntu 20.04

Im Rahmen meiner Experimente mit OpenCL, wollte ich ein „Hello World“ Design für Alveo U200 machen. Selbst wenn es nicht beabsichtigt wird in einem Rechner die U200 Karte einzubauen, ist es für die Entwicklung notwendig das .deb Paket mit der „Deployment Target Platform“ zu installieren. Diese beinhaltet z.B. die .xsa Datei sowie das Kommunikationslayer für die U200 Karte selbst. Die Voraussetzung für die Installation dieses Pakets ist allerdings die Installation von Xilinx Runtime Library (XRT), welche man mit einem separaten .deb Paket von Xilinx Webseite herunterlädt.

An der Stelle habe ich das erste Problem getroffen: Stand heute (12.02.2021) sind die .deb Pakete mit XRT nur für Ubuntu 16.04 und 18.04 erhältlich. Für mich sah es schlecht aus, weil ich seit zwei Monaten auf dem neuen Laptop das Linux Mint 20 Cinnamon benutze, was Ubuntu 20.04 (die modernste LTS Version) ungefähr gleich ist.

Glücklicherweise hat sich schnell eine Lösung im Xilinx Github Repository gefunden. Unter dem Link ist das XRT Projekt mit Quellcode erhältlich. Das Projekt lässt sich fast problemlos kompilieren. Damit es tatsächlich „problemlos“ verläuft (nicht also „fast“), möchte ich auf ein paar Kleinigkeiten aufmerksam machen. Nächst sind die Schritte aufgelistet, die auf der Projekt-Seite auf Github unter dem Link „Build Instructions“ zu finden sind. Dazu schreibe ich meine ergänzenden Kommentare.

Zuerst, selbstverständlich das Projekt vom Githab ziehen:

git clone https://github.com/Xilinx/XRT.git

Dann als erstes ein Skript laufen lassen, das die Abhängigkeiten überprüft und ggf. Upgrades verlangt.

sudo <XRT>/src/runtime_src/tools/scripts/xrtdeps.sh

Unter Ubuntu sollte dieses Skript problemlos laufen. Unter Linux Mint ist es allerdings nicht der Fall, denn das Skript überprüft die ID Zeile der Datei /etc/os-release. Eine einfache Lösung ist in der ID Zeile „ubuntu“ anstatt „linuxmint“ zu schreiben.

Danach kommt es zum Build Skript:

<XRT>/build/build.sh

Bevor dieses Skript mit der Kompilierung anfängt, führt es auch eine kleine Überprüfung durch. Geprüft werden z.B. Versionen der im Build-Prozess teilhehmenden Software. Hier wird wieder Vorsicht geboten, denn es ist nicht selten, dass man in seiner Terminal-Session das Skript settings64.sh bereits ausgeführt hat. Bei manchen Kollegen ist settings64.sh sogar in der .bashrc eingetragen. Das damit verbundene Problem ist, dass settings64.sh den CMake auf den Vivado-eigenenen CMake umstellt, der eine ältere Version hat (3.3.2).

Mit dem Rest soll es keine Probleme geben. In den Release Ordner übergehen und

make package

ausführen. Danach zurück in den build Ordner übergehen und die Dokumentation zusammenstellen:

./build.sh docs

Ah ja. Am Ende nicht vergessen das frisch kompilierte Paket mit dem Paket-Manager zu installieren:

sudo dpkg -i xrt_202110.2.10.0_20-amd64-xrt.deb

Mit der XRT-Bibliothek installiert, verläuft die Installation des „Deployment Target Platforms“ des FPGA-Beschleunigers problemlos. Somit ist der Weg für die Entwickulung Ihrer Applikation für die Zielplatform mit Vitis und Vivado offen.