In Python, I think it should look like this (though we have not wrapped itk.GPUImage):
PixelType = itk.ctype('float')
image = itk.imread('myfile.nrrd', PixelType)
GPUImageType = itk.GPUImage[PixelType, image.GetImageDimension()]
gpu_filter = itk.GPUImageToImageFilter[type(image), GPUImageType].New()
gpu_filter.SetInput(image)
gpu_filter.Update()
gpu_image = gpu_filter.GetOutput()
# Transfer from GPU memory to CPU memory if needed
gpu_image.UpdateBuffers()
# Since itk::GPUImage inherits from itk::Image, use it in parent filters
or, in ITK 5 syntax,
image = itk.imread('myfile.nrrd')
gpu_image = itk.gpu_image_to_image_filter(image)
So, the itk::CudaImage
could be wrapped in a similar way…