GPU硬核数理知识硬核知识轻聊局:从原理侃生活

GPU硬核数理知识

10分钟 ·
播放数0
·
评论数0

说话人1: 哈喽大家好,欢迎来到今天的播客。我是大壹,旁边这位是我的搭档咪仔。
说话人2: 大家好呀,今天咱们要聊个有意思的,就是藏在GPU背后的那些硬核数理知识。
说话人1: 没错,咱们平时用电脑玩游戏、剪视频,都离不开GPU,但很少有人深究背后的原理。今天就来好好盘一盘,先从大家熟悉的光线追踪开始吧。你知道光线追踪里的光线参数方程是啥意思不?
说话人2: 我知道我知道,是不是那个r(t)等于r₀加td的公式?不过我一直没太明白,你给我讲讲呗。
说话人1: 没问题。这个公式其实特别好理解,就好比你站在一个地方扔石头,你站的位置就是r₀,也就是光线的起点。d就是你扔石头的方向,比如你往东北方扔,这个方向向量就是d。t呢,就是石头飞出去的距离,t越大,石头就飞得越远,光线也就传播得越远。你看,这么一比喻是不是就清楚多了?
说话人2: 哦!原来是这样,我之前还以为有多复杂呢。那反射定律又是咋推导出来的?就是那个r_ref等于d减2倍的(d点乘n)n的公式。
说话人1: 这个也不难,咱们还是用比喻来解释。假设d是入射光线的方向,n是物体表面的法向量,就好比你把球扔到墙上,墙的垂直方向就是n。d点乘n其实就是入射光线在法向量方向上的分量,就像球撞到墙的时候,在垂直墙面方向上的速度分量。反射的时候,这个垂直分量要反向,所以得减去2倍的这个分量,这样就得到了反射光线的方向r_ref。你想想,是不是这个道理?
说话人2: 真的是!这么一解释我一下子就懂了。那路径追踪又是怎么回事?那个蒙特卡洛积分的公式看着好吓人。
说话人1: 路径追踪其实就是模拟光线在场景里反弹的过程,来计算全局光照。那个L_o等于积分f_r乘L_i乘cosθdω的公式,简单说就是把所有可能的光线反弹路径都考虑进去,然后用蒙特卡洛的方法来采样计算。就好比你在一个房间里,要计算某个点的亮度,就得考虑从各个方向过来的光线,包括直接照过来的,还有经过墙面、家具反射过来的。通过采样这些路径,就能算出这个点的最终亮度。
说话人2: 原来如此,感觉像是在给场景里的每个点都做一次全方位的光线排查。那咱们再说说DLSS吧,现在很多游戏都支持这个技术,能让游戏画质变高还不怎么掉帧。
说话人1: 对,DLSS全称是深度学习超级采样,它的核心就是那个I_H等于f_θ(I_L)的神经网络映射。简单说就是把低分辨率的画面输入到一个卷积神经网络里,然后输出高分辨率的画面。你知道4K和1080P的像素差距有多大不?
说话人2: 我大概知道一点,4K应该比1080P清楚很多,但具体差多少就不清楚了。
说话人1: 4K是3840×2160,大概有830万像素,1080P是1920×1080,大概只有207万像素。你算算,4K的像素差不多是1080P的4倍。DLSS用2倍缩放的话,渲染负荷能降低多少呢?咱们来算一下,(830 - 207)除以830,差不多是75%。也就是说,用DLSS之后,显卡只需要渲染207万像素的画面,再通过神经网络放大到830万像素,这样就能在不怎么增加显卡负担的情况下,得到接近4K的画质。
说话人2: 哇,这也太厉害了吧!那FSR呢,听说它和DLSS不一样,还兼容所有显卡。
说话人1: 没错,FSR是AMD推出的技术,全称是 FidelityFX Super Resolution。它的核心是像素插值,公式是I_H(x,y)等于求和w_i乘I_L(x_i,y_i)。简单说就是根据低分辨率画面里的像素,结合边缘信息来计算高分辨率画面的像素。它会先分析画面里的边缘,然后根据边缘的方向来计算每个像素的权重w_i,这样插出来的像素就不会有明显的锯齿,画质也能提升不少。而且它兼容所有显卡,不管是NVIDIA的还是AMD的,甚至是Intel的核显都能用,这一点比DLSS要强。
说话人2: 这么看来FSR的兼容性确实好很多,对那些用老显卡的玩家来说太友好了。那动态分辨率又是怎么回事呢?我玩游戏的时候,有时候帧率突然变低,画面就会稍微模糊一点,是不是就是动态分辨率在起作用?
说话人1: 没错,你说的就是动态分辨率。它的核心公式是k等于根号下(F_current除以F_target)。这里面的原理是因为像素数量和分辨率的平方成正比,比如分辨率变成原来的k倍,像素数量就变成原来的k平方倍。当游戏帧率降到目标帧率以下的时候,就会降低分辨率来提升帧率。比如目标帧率是60FPS,现在只有30FPS,那k就等于根号0.5,大概是0.707,这时候分辨率就会降到原来的70.7%左右,像素数量就降到了原来的50%,这样渲染时间就能减半,帧率就能拉上来。等帧率回到目标帧率以上,分辨率又会慢慢升回去。
说话人2: 原来是这样,相当于显卡在自动调节工作量,保证游戏能流畅运行。那同步技术呢,垂直同步和G-Sync我老是搞混。
说话人1: 垂直同步就是让显卡的帧率和显示器的刷新率保持同步,这样就不会出现画面撕裂的问题。它的延迟公式是t_delay等于1除以f_display,比如显示器是60Hz的,那延迟就是16.7毫秒。不过垂直同步也有个问题,就是如果显卡帧率跟不上显示器刷新率,就会出现掉帧的情况,而且延迟也会变高。G-Sync就不一样了,它是动态同步,显示器的刷新率会跟着显卡的帧率变化,显卡帧率高的时候,显示器刷新率就高,显卡帧率低的时候,显示器刷新率就低,这样就能一直保持画面流畅,还不会有画面撕裂,延迟也比垂直同步低很多。
说话人2: 哦,原来如此,G-Sync就是让显示器跟着显卡的节奏走,这样就不会出现不同步的问题了。那HDR呢,现在很多显示器都支持HDR,它和普通的SDR有啥区别?
说话人1: HDR全称是High Dynamic Range,也就是高动态范围。它的核心是色彩映射,公式是L_display等于OETF(L_linear)。OETF是光电转换函数,它能把线性的亮度值转换成符合人眼感知的非线性值。HDR10的亮度范围是0.005到1000cd/m²,动态范围是1000:1,而SDR的动态范围只有100:1。这就意味着HDR能显示更亮的高光和更暗的阴影,画面的层次感会更强,色彩也更鲜艳。比如看电影的时候,HDR能让爆炸的火光更亮,黑暗的角落也能看到更多细节。
说话人2: 听你这么一说,HDR的画质提升确实挺大的。那抗锯齿呢,MSAA这个公式我也不太懂。
说话人1: MSAA是多重采样抗锯齿,公式是I(x,y)等于1除以N乘以求和I(x_i,y_i)。简单说就是在每个像素里采样N个点,然后把这些点的颜色取平均,作为这个像素的最终颜色。比如2倍采样就是在每个像素里采2个点,4倍采样就是采4个点。这样就能减少画面里的锯齿,让画面更平滑。不过采样倍数越高,显卡的负担就越大,帧率也就越低。
说话人2: 原来如此,采样越多画质越好,但对显卡的要求也越高。那各项异性过滤又是干啥的?
说话人1: 各项异性过滤是用来提升纹理画质的,特别是当纹理和屏幕有倾斜角度的时候。它的公式是N_sample等于N_0除以cosθ,θ是纹理和屏幕的倾斜角度。当θ越大,也就是纹理越倾斜,采样的数量就越多。比如θ是60度的时候,cosθ是0.5,采样数量就会翻倍。这样就能让倾斜的纹理看起来更清晰,不会有模糊或者锯齿的情况。比如你玩游戏的时候,看地面上的砖块纹理,如果没有各项异性过滤,倾斜的砖块就会很模糊,开了之后就会清晰很多。
说话人2: 哦,原来是这样,难怪我开了各项异性过滤之后,游戏里的地面纹理看起来清楚多了。那NVENC又是啥?我只知道它是NVIDIA的编码技术。
说话人1: NVENC是NVIDIA推出的硬件编码技术,它的核心是压缩比C等于D_raw除以D_compressed,还有编码效率η等于R_encode除以P_GPU。简单说就是能把视频文件压缩得更小,同时画质损失还不大,而且还能大大降低CPU的占用率,据说能降低80%左右。比如你用OBS直播的时候,用NVENC编码的话,CPU占用就会很低,电脑就能更流畅地运行游戏和直播软件。
说话人2: 难怪现在很多主播都用NVENC编码,原来它这么好用。咱们聊了这么多GPU背后的数理知识,我突然觉得GPU真的是一个集数学、物理、计算机科学于一身的高科技产物。
说话人1: 没错,就像李坚毅博士说的那样,GPU发展是数学、物理、计算机科学多学科融合的成果。每一项技术的背后都有复杂的数理知识支撑,正是这些知识的不断进步,才让GPU的性能越来越强,画质越来越好。
说话人2: 是啊,咱们平时用GPU的时候,只知道它能让游戏更流畅、画质更好,但从来没想过背后有这么多深奥的学问。今天聊了这么多,我感觉自己对GPU的了解又深了一层。
说话人1: 我也是,每次深入了解这些技术背后的原理,都觉得特别有意思。希望今天的内容也能让大家对GPU有新的认识。
说话人2: 没错,咱们今天的播客差不多就到这里了,感谢大家的收听。
说话人1: 感谢大家,咱们下次再见。