組込みLinux Vitis Unified Software Platform 2023.2インストールと起動方法

Vitis2023.2インストールしました。 uBuntu22.04ではインストール出来ました。(2023/10) Vitis 2031.2ダウンロード3.7時間(Wifi 100Mbps)、インストールで1時間でした。 i5 13500 3.2Hz(BIOS設定), 14 cores, 6.7GB/s NVMe Gen4x4 2TB SSD, 64GB DDR4-3200(VivadoはDDRは64GB使い切りました。 PetaLinuxとVitisは32GBで十分でした。)

Vitis(バイタス)とは

Xilinxはユーザーを混乱させる名付けをするので、全く理解できないのですが、Vitisを使ってみてどうも以下の様になっている感じがします。(間違っているかもしれません。 検索しましたが、明確に書かれていません。)

Vitis Unified Software Platform — この中に、Vitis HLSや他のコンポーネントやライブラリが入っている。

Vitis 2023.2(或いは単にVitis) 、Vitis Unified Software Platformの2023.2版の事のよう。

Vitis HLS(High Level Synthesis:高位合成)、 VerilogやHDL言語でなくC言語からFPGAが動作するプログラムを開発するツール。 Vitis Unified Software Platformの中のHLS機能の事を言っているような気がする。

インストール手順

VitisのインストールはLinuxで高スペックPCが推奨されています。 AIエンジンやアプリケーションアクセラレーション開発にはシステムメモリが80GB推奨。 AI embeddedでも32GB。 因みに私の古いPCはメモリが8GBで2コア。 これでVitisでvaddのサンプルでHLSはできましたが、VitisのHLSは1コア辺り6~7GB使うようで、6GBほどスワップを使っていたのでめっちゃ時間がかかりました。 DDR 64GBのPCではスワップを使わないので快適です。

またハードディスク容量は、インストール時に320GB必要と表示されました。 インストール後は、160GBくらい。 因みにダウンロードで105GBなのでNVMe SSDでLAN 2.5GbE接続でダウンロードをもっと速くできる思います。

アカウント作成

VitisのダウンロードにはAMDのアカウントが必要なので登録しましょう。 

https://login.xilinx.com/

ライブラリインストール

まず必要なライブラリをインストールしておきます。(これらがないとインストール時エラーになるようです。) それ以外もここに書かれてあるのをインストールしました。

uBuntuの場合
$ sudo apt install ocl-icd-libopencl1 opencl-headers ocl-icd-opencl-dev

ダウンロード

AMDのアカウントにログインしている状態で、このサイトから『Vitis(SW開発者)』を選びます。

画面の下にスクロールして、『AMD 統合インストーラー 2023.1: Linux Self Extracting Web Installer』をダウンロードする。 (私のPCはuBuntuなのでLinux用です。 Windows用は別のファイルです。)

Verification

もしかしたらダウンロードする時、以下の画面が表示されるかもしれません。 その時は『*』の項目を全て埋めて、画面を下にスクロールして『Download』を押すとダウンロードできます。 表示されずダウンロードできればそのまま先に進みます。

インストール

インストールを進めると『E-mail Address』と『Password』の入力画面が表示されます。 上記のAMDアカウントの『E-mail Address』と『Password』を入力して進めます。

ダウンロードしたら実行可能に権限を変えて実行する。

注意:ダウンロード下ファイル名を確認して実行してください。 以下は私がダウンロードしたファイル名ですが、もしかしたら特に、『1013_2256』辺り若干異なるかもしれません。

$ cd ~/Downloads
$ sudo chmod +x FPGAs_AdaptiveSoCs_Unified_2023.2_1013_2256_Lin64.bin
$ sudo ./FPGAs_AdaptiveSoCs_Unified_2023.2_1013_2256_Lin64.bin

Next』を押す。

「Download Image」

Download and install』と『Download image』の選択がありす。 最初、『Download and install』 を選択してましたが、毎回3時間半かけてダウンロードは完了するのですが、何故か途中で認証エラーで止まってしまい何度も試しましたが結局インストールできませんでした。 『Download image』でも認証エラーで進めれませんでした。 原因は、PCのローカル時刻が9時間ずれていて、systemd-timesyncdをインストールして、ntpを設定してsystemd-timesyncdを起動したら『Download Image』できました。 もしかしたら時刻を合わせた後なら『Download and Install』も出来たかもしれませんが失敗したら3時間ロスするので『Download Image』で進めました。) なので最後は『Download image』を選択してインストールしました。 (参考ドキュメント) Download image』してからインストールのがするのを断然お薦めします。 更に「Download Image』後、『Download Image』のディレクトリごとzip化したほうが良いです。

『Download Image』で成功したらこのような表示になると思います。 今回は2023.1版で105GBありダウンロードだけで3時間かかりました。

『Download image』した場合

ダウンロードするディレクトリを指定します。 私の場合は以下の様にしました。

/tools/Xilinx/Downloads/2023.2

ダウンロード完了したら、念の為、ダウンロードしたディレクトリ下を全てzipしてバックアップを撮っておきます。 もしインストールに失敗したら、AMDのインストーラーが折角3時間かけてダウンロードしたファイル群を消してしまうからです。

zipバックアップが完了したら、ダウンロードしたディレクトリに移動して、xsetup (2022.2はxsetup.shでした。 xsetup.exeの場合もあるようです)を実行してインストールします。

インストールが完了したら、VitisがインストールされたディレクトリでinstallLibs.shを実行すると、Vitisで使用する色々なパッケージをインストールします。

$ sudo apt update
$ sudo apt install libtinfo5      <------これがなかったらインストールの途中で止まってしまう。

$ cd /tools/Xilinx/Downloads/
$ sudo zip -r 2023.2.zip 2023.2
$ cd 2023.2
$ sudo ./xsetup
//2022.2の場合は、 $ sudo ./xsetup.sh

//installLibs.shは、/tools/Xilinx/Downloads/2023.2/ディレクトリ下で実行しなければなりません。
$ sudo /tools/Xilinx/Vitis/2023.1/scripts/installLibs.sh

インストールソフト選択

Vitisを選んで『Next』。 Vitisを選択すると、Vivado Suiteも一緒にインストールされます。(下の図は2022.2時のものですが、2023.1も同じです。)

とりあえず全てにチェックをいれて『Next』。

I Agree』に全てチェックを入れると『Next』が押せるようになるので『Next』をクリック。

そのまま『Next

で無事インストールできました。

起動方法

しかし、起動する為のアイコンが何処にも何も見つからないので起動できずに焦っていました。 いろいろ探して、Xilinxのこのページで情報を見つけて、以下のようにしたら無事起動できました。  VitisとVivadoはそれぞれ別々に起動します。   『vivado』も『vitis』もホームディレクトリで実行しないと、critical warningがでて、logファイル等が書き込めないと出てきます。

// 1. Vitisで作られてたWorkspaceディレクトリのPATHを通しておかないと行けないそうです。
// しかし、mkdirコマンドでworkspaceディレクトリを作ってはVitisに認識されません。
//  Vitisは既存のディレクトリを使わないので、workspaceディレクトリはVitisで生成します。
cd ~
$ vi .bashrc
export PATH=$PATH:/home/ichiri/workspace
$ source .bashrc

// 2.ログイン後毎回以下をしないと『vitis』コマンドを受け入れない
$ source /tools/Xilinx/Vitis/2023.2/settings64.sh
$ source /tools/Xilinx/Vitis/2023.2/.settings64-Vitis.sh
$ cd ~      //<---ホームディレクトリで実行しなければなりません
$ vitis

// 3.ログイン後毎回以下をしないと『vivado』コマンドを受け入れない
$ source /tools/Xilinx/Vivado/2023.2/settings64.sh
$ source /tools/Xilinx/Vivado/2023.2/.settings64-Vivado.sh
$ cd ~      //<---ホームディレクトリで実行しなければなりません
$ vivado

Vitis起動

立ち上がりました。 VScodeみたいに更新されましたね。

Vivado起動

//ログイン後毎回以下をしないと『vivado』コマンドを受け入れない
$ source /tools/Xilinx/Vivado/2023.2/settings64.sh
$ source /tools/Xilinx/Vivado/2023.2/.settings64-Vivado.sh
$ cd ~      //<---ホームディレクトリで実行しなければなりません
$ vivado

VivadoはWorkspaceを入れなくても立ち上がりました。 ML Editionと表示されていますね。(2023.1も2023.2も同じでした)

PetaLinuxのインストールが必要です。

おしまい。

参考サイト(自分用メモ)

今後Zynq UltraScale+を搭載したボードに、Linuxを組み込んで、pythonやNode-jsかDenoを入れてawsに接続したいので色々勉強しなければなりません。 多分以下の手順かな? どれも使ったことがなく未知の世界に突入です。 ボードはUltra96 V2です。 通常Zynq UltraScale+はチップだけ買っても数万円して、ボードは大体30万円するのですが、Ultra96 V2は5万円くいらいで安いし、色々資料もありそうなので。

  1. Vivado ML
    1. Ultra96 V2のボードサポートパッケージインストール
    2. ハードブロック生成
    3. Ultra96 V2のBSPを組み込む
    4. XSAを生成
  2. PetaLinux
    1. ここでKernel、ルートファイルシステム、initスクリプト等も作るのだと思います。
    2. 各種ブートローダ(fsbl、u-boot.img)もPetaLinuxが作ってくれる。
    3. 別途boot.scrはPetaLinuxが作ってくれる
  3. QEMU — ここまで作った内容をuBuntu PCで確認出来るらしい。
    1. XRT(Xilinx Run Time)が必要?=>Arm向け組込みLinuxには不要らしい。
  4. Vitis — 何が出来るのかまだ分っていません

SDK SDSoC

SDKやSDSoCがまだなにか分ってないけど、全部入っているみたいで良かった。

:  2019.2 のリリースより、SDK、SDSoC™ および SDAccel™ 開発環境は、アプリケーション アクセラレーションおよびエンベデッド開発をサポートする、Vitis™ 統合ソフトウェアプラットフォーム に統合されます。このため、SDK の 2019.2 以降のリリースはありません。

https://japan.xilinx.com/products/design-tools/legacy-tools/sdk.html

これらもインストールが必要かも

Adaptive SoCs & FPGA Design Tools Downloads - 2026.1
Find the latest and prior version downloads for AMD Adaptive SoC and FPGA Design Tools products.

XRT(Xilinx Run Time)とPetaLinuxのインストール

Arm向け組込みLinuxの場合XRTは不要のようです。PetaLinuxは必要です。

PetaLinuxも別途必要

まずこれをやってみる。

https://www.acri.c.titech.ac.jp/wordpress/archives/10000

次にこれ(コンテンツも日本語)

https://docs.xilinx.com/r/ja-JP/ug1400-vitis-embedded/Vitis-%E5%85%A5%E9%96%80

目次だけ日本語

https://japan.xilinx.com/support/documentation-navigation/design-hubs/dh0089-vitis-embedded.html

Linux

ZynqなどでLinuxを動かすためには、Xilinxの用意しているLinuxのソースを使う必要があります。 以下のGitHubからダウンロードできます。  branchに色々なバージョンがあります。 最初この事を知らず、Linux のオフィシャルサイトからダウンロードしていてビルドしてもZynq UltraScale+で動作せずめちゃくちゃ時間をロスしました。

GitHub - Xilinx/linux-xlnx: The official Linux kernel from Xilinx
The official Linux kernel from Xilinx. Contribute to Xilinx/linux-xlnx development by creating an account on GitHub.

Displayエラー

インストーラーを実行したとき、以下の様なエラーでインストールできない時。

ichiri@ichiri-H670:~/Downloads$ sudo ./Xilinx_Unified_2023.1_0507_1903_Lin64.bin 
Verifying archive integrity... All good.
Uncompressing AMD Installer for FPGAs and Adaptive SoCs..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
This is a fresh install.
INFO Could not detect the display scale (hDPI).
       If you are using a high resolution monitor, you can set the insaller scale factor like this: 
       export XINSTALLER_SCALE=2
       setenv XINSTALLER_SCALE 2
Authorization required, but no authorization protocol specified
Authorization required, but no authorization protocol specified
ERROR: Installer could not be started. Could not initialize class java.awt.GraphicsEnvironment$LocalGE
java.lang.NoClassDefFoundError: Could not initialize class java.awt.GraphicsEnvironment$LocalGE
	at java.desktop/java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:106)
	at java.desktop/java.awt.Window.initGC(Window.java:492)
	at java.desktop/java.awt.Window.init(Window.java:512)
	at java.desktop/java.awt.Window.<init>(Window.java:554)
	at java.desktop/java.awt.Frame.<init>(Frame.java:428)
	at java.desktop/java.awt.Frame.<init>(Frame.java:393)
	at java.desktop/javax.swing.JFrame.<init>(JFrame.java:180)
	at h.b.<init>(Unknown Source)
	at com.xilinx.installer.gui.F.<init>(Unknown Source)
	at com.xilinx.installer.gui.InstallerGUI.<init>(Unknown Source)
	at com.xilinx.installer.gui.InstallerGUI.<clinit>(Unknown Source)
	at com.xilinx.installer.api.InstallerLauncher.main(Unknown Source)

以下の2つを設定したらWelcome画面が出てきました。 下の方を入れたら解決したので、上の設定は不要かもしれませんが検証していません。

ichiri@ichiri-H670:~/Downloads$ export XINSTALLER_SCALE=2
ichiri@ichiri-H670:~/Downloads$ export DISPLAY=:10

Proxy経由でのインストール

Proxy越えの場合は、以下のエラーメッセージがでるので『Change Proxy Settings』でProxyを設定します。(Automatically Detect SettingsはFireFoxブラウザのProxy設定から読み込んでいるようです)

初期値はAutomatically Detect Settingなので、『Manual Proxy Configuration』でProxyアドレスとPortを設定して『Test Connection』をクリックする。

User Authenticationエラー

時刻がずれていたら上記のエラーで認証が通らずインストールできません。

$ date    // これでPCの時刻の確認

//もしずれていたら
$ sudo apt update
$ sudo apt install systemd-timesyncd
$ sudo apt timedatectl set-ntp true
$ sudo systemctl enable systemd-timesyncd

$ sudo vi /etc/systemd/timesyncd.conf

#NTP=  //この部分の#を削除して以下の様に設定する

NTP=ntp.nict.jp

$ sudo systemctl restart systemd-timesyncd   //これでtiemsyncd.confの設定を読み込みます

$ date     //時刻があっているか再度確認

fatal error while extracting

2023.1ではInstalling filesが4%で止まり以下のエラーとなりました。 ./xsetupをsudo無しで実行したら

コメント