主页 > 快资讯 > 正文

图形学人物简史:两位图灵奖与奥斯卡得主的图形学研究往事(4)

2022-08-30 17:11来源:未知编辑:admin

扫一扫

分享文章到微信

扫一扫

关注99科技网微信公众号

实时可编程着色语言

在那之后,人们试图提出实时可编程着色语言。北卡罗来纳大学教堂山分校的 Henry Fuchs 和其他人领导的团队开发了 Pixel Planes 和 Pixel Flow 架构。最早的实时着色语言之一是由 Mark Olano 和 Anselmo Lastra 在1998 年开发的,还有 Mark Peercy 在2001 年开发的一个系统。我们在 2001 年开发了一种称为“Real-time Shading Language”的着色语言。之后到 2003 年,Bill mark 和 Kurt Akeley 以及其他在英伟达工作的人做了 CG。后来,HLSL/GLSL也都在那个时候被创造出来。 我想强调的是,采用我们在软件中开发的技术并构建实现相应的硬件并非易事。这产生了一个非常重要、而且到如今我们仍然在使用的方法,即 Multipass Algorithms。你可以使用渲染系统运行一次,再运行一次,在这个过程中积累图像,然后再次运行,你可以清晰地增强图像,添加细节,添加阴影。这是一个通过图形系统运行六次不同通道来制作保龄球瓶的示例。这是 Mark Peercy和Mark Olano、Airey、Ungar 在“Interactive Muti-Pass Programmable Shading”这篇论文中提出的方法, 你可以将其看作是一个帧缓冲(framebuffer),就像寄存器或累加器一样。 你只需在它上面运行一些操作,然后添加一些内容,如 C 代表来自你正在渲染的三角形的颜色。T 代表纹理。一遍又一遍地重复这个过程,这看起来是在运行一个程序,你只是在执行这些指令,制作帧缓冲区,并计算出你想要的。这是一个非常有吸引力的想法,能够用它完全实现一种着色语言。 而与此同时,所有图形供应商都开始提出一种着色器程序(Shader Programs)的方法。这与Multipass Algorithms 不同,它并非像运行一个非常简单的指令那样,向帧缓冲区添加一些东西,而是有一个完整的运行程序,可能是一个有 128 条指令的小程序,但它会接受来自光栅化阶段的输入,在它上面运行这个程序,然后存储、输出。 结果证明,这是一个非常重要的见解。可以这样理解它,如果你使用 Multipass,就像是你在做简单的向量运算;而如果你使用着色器程序,那你就是在对输入进行非常复杂的操作。后者的好处是,与你花费的带宽量 相比,你需要做更多的算术运算。 要知道,内存带宽始终是一个限制因素。 事实证明,这是一项非常重要的创新,并且它对于开发程序至关重要,更多的图形系统采用了这种着色器程序的方法,我们称之为 “arithmetic intensity” (算术强度),即你必须做大量的计算。 这个难题的最后一小块拼图,是 GPUPU。GPUPU 并不是一个新想法,关于这方面的研究可以追溯到计算时代的起始点,是在我的研究生时期。人们多年来一直在建造并行计算机,并实现了这样一种简单的数据并行编程模型,我曾对使用该并行程 序的机器进行了编程。 关于这种并行程序的问题已经全部得到了解决。 在这种并行程序中,初始部分是一个 map (映射),它把一个函数应用到一个集合上,就像你对三角形生成的所有片段运行着色器编程,你可以将一个函数应用于片段集合。此外,还有一个 filter(过滤器),如果你有一堆东西,你可以删除其中的一些。接着是 gather(收集),给内存分配一整套地址,然后将其全部收集起来。 但是还有另外两个 GPU 不擅长的东西,即 scatter 和 reduce,是指写入一些东西到随机位置上,分散了所有的内存并缩减,这类似于对一个向量进行加和。这两个事情是相当简单的,我们可以稍微调整一下 GPU 就能做到这些事情,并进而实现一个通用的并行计算机。 这就带来了 Brooke 系统的问世,它由我的学生 Ian Buck 在 2004 年推出,后来他去了英伟达,担任 CUDA 的首席架构师。这的确只是一个很简单的想法:把 GPU 变成数据并行虚拟机,即使你不是一个图形学程序员也可以使用它。此前,人们尝试在GPUs 上运行不同的算法,必须得是一个图形学程序员才行,要想运行一个运行程序,你得渲染三角形,得学习如何使用 OpenGL 或或者 DX 之类的。 这或许就是最后一步,我们总是非常需要周期。我们需要构建并行计算机,并经过几年的时间,逐渐把它们成为通用的计算机。 另外两个我认为很重要的方面,一是特定领域的语言(domain-specific languages)。我们可以将 OpenGL 看做是一个库,就像下图中所显示的一个简单的OpenGL 程序。 但我们也可以将 OpenGL 看做是一种具有某种语法的语言。这里我写了一份关于 OpenGL 的语法。即使它只是一个库,它也很像嵌入在 C 语言中的一门小语言。如果你不遵守这个语法,它就会给你报错,甚至给你蓝屏。

99科技网:http://www.99it.com.cn

相关推荐
一分钟教你两个小妙招在线文字转语音,小白也能学会! 一分钟教你两个小妙招在线文字转语音,小白也能学会!

随着科技的不断发展,当我们面对堆积如山的文字时,我们不仅可以通过视觉观

快资讯2022-08-30

 Kura Tech用AI生成世界最高性能的AR光学 Kura Tech用AI生成世界最高性能的AR光学

2022年获得CES创新奖的一流增强现实 (AR) 智能眼镜和平台开发商Kura Technologies今天

快资讯2022-08-29

百度计算机视觉首席科学家王井东:在视觉的竞技场,研究与落地没有明显的界限 百度计算机视觉首席科学家王井东:在视觉的竞技场,研究与落地没有明显的界限

在王井东看来,百度搜索引擎、自动驾驶、智能云、小度等等不同的业务线中,

快资讯2022-08-28

机器学习方法在经济研究中的应用综述 机器学习方法在经济研究中的应用综述

机器学习方法在经济研究中的应用综述。

快资讯2022-08-28

理论计算机科学家 Boaz Barak:深度学习并非“简单的统计”,二者距离已越来越远 理论计算机科学家 Boaz Barak:深度学习并非“简单的统计”,二者距离已越来越远

本文介绍了深度学习或机器学习中的概念归纳为统计学中的词义,也引起了大多

快资讯2022-08-28

KDD最佳论文奖首次独立颁给中国内地机构!达摩院开源工作获奖,面向联邦图学习 KDD最佳论文奖首次独立颁给中国内地机构!达摩院开源工作获奖,面向联邦图学习

刚刚,KDD 2022所有奖项正式对外公布。

快资讯2022-08-28

深度学习加速技术会是AI“高度近视”的破解之法? 深度学习加速技术会是AI“高度近视”的破解之法?

数据精度、存储空间、处理速度,发展AI必须三者共同进步。

快资讯2022-08-25

物理学家用AI改写教科书!质子中发现新的夸克,可能性高达99.7% 物理学家用AI改写教科书!质子中发现新的夸克,可能性高达99.7%

用机器学习搞出的新发现,要改写物理教科书了?

快资讯2022-08-24

如何科学救助野生动物? 如何科学救助野生动物?

救助野生动物往往具有应急工作特征,我们需要扮演好野生动物的急救医生等角

快资讯2022-08-15

让联邦学习从可用到好用!阿里开源最新隐私保护计算框架FederatedScope 让联邦学习从可用到好用!阿里开源最新隐私保护计算框架FederatedScope

5月5日,阿里巴巴达摩院发布新型联邦学习框架FederatedScope,该框架支持大规模

快资讯2022-08-15