UMA架构下的GPU 显存

embedded/2025/3/28 17:21:58/

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.ppmy.cn/embedded/174297.html

相关文章

文心一言:中国大模型时代的破局者与探路者

2023年,生成式人工智能(AIGC)的浪潮席卷全球,而百度推出的“文心一言”(ERNIE Bot)作为中国AI领域的代表性产品,迅速成为行业焦点。这款基于百度自主研发的“文心大模型”打造的对话式AI工具&am…

One API:统一接口与模型重定向的强大功能

在当今人工智能技术飞速发展的时代,大语言模型和生成式 AI 工具已经成为许多企业和开发者的得力助手。然而,随着模型供应商的多样化(如 OpenAI、Azure、阿里云等),以及不同模型版本的快速迭代,开发者在集成和管理这些服务时面临诸多挑战。例如,如何屏蔽底层差异?如何灵…

Matlab 风力发电机磁悬浮轴承模型pid控制

1、内容简介 略 Matlab 174-风力发电机磁悬浮轴承模型pid控制 可以交流、咨询、答疑 2、内容说明 磁悬浮轴承具有无接触、无摩擦、高速度、高精度、能耗低、不需要需润滑无油污染、可靠性高、寿命长和密封等一系列显著的优点。将磁悬浮技术应用于风力发电机中可以降低风机切入…

【C++】Virtual function and Polymorphism

《C程序设计基础教程》——刘厚泉,李政伟,二零一三年九月版,学习笔记 文章目录 1、多态性的概念2、虚函数的定义2.1、引入虚函数的原因2.2、虚函数的定义与使用2.3、虚函数的限制 3、抽象类3.1、纯虚函数3.2、抽象类 4、应用实例 更多有趣的代…

Python程序常用的配置文件格式及例子(上)

Python 中常用的配置文件格式有多种,每种格式都有其特点和适用场景。以下是常见的配置文件类型及简要说明: 1. INI 格式 特点:简单键值对,支持分节(Section)。文件扩展名:.ini, .cfgPython 库&…

机器学习之KMeans算法

文章目录 引言1. KMeans算法简介2. KMeans算法的数学原理3. KMeans算法的步骤3.1 初始化簇中心3.2 分配数据点3.3 更新簇中心3.4 停止条件 4. KMeans算法的优缺点4.1 优点4.2 缺点 5. KMeans算法的应用场景5.1 图像分割5.2 市场细分5.3 文档聚类5.4 异常检测 6. Python实现KMea…

一条SQL在mysql数据库中经历的过程

SQL语句在MySQL数据库中普遍经历的过程如下: 客户端发起查询请求到MySQL数据库服务器监听端口; MySQL数据库server端接收到请求; server端从已有的连接池或者新建一个线程,用来处理客户端发起的请求; server层…

重要重要!!改进求取Fisher矩阵的方法: 加权正则化Fisher矩阵

改进求取Fisher矩阵的方法: 加权正则化Fisher矩阵 Fisher矩阵在机器学习和统计学中有着重要作用,传统上常通过对数据样本取平均来近似求取。然而,这种简单平均的方法存在一些局限性,比如可能受异常值影响、未充分考虑数据分布特性等。以下介绍几种改进求取Fisher矩阵的方法…