使用CUDA实现处理图像,是用Python(pycuda)还是C++?
我正在做一个项目,目的是用CUDA处理一张图片。这个项目其实就是对图片进行加法或减法操作。
我想请教一下大家,你们觉得哪种方法更好?这两种方法各自有什么优缺点呢?
非常感谢大家的意见和建议,因为这个项目对我来说非常重要。
4 个回答
2
看看openCV吧,它里面有很多处理图像的功能,还有一些工具可以帮助你加载、保存和显示图片,以及操作摄像头。
现在它还支持CUDA,这意味着一些图像处理的功能已经用CUDA重新实现了,这样你就可以在这个基础上自己做一些东西了。
3
如果你的其他程序都是用Python写的,并且已经在用Numpy来加速处理,那么pyCUDA可以作为一个很好的补充,帮助你加快一些耗时的操作。不过,根据你处理的图像大小和程序的运行方式,使用pyCUDA可能不会让你感受到太大的速度提升。因为在数据通过PCI总线传输时会有延迟,只有在处理大数据时,这种延迟才会被弥补。
在你的情况(加法和减法)中,pyCUDA里有一些内置的操作可以帮助你。不过,根据我的经验,如果你想用pyCUDA做一些复杂的事情,你需要先了解CUDA是怎么工作的。对于完全没有CUDA知识的人来说,学习pyCUDA可能会有点难。
6
一般来说:其实没什么关系。用你更熟悉的语言就好。
不过要记住,pycuda只是对CUDA C接口的一个封装,这意味着它可能不是最新的,而且可能会引入一些新的错误,……
Python在快速开发方面非常出色,所以我个人推荐使用Python。如果以后需要的话,你随时可以切换到C++。