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

    文章

    5357

    浏览量

    120622
  • gpu
    gpu
    +关注

    关注

    28

    文章

    4752

    浏览量

    129042

原文标题:GPU学习笔记

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

收藏 人收藏

    评论

    相关推荐

    GPU是如何训练AI大模型的

    在AI模型的训练过程中,大量的计算工作集中在矩阵乘法、向量加法和激活函数等运算上。这些运算正是GPU所擅长的。接下来,AI部落小编带您了解GPU是如何训练AI大模型的。
    的头像 发表于 12-19 17:54 149次阅读

    《CST Studio Suite 2024 GPU加速计算指南》

    GPU Computing Guide》是由Dassault Systèmes Deutschland GmbH发布的有关CST Studio Suite 2024的GPU计算指南。涵盖GPU计算
    发表于 12-16 14:25

    PyTorch GPU 加速训练模型方法

    在深度学习领域,GPU加速训练模型已经成为提高训练效率和缩短训练时间的重要手段。PyTorch作为一个流行的深度学习框架,提供了丰富的工具和方法来利用GPU进行模型训练。 1. 了解GPU
    的头像 发表于 11-05 17:43 581次阅读

    【「算力芯片 | 高性能 CPU/GPU/NPU 微架构分析」阅读体验】--了解算力芯片GPU

    本篇阅读学习第七、八章,了解GPU架构演进及CPGPU存储体系与线程管理 █图形到计算的GPU架构演进 GPU图像计算发展 ●
    发表于 11-03 12:55

    【一文看懂】大白话解释“GPUGPU算力”

    随着大模型的兴起,“GPU算力”这个词正频繁出现在人工智能、游戏、图形设计等工作场景中,什么是GPU,它与CPU的区别是什么?以及到底什么是GPU算力?本篇文章主要从以下5个角度,让您全方位
    的头像 发表于 10-29 08:05 746次阅读
    【一文看懂】大白话解释“<b class='flag-5'>GPU</b>与<b class='flag-5'>GPU</b>算力”

    GPU超频设置技巧

    超频GPU(图形处理单元)可以提高显卡的性能,但同时也可能增加热量和功耗,甚至可能缩短硬件的寿命。在进行GPU超频之前,确保你了解可能的风险,并且愿意承担这些风险。以下是一些基本的GPU
    的头像 发表于 10-27 11:09 506次阅读

    如何选择适合的GPU

    在现代计算领域,GPU(图形处理单元)的作用已经远远超出了传统的图形渲染。深度学习到科学计算,再到视频编辑,GPU都在发挥着越来越重要的作用。然而,市场上的GPU型号繁多,性能和价格
    的头像 发表于 10-27 11:07 343次阅读

    【「算力芯片 | 高性能 CPU/GPU/NPU 微架构分析」阅读体验】--全书概览

    GPU、NPU,给我们剖析了算力芯片的微架构。书中有对芯片方案商处理器的讲解,理论联系实际,使读者能更好理解算力芯片。 全书共11章,由浅入深,较系统全面进行讲解。下面目录对全书内容有一个整体了解
    发表于 10-15 22:08

    GPU云服务器架构解析及应用优势

    GPU云服务器作为一种高性能计算资源,近年来在人工智能、大数据分析、图形渲染等领域得到了广泛应用。它结合了云计算的灵活性与GPU的强大计算能力,为企业和个人用户提供了一种高效、便捷的计算解决方案。下面我们将从架构解析和技术优势两
    的头像 发表于 08-14 09:43 411次阅读

    暴涨预警!NVIDIA GPU供应大跳水

    gpu
    jf_02331860
    发布于 :2024年07月26日 09:41:42

    恒讯科技的GPU云解决方案有什么特点和优势?

    GPU云解决方案通常指的是云服务提供商提供的、基于图形处理单元(GPU)的计算服务。这些服务利用GPU的并行处理能力,为用户提供高性能的计算资源,特别适用于需要大量图形处理或并行计算的
    的头像 发表于 06-12 17:24 409次阅读

    FPGA在深度学习应用中或将取代GPU

    现场可编程门阵列 (FPGA) 解决了 GPU 在运行深度学习模型时面临的许多问题 在过去的十年里,人工智能的再一次兴起使显卡行业受益匪浅。英伟达 (Nvidia) 和 AMD 等公司的股价也大幅
    发表于 03-21 15:19

    自学STM32的话应该入手

    麻烦问一下自学STM32应该怎样入手呢,很多库文件引用有点看不懂,是要从51开始学起吗
    发表于 03-21 09:28

    为什么GPU比CPU更快?

    大规模数据集时比CPU更快的根本原因。内存带宽:GPU的内存带宽比CPU高得多。内存带宽是指数据在内存之间传输的速度。GPU可以更快地将数据内存传输到核心,并更快地
    的头像 发表于 01-26 08:30 2458次阅读
    为什么<b class='flag-5'>GPU</b>比CPU更快?

    了解EMI滤波器:基础到应用?

    了解EMI滤波器:基础到应用?|深圳比创达电子
    的头像 发表于 01-23 10:26 586次阅读
    <b class='flag-5'>了解</b>EMI滤波器:<b class='flag-5'>从</b>基础到应用?