游戏时 CPU 闲置率这么高,为什么不用来辅助显卡?

2019-11-15 03:52发布

游戏时闲置率高是因为过去CPU的SIMD性能很差,导致浮点计算能力明显低于GPU,所以适合并行的负载都给了GPU,导致CPU没有太多高并行的负载,游戏较老的图形API对部署CPU进行密集计算的难度也较高,但目前CPU SIMD性能已经大幅提高,AVX/AVX2的运用已经比较成熟,凭借CPU的访存优势,其在虽然理论浮点峰值还不高的情况下,凭借更强的通用性,处理分支,逻辑与密集计算混合的负载有非常好的适应性,其实已经有越来越多的游戏在考虑使用CPU进行渲染,尤其是光线追踪这种时下比较火热的游戏技术话题,本身用于计算射线在空间中的折射,反射,吸收,每条射线可独立计算,适合,向量化等并行手段,CPU多核高SIMD支持一样能带来出色表现

Intel Embree光线追踪库已经被广泛用于渲染软件,如CineBench,blender,Vray,3DS MAX,使得其最新版本都开始支持AVX/AVX2用于电影级的每帧形式的光线追踪渲染(视实际优化而定),而游戏时实际上每帧的渲染是不需要如同电影动画那样高细节的渲染的,凭借Embree的并行化,向量化优势,CPU同样可以在渲染任务上表现出色,GPU受制于全局光照/光线追踪算法带来的随机/非连续的内存访问和不规则的计算任务分布,会使得其受制于PCIe带宽,PCIe延迟,需要远处访问DRAM等问题,实际表现并不会就一定明显强于CPU,2个8180在Intel AVX512优化的Ospray渲染器中,是可以面对2个P100甚至V100的,当然随着RTX GPU的加入,GPU势必会在这方面继续提升

但Embree的确不仅仅用于我们的电影视频的渲染器,的的确确已经开始在游戏中运用

育碧,valve已经开始使用Embree用于游戏,大量育碧游戏因此充分发挥了处理器的多线程性能,同时运用AVX/AVX2指令集,保证Intel处理器面对AVX性能较低的Zen/Zen+处理器有良好表现,比如valve的CS GO,Intel就能明显战胜AMD Zen处理器,一时被骂作A黑游戏,实际AMD Zen2提升了AVX单元后,一跃成为AMD官方首要宣传游戏,所以下次有人跟你说XX游戏没优化AMD,要想想是不是AMD本来就不行,而且CPU性能得以发挥,CS GO中500,600甚至更高帧数也是层出不穷,多核处理器表现的确提升

而最近,Intel联手坦克世界也推出了光线追踪游戏引擎

随着IceLake处理器为代表的Intel新架构处理器(包括RocketLake/TigerLake)全面支持AVX512,未来光线追踪在游戏中的表演,绝不只是GPU,其实光线追踪,渲染只是一个比较大的,能充分利用多核性能的点,未来更多的并行负载也能同时被CPU GPU支持,根据需要充分发挥用户硬件机能的做法会越来越多,越来越常见

文章来源: https://www.toutiao.com/group/6752037652792345102/