Axonerve

このアプリは、日本のテクノロジーです。

Axonerve による Ethernet KVS

KVS (Key Value Store)は、電気通信ディレクトリ、IP 転送テーブル、重複排除ストレージ システムなどで有効なデータ管理手法です。今回は、ルックアップ エンジンを備えた AlveoU50 で高速化を実現した KVS システムの例として「Axonerve」を紹介します。

ベンダー: Axonerve by Nagase

更新日: 2020 年 11 月 16 日

サイズ: N/A

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

評価または購入

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


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

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


運用オプション

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

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

評価 (無償) を開始

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

Alveo U50

1.

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

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

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

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


2.

ホストを設定する

Xilinx Runtime (XRT) ホスト アプリケーションは、Ubuntu 16.04 /18.04 および CentOS 7.x でサポートされています。sudo アクセスが許可されている状態で、次のコマンドを使用して、セットアップ スクリプトをダウンロードして実行します。

3.

サーバーおよびクライアント マシンの準備

このアプリケーションは、クライアント/サーバー モデルです。PC を 2 つ準備します。1 つは U50 をインストールした KVS アプリケーションを実行するサーバー マシン用の PC です。もう 1 つは、KVS ユーティリティ スクリプトを使用してサーバーへアクセスするためめのクライアント マシン用の PC です。100Gb イーサネット ケーブルを使用して、サーバーの U50 をクライアントへ接続します。100Gb イーサネットを使用するには、100GbE トランシーバーやクライアント PC 用の 100GbE NIC など、ハードウェア機能の追加が必要になる場合があります。


4.

サーバー セットアップ

XRT (Xilinx Runtime) ホスト アプリケーションは、 Ubuntu 16.04 /18.04 および CentOS 7.x でサポートされています。sudo アクセスが許可されている状態で、次のコマンドを使用してサーバー マシン用のセットアップ スクリプトをダウンロードして実行します。


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

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

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

    ./host_setup.sh –v 2020.1


注記:

  • インストールが完了するまで待機します。途中、ホスト セットアップを継続させるために [Y] をクリックする必要がある場合があります。
  • FPGA フラッシュを選択した場合は、FPGA に新しいイメージを読み込むためにはインストール完了後にローカル マシンをコールド リブートする必要があります。
  • ホスト セットアップ用のスクリプトを使用して、ほかのバージョンの XRT やシェルをセットアップできます。詳細は、https://github.com/Xilinx/Xilinx_Base_Runtime をご覧ください。

ドッカーをインストールする (まだインストールしていない場合)

sudo アクセスが許可されている状態で、次のコマンドを使用してユーティリティ スクリプトを実行してドッカーをインストールします。


4.3 Xilinx_Base_Runtime ユーティリティ ディレクトリへ移動する

    cd Xilinx_Base_Runtime/utilities

4.4 Docker インストレーション スクリプトを実行する

    ./docker_install.sh

6.

サーバー アプリケーションの実行

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

 


5.1 Xilinx_Base_Runtime のスクリプトで環境変数をセットアップする

    source Xilinx_Base_Runtime/utilities/xilinx_docker_setup.sh

5.2 Sever Docker イメージを取り出す

    docker pull xilinxpartners/axonerve_kvs:alveo_u50

5.3 Server Docker イメージを実行する

ターミナル ウィンドウで次のコマンドを入力して、インタラクティブ モードでドッカー イメージを実行します。コンテナーが自動的にセッションを開始して、FPGA ボード上の KVS サーバー アプリケーションを起動します。セッションを停止する場合は、コンテナーからのメッセージに従ってキーを押してください。

    docker run –it -v local_path_to_cred.json:/cred.json $XILINX_DOCKER_DEVICES xilinxpartners/axonerve_kvs:alveo_u50:latest


コマンド引数の説明:

  • -v local_path_to_cred.json:/cred.json - Map local cred.json dir : コンテナー ディレクトリ
  • $XILINX_DOCKER_DEVICES - ホスト セットアップ スクリプトで設定された変数

6.

クライアント アプリケーションの実行

サーバー マシン上でサーバー アプリケーションが起動すると、KVS サーバーはクライアント マシンからのクエリに応答する準備が整います。クライアントのターミナル ウィンドウで次のコマンドを入力して、KVS ユーティリティ スクリプトを使用します。


6.1 Docker をインストールする (まだインストールしていない場合)

上記の 「サーバー セットアップ」 を参照して、クライアント マシンにドッカーをインストールする


6.2 Client Docker イメージを取り出す

    docker pull xilinxpartners/axonerve_kvs_client_software

6.3 Client Docker イメージを実行する

    docker run -it --net=host xilinxpartners/axonerve_kvs_client_software:latest

6.4 KVS ユーティリティ スクリプトを実行する

Python3 ベースのユーティリティ スクリプトと一連のパフォーマンス チェッカー アプリケーションのソースは、/software ディレクトリから入手できます。

KVS ユーティリティ スクリプト

Python ユーザーは、raw_axonerve_util.py をライブラリとして使用できます。使用方法については、raw_axonerve_se.py、raw_axonerve_we.py、および raw_axonerve_reset.py を参照してください。

たとえば、クライアントのドッカー コンテナーで次のコマンドを実行してください。

    cd /software; python3 raw_axonerve_util.py NIC_device_name

 

コマンド引数の説明:

  • NIC_device_name – 100GbE NIC name. e.g. enp1s0f0

パフォーマンス チェッカー

理論上、このリファレンスの Axonerve は 1 秒間に最大 2 億のクエリを処理できますが、100GbE によって制限されるため、実際の最大性能は約 1 億 9000 万クエリ/秒となります。性能を測定する場合は、C プログラムの perf_check.c を使用してください。

    cd /software; make; ./perf_check