当前位置:   article > 正文

技术美术个人笔记(十)——GPU入门(下)_像素着色器(ps)的最小处理单位是1像素吗?为什么?会带来什么影响

像素着色器(ps)的最小处理单位是1像素吗?为什么?会带来什么影响

学习原文:深入GPU硬件架构及运行机制

注: 像素网格被分成2*2的像素组,称为quad; 且一般来说,TILE的大小为32x32或者16x16像素。—— 基于TILE的渲染

拓展笔记:随手笔记Real-time rendering Chapter 23

GPU是显卡(Video card、Display card、Graphics card)最核心的部件,但除了GPU,显卡还有扇热器、通讯元件、与主板和显示器连接的各类插槽。

本章学习解答问题:

1、GPU是如何与CPU协调工作的?

CPU读取原始数据,计算顶点数据信息等,将数据放在内存中,要渲染的命令通过驱动程序分批次发给GPU执行(发出DrawCall指令),GPU根据指令拷贝数据到显存,对收到的顶点信息及原始数据在屏幕上进行绘制操作;

2、GPU也有缓存机制吗?有几层?它们的速度差异多少?

部分架构的GPU与CPU类似,也有多级缓存结构:寄存器、L1缓存、L2缓存、GPU显存、系统显存。

img

存储类型 寄存器 共享内存 L1缓存 L2缓存 纹理、常量缓存 全局内存
访问周期 1 1~32 1~32 32~64 400~600 400~600

这种架构的特点是ALU多,GPU上下文(Context)多,吞吐量高,依赖高带宽与系统内存交换数据。

3、GPU的渲染流程有哪些阶段?它们的功能分别是什么?

GPU逻辑管线

【大致总结成顶点着色器、裁剪剔除、像素着色器、深度测试及混合的工作】

1.程序通过图形API发出drawcall指令,驱动程序检查指令合法性后发送到GPU可读取的Pushbuffer中;

2.一段时间或显式调用flush时,驱动程序把Pushbuffer的内容一起发给GPU,GPU通过Host接口接收,用前端Front End处理这些命令;

3.图元分配器中开始工作分配, 处理indexbuffer中的顶点, 产生三角形分成批次(batches),然后发送给多个相应的PGCs处理。

4.在GPC中,每个SM中的Poly Morph Engine负责通过三角形索引(triangle indices)取出三角形的数据(vertex data);

5.Warp是典型的单指令多线程(多个指令同时执行相同指令)的实现; 在获取数据之后,在SM中以32个线程为一组的线程束(Warp)来调度,来开始处理顶点数据。;

6.SM的warp调度器会按照顺序分发指令给整个warp,单个warp中的线程会锁步(lock-step)执行各自的指令,如果线程碰到不激活执行的情况也会被遮掩(be masked out)。;

7.warp中的指令可能被一次完成也可能经过多次调度;

8.某些指令比如内存加载耗时较长时,warp调度器可能会切换到其他的warp;为了加快切换&#

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/789547
推荐阅读
相关标签
  

闽ICP备14008679号