赞
踩
学习原文:深入GPU硬件架构及运行机制
注: 像素网格被分成2*2的像素组,称为quad; 且一般来说,TILE的大小为32x32或者16x16像素。—— 基于TILE的渲染
拓展笔记:随手笔记Real-time rendering Chapter 23
GPU是显卡(Video card、Display card、Graphics card)最核心的部件,但除了GPU,显卡还有扇热器、通讯元件、与主板和显示器连接的各类插槽。
本章学习解答问题:
CPU读取原始数据,计算顶点数据信息等,将数据放在内存中,要渲染的命令通过驱动程序分批次发给GPU执行(发出DrawCall指令),GPU根据指令拷贝数据到显存,对收到的顶点信息及原始数据在屏幕上进行绘制操作;
部分架构的GPU与CPU类似,也有多级缓存结构:寄存器、L1缓存、L2缓存、GPU显存、系统显存。
存储类型 寄存器 共享内存 L1缓存 L2缓存 纹理、常量缓存 全局内存 访问周期 1 1~32 1~32 32~64 400~600 400~600 这种架构的特点是ALU多,GPU上下文(Context)多,吞吐量高,依赖高带宽与系统内存交换数据。
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;为了加快切换&#
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。