问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

GPU图像处理黑科技揭秘!

创作时间:
作者:
@小白创作中心

GPU图像处理黑科技揭秘!

引用
CSDN
12
来源
1.
https://blog.csdn.net/tkwxty/article/details/136154204
2.
https://www.sohu.com/a/788067463_711053
3.
https://cloud.baidu.com/article/3127276
4.
https://blog.csdn.net/jiurengzu6346/article/details/136166048
5.
https://blog.csdn.net/u012294613/article/details/142672842
6.
https://new.qq.com/rain/a/20240722A04CVC00
7.
https://liaoxuefeng.com/blogs/all/2024-06-21-gpu/index.html
8.
https://www.chenshaowen.com/blog/nvidia-gpu-cores-and-architecture-evolution-history.html
9.
https://www.cnblogs.com/ZOMI/articles/18556553
10.
https://chenzomi12.github.io/02Hardware02ChipBase/05GPUBase.html
11.
https://www.chenshaowen.com/blog/nvidia-gpu-cores-and-architecture-evolution-history.html#2-%E5%91%BD%E5%90%8D%E8%A7%84%E5%88%99
12.
https://www.chenshaowen.com/blog/nvidia-gpu-cores-and-architecture-evolution-history.html#1-%E4%BA%A7%E5%93%81%E7%BA%BF

GPU(图形处理器)作为现代计算机系统的核心部件之一,在图像处理方面发挥着至关重要的作用。从早期显卡依赖CPU进行复杂运算到如今GPU独立完成T&L(多边形转换与光源处理),GPU的发展极大地提升了图像渲染的速度和质量。本文将深入探讨GPU的工作原理以及它如何实现高效的屏幕合成技术,带你一窥图像处理的黑科技世界。

01

GPU图像处理的历史发展

GPU,全称Graphics Processing Unit,最早诞生于上个世纪90年代初。随着计算机技术的发展,游戏领域开始出现3D游戏。和2D游戏相比,3D游戏能提供更真实的游戏体验,但它带来的一个问题就是,3D游戏的计算量和2D游戏相比大大增加。

于是问题来了:3D游戏加速的重担,究竟是让CPU来扛,还是让显卡来扛?历史的重任还是交给了显卡,因为显卡本身承担着2D加速的任务,再加一个3D加速的功能可以让游戏玩家玩得更爽,因此,GPU,作为游戏加速的芯片,就加到了显卡中。

然而,上个世纪90年代,做GPU的都是业内赫赫有名的实力派显卡厂商,比如3dfx,Trident,ATI等,Nvidia只是众多不起眼的一个小厂商。当时3dfx推出的高性能3D加速卡Voodoo一度是游戏玩家的首选,并且他们还搞了一个Glide API作为3D加速的软件接口。在当时,3D加速接口除了Glide API,还有跨平台的OpenGL,以及微软自己的Direct3D。

Direct3D在最初很长一段时间都没有OpenGL流行,但Nvidia做了一个简单而重要的决定,即放弃支持其他的3D接口,全力支持微软的Direct3D。随着Direct3D的版本迭代并在游戏中应用越来越广泛,Nvidia的3D显卡逐渐成为市场的头号玩家,并于2000年收购了3dfx的大部分资产。

GPU,实际上诞生于90年代初,但GPU这个名字,直到1999年才由Nvidia为了推广它的GeForce256芯片才正式提出。

02

GPU的核心技术

现代GPU包含多种核心计算单元,以满足不同应用场景的需求:

  1. CUDA Core(通用并行计算核心):这是GPU中最基本的计算单元,用于执行通用的并行计算任务。CUDA Core的数量通常对应FP32计算单元的数量,是衡量GPU计算能力的重要指标。

  2. Tensor Core(深度学习专用核心):从Volta架构开始引入,专门用于加速深度学习中的张量计算。Tensor Core可以将整个矩阵载入寄存器中进行批量运算,实现十几倍的效率提升。

  3. RT Core(光线追踪核心):用于加速光线追踪计算,主要应用于游戏开发、电影制作和虚拟现实等领域。RT Core通过BVH(Bounding Volume Hierarchy)结构加速三角形的遍历,实现更真实的渲染效果。

Nvidia的GPU产品线涵盖多个系列,针对不同的应用场景:

  • GeForce系列:面向游戏玩家,提供强大的图形处理能力和先进的游戏技术。
  • Quadro系列:面向专业市场,如设计师、工程师、科学家和内容创作者。
  • Tesla系列:面向数据中心和高性能计算(HPC)市场,提供强大算力,适用于科学研究和深度学习。
  • Clara系列:面向医疗成像和生命科学领域,提供AI和加速计算能力。
  • Jetson系列:面向边缘计算和机器人市场,提供小型化、低功耗的AI计算模块。
  • Orin系列:面向自动驾驶和边缘AI市场,集成了CPU、GPU和深度学习加速器。
03

GPU屏幕合成技术

在Android系统中,GPU屏幕合成技术主要由SurfaceFlinger负责。SurfaceFlinger通过SkiaGLRenderEngine将待合成的图层绘制到GraphicBuffer中,然后传递给HWC(Hardware Composer)模块进行进一步处理,最终将图像呈现到屏幕上。

GraphicBuffer是用于存储GPU合成后图形数据的关键组件。在Android系统中,可以通过dumpsys SurfaceFlinger命令查看GraphicBuffer的相关信息,包括其大小、分辨率、格式和使用情况等。

为了做好GPU的合成,SurfaceFlinger会在启动的时候就搭建好EGL环境,为后续GPU合成做好准备。具体逻辑如下:

void SurfaceFlinger::init() {
    ALOGI(  "SurfaceFlinger's main thread ready to run. "
            "Initializing graphics H/W...");
    Mutex::Autolock _l(mStateLock);

    // Get a RenderEngine for the given display / config (can't fail)
    // TODO(b/77156734): We need to stop casting and use HAL types when possible.
    // Sending maxFrameBufferAcquiredBuffers as the cache size is tightly tuned to single-display.
    // 创建RenderEngine对象
    mCompositionEngine->setRenderEngine(renderengine::RenderEngine::create(
            renderengine::RenderEngineCreationArgs::Builder()
                .setPixelFormat(static_cast<int32_t>(defaultCompositionPixelFormat))

这段代码展示了SurfaceFlinger初始化时创建RenderEngine的过程,为后续的GPU合成做好准备。

04

GPU图像处理的未来趋势

近年来,GPU在图像处理领域的创新持续加速:

  1. Turing架构(2018年):引入RT Core实现硬件光线追踪,大幅提升渲染质量和效率。同时,Tensor Core增加了对INT8/INT4/Binary的支持,进一步优化了深度学习性能。

  2. Ampere架构(2020年):推出Tensor Core 3.0,支持TF32精度,AI性能提升20倍。同时引入多实例GPU(MIG)技术,可以将单个GPU划分为多达7个独立的GPU,为云服务器提供更灵活的算力分配方案。

  3. Hopper架构(2022年):进一步优化了AI计算性能,特别是在Transformer模型的训练和推理方面。Hopper架构的GPU在大规模AI应用中展现出卓越的性能和能效。

GPU图像处理技术的未来发展方向主要包括:

  • 光线追踪技术的普及:随着RT Core的不断优化,光线追踪将从高端游戏逐渐普及到更多应用场景,如虚拟现实、增强现实和专业设计领域。

  • AI与图像处理的深度融合:Tensor Core的持续演进将推动AI技术在图像处理领域的广泛应用,如图像增强、视频超分辨率和实时风格转换等。

  • 异构计算的进一步发展:GPU将与CPU、TPU等其他计算单元更紧密地协同工作,形成更高效的异构计算系统,以应对日益复杂的计算任务。

总结而言,GPU图像处理技术正朝着更高效、更智能、更普及的方向发展。无论是游戏、专业图形处理还是AI计算,GPU都将继续发挥其核心作用,推动相关领域的发展和创新。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号