gpt4 book ai didi

performance - Haskell 中的光线追踪

转载 作者:行者123 更新时间:2023-12-04 02:36:34 24 4
gpt4 key购买 nike

我过去曾在 C++ 中使用过(非常基本的)光线追踪软件。现在想从头开始创建一个高级系统(CSG、辐射度等)。

我觉得在 Haskell 中实现它很有趣,因为我也在学习函数式编程。

性能在光线追踪算法中是一个非常重要的事实。 Haskell 程序通常比 C++ 程序慢。多少钱?这取决于上下文。

考虑到这种情况(即可能非常复杂的 RT)在 Haskell 中工作是否可行?

最佳答案

可能值得一试 Repa 的平面并行性。如果您知道自己在做什么,您可以获得相当不错的性能,但为了获得出色的性能,有时可能需要读取和检查核心输出以了解为什么没有拆箱。

不过,这取决于。如果您正在编写 C 代码以获得绝对性能,那么您很可能不会用 Repa 击败 C,因为目前别名分析似乎不是很好。但是,除非您将 C 代码手动融合到一个单一的函数中,否则我怀疑您从融合中获得的好处以及 Repa 中的“自由并行性”可能会帮助它竞争。

http://code.ouroborus.net/gloss/gloss-head/gloss-examples/raster/Ray/

http://www.youtube.com/watch?v=jBd9c1gAqWs

并且不要使用列表。如果你不想使用 Repa,我建议你使用 Data.Vector.Unboxed。

关于performance - Haskell 中的光线追踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17438375/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com