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,而不会降低性能。

审核编辑:郭婷

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

    关注

    5096

    文章

    19203

    浏览量

    308359
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10922

    浏览量

    213302
  • gpu
    gpu
    +关注

    关注

    28

    文章

    4798

    浏览量

    129509
收藏 人收藏

    评论

    相关推荐

    嵌入式主板的概述与发展

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

    新手怎么学嵌入式?

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

    什么是嵌入式人工智能

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

    嵌入式系统与物联网的结合

    。这两者的结合,智能设备和智能系统的发展提供了强大的动力。 一、嵌入式系统与物联网的基本概念 嵌入式系统 嵌入式系统是一种专用的计算机系统
    的头像 发表于 11-06 10:23 490次阅读

    什么是嵌入式?一文读懂嵌入式主板

    在现代科技浪潮中,嵌入式技术已成为支撑各种智能设备和系统运行的核心力量。那么,究竟什么是嵌入式嵌入式系统,顾名思义,是将计算机的硬件和软件嵌入到某种设备或系统中,以实现特定
    的头像 发表于 10-16 10:14 1717次阅读

    AMD 面向嵌入式系统推出高能效 EPYC 嵌入式 8004 系列

    领先地位。   AMD EPYC 嵌入式 8004 系列处理器专为计算密集型嵌入式系统所设计,可为高需求工作负载提供卓越性能,同时以紧凑的尺寸规格最大限度空间和功率受限型应用提升能效。它还集成了一整套
    发表于 10-11 13:58 776次阅读

    嵌入式主板是什么意思?嵌入式主板全面解析

    嵌入式主板,通常被称为嵌入式系统的核心组件,是一种用于控制和数据处理的计算机硬件,其设计旨在嵌入特定设备中执行专门任务。嵌入式主板如同是设备的“大脑”,主要
    的头像 发表于 09-30 10:05 1081次阅读

    嵌入式系统的未来趋势有哪些?

    嵌入式系统是指将我们的操作系统和功能软件集成于计算机硬件系统之中,形成一个专用的计算机系统。那么嵌入式系统的未来趋势有哪些呢? 1. 人工智能与机器学习的整合 随着现代人工智能(AI)和机器学习
    发表于 09-12 15:42

    七大嵌入式GUI盘点

    嵌入式图形用户界面(GUI)是一种嵌入式系统设计的用户界面,它可以让用户通过图形化的方式与设备进行交互。以下是对七种嵌入式 GUI 的盘点。 emWin 由德国SEGGER公司
    发表于 09-02 10:58

    嵌入式QT常见开发方式有哪些?

    : 使用Qt Designer设计图形用户界面,并将其导出.ui文件。然后通过C++代码加载这些UI文件,并实现与UI元素的交互逻辑。这种方式结合了可视化设计工具的优势以及C++编程语言的强大功能
    发表于 08-12 10:05

    嵌入式主板,你了解多少?

    本文中,我们将讨论什么是嵌入式主板、它的组件以及它在嵌入式系统中的功能嵌入式主板的组件 嵌入式主板由多个关键部件组成,每个部件对其整体
    的头像 发表于 04-17 15:11 1729次阅读

    嵌入式fpga是什么意思

    嵌入式FPGA是指将FPGA技术集成到嵌入式系统中的一种解决方案。嵌入式系统是一种特定应用而设计的计算机系统,它通常包括处理器、内存、外设接口等组件,并且被
    的头像 发表于 03-15 14:29 1451次阅读

    fpga是嵌入式

    FPGA(现场可编程门阵列)不是嵌入式系统,但FPGA在嵌入式系统中有着重要的应用。
    的头像 发表于 03-14 17:19 2622次阅读

    fpga与嵌入式的区别 嵌入式和fpga开发有什么关系

    fpga与嵌入式的区别 FPGA与嵌入式系统在设计和应用上存在一些关键的区别,具体如下: 灵活性:FPGA具有高度的灵活性,可以根据需要重新编程以实现不同的功能。而嵌入式系统的硬件
    的头像 发表于 03-14 17:04 7141次阅读

    定制嵌入式主板,需要考虑的功能有哪些?

    随着科技的不断发展和进步,嵌入式系统在各行各业中得到了广泛的应用。嵌入式主板作为嵌入式系统的核心组件,起着至关重要的作用。在定制嵌入式主板时,需要考虑的
    的头像 发表于 02-29 17:38 607次阅读
    定制<b class='flag-5'>嵌入式</b>主板,需要考虑的<b class='flag-5'>功能</b>有哪些?