第3章-图形处理单元-3.3-可编程着色器阶段

简介: 第3章-图形处理单元-3.3-可编程着色器阶段

第3章-图形处理单元-3.3-可编程着色器阶段

3.3 可编程着色器阶段

现代着色器程序使用统一的着色器设计。这意味着顶点、像素、几何和曲面细分相关的着色器共享一个通用的编程模型。在内部,它们具有相同的指令集架构(ISA)。实现此模型的处理器在DirectX中称为通用着色器内核,具有此类内核的 GPU被称为具有统一着色器架构。这种架构背后的想法是着色器处理器可用于各种角色,GPU可以根据需要分配这些角色。例如,与由两个三角形组成的大正方形相比,具有小三角形的一组网格需要更多的顶点着色器处理。具有单独的顶点和像素着色器核心池的GPU意味着保持所有核心忙碌的理想工作分配是严格预先确定的。使用统一的着色器核心,GPU可以决定如何平衡此负载。

描述整个着色器编程模型远远超出了本书的范围,并且有许多文档、书籍和网站已经这样做了。着色器使用类似C的着色语言进行编程,例如DirectX的高级着色语言(HLSL)和OpenGL着色语言 (GLSL)。DirectX的HLSL可以编译为虚拟机字节码,也称为中间语言(IL或DXIL),以提供硬件独立性。"中间"表示还可以允许离线编译和存储着色器程序。该中间语言由驱动程序转换为特定GPU的ISA。控制台编程通常会避免中间语言步骤,因为系统只有一个ISA。

基本数据类型是32位单精度浮点标量和向量,尽管向量只是着色器代码的一部分,并且如上所述不受硬件支持。在现代 GPU上,本机也支持32位整数和64位浮点数。浮点向量通常包含位置(xyzw)、法线、矩阵行、颜色(rgba)或纹理坐标 (uvwq)等数据。整数最常用于表示计数器、索引或位掩码。还支持聚合数据类型,例如结构体、数组和矩阵。

绘制命令调用图形API来绘制一组图元,从而使得图形管线执行并运行其着色器。每个可编程着色器阶段都有两种类型的输入:统一(uniform)输入,其值在整个绘制调用期间保持不变(但可以在绘制调用之间更改),以及变化(varying)的输入,来自三角形顶点或光栅化的数据。例如,像素着色器可以将光源的颜色作为统一(uniform)值提供,并且三角形表面的位置每个像素都会发生变化,因此也会发生变化。纹理是一种特殊的统一(uniform)输入,曾经是应用于表面的彩色图像,但现在可以将其视为任何大型数据数组。

底层虚拟机为不同类型的输入和输出提供特殊寄存器。用于uniform的可用常量寄存器的数量远大于可用于varying输入或输出的那些寄存器。发生这种情况是因为需要为每个顶点或像素单独存储不同的输入和输出,因此需要多少个自然是有限制的。uniform输入存储一次,并在绘制调用中的所有顶点或像素中重复使用。虚拟机还具有通用临时寄存器,用于暂存空间。所有类型的寄存器都可以使用临时寄存器中的整数值进行数组索引。着色器虚拟机的输入和输出如图3.3所示。

1723601725112.png

相关实践学习
在云上部署ChatGLM2-6B大模型(GPU版)
ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
相关文章
|
安全 数据安全/隐私保护 iOS开发
flutter 代码混淆
flutter 代码混淆
710 0
|
机器学习/深度学习 监控 网络协议
zabbix批量导入监控主机
从excel表中批量导入被监控主机 自动根据分组名称创建分组 根据模板名称匹配主机监控模板
1679 0
zabbix批量导入监控主机
|
索引 存储 NoSQL
表格存储(Tablestore)入门指南
表格存储(Tablestore)入门指南内容简介了表格存储(Tablestore)是阿里云自研的 NoSQL 多模型数据库,提供海量结构化数据存储以及快速的查询和分析服务。
20637 2
|
7月前
|
人工智能 JavaScript API
从 TypeScript 到 C#:Codex SDK 的跨语言移植实践
本文记录了将 OpenAI 官方 TypeScript Codex SDK 全量移植至 C# 的实战过程,涵盖架构设计、类型系统映射(如 `interface`→`record`)、JSONL 事件解析、进程管理(`CancellationToken` 替代 `AbortSignal`)及跨平台适配等关键挑战,助力 .NET 环境原生集成 Codex CLI。(239字)
464 6
|
4月前
|
数据采集 存储 人工智能
AI搜索重构制造业采购逻辑:基于阿里云的企业级GEOCMS优化实践
福建制造企业官网内容多为PDF/图片,AI无法识别,导致“隐形”。本文提出基于阿里云的GEO(生成式引擎优化)方案,含结构化建模、向量知识库、AI引用监测、llms.txt引导四大引擎,助力企业从“人类可读”升级为“AI可理解”,抢占AI搜索新流量。
AI搜索重构制造业采购逻辑:基于阿里云的企业级GEOCMS优化实践
|
11月前
|
缓存 数据安全/隐私保护 芯片
中控网 item_search - 根据关键词获取公司列表接口对接全攻略:从入门到精通
中控网item_search接口支持通过关键词批量检索企业信息,涵盖行业、地域、资质等维度,适用于供应商挖掘、市场调研等场景。本攻略详解接口调用、签名生成、分页获取及优化策略,助力开发者高效对接,快速实现精准企业数据采集与应用。
|
监控 安全 网络安全
IT 知识百科:什么是暴力破解?
本文深入解析了“暴力破解”这一信息技术领域的常见话题,涵盖其原理、应用及防范措施。文章首先介绍了暴力破解的基本概念,即通过穷举所有可能的字符组合来尝试获取信息或密码。接着,探讨了暴力破解在密码破解、系统入侵和数据库攻击中的应用。最后,提出了包括使用强密码、限制登录尝试次数、多因素认证、定期更新密码、加强系统安全防护及监控预警在内的六项防范措施,旨在帮助用户有效抵御暴力破解攻击,保障信息安全。
1154 3
|
安全 网络安全 数据安全/隐私保护
窃听攻击(Eavesdropping Attack)
【8月更文挑战第10天】
1183 2
|
人工智能 开发框架 自然语言处理
Eko:一句话就能快速构建复杂工作流的 AI 代理开发框架!快速实现自动操作电脑和浏览器完成任务
Eko 是 Fellou AI 推出的开源 AI 代理开发框架,支持自然语言驱动,帮助开发者快速构建从简单指令到复杂工作流的智能代理。
2213 12
Eko:一句话就能快速构建复杂工作流的 AI 代理开发框架!快速实现自动操作电脑和浏览器完成任务

热门文章

最新文章