How to use GPU for inference#
Steps#
For inferencing with GPU backend, we will use the REST API to start a pipeline.
Replace the following sections in [EVAM_WORKDIR]/configs/default/config.json
with the following
Note: Follow instruction in the Prerequisite section to create a sample configuration file.
replace
"pipeline"
section with"pipeline": "{auto_source} name=source ! parsebin ! vah264dec ! vapostproc ! video/x-raw(memory:VAMemory) ! gvadetect name=detection pre-process-backend=va ! queue ! gvawatermark ! gvafpscounter ! gvametaconvert add-empty-results=true name=metaconvert ! gvametapublish name=destination ! appsink name=appsink",
In the pipeline string, we have added GPU specific elements. We will now start the pipeline with a curl request
curl localhost:8080/pipelines/user_defined_pipelines/pallet_defect_detection -X POST -H 'Content-Type: application/json' -d '{
"source": {
"uri": "file:///home/pipeline-server/resources/videos/warehouse.avi",
"type": "uri"
},
"destination": {
"metadata": {
"type": "file",
"path": "/tmp/results.jsonl",
"format": "json-lines"
}
},
"parameters": {
"detection-properties": {
"model": "/home/pipeline-server/resources/models/geti/pallet_defect_detection/deployment/Detection/model/model.xml",
"device": "GPU"
}
}
}'
Save the config.json and restart EVAM Ensure that the changes made to the config.json are reflected in the container by volume mounting (as mentioned in this document) it.
cd [EVAM_WORKDIR]/docker/
docker compose down
docker compose up
We should see the metadata results in /tmp/results.jsonl
file like in previous tutorial.