CUDA 中的常量内存、纹理内存和全局内存

Posted

技术标签:

【中文标题】CUDA 中的常量内存、纹理内存和全局内存【英文标题】:Constant Memory vs Texture Memory vs Global Memory in CUDA 【发布时间】:2012-01-08 13:39:00 【问题描述】:

我试图找出 CUDA 中常量内存、纹理内存和全局内存之间的区别。

我能够找到以下相关文章,但无法找到我的问题的答案

global vs shared memory in CUDA

Usage of global vs. constant memory in CUDA

一篇文章处理所有这三个方面的性能影响: http://forum.beyond3d.com/showthread.php?t=52510

【问题讨论】:

这在 CUDA 编程指南中有很好的解释。你在那里检查过吗? 我的“理论差异”是什么意思?正如所写,这不是一个特定的具体问题............ 感谢您的指点和建议.. 【参考方案1】:

恒定内存:

这是存储常量和内核参数的地方

慢,但有缓存 (8 kb)

恒定内存针对广播进行了优化

纹理记忆:

针对 2D 空间访问模式优化的缓存

读取具有一些优势,例如可以免费使用的地址模式和插值

全局内存:

慢且未缓存(1.0),缓存(2.0)

要求顺序和对齐的 16 字节读写速度快(合并读/写)

来源:http://www.cvg.ethz.ch/teaching/2011spring/gpgpu/cuda_memory.pdf

【讨论】:

以上是关于CUDA 中的常量内存、纹理内存和全局内存的主要内容,如果未能解决你的问题,请参考以下文章

Cuda - 从设备全局内存复制到纹理内存

cuda纹理内存的使用

GPU存储器架构-- 全局内存 本地内存 寄存器堆 共享内存 常量内存 纹理内存

CUDA 全局内存,它在哪里?

CUDA编程CUDA内存模型

CUDA编程CUDA内存模型