Help us understand the problem. What is going on with this article?

Ultra96の開発環境(Vitis2019.2版)

ザイリンクス社の新しい開発ツール 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で、行っていますので、その手順を書いておきます。
他のライブラリーの場合は準備しておいてください

vitis_install.sh
    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)
がダウンロードするファイルです。
クリックすると、ログイン確認、ライセンス確認後、ダウンロードすることができます。

ウェブインストーラー

ダウンロードしたファイルを直接実行します。

install.bin
chmod 775 Xilinx_Unified_2019.2_1106_2127_Lin64.bin
./Xilinx_Unified_2019.2_1106_2127_Lin64.bin

シングルファイル

シングルファイルの場合は解凍後、実行ファイルを実行します。

install.sh
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で行いました。
その後インストールです。

xrt.deb
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

コマンドだとこんな感じです。

bdf_download.sh
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を持っている方は、ケーブルドラーバーをインストールしておいたほうが便利です。
次のようにします。

install_drives
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) を探して、ダウンロードしてください。

petalinux.run
chmod 755 petalinux-v2019.2-final-installer.run
./petalinux-v2019.2-final-installer.run /opt/petalinux

環境変数の設定

動作するときに便利のため、環境変数を.bashrcに設定します。

.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ファイルを変更をしています。

vitis_ai_install.sh
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

basaro_k
basaro_k です。こよなく、FPGAを愛して、FPGAを普及することを願っています。XILINX社公認のトレーニングトレーナーでもあり、AVNET社公認のFPGAトレーニングトレーナーでもあります。ここでは、ZYNQ、ZYNQ UltraScale+、Ultra96、Versalのことを中心に情報提供していきます。
http://www.fpga.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした