图形学人物简史:两位图灵奖与奥斯卡得主的图形学研究往事(10)
2023-04-26 来源:飞速影视
在这种并行程序中,初始部分是一个 map (映射),它把一个函数应用到一个集合上,就像你对三角形生成的所有片段运行着色器编程,你可以将一个函数应用于片段集合。此外,还有一个 filter(过滤器),如果你有一堆东西,你可以删除其中的一些。接着是 gather(收集),给内存分配一整套地址,然后将其全部收集起来。
但是还有另外两个 GPU 不擅长的东西,即 scatter 和 reduce,是指写入一些东西到随机位置上,分散了所有的内存并缩减,这类似于对一个向量进行加和。这两个事情是相当简单的,我们可以稍微调整一下 GPU 就能做到这些事情,并进而实现一个通用的并行计算机。
这就带来了 Brooke 系统的问世,它由我的学生 Ian Buck 在 2004 年推出,后来他去了英伟达,担任 CUDA 的首席架构师。这的确只是一个很简单的想法:把 GPU 变成数据并行虚拟机,即使你不是一个图形学程序员也可以使用它。此前,人们尝试在GPUs 上运行不同的算法,必须得是一个图形学程序员才行,要想运行一个运行程序,你得渲染三角形,得学习如何使用 OpenGL 或或者 DX 之类的。
这或许就是最后一步,我们总是非常需要周期。我们需要构建并行计算机,并经过几年的时间,逐渐把它们成为通用的计算机。
另外两个我认为很重要的方面,一是特定领域的语言(domain-specific languages)。我们可以将 OpenGL 看做是一个库,就像下图中所显示的一个简单的OpenGL 程序。
但我们也可以将 OpenGL 看做是一种具有某种语法的语言。这里我写了一份关于 OpenGL 的语法。即使它只是一个库,它也很像嵌入在 C 语言中的一门小语言。如果你不遵守这个语法,它就会给你报错,甚至给你蓝屏。所以 OpenGL 实际上是一种嵌入式的、特定领域的语言。
这意味着什么呢?我教授图形学,我可以在一周或两周内就能教会人们使用 OpenGL 系统。所以它非常容易使用,你无需了解任何有关英伟达硬件的知识,而且超级便携,能在每个人的 GPU 上运行,且速度非常快,渲染速度也快得令人难以置信。
本站仅为学习交流之用,所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制、上传
若本站收录的节目无意侵犯了贵司版权,请发邮件(我们会在3个工作日内删除侵权内容,谢谢。)
www.fs94.org-飞速影视 粤ICP备74369512号