CUDA学习笔记06:我们究竟能获取哪些host存储?
来源:互联网 发布:java todo和 编辑:程序博客网 时间:2024/06/02 04:16
1、 寄存器Register
寄存器是GPU上的高速缓存器,其基本单元是寄存器文件,每个寄存器文件大小为32bit.
Kernel中的局部(简单类型)变量第一选择是被分配到Register中。
特点:每个线程私有,速度快。
2、 局部存储器 local memory
当register耗尽时,数据将被存储到local memory。如果每个线程中使用了过多的寄存器,或声明了大型结构体或数组,或编译器无法确定数组大小,线程的私有数据就会被分配到local memory中。
特点:每个线程私有;没有缓存,慢。
注:在声明局部变量时,尽量使变量可以分配到register。如:
unsigned int mt[3];
改为: unsigned int mt0, mt1, mt2;
3、 共享存储器 shared memory
可以被同一block中的所有线程读写
特点:block中的线程共有;访问共享存储器几乎与register一样快.
4、 全局存储器 global memory
特点:所有线程都可以访问;没有缓存
5、 常数存储器constant memory
用于存储访问频繁的只读参数
特点:只读;有缓存;空间小(64KB)
注:定义常数存储器时,需要将其定义在所有函数之外,作用于整个文件
6、 纹理存储器 texture memory
这是一种只读存储器,其中的数据以一维、二维或者三维数组的形式存储在显存中。在通用计算中,其适合实现图像处理和查找,对大量数据的随机访问和非对齐访问也有良好的加速效果。
特点:具有纹理缓存,只读。
我的总结:我们面对的就是这6种内存的申请,我们可以这么申请,但是具体申请到的存储可能不一定要是我们想要的,这个最终是nvcc编译器决定。
接上一篇文章CUDA学习笔记05:Mem申请的所有方式 我们可以申请内存,但是分配到手里面的内存是依靠nvcc编译器。
- CUDA学习笔记06:我们究竟能获取哪些host存储?
- 使用敏捷看板究竟能给我们带来哪些好处呢?
- cuda学习笔记(一)存储
- cuda学习笔记(一)存储
- 我们究竟该如何获取桌面句柄???
- LoRa调制技术究竟给我们带来了哪些突破?
- MYOP究竟能为站长提供哪些便利
- Win10开发究竟能实现哪些牛逼的功能
- CUDA学习笔记 02 函数三种前缀device、global、host
- 究竟我们为什么要学习C?
- 我们究竟应该如何学习编程
- CUDA基础学习笔记
- CUDA学习笔记
- cuda学习笔记
- CUDA学习笔记
- CUDA学习笔记
- CUDA学习笔记(1)
- CUDA学习笔记
- Java集合类详解
- 2017互联网月饼哪家强?腾讯、阿里、百度、网易等21家中秋月饼盘点
- 如何读懂火焰图?
- 趣图:程序员、设计师、项目经理眼中的对方
- Ubuntu16.04下如何编译 ardupilot
- CUDA学习笔记06:我们究竟能获取哪些host存储?
- 一.基础数据结构
- storm和kafka整合案例
- 智能小车34:arduino与arm的汇编程序开发
- unity DropDown控件的使用
- leveldb源码学习-writebatch
- 高效开发习惯
- 递归求斐波拉契数
- iOS 图片风格转换(CoreML)