我目前正在实现一个光线跟踪器。由于光线追踪的计算非常繁重,而且我无论如何都要研究CUDA编程,我想知道是否有人有将两者结合起来的经验。我真的不知道计算模型是否匹配,我想知道会发生什么。我的印象是,这并不完全是天作之合,但一个像样的速度增加总比没有强。
发布于 2008-09-02 13:54:29
这当然是可以做到的,已经做到了,并且是目前在光线跟踪和Cuda大师中的一个热门话题。我会从仔细阅读http://www.nvidia.com/object/cuda_home.html开始
但这基本上是一个研究问题。做得好的人正在从中获得同行评议的研究论文。但是,在这一点上,仍然意味着最好的GPU/Cuda结果几乎可以与CPU/多核/SSE上的同类最佳解决方案竞争。因此,我认为现在假设使用Cuda将加速光线跟踪器还为时过早。问题是,尽管光线跟踪是“令人尴尬的并行”(正如他们所说的),但它不是那种直接映射到GPU的“固定输入和输出大小”问题--您需要树、堆栈、动态数据结构等。它可以使用Cuda/GPU完成,但它很棘手。
你的问题不清楚你的经验水平或你的项目目标。如果这是您的第一个光线跟踪器,并且您只是在尝试学习,那么我会避免使用Cuda --它将花费您10倍的时间来开发,并且您可能不会获得很好的速度。如果你是一个中等经验的Cuda程序员,并且正在寻找一个具有挑战性的项目,并且光线跟踪只是一件有趣的事情,那么请尝试在Cuda中进行。如果您正在开发一个商业应用程序,并且希望获得竞争速度优势--那么,在这一点上这可能是一次失败的尝试……您可能会获得性能优势,但代价是更困难的开发和对特定硬件的依赖。
回过头来看一年,在另一代或两代GPU速度、Cuda编译器开发和研究社区经验之后,答案可能会有所不同。
发布于 2011-09-07 17:17:29
只是指向my open-source, portable (Windows/Linux) GPL implementation of a CUDA raytracer的指针。
发布于 2008-09-29 05:12:53
Nvidia在今年的NVision大会上演示了CUDA中的光线跟踪器。这是他们关于它的幻灯片的链接。
http://www.nvidia.com/object/nvision08-IRT.html
https://stackoverflow.com/questions/39473
复制相似问题