cudaMalloc failed when GPU passthrough by qemu

I try to perform the experiment about GPU passthrough by qemu. Start VM and find cudaMalloc failed on error 46(CUDA_ERROR_DEVICE_UNAVAILABLE) without setting -cpu host. After setting -cpu host, cuda can run normally.
Why GPU passthrough must set -cpu host to run cuda API like cudaMalloc?