其实影视、设计行业对计算能力的要求也极高,例如场景的渲染计算、物理效果(刚体、柔体、流体、粒子、破碎等)模拟等都非常吃计算机资源,切身体验过学习摸索那些东西例如搞3D就因为计算性能限制真的苦不堪言,渲染时CPU长期满载,有时候调整一下参数看实际改变的结果就要等好久。那是几百、上千万甚至更多的多边形搞光线追踪(模拟光线的反射折射传播、光子的运动)以及4K以上分辨率的挑战。还好近年来GPU计算发展越来越快。用GPU跑那些比CPU快的多,相对就舒坦不少(更重要的是成本降低)。当然艺术方面用的是单精度浮点运算能力,科学领域用的是双精度浮点运算。
生成下面那些以假乱真的场景(都是我做着玩的,不是照片)都需要大量的计算,比玩游戏的计算量大多了。
那些好莱坞大片的炫酷场景都是一大堆渲染服务器组联网慢慢渲染的(渲染农场)。如果计算能力进一步提高,一方面可以更快更便宜的完成特效、动画制作。另一方面也能更好更真实(特别是光影和物理效果)。让预算有限的小团队小工作室也能制作出阿凡达、复仇者联盟、海王等那些大片的影视特效,有效降低科幻电影成本。顺便说一下人工智能的发展能很好的优化性能提升效率,特别是消除恼人的噪点和锯齿,不必再一味的暴力计算了,快很多。
还有大家喜闻乐见的全息显示,除了显示技术本身的挑战外对渲染能力的需求也是疯狂暴增的,毕竟真正的全息显示是同时渲染很多视角,而不是一个或两个(立体电影)。特别是用上体积像素渲染和物理模拟后更是需要难以想象的计算性能。
最后希望AMD能注重通用计算的生态建设,不要继续让老黄的CUDA垄断。这样可以用廉价点的A卡跑各种高性能计算了。现在支持A卡计算的专业软件太少了。
我有一个梦想:等以后有钱了,我要买两个超算,一个用来搞科研,一个用来暖房间。
在计算物理这样的科研领域中,处处都能看见计算力不足带来的瓶颈。
举例来说,计算物理中常见的分子动力学(Molecular Dynamics, MD)模拟方法,其底层原理是经典力学(也有基于量子力学的,这里就不展开了),牛顿爵爷几百年前就搞明白了的东西。
一个最简单经典力学问题就是抛体运动:给出初始速度抛出一个物体,求其在重力下的运动轨迹。这类问题基本上是高中难度。MD其实跟抛体问题差不多,只不过把单个物体换成了N个原子,把重力换成原子间作用力(一般当作是已知的)。给定N个原子的初速度,已知原子间的相互作用力,按牛顿运动方程一步步算出其运动轨迹就行,就这么简单。
原理虽然简单,但MD算起来却不容易,这一点往往体现在MD的计算量上。MD的计算量粗略的正比于原子步,也就是原子数N乘以模拟步数(模拟时间)。以一滴水为例,它包含约 个原子。MD每算一步大概能模拟秒,所以模拟一秒需要步。二者相乘,大约在 原子步量级。
那么,我们有多少计算力呢?不妨看看中国最快的超算太湖之光,它的浮点运算速度大约是每秒 次。乐观的假设一次浮点运算就能完成一个原子步(实际上远远不够),那么用中国最快的超算,在虚拟空间内将一滴水模拟一秒钟,至少要消耗秒的现实时间(约3171亿年)。
所以,限于有限的计算资源,多数情况下,研究人员往往只能对几十万个原子进行不到一微秒的小尺度模拟。
这样小尺度、短时间的模拟固然有其用武之处,但很多时候的却是满足不了研究需求的。例如想要模拟核辐射对材料的损伤,就得对材料进行数年的辐照模拟。类似的钢材的疲劳断裂、酸性环境对金属的腐蚀等模拟,都对时间和空间尺度有很高的要求。
用有限的计算能力来模拟尺度巨大的真实世界,必然要做很多取舍(近似),以精度换尺度。这就好比用渣像素相机拍一副精细的风景画,远看还行,放大一看全是马赛克,关键信息一个都看不清楚。
相关收藏: