云计算百科
云计算领域专业知识百科平台

GPU-入门系列-内存

1、内存与显存

        通常意义上讲,通常意义上讲,内存指的是内部存储,是相对于外部存储来讲的,一般是板上或者卡上的内部存储,不具备永久存储能力。掉电即消失。显存指的的Device上也就是GPU上的内部存储。

2、GPU的内存模型

        内存分类两大类,可编程内存与不可编程内存,两者最大的区别是,是否可以由用户显式的控制申请与释放,不可变成内存最大的代表就是离CPU最近的L1 L2 cache,这部分内存的最大的作用是为了消除计算单元与存储之间的速度差,可编程内存就相对明确了,就是可以由开发者通过接口去申请释放以及读写。在GPU编程中,可编程内存可以分为以下几类:

2.1 寄存器

        最快的内存之一,同时也是最小的资源,也是最贵的资源,线程级私有的,不参与线程间共享。

2.2 共享内存

       速度仅次于寄存器,其非某个线程独有,而是在线程块内共享,不支持跨线程块共享。

2.3 本地内存

        速度较慢,但是其是线程级私有的,不参与线程间共享。

2.4 常量内存

        速度较慢,所有线程共享,CPU 与 GPU 共享,通常存储一些常量数据。

2.5 纹理内存

        纹理内存是一种有特殊排布的全局内存,其在线程束访问的某些特殊的结构时可以达到最优性能。主要体现在寻址方面。

2.6 全局内存

        最通用的内存,所有线程共享,CPU 与 GPU 共享。

        不可编程内存通常是指缓存,在GPU上有4种缓存,每个SM 有独立的一级缓存,所有SM共享二级缓存

2.7 一级缓存

        最靠近运算器,速度最快,用于缓存来源于本地内存,全局内存的数据。

2.8 二级缓存

        次靠近运算器,速度很快,用于缓存来源于本地内存,全局内存的数据。

2.9 只读常量缓存

        速度较快,用于缓存只读内存。

2.10 只读纹理缓存

        速度较快,用于缓存纹理内存。

4、分类与总结

4.1从可见域上来讲

    线程内:寄存器,本地内存

    线程块内,线程间:共享内存

    线程块间:常量内存,纹理内存,全局内存,其中纹理内存,常量内存通常都是只读缓存的。

4.2 从读写速度上讲:

    寄存器 > 共享内存 > 纹理内存(特殊场景下),常量内存 >=  本地内存,全局内存

4.3 从物理属性上讲:

     可分为三类,寄存器,共享内存,其他(本地内存,纹理内存,全局内存)。

赞(0)
未经允许不得转载:网硕互联帮助中心 » GPU-入门系列-内存
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!