#ザイリンクス社の新しい開発ツール Vitis 2019.2
ザイリンクス社から、新しい開発ツールが、2019年10月に発表されました。
隠れた目標は、ソフトウェア技術者にもFPGAを使ってもらおう。ということです。
Ultra96もソフトウェア技術者に対して、使ってもらおうという意図がありますので、
今回は新しい開発ツールのご紹介と、その特徴、インストールの特徴を記述したいと思います。
##Vitis の特徴
Vitis(ヴィティス)は、ソフトウェア開発のように、FPGAを使ってもらおうというために開発されました。
簡単なプラットフォームを用意する必要があるのですが、プラットフォームさえ用意すれば、FPGAの設計の
ほとんどを、Vitisのみで、設計できます。
あらかじめ、ザイリンクスが設計資産を用意してくれることで、ライブラリーを使う感覚で、FPGA設計ができるとともに、
HDL(ハードウェア記述言語)を使ったきめ細かい設計を、同じツールでできるのも特徴です。
そのため、大まかなところを、ソフトウェアで設計をして、動作確認をしたあと、速度的に速くしたいところを、
ピンポイント的に、調整をすればいいので、システム設計のバランスが取りやすく、全体的な設計時間の大幅な短縮も期待できます。
2020年1月現在、まだプラットフォームの供給が、十分でなく、ザイリンクス社のボードのみになっています。
そのため、Ultra96を含む他のボードはVitis用プラットフォームを作成をする必要があります。
ここでは、その対象として、プラットフォームを作成できるレベルで、開発環境を整えていきます。
##必要な開発環境
Ultra96を開発するためのFPGA開発環境は次のLinux環境が必要です。
- Red Hat Enterprise Workstation/Server 7.4、7.5、7.6 (64 ビット)
- CentOS 7.4、7.5、7.6 (64 ビット)
- Ubuntu Linux 16.04.5 LTS, 16.04.6 LTS, 18.04.1 LTS, 18.04.2 LTS (64 ビット)
この辺はザイリンクス社のリファレンスガイドがバージョン毎に出ているので、確認してみてください。
RedHatは、有償ですが各種サポートが期待できます。
CentOSは、RedHatの無償版として、公開されています。
Ubuntuは、Linuxの中で現在一番人気があります。無償です。
メモリー要件も厳しく、Ultra96向けで32GB要求されます。ただ、16GBでも制限はありますが、開発はできます。
HDD(またはSSD)は、100GBのスペースが必要となります。
Linuxを動作させる方法としては、
1:すべてLinuxマシーンにする。 Linuxしか使えなくなります。
2:デュアルブートにする。 両OSを共存できます。インストールの時に、デュアルブートを選択できます。
3:仮想環境を使う Windowsまたは、MacOS上に、仮想環境のツールをインストールして、その中にLinuxを入れる方法です。Oracl VM VirtualBOXなど有名です。
とありますが、AIを使いたい人は、GPUが必要となりますので、3の仮想環境は選択筋から外れます。
Linuxをインストールする方法は、他のホームページにもいろいろ書いてありますので、参照していただければと思います。
また、AIを使いたい人はDockerという、仮想環境が更に必要になります。
##インストール方法
2019.1までは、開発ツールは選択できましたが、Ultra96をVitisで選択する場合はほぼ、選択筋がなくなります。
インストールするためには予めいくつかのライブラリーが必要となります。
###事前ライブラリーの準備
Linuxの場合、事前にライブラリーのインストールが必要となります。
私の場合はubuntuで、行っていますので、その手順を書いておきます。
他のライブラリーの場合は準備しておいてください
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install apt-utils libc6:i386 libncurses5:i386 libstdc++6:i386 g++-multilib libgtk2.0-0:i386 dpkg-dev:i386 libxtst6:i386 default-jre unzip net-tools libtext-csv-perl libcanberra-gtk-module libcanberra-gtk3-module lsb-core opencl-headers ocl-icd-opencl-dev ocl-icd-libopencl1 wget -y
sudo apt install tofrodos iproute2 gawk make net-tools locales cpio libncurses5-dev libssl-dev flex bison libselinux1 gnupg wget diffstat chrpath socat xterm autoconf libtool tar unzip texinfo zlib1g-dev gcc-multilib build-essential libsdl1.2-dev libglib2.0-dev screen pax gzip xvfb tftpd tftp libtool-bin default-jre -y lsb-release zlib1g:i386 git python-dev
sudo locale-gen en_US.UTF-8
sudo ln -s /usr/bin/make /usr/bin/gmake
###Vitisのインストール
https://japan.xilinx.com/support/download/index.html/content/xilinx/ja/downloadNav/vitis.html
の中にある、Vitis コア開発キット - 2019.2 をダウンロードしてください。アップデートは不要です。
ザイリンクス統合インストーラー 2019.2: Linux 用自己解凍型ウェブ インストーラー (BIN - 115.4MB) または、
ザイリンクス Vitis 2019.2:すべての OS インストーラー シングルファイル ダウンロード (TAR/GZIP - 30.76 GB)
がダウンロードするファイルです。
クリックすると、ログイン確認、ライセンス確認後、ダウンロードすることができます。
####ウェブインストーラー
ダウンロードしたファイルを直接実行します。
chmod 775 Xilinx_Unified_2019.2_1106_2127_Lin64.bin
./Xilinx_Unified_2019.2_1106_2127_Lin64.bin
####シングルファイル
シングルファイルの場合は解凍後、実行ファイルを実行します。
tar xzvf Xilinx_Vitis_2019.2_1024_1831.tar.gz
cd Xilinx_Vitis_2019.2_1024_1831
./xsetup
インストール途中でいろいろ聞いてきます。
ほとんどそのままで大丈夫だと思います。
ポイントは、
ウェッブインストーラーの場合は、ザイリンクスのIDとパスワードは必要です。入力してください。
3つのラインセンスの許可を聞いてきます。 3つともチェックを入れて、次に入れてください。
ツールの選択はVitisでおねがいします。
ツールとデバイスの選択がありますが、使用するデバイスにかかわらず、そのままにしてください。
ディスク容量を少なくするため、チェックを外したいと思いましたが、現在のバージョンではそれでは動かないことがわかっています。
インストール終了までは時間がかかります。気長に待ってください。
###XRT(ザイリンクスランタイム)
https://www.xilinx.com/html_docs/xilinx2019_2/vitis_doc/Chunk1858803630.html#ariaid-title3
からダウンロードします。
OS別に分かれていまして、そのバージョンでダウンロードしてください。
私の場合は、Ubuntu18.04で行いました。
その後インストールです。
wget https://www.xilinx.com/bin/public/openDownload?filename=xrt_201920.2.3.1301_18.04-xrt.deb -O xrt_201920.2.3.1301_18.04-xrt.deb
sudo apt install ./xrt_201920.2.3.1301_18.04-xrt.deb -y
###ボードファイル
Ultra96の場合、予めボードファイルを準備しておくと、便利です。
ダウンロードは次のところです。
https://github.com/Avnet/bdf/archive/master.zip
unzip master.zip 等で、解凍後、bdf-master以下のディレクトリーを次のところにコピーします。
/tools/Xilinx/Vivado/2019.2/data/boards/board_files
コマンドだとこんな感じです。
wget https://github.com/Avnet/bdf/archive/master.zip
unzip master.zip
cp -rf bdf-master/* /tools/Xilinx/Vivado/2019.2/data/boards/board_files
###ケーブルドライバーのインストール
Vitisをインストール後、USB-JTAG Podを持っている方は、ケーブルドラーバーをインストールしておいたほうが便利です。
次のようにします。
cd /tools/Xilinx/Vivado/2019.2/data/xicom/cable_drivers/lin64/install_script/install_drivers
sudo ./install_drivers
###Petalinuxのインストール
ザイリンクス社が提供している、Linuxの開発ツールです。ホストはLinuxのみ対応です。
ザイリンクスのFPGAに搭載されている、CPUに対して、Linuxに必要なカーネルなどのビルドシステムを提供しています。
少ないコマンドでビルドできるのが特徴です。
全体として、CUI(コマンドライン、ターミナル)での実行になります。GUIはありません。
また、Vitisプラットフォームを作成するにあたって、必要なファイルを作成してくれるため、必須になってきました。
ファイルは次のところからダウンロードします。
https://japan.xilinx.com/support/download/index.html/content/xilinx/ja/downloadNav/embedded-design-tools.html
PetaLinux 2019.2 インストーラ (TAR/GZIP - 7.92GB) を探して、ダウンロードしてください。
chmod 755 petalinux-v2019.2-final-installer.run
./petalinux-v2019.2-final-installer.run /opt/petalinux
###環境変数の設定
動作するときに便利のため、環境変数を.bashrcに設定します。
sudo echo "source /tools/Xilinx/Vitis/2019.2/settings64.sh " >> ~/.bashrc
sudo echo "source /tools/Xilinx/Vivado/2019.2/settings64.sh " >> ~/.bashrc
sudo echo "source /opt/xilinx/xrt/setup.sh " >> ~/.bashrc
sudo echo "source /opt/petalinux/settings.sh " >> ~/.bashrc
##Vitis AIをやりたい場合
Vitisを始める方に取っては、Vitis AIをやりたいと思っている方も多いと思います。
Vitis AIは別ツールと思ってほうがいいです。
Vitis AIを使用するには、Dockerという仮想環境が必要になります。
Dockerの準備は別のページに任せてしまいますが、必要に応じてインストールしてください。
GPUを動かしたい方は、NVIDIA Dockerも必要となります。
ザイリンクスも次のページでもDockerのインストール手順が書かれています。
https://github.com/Xilinx/Vitis-AI/blob/master/doc/install_docker/README.md
Vitis AIはGitで公開されています。
次の順番で実行すれば、必要なファイルをすべてダウンロードすることができます。
AIモデルも入っていますので、このままやると、かなり容量が消費します。必要ない方は、AI-Model-Zoo以下は
実行しなくても大丈夫です。
また、Dokcerファイルに、一部バグがありましたので、ダウンロード後、Dockerファイルを変更をしています。
git clone https://github.com/Xilinx/Vitis-AI.git
cd Vitis-AI
cd docker
mv Dockerfile.gpu Dockerfile.gpu.bak
cat Dockerfile.gpu.bak | sed -e 's/python=3.6 caffe_decent_gpu /python=3.6 protobuf=3.10.1 caffe_decent_gpu /g' -e 's/-runtime-/-devel-/g'> Dockerfile.gpu
./docker_build.sh
cd ..
cd AI-Model-Zoo
chmod 775 get_model.sh
./get_model.sh
##次回以降
以上で、インストールは終わります。
Vitisを使うにはプラットフォームを作る必要がありますので、
次回はUltra96向けプラットフォームの作り方を公開する予定です。
##参考文献
Vitis 2019.2 Software Platform Release Notes
PetaLinux Tools Documentation Reference Guide