开发平台(Platform): (Ex: Win10, Linux, ...)
Win10
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
Visual Studio C++
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
SFML + CUDA
问题(Question):
大家好
最近在做一些Ray Tracing的东西
本来单纯用CPU算 感觉太慢后来改试试看用Compute Shader 最近用CUDA试试看
目标是想做一个跟这个差不多的东西
https://www.youtube.com/watch?v=7gVQd4V-Q7o
他的显卡是nVidia Geforce GTX 1080 Ti (EVGA FTW3)
然后这是我自己用compute shader的范例 目前这样的FPS可接受
https://www.youtube.com/watch?v=jKEzMcknGnk&feature=youtu.be
(如果给他渲染一分钟以上会变超真实)
但是后来因为compute shader写起来维护很困难
没有物件导向的一些特性 只好转用看看CUDA
自己有抓了nVidia的官方范例照着做 (目前做到第九章 不确定该不该继续下去)
https://devblogs.nvidia.com/accelerated-ray-tracing-cuda/
作者有提到最后他自己渲染一个frame大概要花7秒钟
我自己不知道到底哪边是不是优化没做好
还是硬件就是差人一大截 FPS跟别人的都差非常多
目前只有这样
是800*800 pixels 每个pixel画50次后取平均
FPS大约只有2左右 平均一个Frame要花0.6s左右
电脑配备大概是笔电MSI GS63VR(2016)
显卡是GTX1060
基本上我是照着上面连结范例做的
不知道是否有哪些新手常犯的错误让我速度变这么慢?
想请问这样是硬件问题还是我哪边优化没做好?
我有试着找出到底哪边有问题
cudaDeviceSynchronize这个function可能会等待GPU算好后再继续CPU的工作
好像把它关掉也可以 但是跑久了好像也会怪怪的
另外自己有下载这个人的可执行档
https://www.youtube.com/watch?v=m5EDorhuFuo
跑起来也有300fps左右
就是自己做的就变超烂
不知道有没有办法隔空抓药一下?还是纯粹就笔电跟显卡不够力?
资料不确定足不足 如果需要我补充的请让我知道 谢谢