I recently did a switch from CPU to GPU. GPU can definitely help but depending on the CPU it might not be a massive decrease in processing time. Though I feel like GPU is more consistent/stable in how long it takes to analyze compared to CPU.
Setup:
CPU: Ryzen 7 1700x
GPU: Nvidia T400
Host OS: Proxmox 7.x
VM OS: Debian Bullseye (Diet-pi) Linux 5.10.0-11-amd64 #1 SMP Debian 5.10.92-1
VM CPU: EPYC 1 CPU 16 cores NUMA enabled
VM RAM: 9GB
Blueiris is running as another VM on this same host with the same CPU setup but 12GB of ram and on Windows Server 2019.
Deepstack CPU: 2022-01-01
Deepstack GPU: 2021-09-01
Docker Version: 20.10.12, build e91ed57
Nvidia Driver: 510.54
CUDA: 11.6
nvidia-container-cli: 1.8.1
The latest GPU version of deepstack does not work as of writing, it doesn't detect anything as described here -
GPU 2022.01.1 - no objects detected
When I was running on CPU, using the latest version and the environmental variable THREADCOUNT=15 most analysis would take around 500 - 900ms, with some analysis taking up to 1200ms.
Without the threadcount flag or using a previous version analysis would be in the 800 - 1800ms range.
With the GPU setup I'm seeing analysis take 500 - 600ms, sometimes it goes into the 400ms, but never over 600ms.
I've also created two deepstack instances each set for 5 on THREADCOUNT, this didn't change performance but seemed like a better use of resources.
GPU usage is usually around 50% with some peaks to 100%.
I don't send additional images, and don't send the leading image.
Images are mostly 5MP with one camera doing 3MP. No difference in analysis time between cameras.
The GPU is not used by the windows VM, or the host.