SmallPtAMP: C++ AMP implementation of SmallPt / SmallPtGPU
2013-06-17 21:11
435 查看
前段时间突然对SmallPtGPU很感兴趣,于是自己也照葫芦画瓢搞了一个C++AMP的版本,整体跟SmallPtGPU基本相同,但是去掉了SmallPtGPU中显式计算直接光照的步骤,因而实现更加接近原始的99line CPU版本。
下图为初步的实现效果,还有相当多的地方需要完善,甚至连交互都没做,权且一看吧。
值得一提的是C++ AMP的性能非常之高,在我手头三台机器上(GTX 680, GTX TITAN, HD5870)使用同样设置均跑出了接近原始OpenCL版本1.5倍的Sampling Rate,去掉显式直接光照计算后Sampling Rate更是上升到3倍之多,这一点让人颇为惊讶,在N卡上还好解释,因为传言N的OCL驱动一直很渣,但在A卡上仍然类似结果就有些难以理解了,想来想去,也许(or只能)跟C++ AMP中的fast_math库有关系吧。
附带上原始版本的链接:
SmallPtGPU链接:http://davibu.interfree.it/opencl/smallptgpu/smallptGPU.html
99Lines SmallPt链接:http://www.kevinbeason.com/smallpt/#ports
个人的C++AMP实现:TODO。。。(待完善后再来献丑)
下图为初步的实现效果,还有相当多的地方需要完善,甚至连交互都没做,权且一看吧。
值得一提的是C++ AMP的性能非常之高,在我手头三台机器上(GTX 680, GTX TITAN, HD5870)使用同样设置均跑出了接近原始OpenCL版本1.5倍的Sampling Rate,去掉显式直接光照计算后Sampling Rate更是上升到3倍之多,这一点让人颇为惊讶,在N卡上还好解释,因为传言N的OCL驱动一直很渣,但在A卡上仍然类似结果就有些难以理解了,想来想去,也许(or只能)跟C++ AMP中的fast_math库有关系吧。
附带上原始版本的链接:
SmallPtGPU链接:http://davibu.interfree.it/opencl/smallptgpu/smallptGPU.html
99Lines SmallPt链接:http://www.kevinbeason.com/smallpt/#ports
个人的C++AMP实现:TODO。。。(待完善后再来献丑)
相关文章推荐
- C++ AMP implementation of SmallPt / SmallPtGPU : SmallPtAMP
- A design & implementation of reflection in C++
- A design & implementation of reflection in C++
- kingofark's Ineffective C/C++:低手自序
- kingofark's Ineffective C/C++:低手自序
- 论文一篇:DESIGN & IMPLEMENTATION OF A RELIABLE MULTICAST PROTOCOL
- C&C++学习笔记1--The seven steps of programming
- MPI编译C++程序出现#error "SEEK_SET is #defined but must not be for the C++ binding of MPI" 的解决方法
- kingofark's Ineffective C/C++:自白2:有符号、无符号还有位运算,我的天!
- kingofark's Ineffective C/C++:自白2:有符号、无符号还有位运算,我的天!
- (c++) Passing `const' as `this' argument of `' discards qualifiers
- MPI编译C++程序出现#error "SEEK_SET is #defined but must not be for the C++ binding of MPI" 的解决方法
- Fast implementation/approximation of pow() function in C/C++
- C++ difference of keywords 'typename' and 'class' in templates
- kingofark's Ineffective C/C++:低手自序
- Effective C++ Item 34 Differentiate between inheritance of interface and inheritance of implementation
- kingofark's Ineffective C/C++:自白1:返回值的运用
- GPU computing to C++ with C++ AMP
- An implementation of the skip list data structure written in C++
- 【poj 3083】Children of the Candy Corn 中文题意&题解&代码(C++)