Remove unnecessary cudaDeviceSynchronize().
Pre-create threads and use semaphores for signaling.