从Shader编成入手了解GPU应用方案

Imagination Tech 2018-05-17 09:18 次阅读

Graphics Processing Unit(GPU),即可编程图形处理单元, 通常也称之为可编程图形硬件。

由于GPU有高并行结构(highly parallel structure),所以GPU在处理图形数据和复杂算法方面拥有比CPU更高的效率。图 1 GPU VS CPU 展示了 GPU 和 CPU 在结构上的差异,CPU 大部分面积为控制器和寄存器,与之相比,GPU拥有更多的 ALU(Arithmetic Logic Unit,逻辑运算单元)用于数据处理,而非数据高速缓存和流控制,这样的结构适合对密集型数据进行并行处理。CPU 执行计算任务时,一个时刻只处理一个数据,不存在真正意义上的并行,而 GPU 具有多个处理器核,在一个时刻可以并行处理多个数据。

GPU 采用流式并行计算模式,可对每个数据进行独立的并行计算,所谓“对 数据进行独立计算”,即,流内任意元素的计算不依赖于其它同类型数据,例如,计算一个顶点的世界位置坐标,不依赖于其他顶点的位置。而所谓“并行计算” 是指“多个数据可以同时被使用,多个数据并行运算的时间和 1 个数据单独执行的时间是一样的”。图 2 中代码目的是提取 2D 图像上每个像素点的颜色值,在 CPU 上运算的 C++代码通过循环语句依次遍历像素;而在 GPU 上,则只需要一条语句就足够。

其一,object space coordinate 就是模型文件中的顶点值,这些值是在模型建模时得到的,例如,用 3DMAX 建 立一个球体模型并导出为.max 文件,这个文件中包含的数据就是 object space coordinate;其二,object space coordinate 与其他物体没有任何参照关系,注意,这个概念非常重要,它是将 object space coordinate 和 world space coordinate 区分 开来的关键。无论在现实世界,还是在计算机的虚拟空间中,物体都必须和一个固定的坐标原点进行参照才能确定自己所在的位置,这是 world space coordinate 的实际意义所在。

从 object space coordinate 到 world space coordinate 的变换过程由一个四阶矩阵控制,通常称之为 world matrix。需要高度注意的是:顶点法向量在模型文件中属于 object space,在 GPU 的 顶点程序中必须将法向量转换到 world space 中才能使用,如同必须将顶点坐标从 object space 转换到 world space 中一样,但两者的转换矩阵是不同的,准确的说,法向量从 object space 到 world space 的转换矩阵是 world matrix 的转置矩阵的逆矩阵。

每个人都是从各自的视点出发观察这个世界,无论是主观世界还是客观世界。同样,在计算机中每次只能从唯一的视角出发渲染物体。在游戏中,都会提供视点漫游的功能,屏幕显示的内容随着视点的变化而变化。这是因为 GPU 将 物体顶点坐标从 world space 转换到了 eye space。 所谓 eye space,即以 camera(视点或相机)为原点,由视线方向、视角和远近平面,共同组成一个梯形体的三维空间,称之为 viewing frustum(视锥), 如图 4 所示。近平面,是梯形体较小的矩形面,作为投影平面,远平面是梯形体 较大的矩形,在这个梯形体中的所有顶点数据是可见的,而超出这个梯形体之外的场景数据,会被视点去除(Frustum Culling,也称之为视锥裁剪)。

从视点坐标空间到屏幕坐标空间 (screen coordinate space)事实上是由三步组成:

1. 用透视变换矩阵把顶点从视锥体中变换到裁剪空间的 CVV 中;2. 在 CVV 进行图元裁剪;3. 屏幕映射:将经过前述过程得到的坐标映射到屏幕坐标系上。

从物理结构而言,寄存器是 cpu 或 gpu 内部的存储单元,即寄存器是嵌入在 cpu 或者 gpu 中的,而内存则可以独立存在;

从功能上而言,寄存器是有限存储 容量的高速存储部件,用来暂存指令、数据和位址。

Shader 编成是基于计算机图形硬件的,这其中就包括 GPU 上的寄存器类型,glsl 和 hlsl 的着色虚拟机版本就是基于 GPU 的寄存器和指令集而区分的。

顶点着色器控制顶点坐标 转换过程;片段着色器控制像素颜色计算过程。这样就区分出顶点着色程序和片 段着色程序的各自分工:Vertex program 负责顶点坐标变换;Fragment program 负责像素颜色计算;前者的输出是后者的输入。

热门推荐

原文标题:GPU学习笔记

文章出处:【微信号:Imgtec,微信公众号:Imagination Tech】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
分享:

评论

相关推荐

Congruity360利用AI提高风险评估过程的速度和精度

风险评估对于大多数行业都是一项至关重要的工作,而在企业合并或收购中尤为关键。如今,AI的应用也延伸到....

的头像 英伟达NVIDIA企业解决方案 发表于 05-23 11:46 117次阅读
Congruity360利用AI提高风险评估过程的速度和精度

物联网卡是一把双刃剑

顾名思义,物联网卡是运营商根据物联网专线,面向有物联网需求的用户提供的移动通信接入业务。

的头像 物联网技术 发表于 05-23 09:47 64次阅读
物联网卡是一把双刃剑

DAC产生直流电压或任意波形

LDAC(装载DAC)引脚为高电平时,串行数据流与SCLK(串行时钟)配合,装载DAC的串行输入寄存....

的头像 美信半导体 发表于 05-23 09:43 202次阅读
DAC产生直流电压或任意波形

什么是Open-Channel SSD呢?有哪些好处?

Write unit, write unit 是一次写的最少逻辑块数目。LBA, 即 logical....

的头像 ssdfans 发表于 05-23 09:03 68次阅读
什么是Open-Channel SSD呢?有哪些好处?

51单片机寄存器功能一览表

本文主要详细介绍51单片机寄存器功能,首先介绍了51单片机引脚图及功能,其次阐述了51单片机寄存器功....

发表于 05-22 16:12 215次阅读
51单片机寄存器功能一览表

寄存器操作方法_对寄存器操作的通用方法总结

本文主要详解寄存器操作方法以及对寄存器操作的通用方法总结,具体的跟随小编来了解一下。

的头像 陈翠 发表于 05-22 15:53 131次阅读
寄存器操作方法_对寄存器操作的通用方法总结

AI芯片作为AI时代的基础设施,也成为目前行业最热门的领域

不久前,谷歌在I/O大会发布了其第三代TPU,并宣称其性能比去年的TUP 2.0提升8倍之多,达到每....

发表于 05-22 11:51 110次阅读
AI芯片作为AI时代的基础设施,也成为目前行业最热门的领域

TLV320AIC3104编程简单易行

TLV3AIC3104(AIC3104)是一种多功能音频编解码器,具有多个特点。

发表于 05-22 11:46 20次阅读
TLV320AIC3104编程简单易行

ECHELON是一款基于NVIDIA GPU的高性能油藏模拟软件

模拟器一般在基于CPU的硬件上运行,在模型性能和规模方面均受到限制。花费数天来运行模型的情况很常见。....

的头像 英伟达NVIDIA企业解决方案 发表于 05-22 11:40 212次阅读
ECHELON是一款基于NVIDIA GPU的高性能油藏模拟软件

TLV320AIC12/13/14/15 勘误表

当设备的编程模式改变为除I2C模式以外的任何模式时,设备失去同步。

发表于 05-22 11:16 15次阅读
TLV320AIC12/13/14/15 勘误表

TAS5518C 勘误表

如果在连续的I2C操作中更新DRC1控制寄存器(0x96)和DRC2控制寄存器(0x97)的值,则可....

发表于 05-22 10:46 11次阅读
TAS5518C 勘误表

TAS5508A 勘误表

TAS5508A在写入高音和低音滤波器组寄存器时发生间歇性问题,或者当发生采样率变化时,导致TAS5....

发表于 05-22 10:32 16次阅读
TAS5508A 勘误表

ATPCS规则体现了一种模块化设计的思想

ATPCS规定堆栈采用满递减类型(FD,Full Descending),即堆栈通过减小存储器地址而....

的头像 21ic电子网 发表于 05-22 09:26 161次阅读
ATPCS规则体现了一种模块化设计的思想

请问CC2530的定时器应用的具体配置是怎样的?

发表于 05-22 07:10 103次阅读
请问CC2530的定时器应用的具体配置是怎样的?

有一台协调器组网后终端设备无法入网,终端设备入其他协调器可以正常入网,请问是由哪部分的设备故障引起的?

发表于 05-22 06:30 25次阅读
有一台协调器组网后终端设备无法入网,终端设备入其他协调器可以正常入网,请问是由哪部分的设备故障引起的?

请问HALCoGen能否为TMS570LC4357 flexray生成寄存器配置函数?如何通过软件来配置FlexRay功能的使用?

发表于 05-22 05:22 48次阅读
请问HALCoGen能否为TMS570LC4357 flexray生成寄存器配置函数?如何通过软件来配置FlexRay功能的使用?

NVIDIA Volta GPU中内置的Tensor Core GPU架构是NVIDIA深度学习平台的巨大进步

Tensor Core所运行的张量应位于存储器的channel-interleaved型数据布局(数....

的头像 英伟达NVIDIA企业解决方案 发表于 05-21 17:35 367次阅读
NVIDIA Volta GPU中内置的Tensor Core GPU架构是NVIDIA深度学习平台的巨大进步

离散化架构WAGE,训练推理合二为一

ICLR 是深度学习领域的顶会,更被誉为深度学习的 “无冕之王”,得到了 google, Faceb....

的头像 新智元 发表于 05-20 11:11 337次阅读
离散化架构WAGE,训练推理合二为一

OpenAI发布了一份关于AI计算能力增长趋势的分析报告

我们没有测量硬件的峰值理论FLOPS,而是尝试估计执行的实际操作的数量。我们将加法和乘法作为单独的操....

的头像 新智元 发表于 05-19 07:46 320次阅读
OpenAI发布了一份关于AI计算能力增长趋势的分析报告

MCS-51与中断有关的寄存器、中断入口地址及编号详解

MCS-51单片机是一种集成的电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CP....

的头像 陈翠 发表于 05-18 15:46 348次阅读
MCS-51与中断有关的寄存器、中断入口地址及编号详解

TRF7960、-60A启动程序的管理

系统开发人员关注最小化Trf7960、-60A(及其变体)的当前绘制启动时的系统需要处理调节器控制寄....

发表于 05-18 14:17 19次阅读
TRF7960、-60A启动程序的管理

STM32独立看门狗介绍_STM32单片机独立看门狗实验

STM32的独立看门狗由内部专门的40Khz低速时钟驱动,即使主时钟发生故障,它也仍然有效。这里需要....

发表于 05-18 01:49 69次阅读
STM32独立看门狗介绍_STM32单片机独立看门狗实验

模数规格和性能特征词汇

该术语集是德克萨斯仪器的Δ∑(Δ∑)、逐次逼近寄存器(SAR)和流水线模数转换器(A/D)规范和性能....

发表于 05-17 15:49 15次阅读
模数规格和性能特征词汇

看虚拟化在PowerVR GPU中是如何进行

过去的几年里,虚拟化的概念将软件从承载其的硬件中分离出来已经为许多人所熟知。在本文中,我们将描述虚拟....

的头像 电子设计 发表于 05-17 09:14 644次阅读
看虚拟化在PowerVR GPU中是如何进行

锐龙Pro现已同时拥有Zen CPU、Vega GPU两大新架构,并支持AMD GuardMI技术

而今天的锐龙Pro同时拥有Zen CPU、Vega GPU两大新架构,并支持AMD GuardMI技....

发表于 05-16 11:29 101次阅读
锐龙Pro现已同时拥有Zen CPU、Vega GPU两大新架构,并支持AMD GuardMI技术

AMD全面迈入7nm Zen 2和7nm Vega的设计已经完成

昨晚,AMD发布了最新一波新品路线图,其中第二代Ryzen ThreadRipper(锐龙线程撕裂者....

发表于 05-16 11:19 81次阅读
AMD全面迈入7nm  Zen 2和7nm Vega的设计已经完成

英伟达GPU广泛使用 将带来下一场AI变革

日前,英伟达 Developer Blog 上一篇博文详细陈述了英伟达 Volta Tensor C....

的头像 人工智能学家 发表于 05-16 10:03 377次阅读
英伟达GPU广泛使用 将带来下一场AI变革

ADI宣布推出一款超高精确度的32位逐次逼近寄存器型模数转换器--LTC2500-32

不久前收购了凌力尔特公司 (Linear Technology Corporation) 的亚德诺半....

发表于 05-15 17:19 50次阅读
ADI宣布推出一款超高精确度的32位逐次逼近寄存器型模数转换器--LTC2500-32

GPU全球短缺问题 码隆科技获纽约时报、华尔街日报关注

随着人工智能和加密货币发展的日益兴盛,国际间芯片短缺问题也浮上了台面,GPU的价格在过去几个月上涨近....

发表于 05-15 17:11 65次阅读
GPU全球短缺问题 码隆科技获纽约时报、华尔街日报关注

调试板子LVDS摄像头过程中发生段错误,获取不到数据,请问这是什么情况?

发表于 05-15 17:11 190次阅读
调试板子LVDS摄像头过程中发生段错误,获取不到数据,请问这是什么情况?

凌力尔特公司推出 18 位 8 通道同时采样逐次逼近型寄存器

亚德诺半导体 (Analog Devices, Inc.,简称 ADI) 旗下凌力尔特公司推出 18....

发表于 05-15 17:07 55次阅读
凌力尔特公司推出 18 位 8 通道同时采样逐次逼近型寄存器

英伟达:GPU虚拟化“风口”来临 VDI+vGPU会是桌面云应用的主流

GPU虚拟化会不会在桌面云应用中成为主流?早在2014年就已经有人给出了肯定的答案。但在应用实践中....

发表于 05-15 10:03 155次阅读
英伟达:GPU虚拟化“风口”来临 VDI+vGPU会是桌面云应用的主流

怎么使pn512寄存器设置显示小程序(PN512特性及驱动电路)

PN512是一个高度集成的非接触读写芯片。本文主要介绍了pn512特性及NFC驱动电路,另外还介绍了....

的头像 电子魔法师 发表于 05-14 10:41 373次阅读
怎么使pn512寄存器设置显示小程序(PN512特性及驱动电路)

GPU绘图的四个阶段包括裁剪阶段,光栅化阶段,像素阶段和输出阶段概述

GPU绘图的几个阶段:裁剪,光栅化,像素,输出

的头像 Imagination Tech 发表于 05-13 11:46 575次阅读
GPU绘图的四个阶段包括裁剪阶段,光栅化阶段,像素阶段和输出阶段概述

使用shouldRasterize属性如何解决GPU视图的混合和过度绘制的概述

GPU每一帧可以绘制的像素有一个最大限制(就是所谓的fill rate),这个情况下可以轻易地绘制整....

的头像 Imagination Tech 发表于 05-13 11:36 483次阅读
使用shouldRasterize属性如何解决GPU视图的混合和过度绘制的概述

suggestphone独家披露了骁龙710和骁龙730的规格资料

不过,首次曝光的骁龙730处理器则尚未有其他信息被披露,并且何时面市和出货也同样没有任何信息,但按照....

的头像 电子技术应用ChinaAET 发表于 05-13 10:04 1197次阅读
suggestphone独家披露了骁龙710和骁龙730的规格资料

PLL锁定过程的两个步骤

校准完成后,PLL的反馈操作使VCO锁定于正确的频率。锁定速度取决于非线性周跳行为。PLL总锁定时间....

的头像 电机控制设计加油站 发表于 05-11 15:14 362次阅读
PLL锁定过程的两个步骤

分析一下PortB的Header中的Base & Limit寄存器

需要注意的是,Endpoint的需要的NP-MMIO的大小明明只有4KB,PortB的Header却....

的头像 电子技术应用ChinaAET 发表于 05-11 09:42 844次阅读
分析一下PortB的Header中的Base & Limit寄存器

Imagination 和 OTOY 共同发布突破性的硬件加速渲染平台

Imagination Technologies 和 OTOY 共同发布突破性的硬件加速渲染平台,其....

发表于 05-11 09:38 62次阅读
Imagination 和 OTOY 共同发布突破性的硬件加速渲染平台

DAC7822乘法数模转换器的详细英文原版资料概述

DAC7822是一个双、CMOS、12位、电流输出数模转换器(DAC)。该设备从2.5A T0 5.....

发表于 05-11 09:16 24次阅读
DAC7822乘法数模转换器的详细英文原版资料概述

领先的机器学习工具,深度学习将如何改变医疗成像领域?

在医学成像领域,疾病的准确诊断或评估取决于图像采集和图像解译。近年来,随着技术的发展,设备能以更快地....

发表于 05-10 11:54 162次阅读
领先的机器学习工具,深度学习将如何改变医疗成像领域?

EasyARM1138的内部结构和软件开发平台IAR软件硬件结合开发的详细概述

本文介绍了一下3个方面的内容 1.了解LM3s1138内部结构,包括存储器,ADC,GPIO,等等....

发表于 05-09 16:42 42次阅读
EasyARM1138的内部结构和软件开发平台IAR软件硬件结合开发的详细概述

74ls299中文资料汇总(74ls299引脚图及功能_逻辑功能及应用电路)

本文主要介绍了74ls299中文资料汇总(74ls299引脚图及功能_逻辑功能及应用电路)。74ls....

发表于 05-09 15:38 172次阅读
74ls299中文资料汇总(74ls299引脚图及功能_逻辑功能及应用电路)

看GPU如何打败当今堪称无敌的细菌大敌

我们与耐抗生素的细菌正处于激烈对抗中,但借助GPU加速计算的模拟实验,研究人员将能够为新疗法的研发指....

的头像 英伟达NVIDIA企业解决方案 发表于 05-09 14:29 275次阅读
看GPU如何打败当今堪称无敌的细菌大敌

几个简单的例子来熟悉寄存器BAR的机制

Step1:如图中(1)所示,未初始化的BAR的低比特(11~4)都是0,高比特(31~12)都是不....

的头像 电子技术应用ChinaAET 发表于 05-09 09:25 470次阅读
几个简单的例子来熟悉寄存器BAR的机制

两个74ls164怎么连?74ls164联级应用电路

本文主要介绍了两个74ls164怎么连?74ls164联级应用电路。串口工作于方式0时,其功能为8位....

发表于 05-08 17:23 198次阅读
两个74ls164怎么连?74ls164联级应用电路

小尺寸逻辑器件指南

凭借TI在逻辑、模拟及混合信号设计领域中的广泛技术经验和应用支持,我们可为客户提供采用最先进封装的门....

发表于 05-08 16:51 26次阅读
小尺寸逻辑器件指南

74ls166中文资料_74ls166引脚图及功能_逻辑图及特性参数

本文主要介绍了74ls166中文资料_74ls166引脚图及功能_逻辑图及特性参数。74ls166是....

发表于 05-08 16:14 94次阅读
74ls166中文资料_74ls166引脚图及功能_逻辑图及特性参数

74LS164扩展的8位LED串行显示接口电路

本文主要介绍了74LS164扩展的8位LED串行显示接口电路。硬件部分包括89C52芯片、74LS1....

发表于 05-08 15:52 479次阅读
74LS164扩展的8位LED串行显示接口电路

什么叫arm架构?ARM的技术实现

汇编语言是机器代码上的一个薄的语法层,它由以二进制编码的指令组成,这是我们的计算机所理解。那么为什么....

的头像 传感器技术 发表于 05-08 14:35 316次阅读
什么叫arm架构?ARM的技术实现

74ls173中文资料汇总(74ls173引脚图及功能_逻辑图及特性)

本文首先介绍了74ls173引脚图及功能,其次介绍了74ls173逻辑图与功能表,最后介绍了74ls....

发表于 05-08 10:50 113次阅读
74ls173中文资料汇总(74ls173引脚图及功能_逻辑图及特性)

MSP430寄存器中文注释并且分析

MSP430寄存器中文注释---P1/2口(带中断功能)

发表于 05-08 09:15 31次阅读
MSP430寄存器中文注释并且分析

74ls165应用电路图大全(三款74ls165应用电路)

74LS165是并行输入,串行输出移位寄存器。本文主要介绍了三款74ls165应用电路图。

发表于 05-08 08:55 118次阅读
74ls165应用电路图大全(三款74ls165应用电路)

74ls165中文资料汇总(74ls165引脚图及功能_工作原理及应用电路)

本文详细介绍了74ls165中文资料,其中包括74ls165引脚图及功能、74ls165工作原理、真....

发表于 05-08 08:33 244次阅读
74ls165中文资料汇总(74ls165引脚图及功能_工作原理及应用电路)

stm32f769 寄存器配置SD卡驱动--SD_GetCardInfo

发表于 03-23 11:38 470次阅读
stm32f769 寄存器配置SD卡驱动--SD_GetCardInfo

stm32f769 寄存器配置SD卡驱动--SD_InitializeCards函数

发表于 03-23 11:37 517次阅读
stm32f769 寄存器配置SD卡驱动--SD_InitializeCards函数

stm32f769 寄存器配置SD卡驱动--SD_PowerON

发表于 03-23 11:33 462次阅读
stm32f769 寄存器配置SD卡驱动--SD_PowerON

请问标志寄存器选中一组寄存器后,能否再选其他三组寄存器?

发表于 03-19 12:50 198次阅读
请问标志寄存器选中一组寄存器后,能否再选其他三组寄存器?

stm32f769 寄存器配置SD卡---移植fatfs--实现文件读写

发表于 03-13 11:35 475次阅读
stm32f769 寄存器配置SD卡---移植fatfs--实现文件读写

stm32f769 寄存器配置SD卡---移植fatfs--实现文件read操作

发表于 03-13 11:10 421次阅读
stm32f769 寄存器配置SD卡---移植fatfs--实现文件read操作