我问自己,无论是使用Nvidia CUDA还是OpenGL Shaders进行计算,这两种方法的架构优势是什么。
因此,我想确定哪个部分的应用程序可以更好地在CUDA或OpenGL上实现。
当然,如果平台依赖是没有原因的,那么通过使用CUDA可以获得更多关于线程和内存的粒度。
要使用OpenGL显示由CUDA计算的结果,您必须使用一些可能"棘手的"互操作性API。
在使用这些架构之一以及何时使用组合方法时是否有最佳实践?
答案 0 :(得分:1)
使用CUDA实现大多数渲染任务会更难实现。着色器与渲染API完全集成,例如OpenGL,以自动化并提供所有最常用和最有效的渲染几何体的工具。纹理采样和多边形光栅化等内容都内置了所有着色语言。如果你使用像CUDA这样的东西重新实现它,它不仅需要花费很长时间和精力,而且最终可能比着色器运行得慢。
在我看来,CUDA旨在使用自然可扩展的GPU以更加平行和高效的方式处理其他复杂的计算事物,如物理模拟。除此之外,对于几何体的渲染,使用像CUDA或OpenCL这样的计算框架几乎没有收获。