GPU Programming and Architecture
这里是blog搬运之后的不务正业系列第一期。在写隔壁的从零开始的DFT工程师! week7的时候感觉被文档折磨了。我一直觉得很多tutorial不是他写的质量差,而是他在讲很多内容的同时没有给我足够的时间实际操作一下这个具体是什么意思,有很多概念的堆砌,就我个人的角度来说我很难接受只是看这样的文档进行学习,感觉能让人学下去的文档必须是真的把我当傻子一样一步一步教的。我感觉我比较适合跟着一个目标做然后边做边学(最好是有能跑的源码给我壮胆)
于是关于CUDA和GPU编程的部分我选择直接跳车找课程和可学习的源码,于是我找到了这个。这个是宾大的一个计算机课程,具体应该是让学生亲自做一做GPU编程,渲染,光追之类的,感觉会是很有意义的样子,于是选择垂直入坑了。
Prerequisites
官网上写的关于这个课程的知识先决条件是图形学和渲染的知识,我确实学过我们学校的计算机图形学,但是很遗憾的是这门课开设在大三上学期,是我课程压力最大的一段时间,确实是没有学明白,实验很多也是赶着做完的,不过还好官网上有一些快速(?)上手,来帮助理解课程的相关知识。课程主页上给的主要是光追和webgpu,webgpu这个我选择用到的时候再去学(逃),现在先看一看光追。
ray tracing : in one weekend
对着敲了一遍,也是明白简单的光追原理了(大概)。这里是我对着教程敲出来的代码
另外我其实没有看github上面提供的源码,只看了提供的教程,教程中有些地方有些小小的错误:
listing 50: sqrt(p)
这里教程中写的是sqrt(p):
但是实际上根据之前写的代码应该是这样的:
也是成功跑出来几个图:


渲染这么一张图还挺久的,我最后渲染的是50采样点,感觉也得十来分钟,500采样点的估计得快一个小时。
cite: Ray Tracing in One Weekend
ray tracing : the next weekend
cite: Ray Tracing: The Next Week




