edgecortix-tile

Edgecortix Dynamic Neural Accelerator® DNA-F100

Dynamic Neural Accelerator® DNA-F100 は、Edgecortix 社が FPGA 用に開発した 1 世代目 (F シリーズ) の高性能たたみ込みニューラル ネットワーク (CNN) 推論 IP です。ストリーミング データのワークロードを超低レイテンシ、省電力、高スループットで処理できるように最適化されています。290 MHz で実行する場合、2.4Top/speak INT8 スループットを達成できます。Edgecortix 社の独自の MERA™ データフロー コンパイラを使用して、Pytorch や Tensorflow-lite などの一般的なフレームワークを使用して構築した DNN (ディープ ニューラル ネットワーク) をザイリンクスの U50/U50LV FPGA ボード上でそのまま運用できるため非常にシンプルです。

ベンダー: Edgecortix Inc

更新日: 2020 年 2 月 10 日

サイズ: 1 GB

コンテナー バージョン: f100_u50_v1.0

評価または購入

この製品を評価または購入する権限を取得します。


無償トライアルで下記のサンプル アプリケーションを実行できます。

このアプリケーションの価格プランを確認して購入します。


運用オプション

このアプリケーションはコンテナー化されており、クラウドまたはオンプレミス上で数分で簡単に実行できます。

オンプレミス
Alveo U50
製品の詳細および購入
  • ザイリンクス ランタイム: 2020.2
  • ターゲット プラットフォーム: xilinx_u50_gen3x16_xdma_201920_3

 


評価を開始する

運用方法に応じた手順に従ってください。

Alveo U50

1.

アカウント アクセス キーを取得

ユーザー認証と、ユーザー アカウントの権限に基づいてアプリケーションへのアクセスを許可するには、アクセス キーが必要です。次の手順に従って、ご自身のアカウントのアクセス キーを取得してください。

  • Xilinx App Store Portal にログインします。
  • [Manage Account] をクリックして権限を表示します。
  • 左のメニューから [Access Key] をクリックします。
  • [Create an Access Key] をクリックします。
  • 生成された「cred.json」ファイルをダウンロードします。

注記: 生成したアクセスキーで、ご自身のアカウント内のすべての権限を有効にできます。上記の「TRY OR BUY」セクションから権限を取得していない場合は、この手順を実行してからアクセス キーを生成してください。


2.

ホストを設定する

マシンにインストールされている U50 ボードが xilinx_u50_gen3x16_xdma_201920_3 シェルでフラッシュされ、 XRT 2.8.743 がインストールされていることを確認します。手順については、ザイリンクス UG1370を参照してください。

このアプリケーションは、カードがスロット「0」にあることを前提としています。また、このセクションの手順は、root ユーザーまたは sudo を使用して実行する必要があり、システムには Docker がインストールされている必要があります。


2.1 Xilinx Base Runtime 用の GitHub リポジトリを複製する

    git clone https://github.com/Xilinx/Xilinx_Base_Runtime.git && cd Xilinx_Base_Runtime

2.2 ホスト セットアップ スクリプトを実行する

    ./host_setup.sh -v 2020.2 -p alveo-u50

2.3 ターミナル ウィンドウで次のコマンドを実行して、FPGA デバイス情報をエクスポートします。

    wget https://raw.githubusercontent.com/Xilinx/Xilinx_Base_Runtime/master/utilities/xilinx_docker_setup.sh
source xilinx_docker_setup.sh

注記: docker コンテイナーのデプロイは、Ubuntu 18.04 でテスト済みです。Ubuntu のその他のバージョンや CentOS7.x/8.x でも動作する可能性はありますが、完全なテストは実施されていません。


3.

アプリケーションの実行

ターミナル ウィンドウで次のコマンドを入力して、アプリケーションを実行します。

3.1 Docker イメージを取り出す

    docker pull xilinxpartners/edgecortix_f100_time:release

3.2 Docker イメージを実行する

    docker run -it $XILINX_DOCKER_DEVICES -v /*path*/cred.json:/opt/edgecortix/cred.json xilinxpartners/edgecortix_f100_time:release /bin/bash

上記のコマンドの * path * の部分には、cred.json ファイルの正しいパスを入力してください。

コマンド引数の説明:

  • -v /*path*/cred.json:/opt/edgecortix/cred.json - Map local cred.json dir : container dir
  • $XILINX_DOCKER_DEVICES - ザイリンクス docker セットアップで設定された変数

4.

デモ サンプル

任意のニューラル ネットワークを作成してコンパイルし、それらを DNA-F200 で実行する手順の詳細は、次のアドレスから入手できます。

https://github.com/Edgecortix-Inc/dna-IP-series

たとえば、次の手順を実行して、リポジトリから入手できる Resnet 50 スクリプトをダウンロードしてコンパイルおよび実行します。

    cd /opt/edgecortix/private-tvm/apps/mera_cpp/
wget https://raw.githubusercontent.com/Edgecortix-Inc/dna-IP-series/main/example/resnet_50.py
python resnet_50.py
mkdir build
cd build
cmake ..
make
./inference ../resnet50_deploy/

5.

推論結果

次のような結果が出力されます ("Took 12.86 msec." は、エンドツーエンドの推論レイテンシを指す)。

    [22:50:16] /opt/edgecortix/private-tvm/apps/mera_cpp/inference.cpp:63: Loading json data...
[22:50:16] /opt/edgecortix/private-tvm/apps/mera_cpp/inference.cpp:69: Loading runtime module...

Found Platform
Platform Name: Xilinx
INFO: Reading /opt/edgecortix/dna.xclbin
Loading: '/opt/edgecortix/dna.xclbin'

[  info  ] 726   , DRM session 72AF1306F0B91163 created.
[22:50:19] /opt/edgecortix/private-tvm/apps/mera_cpp/inference.cpp:74: Loading parameters...
[22:50:19] /opt/edgecortix/private-tvm/apps/mera_cpp/inference.cpp:82: Loading input...
[22:50:19] /opt/edgecortix/private-tvm/apps/mera_cpp/inference.cpp:114: Warming up...
[22:50:19] /opt/edgecortix/private-tvm/apps/mera_cpp/inference.cpp:120: Running 100 times...
[22:50:20] /opt/edgecortix/private-tvm/apps/mera_cpp/inference.cpp:127: Took 12.86 msec.
[22:50:20] /opt/edgecortix/private-tvm/apps/mera_cpp/inference.cpp:47: max abs diff: 1.17549e-38
[22:50:20] /opt/edgecortix/private-tvm/apps/mera_cpp/inference.cpp:48: mean abs diff: 0
[22:50:20] /opt/edgecortix/private-tvm/apps/mera_cpp/inference.cpp:49: correct ratio: 1
[  info  ] 726   , DRM session 72AF1306F0B91163 stopped.