第3章-图形处理单元-3.2-GPU管线概览
3.2 GPU管线概览
GPU实现了第2章中描述的概念:几何处理、光栅化和像素处理流水线阶段。这些阶段被分为几个具有不同程度的可配置性或可编程性的硬件阶段。图3.2显示了根据可编程或可配置程度对各个阶段进行颜色标识。请注意,这些物理阶段的划分与第2章中介绍的功能阶段有些不同。

图3.2. 渲染管线的GPU实现。这些阶段根据用户对其操作的控制程度进行颜色标识。绿色阶段是完全可编程的。虚线表示可选阶段。黄色阶段是可配置但不可编程的,例如,可以为合并阶段设置各种混合模式。蓝色阶段的功能完全固定。
我们在此描述GPU的逻辑模型,该模型通过API向作为程序员的你公开。正如第18章和第23章所讨论的,这个逻辑管线的实现,即物理模型,取决于硬件供应商。逻辑模型中固定功能的阶段可以通过向相邻的可编程阶段添加命令而在GPU上执行。流水线中的单个程序可能被拆分为由单独的子单元执行的元素,或者完全由单独的通道执行。逻辑模型可以帮助您推理影响性能的因素,但不应将其误认为是GPU实际实现管道的方式。
顶点着色器是一个完全可编程的阶段,用于实现几何处理阶段。几何着色器是一个完全可编程的阶段,它对图元(点、线或三角形)的顶点进行操作。它可用于执行每个图元的着色操作、销毁图元或创建新图元。曲面细分阶段和几何着色器都是可选的,并非所有GPU都支持它们,尤其是在移动设备上。
裁剪、三角形设置和三角形遍历阶段由固定功能硬件实现。屏幕映射受窗口和视口设置的影响,内部形成简单的缩放和重新定位。像素着色器阶段是完全可编程的。虽然合并阶段不可编程,但它是高度可配置的,可以设置为执行各种操作。它实现了“合并”功能阶段,负责修改颜色、z缓冲区、混合、模板和任何其他与输出相关的缓冲区。像素着色器的执行和合并阶段构成了第2章中介绍的概念:像素处理阶段。
随着时间的推移,GPU管线已经从硬编码操作演变为提高灵活性和控制性。可编程着色器阶段的引入是这一演变中最重要的一步。下一节描述了各种可编程级的共同特征。
第3章-图形处理单元-3.2-GPU管线概览的更多相关文章
- SIMD数据并行(三)——图形处理单元(GPU)
在计算机体系中,数据并行有两种实现路径:MIMD(Multiple Instruction Multiple Data,多指令流多数据流)和SIMD(Single Instruction Multip ...
- 第25章 Pytorch 如何高效使用GPU
第25章 Pytorch 如何高效使用GPU 深度学习涉及很多向量或多矩阵运算,如矩阵相乘.矩阵相加.矩阵-向量乘法等.深层模型的算法,如BP,Auto-Encoder,CNN等,都可以写成矩阵运算的 ...
- Java核心技术卷一基础知识-第7章-图形程序设计-读书笔记
第7章 图形程序设计 本章内容: * Swing概述 * 创建框架 * 框架定位 * 在组件中显示信息 * 处理2D图形 * 使用颜色 * 文本使用特殊字体 * 显示图像 本章主要讲述如何编写定义屏幕 ...
- 小强学渲染之OpenGL的GPU管线
GPU渲染流水线,是硬件真正体现渲染概念的操作过程,也是最终将图元画到2D屏幕上的阶段.GPU管线涵盖了渲染流程的 几何阶段 和 光栅化阶段,但对开发者而言,只有对顶点和片段着色器有可编程控制权,其他 ...
- 《Real Time Rendering》第四章 图形变换
图形变换是一个将例如点.向量或者颜色等实体进行某种转换的操作.对于计算机图形学的先驱者,掌握图形变换是极为重要的.有了他们,你就可以对象.光源以及摄像机进行定位,变形以及动画添加.你也可以确认所有的计 ...
- 《R语言实战》读书笔记--第三章 图形初阶(二)
3.4添加文本.自定义坐标轴和图例 很多作图函数可以设置坐标轴和文本标注.比如标题.副标题.坐标轴标签.坐标轴范围等.需要注意的是并不是所有的绘图函数都有上述的参数,需要进行验证.可以将一些默认的参数 ...
- 《R语言实战》读书笔记--第三章 图形初阶(一)
3.1使用图形 可以使用pdf等函数将图形直接保存在文件中.在运用attach和detach函数的使用中经常出现错误,比如命名重复的问题,所以,应该尽量避免使用这两个函数. plot是一般的画图函数, ...
- 2014.04.16,读书,读书笔记-《Matlab R2014a完全自学一本通》-第17章 图形用户界面
界面对象分三类: 用户控件对象(uicontrol) 下拉式菜单对象(uimenu) 内容式菜单对象(uicontextmenu) 创建用户界面: 1.命令行方式 采用uicontrol来创建控件对象 ...
- <<Python基础教程>>学习笔记 | 第12章 | 图形用户界面
Python支持的工具包非常多.但没有一个被觉得标准的工具包.用户选择的自由度大些.本章主要介绍最成熟的跨平台工具包wxPython.官方文档: http://wxpython.org/ ------ ...
- 《Java大学教程》—第10章 图形和事件驱动程序
10.2 Swing程序包AWT(Abstract Window Toolkit): 抽象窗口工具集.依赖于本地操作系统的组件被称为重量级(Heavy Weight)组件,因为它们都会大量使用系统资源 ...
随机推荐
- jmeter的基本功能使用
jmeter安装配置 1.可以参考教程:https://blog.csdn.net/lfmsky1/article/details/88631190 jmeter简单基础使用步骤 (1)添加线程组 ( ...
- 从内核世界透视 mmap 内存映射的本质(源码实现篇)
本文基于内核 5.4 版本源码讨论 通过上篇文章 <从内核世界透视 mmap 内存映射的本质(原理篇)>的介绍,我们现在已经非常清楚了 mmap 背后的映射原理以及它的使用方法,其核心就是 ...
- 【sqli-labs】学习--待续
预备知识: 数字型注入: 这种sql语句中处理的是整型,不需要使用单引号来闭合变量的值. 首先输入id=1',此时因为不是整型,sql语句会执行出错,抛出异常. 然后输入id=1 and 1=1,此时 ...
- JavaScript:对象的三个属性
每一个对象都有与之相关的原型(prototype).类(class)和可扩展性(extension attribute). 原型 prototype 对象的原型属性是用来继承属性的.通过对象直接量创建 ...
- Centos7安装msf
文章来自:https://blog.csdn.net/weixin_44268918/article/details/129771330 1. 前言在日常使用中,模拟攻击以及测试的时候都是直接使用本地 ...
- Vue源码学习(十五):diff算法(二)交叉比对(双指针)
好家伙, 本节来解决我们上一章留下来的问题, 新旧节点同时有儿子的情况本章继续解决 1.要做什么? 本章将解决, 1.在相同tag下子元素的替换问题 2.使用双指针进行元素替换, 实现效果如下: ...
- (转)用GPU做DeepLearning要比CPU快40~80倍
The speed difference of CPU and GPU can be significant in deep learning. But how much? Let's do a te ...
- 混合应用与Hybrid App开发上架流程透析
Hybrid App(混合 App)已经成为大家接触最为广泛的 App 形式,不管是我们用到的微信.支付宝还是淘宝.京东等大大小小的应用都非常热衷于Hybrid App 带来的研发效率提升和灵活性. ...
- NET8 ORM 使用AOT SqlSugar
AOT介绍 .Net8的本地预编机器码AOT,它几乎进行了100%的自举.微软为了摆脱C++的钳制,做了很多努力.也就是代码几乎是用C#重写,包括了虚拟机,GC,内存模型等等.而需要C++做的,也就仅 ...
- .net 温故知新【13】:Asp.Net Core WebAPI 缓存
一.缓存 缓存指在中间层中存储数据的行为,该行为可使后续数据检索更快. 从概念上讲,缓存是一种性能优化策略和设计考虑因素. 缓存可以显著提高应用性能,方法是提高不常更改(或检索成本高)的数据的就绪性. ...