博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CUDA 学习(九)、CUDA 内存
阅读量:4217 次
发布时间:2019-05-26

本文共 910 字,大约阅读时间需要 3 分钟。

一、CPU内存

       在传统的CPU模型中,内存是线性内存或平面内存,单个CPU核可以无约束地访问任何地址内存。在内存处理中有两个重要的概念,一个是存储带宽,即在一定时间内从DRAM 读出或写入的数据量。另一个是延迟,即响应一个获取内存的请求所花费的时间,通常这个时间会是上百个处理器周期。

二、高速缓存

       高速缓存是硬件上非常接近处理器核的高速存储器组。高速缓存的最大速度与缓存的大小成反比关系。一级缓存是最快的,但它的大小一般限制在16KB、32KB、64KB。通常每次CPU核会分配一个单独的一级缓存。二级缓存相对而言慢一些,但是它更大,通常有256KB-512KB。三级缓存可能存在也可能不存在,如果存在,通常是几兆字节大小。二级缓存或三级缓存一般在处理器的核之间是共享的,或者作为连接于特定处理器的独立缓存来维护。在传统CPU上,一般而言,至少三级缓存在处理器核之间是共享的。处理器核便可通过设备上这块共享内存快速地进行通信。

      G80与GT2000系列GPU没有与CPU中高速缓存等价的存储器,但它们却是有两块基于硬件托管的缓存,即常理内存与纹理内存,它们类似CPU中的只读缓存。与CPU不同,GPU主要依赖基于程序员托管的缓存或共享内存区。

      费米架构的GPU实现中,不采用基于程序员托管的数据缓存。而是,GPU中每个SM有一个一级缓存,这个一级缓存既是基于程序员托管的又是基于硬件托管的。在所有的SM之间有一个共享的二级缓存。如图6-1

     

三、数据存储类型

       GPU提供不同层次若干区域供程序员存放数据,每块区域根据其能达到的最大带宽以及延迟而定义,如下表:

        

       最快速也是最受偏爱的寄存器是设备中的寄存器,接着是共享内存,如基于程序员托管的一级缓存,然后是常理内存,纹理内存,常规设备内存,最后则是主机端内存。主要不同存储之间的存储速度的数量级的变化规律。

        备注:

        纹理内存:是针对全局内存的一个特殊视图,用来存储插值计算所需的数据,例如,显示2D或3D图像时需要的查找表。它拥有基于硬件进行插值的特性。

        常理内存:用于存储那些只读的数据,所有的GPU卡均对其进行缓存。与纹理内存一样,常理内存也是全局内存建立的一个视图。

                

                   

  

                                    

 

  

你可能感兴趣的文章
游戏感:虚拟感觉的游戏设计师指南——第十四章 生化尖兵
查看>>
游戏感:虚拟感觉的游戏设计师指南——第十五章 超级马里奥64
查看>>
游戏感:虚拟感觉的游戏设计师指南——第十七章 游戏感的原理
查看>>
游戏感:虚拟感觉的游戏设计师指南——第十八章 我想做的游戏
查看>>
游戏设计的艺术:一本透镜的书——第十章 某些元素是游戏机制
查看>>
游戏设计的艺术:一本透镜的书——第十一章 游戏机制必须平衡
查看>>
游戏设计的艺术:一本透镜的书——第十二章 游戏机制支撑谜题
查看>>
游戏设计的艺术:一本透镜的书——第十三章 玩家通过界面玩游戏
查看>>
编写苹果游戏中心应用程序(翻译 1.3 为iOS应用程序设置游戏中心)
查看>>
编写苹果游戏中心应用程序(翻译 1.4 添加游戏工具包框架)
查看>>
编写苹果游戏中心应用程序(翻译 1.5 在游戏中心验证本地玩家)
查看>>
编写苹果游戏中心应用程序(翻译 1.6 获取本地玩家的信息)
查看>>
编写苹果游戏中心应用程序(翻译 1.7 在游戏中心添加朋友)
查看>>
编写苹果游戏中心应用程序(翻译 1.8 获取本地玩家的好友信息)
查看>>
WebGL自学教程《OpenGL ES 2.0编程指南》翻译——勘误表
查看>>
WebGL自学教程——WebGL示例:12. 要有光
查看>>
WebGL自学教程——WebGL示例:13.0 代码整理
查看>>
WebGL自学教程——WebGL示例:14.0 代码整理
查看>>
恶心的社会
查看>>
中国式危机公关9加1策略(第五章 慎用信息控制策略)
查看>>