顺便研究了一下,4090为啥效率衰减比较大:

这个表列出的是Culling之后的多边形吞吐率,Culling掉的多边形可以不消耗光栅器来处理,所以每周期的吞吐率可以超过GPC数量。
从图中可以看到从4070TI到2080,都和SM数量正相关。
但是4090显然被别的地方限制住了,吞吐率仅仅和4070TI相当。
用nSight Graphic观察了一下,它在流水线最前端的图元分配器上被卡住了,也就是在Input Assembly这里被限制住了,由于这个地方算是最前端了,
所以后面阶段硬件自带的Culling无论如何都不可能让吞吐率超过这个限制。
而新一点的游戏中普遍开始使用GPU Driven流水线,利用Compute Shader来进行的Culling,
因为在Input Assembly之前就Culling好并且Input Assembly接受到的也是Culling后的图元数量,可以避开这个限制。
更进一步的Mesh Shader直接没有了Input Assembly阶段,也就更不存在限制的可能了。


从3DMark的Mesh Shader测试可以看出来,4090在这种多边形吞吐率主导的测试中,非Mesh Shader下性能与4070TI类似,但依靠Mesh Shader可以获得三倍多非Mesh Shader时的性能,远高于4070TI的成绩。