Remove temporary objects and use PyCUDA DeviceMemoryPool