博客
关于我
【实时渲染】[RTR4 Chapter3]图形处理单元The Graphics Processing Unit
阅读量:329 次
发布时间:2019-03-04

本文共 1442 字,大约阅读时间需要 4 分钟。

GPU与计算机图形学基础知识

(1)单指令单数据(SISD)与单指令多数据(SIMD)的区别

单指令单数据(SISD)与单指令多数据(SIMD)的主要区别在于数据访问方式。SISD的CPU在执行加法指令时,会依次访问内存,分别获取两个操作数后再进行求和运算。而SIMD型的CPU能够同时访问多个数据,通过多个执行单元一次性处理所有运算任务。

(2)GPU中的warp与thread

在GPU中,thread是用于执行着色器程序的基本单元。与CPU的thread不同,GPU的thread包含内存空间,用于存储输入数据和执行所需的寄存器。多个thread如果执行相同的着色器程序,就被称为warp(NVIDIA术语)。例如,常见的warp大小为32个thread。

(3)warp读取内存时执行的操作

当warp需要从内存读取数据时,所有thread会暂停执行,等待读取完成。这种情况下,系统会切换到其他warp继续执行,因为不同warp之间没有数据交互,切换不会消耗时间。

(4)SIMD执行效率的影响因素

着色器程序的结构对效率有直接影响。寄存器数量有限,过多的thread需求会减少warp数量,导致GPU在拥塞时无法切换warp。动态分支(thread divergence)也会影响性能,因为不同thread可能执行不同的指令。

(5)渲染管线的可编程程度

渲染管线中的可编程部分包括顶点着色器、细分、几何着色器和片元着色器。细分和几何着色器在某些GPU中不可选,例如移动设备。不可编程的部分包括裁剪和光栅化。

(6)stream output阶段的作用

stream output用于将顶点数据以有序数组形式输出到stream中,供CPU或GPU使用。该阶段支持物理模拟,但输出的数据仅为浮点型,需要注意内存消耗。

(7)避免数据race condition的方法

GPU通过原子单元来避免数据竞争问题,但原子操作可能导致warp拥塞。需要确保多个着色器程序不同时修改同一内存区域。

(8)early-z算法的作用

early-z算法在片元着色器执行前进行深度测试,避免无效计算。这样可以节省资源,提高性能。

(9)SIMD执行效率的影响因素

着色器程序的结构和动态分支对SIMD执行效率有重要影响。过多的thread需求会减少warp数量,增加GPU等待时间。

(10)渲染管线的GPU实现

渲染管线按顺序包括顶点着色器、细分、几何着色器、裁剪、屏幕映射、光栅化、三角形准备与遍历、片元着色器和合并。可编程部分为顶点着色器、细分、几何着色器和片元着色器。

(11)着色器虚拟机的工作原理

着色器虚拟机(HLSL)被编译为中间语言(IL),驱动将IL转换为GPU特定指令集。虚拟机支持不同的寄存器类型,包括uniform输入、varying输入和临时寄存器。

(12)Tessellation Stage的三个部分

Tessellation Stage包括控制器、生成器和评估器。控制器和生成器处理输入数据,生成器输出顶点,评估器验证域的完整性。

(13)MRT的作用

MRT允许片元着色器输出到多个缓冲区,每个缓冲区称为render target。这种机制有助于处理多层渲染和特定效果,如阴影和渐变。

(14)GPU内存访问的特点

GPU的内存访问是并行的,warp中的所有thread会暂停等待数据。这种设计使得GPU在处理复杂计算时效率很高,但也带来了一定的控制挑战。

转载地址:http://jfuh.baihongyu.com/

你可能感兴趣的文章
PostgreSQL 存储过程基本语法
查看>>
PostgreSQL 实现批量更新、删除、插入
查看>>
PostgreSQL 导入 .gz 备份文件
查看>>
PostgreSQL 批量插入&更新数据时报错(ERROR: ON CONFLICT DO UPDATE command cannot affect row a second time)
查看>>
PostgreSQL 新增数据返回自增ID
查看>>
postgresql 更新多列数据
查看>>
PostgreSQL 服务启动后停止
查看>>
PostgreSQL 辟谣存在任意代码执行漏洞:消息不实
查看>>
PostgreSQL+PostGIS实现两坐标点之间最短路径查询算法函数(地图工具篇.12)
查看>>
Qt开发——简易调色板QPalette
查看>>
PostgreSQL-解决连接时遇到的乱码问题
查看>>
PostgreSQL15.2最新版本安装_远程连接_Navicat操作_pgAdmin操作_Windows10上安装---PostgreSQL工作笔记001
查看>>
PostgreSQL9.1 双机部署配置(主备数据同步)
查看>>
Qt开发——简易网络浏览器(一)
查看>>
Qt开发——简易成绩登记系统
查看>>
Postgresql中PL/pgSQL代码块的语法与使用-声明与赋值、IF语句、CASE语句、循环语句
查看>>
Postgresql中PL/pgSQL的游标、自定义函数、存储过程的使用
查看>>
Postgresql中的表结构和数据同步/数据传输到Mysql
查看>>
Postgresql中自增主键序列的使用以及数据传输时提示:错误:关系“xxx_xx_xx_seq“不存在
查看>>
postgreSQL入门命令
查看>>