当前位置: 首页 > article >正文

UMA架构下的GPU 显存

GPU 显存 (Graphics Memory) 在大多数现代设备(包括 Android 手机、嵌入式设备等)上,确实是使用 DDR(Double Data Rate SDRAM) 类型的内存。

不过,具体实现方式根据硬件架构有所不同,主要分为以下两种情况:


📌 1. 共享内存架构 (Unified Memory Architecture, UMA)

移动设备嵌入式系统集成 GPU (Integrated GPU) 中,CPUGPU 共享同一片 DDR 内存。这种架构被称为 UMA,常见于 Android 设备、高通 (Qualcomm)、联发科 (MediaTek)、苹果 (Apple) 等移动平台的 SoC (System on Chip)

特点
  • 共享 DDR:GPU 和 CPU 访问同一片物理内存(DDR4/DDR5/LPDDR5)。
  • 数据交换效率高:不需要数据拷贝,CPU 和 GPU 可以直接共享缓冲区(如 gralloc 管理的 buffer)。
  • 成本和功耗低:无需额外配置独立显存,节省芯片面积和能耗。
  • 缓存一致性问题:需要严格控制 CPU 和 GPU 之间的 Cache FlushCache Invalidate,防止数据不一致。
应用场景
  • Android 设备(如手机、平板等)。
  • 一些低功耗嵌入式设备(如智能摄像头、车载系统)。
  • 采用 ARM MaliQualcomm AdrenoPowerVR 等 GPU 架构的 SoC。
示意图
      ┌───────────────────────┐
      │        DDR 内存        │
      └───────────────────────┘
               ▲      ▲
          ┌────┘      └────┐
          │ CPU           GPU │
          └───────────────────┘
     (共享物理内存,使用虚拟地址隔离)

📌 2. 独立显存架构 (Dedicated Video Memory)

独立 GPU (Discrete GPU),如 NVIDIAAMD高性能计算设备 中,GPU 拥有一块独立的高速显存,通常是 GDDR 系列(如 GDDR6X)或 HBM(高带宽内存)。

特点
  • 独立显存:GPU 使用单独的高速显存(而非共享 DDR)。
  • 性能更高:显存带宽更大,适合高吞吐量任务(如 AI 推理、4K 视频处理)。
  • 数据传输:CPU 和 GPU 之间需要通过 PCIe 等总线传输数据,速度相对较慢。
  • 数据拷贝:需要将 CPU 数据拷贝到 GPU 内存,或者使用 zero-copy 技术减少拷贝。
应用场景
  • 台式机和笔记本电脑的 独立显卡
  • 数据中心、高性能计算(HPC)、AI 训练/推理。
  • 需要高带宽的图形任务(如游戏、视频处理、深度学习)。
示意图
      ┌───────────────┐         ┌───────────────┐
      │     DDR 内存    │         │   GDDR 显存    │
      └───────────────┘         └───────────────┘
              ▲                       ▲
          ┌───┘                       └───┐
          │ CPU (主机)                 GPU │
          └────────────────────────────────┘
               通过 PCIe 进行数据传输

📌 3. Android 中的 GPU 显存管理

Android 设备通常使用 共享内存架构 (UMA),因此 GPU 显存也在 系统 DDR 中分配和使用,核心组件包括:

  1. Gralloc (Graphics Memory Allocator)

    • 用于 GPU-CPU 间共享内存缓冲区。
    • 通过 GRALLOC1_PRODUCER_USAGE_CPU_WRITEGRALLOC1_CONSUMER_USAGE_CPU_READ 控制 CPU 和 GPU 的访问权限。
  2. ION (Input-Output Memory Management Unit)

    • Android 平台通用的 内存分配机制,用于 DMA 和 GPU/ISP 的大页内存分配。
  3. DMA-BUF (Direct Memory Access Buffer)

    • Linux 和 Android 使用 DMA-BUF 在设备(如 GPU、ISP、显示控制器)之间共享物理内存。

📌 4. 总结对比

特性共享内存 (UMA)独立显存 (Dedicated Memory)
使用的内存系统 DDR (如 DDR4、LPDDR5)专用显存 (如 GDDR6、HBM)
CPU/GPU 数据共享直接共享,无需数据拷贝需要通过 PCIe 总线传输,需拷贝数据
性能适中,受 DDR 带宽限制极高,GDDR/HBM 带宽更大
适用场景Android、嵌入式设备、手机、平板高性能桌面 GPU、深度学习、HPC
缓存管理需要 Cache Flush / Invalidate独立缓存,不需要跨设备同步
数据延迟低延迟,CPU 和 GPU 共享虚拟地址高延迟,受 PCIe 传输速度限制

👉 简而言之:Android 和移动设备的 GPU 显存 通常使用的是 系统 DDR,而独立显卡使用的是 专用显存 (GDDR/HBM),两者在性能和架构上有所不同。


http://www.kler.cn/a/594163.html

相关文章:

  • CSS 用于图片的样式属性
  • 基于微信小程序的充电桩管理系统
  • vector和list的区别是什么
  • OpenCV第1课OpenCV 介绍及其树莓派下环境的搭建
  • 如何用日事清做研发目标、需求、规划、迭代、Bug、效能、复盘、绩效一站式管理
  • 前后端联调解决跨域问题的方案
  • 基于springboot的房产销售系统(016)
  • Linux 一步部署DHCP服务
  • mysql5.6忘记密码怎么重置mysql密码
  • rust学习笔记16-206.反转链表(递归)
  • 第7章 类与面向对象
  • Kotlin v2.1.20 发布,标准库又有哪些变化?
  • 使用Java爬虫根据关键词获取Shopee商品列表?
  • 渲染模式、基础组件、矢量图、样式设置——微信小程序学习笔记
  • 14-图论-多源最短路径Floyd算法
  • 蓝桥杯备考----》贪心之删数问题
  • 当了5年牛马,我开始划水了。。。
  • Spring MVC 参数校验-校验注解
  • 如何用AI轻松制作PPT,提升工作效率和演讲质量
  • Ruby on Rails 中的 Delegated Types(委托类型)