lan*_*ndo 3 performance haskell raytracing
我以前在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.
| 归档时间: |
|
| 查看次数: |
2073 次 |
| 最近记录: |