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

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

3天内不再提示

为嵌入式浏览解锁GPU的强大功能

星星科技指导员 来源:嵌入式计算设计 作者:Stephen Reeder 2022-06-08 17:00 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

图形处理单元 (GPU) 越来越多地包含在 SoC 中,驱动嵌入式系统和连接的消费电子产品。GPU 可以被认为是适合显示渲染的额外处理器,并且用户界面通常构成整体产品质量的主要指标,因此最好尽可能地利用它是有意义的。消费电子产品通常依赖 HTML 浏览器来提供构建 UI 和其他应用程序的表示层。在这里,我将看看一些浏览器如何使用 GPU,并将其与更集中的方法进行对比。

每当页面的任何部分发生变化时,浏览器都需要重新绘制屏幕,同时最大限度地减少 CPU 的工作量。他们通过跟踪屏幕上所有需要更新的区域来做到这一点,然后仅重新绘制这些区域以及与它们重叠的任何其他屏幕元素的部分。

大多数浏览器使用 CPU 将这些元素的表示绘制成像素图。通常,要显示的下一帧是通过获取前一帧并覆盖更改来创建的,如图 1 所示。如果可用,GPU 用于将前一帧和部分像素图数据组合到下一帧中,从而释放 CPU其他任务。

pYYBAGKgZVeAFGXBAAF0yYkwRu8537.png

为了提高性能,许多浏览器使用加速合成,这是一种将页面中不交互的部分组合在单独的层中并独立操作这些部分的技术。这种技术本质上是内存和 CPU 使用之间的权衡。当发生任何变化时,GPU 会将代表每一层的像素图合成到帧缓冲区中,但 CPU 仍用于绘制这些像素图的内容。如图 2 所示,图层的组合始终覆盖整个屏幕,因此无需访问前一帧的副本。

poYBAGKgZWGAKVc5AAHGgI3zPFQ011.png

使用 GPU

尽管 GPU 提供了相当大的灵活性,但浏览器在接受其全部优势方面的速度相对较慢。浏览器设计的相互关联性使得重新设计核心组件(例如渲染)以利用截然不同的硬件功能变得复杂。因此,大多数浏览器设计仍然将 GPU 视为增强的 blitter,并将其主要用于加速合成。

一段时间以来,浏览器提供商一直在寻求超越简单的“GPU 作为一个 blitter”场景。使用 GPU 而不是 CPU 来处理绘画被称为 GPU 光栅化。一些浏览器包括使用扩展图形库启用 GPU 光栅化的选项,这些图形库将绘画任务传递给 GPU。这些库满足广泛的使用场景,因此提供灵活的通用 API。不幸的是,这些 API 的灵活性对于 HTML 所需的用例来说过于复杂,这会导致 GPU 的使用欠佳,从而导致渲染性能下降。

GPU 性能来自于能够有效地执行大量类似的批处理操作,为管道提供数据以确保它们得到最佳填充。这些扩展图形库提供的灵活性通常会导致无法保持 GPU 的管道满载,从而显着降低其效率。

为了充分利用 GPU,它的管道必须保持满载;仅关注 HTML 的要求并将其与 GPU 功能相匹配是关键。HTML 的特性非常适合 GPU 加速。元素本质上是矩形的,自然网格对齐,并且很少使用抗锯齿。由于 GPU 处理三角形,因此每个矩形 HTML 元素可以使用两个。HTML 所需的图形基元集也相对较小,这意味着特定于 HTML 的 GPU 加速图形 API 是一个现实的目标。

GPU 光栅化过程与 CPU 完全异步发生。这意味着 CPU 可以在绘制任务完成之前开始处理脚本和布局等后续任务。GPU 光栅化也改变了优化奖励平衡。在 CPU 上,性能优化是通过仅更新屏幕中已更改的那些区域来实现的。而在 GPU 上,最好跟随游戏行业的领先地位,每帧更新整个屏幕。虽然重新绘制每一帧上的每个像素似乎违反直觉,但在大多数情况下,重新绘制整个屏幕的处理成本低于 CPU 管理部分更新所需的计算成本。

Ekioh在其新的多线程 HTML 浏览器中使用了上述技术并取得了成功。在图形繁重的应用程序中,发现集中使用 GPU 的速度是更通用的基于库的方法的两倍多。此外,由于 GPU 光栅化不需要用于加速合成的大量缓存像素图,因此在某些情况下可以节省大量内存(超过 45 MB)。随着屏幕分辨率的提高,这些内存节省将变得更加显着。

因此,集中使用 GPU 是在不牺牲性能的情况下降低成本的关键。使用这种方法,下一代嵌入式芯片将能够在大众市场消费电子产品上提供基于浏览器的 4K 应用程序和 UI,而不会降低性能。

审核编辑:郭婷

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

    关注

    5186

    文章

    20145

    浏览量

    328742
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11216

    浏览量

    222912
  • gpu
    gpu
    +关注

    关注

    28

    文章

    5099

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    ARM嵌入式这样学

    , UCOS 等等,一个操作系统移植到里面去,跑起来,然后就自己利用操作系统的接口写一些应用软件,就可以直接控制其强大的外设了。当然了,这中间还有另外一种工程师在工作,就是嵌入式驱动工程师,他是专门针对硬件
    发表于 12-04 07:48

    嵌入式和FPGA的区别

    嵌入式系统与FPGA的核心差异:软件定义功能VS硬件可重构。嵌入式适合通用计算,开发门槛低;FPGA凭借并行处理实现纳秒级响应,但成本高、开发难。二者融合的SoC器件正成为未来趋势,平衡性能与灵活性
    发表于 11-19 06:55

    嵌入式与单片机定义及区别

    单片机,即嵌入式微控制器MCU,是嵌入式系统的核心组成部分。除此之外,嵌入式处理器还包括嵌入式DSP处理器、嵌入式微处理器MPU、
    发表于 11-17 08:11

    嵌入式系统的定义和应用领域

    。尽管有些嵌入式系统可能包含操作系统,但大多数情况下,它们仅由一个程序来控制整个逻辑。 从更专业的角度来看,嵌入式系统可以被定义:以应用为中心,以计算机技术基础,具备软硬件可裁剪
    发表于 11-17 06:49

    AMD 2025.1版嵌入式软件和工具的新增功能

    AMD 2025.1 版嵌入式软件和工具是面向新一代嵌入式系统开发而打造的综合平台,全面加速概念构想到部署落地。
    的头像 发表于 08-15 15:32 1026次阅读

    嵌入式工程师为什么要学QT?

    、Clang、MSVC等,并提供了跨平台的编译和发布流程。 强大的集成开发环境(IDE) Qt Creator提供了代码编辑、调试、构建和发布功能,极大地提升了开发效率。 因此,Qt是嵌入式工程师值得学习的一个工具。 它能够
    发表于 08-14 15:15

    Linux嵌入式和单片机嵌入式的区别?

    用于对实时性要求高、资源需求较低的场合,如家电控制、工业自动化、小型机器人等。 Linux嵌入式 :适用于需要复杂功能、高处理能力的应用,如智能手机、平板电脑、智能电视、汽车电子等。 2. 开发环境
    发表于 06-20 09:46

    嵌入式开发入门指南:从零开始学习嵌入式

    特定功能的计算机系统,广泛应用于智能家居、工业控制、医疗设备、车载系统等领域。 2. 学习嵌入式开发的前置知识熟悉C语言编程掌握基本的数据结构与算法了解数字电路与微控制器原理熟悉Linux操作系统
    发表于 05-15 09:29

    嵌入式教育科普|GPIO接口全面解析

    知识的掌握直接影响着嵌入式项目实现功能的成效。本文将以GPIO接口切入点,深入解析其工作原理与技术特性,希望能帮助屏幕前想要学习嵌入式开发的小伙伴建立
    的头像 发表于 03-05 11:11 2734次阅读
    <b class='flag-5'>嵌入式</b>教育科普|GPIO接口全面解析

    嵌入式主板的概述与发展

    随着科技的迅猛发展,嵌入式系统在现代电子产品中扮演着越来越重要的角色。嵌入式主板作为嵌入式系统的核心组件之一,承担着控制、处理和通讯等多种功能。本文将对
    的头像 发表于 01-13 16:30 1184次阅读
    <b class='flag-5'>嵌入式</b>主板的概述与发展

    ARM架构嵌入式主板特点

    嵌入式主板可以理解嵌入在设备中用于控制和数据处理的CPU板,也就是设备的“大脑”。当主板嵌入到设备中,当然对主板的体积和功耗会有更严格的要求(嵌入
    的头像 发表于 12-31 16:03 1839次阅读
    ARM架构<b class='flag-5'>嵌入式</b>主板特点

    FSG中国正式成立,推动嵌入式功能安全迈向新高度

    功能安全专家小组致力于提供一站功能安全认证服务,助力提升嵌入式功能安全认证价值
    的头像 发表于 12-18 15:56 960次阅读
    FSG中国正式成立,推动<b class='flag-5'>嵌入式</b><b class='flag-5'>功能</b>安全迈向新高度

    新手怎么学嵌入式?

    基本的概念。嵌入式系统是一种将计算机技术嵌入到特定设备中的系统,它通常具有特定的功能和有限的资源。你需要学习一些计算机基础知识,如数据结构、操作系统、计算机组成原理等。这些知识将帮助你理解嵌入
    发表于 12-12 10:51

    什么是嵌入式人工智能

    嵌入式人工智能的目标是使嵌入式系统具备智能化的感知、分析和响应能力,从而实现自主决策、自适应学习和智能交互等功能,以提高系统的性能、效率和用户体验.
    的头像 发表于 12-11 09:23 1518次阅读
    什么是<b class='flag-5'>嵌入式</b>人工智能

    嵌入式系统开发与硬件的关系 嵌入式系统开发常见问题解决

    嵌入式系统开发与硬件的关系 嵌入式系统是专为特定应用设计的计算机系统,它们通常嵌入在所控制的设备中。这些系统的关键特点是它们与硬件的紧密集成,这意味着软件必须特定的硬件平台量身定制。
    的头像 发表于 12-09 09:38 1466次阅读