Chromeで見ると画像の色合いが変なのでSafariやFirefoxで見てください。
全体の流れ
- GPU REST Engineのインストール
- GPU REST Engineの動作確認
- 前提条件
=================
- g2.2xlargeのインスタンスにログインしていること。リージョンはどこでもOK
- K520 用の NVIDIA DriverとCUDAがインストールされていること
- nvidia docker がインストールされていること
- Download GRE (GPU REST Engine)
===================================
Download
git clone https://github.com/NVIDIA/gpu-rest-engine ${HOME}
- 推論サーバの構築/起動
=====================
2.1 推論サーバの構築
buildに15分程度必要です。
ダウンロードしたディレクトリーへ移動
cd ${HOME}/gpu-rest-engine
推論サーバの構築
sudo docker build -t inference_server -f Dockerfile.inference_server .
2.2 推論サーバの起動
推論サーバの起動
sudo nvidia-docker run --name=server --net=host --rm inference_server
result-example
2016/05/06 04:30:51 Initializing Caffe classifiers
2016/05/06 04:30:54 Adding REST endpoint /api/classify
2016/05/06 04:30:54 Starting server listening on :8000
- 動作確認
==============
ここでの動作確認は推論サーバと同じマシンから、画像をアップロードして、その画像に写っている
動物を推測します。
サンプルイメージ images/1.jpg の動物を推論する
イメージ画像のPATHを決定
IMAGE="${HOME}/gpu-rest-engine/images/1.jpg"
endpointの指定
ENDPOINT="http://127.0.0.1:8000/api/classify"
変数の確認
cat << ETX
IMAGE_NAME : ${IMAGE}
END_POINT : ${ENDPOINT}
ETX
推論サーバのAPIをキック
curl -XPOST --data-binary @${IMAGE} ${ENDPOINT} | jq .
result
[
{
"label": "n02328150 Angora, Angora rabbit",
"confidence": 0.9998
},
{
"label": "n02325366 wood rabbit, cottontail, cottontail rabbit",
"confidence": 0.0001
},
{
"label": "n02326432 hare",
"confidence": 0.0001
},
{
"label": "n02085936 Maltese dog, Maltese terrier, Maltese",
"confidence": 0
},
{
"label": "n02342885 hamster",
"confidence": 0
}
]
インターネット上の画像を推論する
画像のDownload
wget http://sozaing.com/wp-content/uploads/IMG_29451-540x360.jpg -P ${HOME}/gpu-rest-engine/images
イメージ画像のPATHを決定
IMAGE="${HOME}/gpu-rest-engine/images/IMG_29451-540x360.jpg"
変数の確認
cat << ETX
IMAGE_NAME : ${IMAGE}
END_POINT : ${ENDPOINT}
ETX
推論サーバのAPIをキック
curl -XPOST --data-binary @${IMAGE} ${ENDPOINT} | jq .
result
[
{
"label": "n02325366 wood rabbit, cottontail, cottontail rabbit",
"confidence": 0.6424
},
{
"label": "n02326432 hare",
"confidence": 0.1461
},
{
"label": "n02095889 Sealyham terrier, Sealyham",
"confidence": 0.0929
},
{
"label": "n02437616 llama",
"confidence": 0.0161
},
{
"label": "n02328150 Angora, Angora rabbit",
"confidence": 0.0149
}
]
- Benchmarking
==========================
4.1 テスト用 docker container の構築
ダウンロードしたディレクトリーへ移動
cd ${HOME}/gpu-rest-engine
command
sudo docker build -t inference_client -f Dockerfile.inference_client .
4.2 テストの実行
benchmark-test
sudo docker run -e CONCURRENCY=8 -e REQUESTS=20000 --net=host inference_client
result-example
Summary:
Total: 153.6530 secs
Slowest: 0.0992 secs
Fastest: 0.0198 secs
Average: 0.0614 secs
Requests/sec: 130.1634
Total data: 6880000 bytes
Size/request: 344 bytes
Status code distribution:
[200] 20000 responses
Response time histogram:
0.020 [1] |
0.028 [0] |
0.036 [2] |
0.044 [5] |
0.052 [2] |
0.060 [548] |∎
0.067 [19139] |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
0.075 [297] |
0.083 [3] |
0.091 [2] |
0.099 [1] |
Latency distribution:
10% in 0.0610 secs
25% in 0.0612 secs
50% in 0.0614 secs
75% in 0.0616 secs
90% in 0.0619 secs
95% in 0.0623 secs
99% in 0.0691 secs
このQiitaの情報は、おいらがプライベートで作っているもので、NVIDIAとは無関係です。個人責任でお試しください。インスタンス等の消し忘れ等ご注意ください。