ベンチマーク・クライアント (C++)

このデモでは、非同期 gRPC API を使用し、(OpenCV 依存関係を除いた) 合成データを使用してパフォーマンスをテストするベンチマーク・クライアントを提供します。

クライアントをビルドするには、このディレクトリーで make コマンドを実行します。すべての依存関係を含む ovms_cpp_benchmark という名前の Docker イメージが作成されます。

git clone https://github.com/openvinotoolkit/model_server.git
cd model_server/demos/benchmark/cpp
make

このアプリケーションは、GetModelMetadata エンドポイントをリクエストし、その情報を使用して形状と精度が一致する合成入力を準備することで、OVMS で提供される任意のモデルまたはパイプラインで使用できます。

注: このディレクトリーには、ベンチマーク・クライアントに固有のコードのみが表示されます。他の C++ デモと共有されるコードやすべてのビルド・ユーティリティーは、共通の C++ ディレクトリーに配置されます。

注: エンドポイントは動的形状を使用してはなりません。

使用例

モデルの準備

resnet50-binary モデルで OVMS を開始します。

curl -L --create-dir https://storage.openvinotoolkit.org/repositories/open_model_zoo/2022.1/models_bin/2/resnet50-binary-0001/FP32-INT1/resnet50-binary-0001.bin -o resnet50-binary/1/model.bin https://storage.openvinotoolkit.org/repositories/open_model_zoo/2022.1/models_bin/2/resnet50-binary-0001/FP32-INT1/resnet50-binary-0001.xml -o resnet50-binary/1/model.xml

サーバーの準備

docker run -d -u $(id -u):$(id -g) -v $(pwd)/resnet50-binary:/model -p 9001:9001 openvino/model_server:latest \
--model_path /model --model_name resnet --port 9001 --layout NCHW

クライアントの開始

docker run --rm --network host -e "no_proxy=localhost" ovms_cpp_benchmark ./synthetic_client_async_benchmark --grpc_port=9001 --iterations=2000 --max_parallel_requests=100 --consumers=8 --producers=1

Address: localhost:9001
Model name: resnet
Synthetic inputs:
        0: (1,3,224,224); DT_FLOAT

Running the workload...
========================
        Summary
========================
Total time: 1933ms
Total iterations: 2000
Producer threads: 1
Consumer threads: 8
Max parallel requests: 100
Avg FPS: 1034.66