GPU渲染一帧需要用到纹理的画面大致流程是:

  1. CPU把纹理、顶点属性、着色器等相关数据上传到GPU的显存中
  2. GPU中的流处理器/计算单元(sm/cu),从显存中取出顶点属性数据进行顶点着色器的计算
  3. GPU中的流处理器/计算单元(sm/cu)和纹理映射单元,从显存中取中纹理,进行像素着色器的相关计算和处理
  4. GPU中进行光栅化和抗锯齿,把像素输出到屏幕

GPU的性能参数主要有以下几个
a. 与主板连接的接口一般为PICE
b. 显存大小, 显存位宽, 显存带宽
c. 流处理器sm(AMD叫计算单元cu)个数
d. 纹理映射单元个数
e. 渲染输出单元(光栅操作管道)数

在上述过程中对应关系如下
一, CPU到GPU的数据传输速度是由显卡与主板的连接接口决定,一般是PCIe 3.0 对应 GPU-Z中的Bus interface, 一般不会成为速度的瓶颈。这部分传输的是指令、纹理、顶点属性等数据,传输完成后保存在显卡的显存中。独显显存一般够用。核显使用内存作为显存。
二、 在顶点着色器阶段,是流处理器执行顶点着色器的相关运算。这个过程是并行计算的,流处理器个数越多,能同时运行的顶点着色器越多。此时需要用到顶点属性数据,需要从显存中读这部分数据,读数据的速度是由显存带宽决定的。
显存带宽 = 显存颗粒数 * 显存频率 * 显存位宽
这个参数是影响显卡速度的重要参数
三、 像素着色器阶段,流处理器执行像素着色运算,在这个过程中,纹理映射单元从显存中取出纹理数据,进行相关的纹理采样。这个过程有三个重要的参数,流处理器数,显存带宽,纹理映射单元数。大家在渲染时一般都要用到大量的纹理,所以纹理映射单元数很可能成为一个速度瓶颈。这地方对应的参数是纹理填充率。
纹理填充率=核心频率 * 像素渲染管线数 * 纹理映射单元数。
四、 光栅化和抗锯齿,此阶段, 渲染输出单元(Render outputs)(ROP)对像素着色器计算的结果进行处理的输出,rop的数量决定了光栅化速度的快慢,此时对应的参数是像素填充速率 (pixel fill rate).
像素填充速率 = 核心频率 * 渲染输出单元数

综合分析,主要影响显卡性能参数是

  • 显存带宽
  • 流处理器个数(计算单元数)
  • 纹理填充率
  • 像素填充速率