0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

Dbwd_Imgtec 来源:未知 作者:胡薇 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 负责像素颜色计算;前者的输出是后者的输入。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    31

    文章

    5620

    浏览量

    130450
  • gpu
    gpu
    +关注

    关注

    28

    文章

    5283

    浏览量

    136094

原文标题:GPU学习笔记

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何在 VisionFive v2 上使用外部 GPU

    如果旧的 amd gpu 在 VisionFive V2 上运行,我想使用带有开源 amd 驱动程序的 amd gpu。我需要什么以及如何将 GPU 连接到 VisionFive v2?
    发表于 03-13 06:38

    Visionfive 2 缺少文件img-gpu-powervr-bin-1.17.6210866.tar.gz怎么解决?

    -powervr/img-gpu-powervr-bin-1.17.6210866.tar.gz 我检查了 buildroot,目录和文件不存在。 我已经在网上扫描了它,但谷歌找不到它。 有谁知道哪里可以得到这个副本?
    发表于 03-11 07:08

    GPU固件无法使用重新编译的内核加载怎么解决?

    \' loaded[ 1.545044] PVR_K:1: Shader binary image \'rgx.sh.36.50.54.182\' loaded[ 1.554679] [drm
    发表于 02-24 07:23

    FPGA+GPU异构混合部署方案设计

    为满足对 “纳秒级实时响应” 与 “复杂数据深度运算” 的双重需求,“FPGA+GPU”异构混合部署方案通过硬件功能精准拆分与高速协同,突破单一硬件的性能瓶颈 ——FPGA聚焦低延迟实时交易链路,GPU承接高复杂度数据处理任务,
    的头像 发表于 01-13 15:20 503次阅读

    汽车中的GPU是如何使用的?

    。我们GPU在汽车中的应用场景及其具体需求出发,深入探讨了GPU对汽车行业发展的影响,并对未来趋势提出了关键判断。1、GPU计算在汽车中的应用场景
    的头像 发表于 12-03 14:45 9714次阅读
    汽车中的<b class='flag-5'>GPU</b>是如何使用的?

    IGBT到底是什么?-名称入手来带您了解

    对于工作需要用到IGBT、但从未专业学习过IGBT的人来说, IGBT到底是什么、它为什么叫IGBT、它的核心关键词是什么、要怎么理解它 等一系列问题并无法一次性在某个地方获取到,都需要查阅大量的资料,学习大量的基础才能有个初步的了解。 为了让更多的人在更少的时间内掌握IGBT,我将在
    的头像 发表于 11-25 17:38 2848次阅读
    IGBT到底是什么?-<b class='flag-5'>从</b>名称<b class='flag-5'>入手</b>来带您<b class='flag-5'>了解</b>

    如何看懂GPU架构?一分钟带你了解GPU参数指标

    分析GPU核心参数体系:算力、显存大小、显存带宽、热门架构特性等关键指标,旨在帮您理解不同应用场景下,如何选择最合适的GPU算力解决方案。1、算力GPU执行浮点运算
    的头像 发表于 10-09 09:28 1572次阅读
    如何看懂<b class='flag-5'>GPU</b>架构?一分钟带你<b class='flag-5'>了解</b><b class='flag-5'>GPU</b>参数指标

    CPU 到 GPU,渲染技术如何重塑游戏、影视与设计?

    渲染技术是计算机图形学的核心内容之一,它是将三维场景转换为二维图像的过程。渲染技术一直在不断演进,最初的CPU渲染到后来的GPU渲染,性能和质量都有了显著提升。CPU到GPU:技术
    的头像 发表于 09-01 12:16 1156次阅读
    <b class='flag-5'>从</b> CPU 到 <b class='flag-5'>GPU</b>,渲染技术如何重塑游戏、影视与设计?

    aicube的n卡gpu索引该如何添加?

    请问有人知道aicube怎样才能读取n卡的gpu索引呢,我已经安装了cuda和cudnn,在全局的py里添加了torch,能够调用gpu,当还是只能看到默认的gpu0,显示不了gpu1
    发表于 07-25 08:18

    【「算力芯片 | 高性能 CPU/GPU/NPU 微架构分析」阅读体验】+NVlink技术应用到原理

    自家GPU 提出的多卡算力互连技术,是早期为了应对深度学习对超高算力需求而单卡算力不足的局面的解决方案,当然这都是官方用来吹牛的话术。我自己在2019年左右第一次接触到多卡交火的GIY玩法(学生到
    发表于 06-18 19:31

    GPU架构深度解析

    GPU架构深度解析图形处理到通用计算的进化之路图形处理单元(GPU),作为现代计算机中不可或缺的一部分,已经最初的图形渲染专用处理器,发展成为强大的并行计算引擎,广泛应用于人工智能
    的头像 发表于 05-30 10:36 2039次阅读
    <b class='flag-5'>GPU</b>架构深度解析

    ARM Mali GPU 深度解读

    设备 GPU 市场的核心力量。以下技术演进、架构特性、产品布局及生态战略等维度展开分析: 一、架构演进: Utgard 到 Valhall Mali GPU 的架构迭代以 ​ 北欧
    的头像 发表于 05-29 10:12 4979次阅读

    又一颗国产GPU芯片成功点亮!6nm制程,自研TrueGPU架构

    GPU芯片G100采用6nm制程,基于自研的TrueGPU架构,这是全球首个融合高性能图形渲染与AI推理能力的GPU架构。其核心优势在于通过unified shader+tensor engine
    发表于 05-29 00:48 2819次阅读

    Imagination与澎峰科技携手推动GPU+AI解决方案,共拓计算生态

    的深度融合展开合作。双方将结合 Imagination 领先的 GPU IP 技术与澎峰科技在 AI 模型压缩与性能优化方面的软硬协同能力,共同开拓面向 AI 行业应用的计算解决方案,推动国产计算生态
    发表于 05-21 09:40 1298次阅读