【CUDA4】GPU里面的数据放到哪里?为什么有的数据访问快,有的慢?

复制代码
                    GPU Compute
                         │
                  ┌──────┴──────┐
                  │             │
              Registers    Shared Memory
                  │             │
                  └──────┬──────┘
                         │
                        L1
                         │
                        L2
                         │
                 Global Memory
                         │
                        VRAM

往上

↑

速度更快

容量更小

离计算单元更近

往下

↓

速度更慢

容量更大

离计算单元更远

Register 是最靠近计算单元的存储,它的速度非常快,作用范围单个thread,所以每个线程都有自己的register。shared memory是block的小仓库,作用范围block内线程共享。L1 Cache它主要用于缓存近期访问的数据,可以理解位GPU计算单元旁边的小型高速缓存,L2 比 L1 更大,但通常也更远、更慢,它是 GPU 多个计算单元之间可以共享的数据缓存层。global memory速度相对慢,延迟高,但是容量大。

Global Memory 和 VRAM 在 CUDA 语境里经常指的是同一大类显存资源;不要把它们当成两个完全独立的物理内存层.

内存 谁使用 核心特点
Register 单个 Thread 极快、很小
Shared Memory Block 内 Threads 快、可共享
L1 GPU 硬件 高速 Cache
L2 GPU 多个计算单元共享 更大、较慢
Global Memory / VRAM GPU 大、相对慢
相关推荐
CCblandy9 小时前
雪花 ID 四个边界实测:时钟回拨重号 500 个,前端 JSON.parse 直接丢精度
后端·python·算法·性能优化·架构
Highcharts.js11 小时前
Highcharts 发布16项最新安全公告
人工智能·安全·性能优化·highcharts·可视化图表
我不会起名字32213 小时前
MySQL 深分页 LIMIT 1000000 卡死:3 种改写与 4 组实测对比
mysql·性能优化·索引·分页·limit
加宝的起点雷达15 小时前
扩散语言模型跑出 2788 tokens/s,单卡就够,怎么做到的
人工智能·性能优化
CCblandy16 小时前
向量检索 ANN 参数实测:换一种数据分布,recall 掉了 51 个百分点
人工智能·python·算法·自然语言处理·性能优化
Highcharts.js17 小时前
Highcharts 数据过滤实战指南:从基础实现到性能优化
javascript·性能优化·bi·highcharts·前端可视化·数据过滤·交互图表
要开心吖ZSH19 小时前
《通过SeaTunnel 把 MySQL 的数据搬进 Doris》番外篇:容量、切分与速度——Doris 能扛多少,比 MySQL 快多少
mysql·性能优化·doris·分区·分表·分桶
yunwei3720 小时前
eBPF 实例教程:BPF 动态指针处理可变长度数据
linux·后端·性能优化
Funlang20 小时前
295 字节机器码,跑赢 LuaJIT
性能优化
打工仔折腾 AI20 小时前
260+异构同步链路实战:如何用语义化自动翻译破解CDC DDL同步痛点
人工智能·后端·python·自然语言处理·性能优化·langchain·机器翻译