在高吞吐量或低时延很重要时,Xelera Decision Tree Inference 可为实时分类与回归应用提供 FPGA 加速推断(预测)。它支持随机森林、XGBoost 及 LightGBM 算法。用户首先应该使用一个所支持的框架(scikit-learn、XGBoost、LightGBM、H20.ai 和 H20 无人操作 AI)来训练自己的模型,然后通过 Python 调用 Xelera Decision Tree Inference 库来加载并运行预测。
供应商: Xelera
更新日期: 2021 年 5 月 3 日
大小: 1.25 GB
容器版本: 0.6.0b6drm
获得评估或购买此产品的权利。
您可免费试用以下示例应用。
查看和购买此应用的可用定价计划。
该应用是容器化的,可以在几分钟内轻松地在云中或本地运行。
请按照部署方法进行操作。
需要一个访问密钥来对用户进行身份验证,并根据其权限授予用户应用访问权。要获取您的帐户访问密钥,请按以下步骤操作:
注:生成的访问密钥将启用您帐户中的所有权限。如果您还没有从以上 "TRY OR BUY" 部分获取授权,请先获取授权,然后按照以下步骤生成访问密钥。
Ubuntu 16.04 /18.04 和 CentOS 7.x 上支持 Xilinx Runtime (XRT) 主机应用。支持 sudo 访问时,请使用以下命令下载并运行安装脚本:
git clone https://github.com/Xilinx/Xilinx_Base_Runtime.git
cd Xilinx_Base_Runtime
./host_setup.sh -v 2020.2
注:
支持 sudo 访问时,请使用以下命令运行实用程序脚本来安装 docker。
cd Xilinx_Base_Runtime/utilities
./docker_install.sh
在终端窗口中输入以下命令以运行该应用程序:
source Xilinx_Base_Runtime/utilities/xilinx_docker_setup.sh
Alveo U200
docker pull xilinxpartners/xelera_decision_tree_inference:alveo_u200_2020.2_0.6.0b6drm
Alveo U50
docker pull xilinxpartners/xelera_decision_tree_inference:alveo_u50_2020.2_0.6.0b6drm
Alveo U200
docker run -it --rm $XILINX_DOCKER_DEVICES --mount type=bind,source=${PWD}/cred.json,target=/opt/xelera/cred.json,readonly --name cont-decision-tree-inference xilinxpartners/xelera_decision_tree_inference:alveo_u200_2020.2_0.6.0b6drm /bin/bash .
Alveo U50
docker run -it --rm $XILINX_DOCKER_DEVICES --mount type=bind,source=${PWD}/cred.json,target=/opt/xelera/cred.json,readonly --name cont-decision-tree-inference xilinxpartners/xelera_decision_tree_inference:alveo_u50_2020.2_0.6.0b6drm /bin/bash .
命令参数描述:
$XILINX_DOCKER_DEVICES
- 由主机设置脚本设置的变量--mount
type=bind,source=${PWD}/cred.json, target=/opt/xelera/cred.json,readonly
- 映射下载的 cred.json
至容器。
按照以下说明并参考 以下文档。
/app/setup_example_flight_delay.sh
cd /app/xelera_demo/Tree-Inference/
python3 scripts/RF_scikit_flight.py --data_fpath /app/xelera_demo/data/flight-delays/flights.csv --enable_multinomial true --enable_binomial false --enable_regression false --number_of_trees 100 --num_test_samples 1000 --n_loops 1000
Alveo U200
root@5a4b0b93569c:/app/xelera_demo/Tree-Inference# python3 scripts/RF_scikit_flight.py --data_fpath /app/xelera_demo/data/flight-delays/flights.csv --enable_multinomial true --enable_binomial false --enable_regression false --number_of_trees 100 --num_test_samples 1000
Loading dataset...
sys:1: DtypeWarning: Columns (7,8) have mixed types.Specify dtype option on import or set low_memory=False.
##############################################
RF Multinomial with Numerical Features
SK multinomial: Start training ...
Model is not available, start training ...
Training_time: 3.1001360011287034 s
max nodes = 503
model conversion to .xlmodel time: 0.277881772024557 s
Starting SW inference ...
SW mse 5.862252126955988
SW error 4.034
SW accuracy score 0.486
SW predict latency (average on 1000 runs for 1000 samples): 1.20e-01 s
SW predict throughput: 8.35e+03 samples/s
SW Number of features: 10
SW Number of trees: 100
SW Number of classes: 10
[07:24:08:758][ INFO] <XlRfInference> Using device Xilinx - xilinx_u200_xdma_201830_2 [FPGA] (943bff10-53af-4378-cbc4-00efac507c87)
[07:24:09:521][ INFO] <XlRfInference> [DRMLIB] Start Session ..
[07:24:11:740][ INFO] <XlRfInference> [DRMLIB] Done.
Starting HW inference ...
HW mse 5.595176494088458
HW error 3.694
HW accuracy score 0.525
HW predict latency (average on 1000 runs for 1000 samples): 1.70e-03 s
HW predict throughput: 3.10e+06 samples/s
HW Number of features: 10
HW Number of trees: 100
HW Number of classes: 10
Alveo U50
root@8b417af2b354:/app/xelera_demo/Tree-Inference# python3 scripts/RF_scikit_flight.py --data_fpath /app/xelera_demo/data/flight-delays/flights.csv --enable_multinomial true --enable_binomial false --enable_regression false --number_of_trees 100 --num_test_samples 1000
Loading dataset...
sys:1: DtypeWarning: Columns (7,8) have mixed types.Specify dtype option on import or set low_memory=False.
##############################################
RF Multinomial with Numerical Features
SK multinomial: Start training ...
Model is not available, start training ...
Training_time: 2.8406101659638807 s
max nodes = 503
model conversion to .xlmodel time: 0.26975053607020527 s
Starting SW inference ...
SW mse 5.862252126955988
SW error 4.034
SW accuracy score 0.486
SW predict latency (average on 1000 runs for 1000 samples): 1.19e-01 s
SW predict throughput: 8.43e+03 samples/s
SW Number of features: 10
SW Number of trees: 100
SW Number of classes: 10
[07:45:41:628][ INFO] <XlRfInference> Using device Xilinx - xilinx_u50_gen3x16_xdma_201920_3 [FPGA] (16208aae-e489-4dcf-c9df-75511b767230)
[07:45:42:288][ INFO] <XlRfInference> [DRMLIB] Start Session ..
[07:45:44:287][ INFO] <XlRfInference> [DRMLIB] Done.
Starting HW inference ...
HW mse 5.595176494088458
HW error 3.694
HW accuracy score 0.525
HW predict latency (average on 1000 runs for 1000 samples): 1.87e-03 s
HW predict throughput: 3.04e+06 samples/s
HW Number of features: 10
HW Number of trees: 100
HW Number of classes: 10