Xilinx is now part ofAMDUpdated Privacy Policy

This apps is Japan technology.

Ethernet KVS by Axonerve

Key Value Store (KVS) is a valid technique in systems such as telecommunications directories, IP transfer tables, and deduplication storage systems. In this time, we present an example of Accelerated KVS system by Alveo U50 with a lookup engine called ”Axonerve”.

Vendor: Axonerve by Nagase

Last Update: November 16 , 2020

Size: N/A

Container Version: kvsimage_u50_v1.0

Try or Buy

Obtain an entitlement to evaluate or purchase this product.

Begin a free trial and run the application example below.

View and purchase available pricing plans for this application.

Deployment Options

This application is containerized and can be easily run in a few minutes in the cloud, or on-premises.

On Premises
Alveo U50
View & Buy Product
  • Xilinx Runtime: 2020.1
  • Target Platform: Xilinx_u50_xdma_201920_3

Start Free Evaluation

Follow the instructions based on your deployment method.

Alveo U50


Obtain an Account Access Key

An access key is required to authenticate a user and grant them access to the application based on their entitlements.  To obtain your account access key, follow these steps:

  • Login to the Xilinx App Store Portal
  • Click the button labeled "Manage Account" to view entitlements.
  • Click the "Access Key" link on the left side menu
  • Click the "Create an Access Key" button.
  • Download the resulting file "cred.json" to the location ABC

Note:  The resulting access key will enable all entitlements within your account.  If you have not yet obtained entitlements from the "TRY OR BUY" section above, you must do so before following these steps for generating your access key.


Host Setup

The Xilinx Runtime (XRT) host application is supported on Ubuntu 16.04 /18.04 and CentOS 7.x.  With sudo access, use the following command to download and run the setup script:


Server & Client Machine Preparation

This application is a client-server model. Prepare two different PCs, one for the server machine where the U50 is installed and KVS application runs, and one for the client machine from where you can try accessing to the server using KVS utility scripts. Connect the U50 of the server to the client via 100Gb Ethernet cable. You may need additional hardware parts to use 100Gb Ethernet such as 100GbE transceivers, a 100GbE NIC for the client PC and so on.


Server Setup

The Xilinx Runtime (XRT) host application is supported on Ubuntu 16.04/18.04 and CentOS 7.x. With sudo access, use the following command to download and run the setup script for the server machine.

4.1 Clone GitHub Repository for Xilinx Base Runtime

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

4.2 Clone GitHub Repository for Xilinx Base Runtime

    ./host_setup.sh –v 2020.1


  • Please wait for the installation to complete.  During this time you may need press [Y] to continue the host setup.
  • If you choose to flash the FPGA, you will need to cold reboot the local machine after the installation is completed to load the new image on the FPGA.
  • The script for host setup can be used to setup other versions XRT and shell. Please check https://github.com/Xilinx/Xilinx_Base_Runtime for more details.

Install Docker (If not installed yet)

With sudo access, use the following command to run the utility script to install docker.

4.3 Go to Xilinx_Base_Runtime utilities directory

    cd Xilinx_Base_Runtime/utilities

4.4 Run the Docker installation script



Server Application Execution

Enter the following commands in a terminal window on the server machine to run the server application:


5.1 Setup Environment Variables by script from Xilinx_Base_Runtime

    source Xilinx_Base_Runtime/utilities/xilinx_docker_setup.sh

5.2 Pull the Sever Docker Image

    docker pull xilinxpartners/axonerve_kvs:alveo_u50

5.3 Run the Server Docker Image

Enter the following command in the terminal window to run the docker image in interactive mode. The container automatically starts the session to activate the KVS server application on the FPGA board. When you want to stop the session, press any key according to the message from the container.

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

Description of command arguments:

  • -v local_path_to_cred.json:/cred.json - Map local cred.json dir : container dir
  • $XILINX_DOCKER_DEVICES – Variables set by the server setup script


Client Application Execution

Once the server application starts on the server machine, the KVS server is ready to respond to queries from the client machine. Enter the following commands in a terminal window on the client machine to use the KVS utility scripts.

6.1 Install Docker (If not installed yet)

Install Docker in the client machine, referring to the server setup above..

6.2 Pull the Client Docker Image

    docker pull xilinxpartners/axonerve_kvs_client_software

6.3 Run the Client Docker Image

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

6.4 Run the KVS utility scripts

Python3-based utility scripts and a set of performance checker application sources are available in /software directory.

KVS utility scripts

Python users can use raw_axonerve_util.py as a library. Please see raw_axonerve_se.py, raw_axonerve_we.py, and raw_axonerve_reset.py to know how to use it.

For example, try running the following command on the client docker container:

    cd /software; python3 raw_axonerve_util.py NIC_device_name


Description of command arguments:

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

Performance checker

Axonerve in this reference can handle queries up to 200M queries/sec, theoretically. Due to 100GbE limits, the maximum performance is about 190M queries/sec. To measure the performance, refer to the C program perf_check.c.

    cd /software; make; ./perf_check