- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CUDA中纹理存储器的使用
CUDA 中纹理存储器的使用
纹理存储器(texture memory )是一种只读存储器,由GPU 用于纹理渲染的的
图形专用单元发展而来,因此也提供了一些特殊功能。纹理存储器中的数据位
于显存,但可以通过纹理缓存加速读取。在纹理存储器中可以绑定的数据比在
常量存储器可以声明的 64K 大很多,并且支持一维、二维或者三维纹理。在通
用计算中,纹理存储器十分适合用于实现图像处理或查找表,并且对数据量较
大时的随机数据访问或者非对齐访问也有良好的加速效果。
纹理存储器在硬件中并不对应一块专门的存储器,而实际上是牵涉到显存、两
级纹理缓存、纹理抓取单元的纹理流水线。纹理存储器提供了地址映射、数据
滤波、缓存等功能,这些功能都是围绕着纹理渲染的需求设计的。在 CUDA 编
程模型中,纹理缓存是透明的,编程人员不用去了解它的实现机制。
从 CUDA 的内核函数访问纹理存储器的操作被称为纹理拾取(texture fetching) 。
纹理拾取使用的坐标与数据在显存中的地址可以不同,两者通过纹理参照系
texture reference
( )约定从数据的地址到纹理坐标的映射方式。将显存中的数
据与纹理参照系关联的操作,称为将数据与纹理绑定(texture binding) 。显存中
可以绑定到纹理的数据有两种,分别是普通的线性内存(Linear Memroy)和
CUDA 数组(CUDA Array )。CUDA 数组则为纹理访问进行了优化,并且在
Device 端中只能通过纹理拾取访问。
纹理缓存有两个作用。首先,纹理缓存中的数据可以被重复利用,当一次访问
需要的数据已经存在于纹理缓存中时,就可以避免对显存进行读取。数据重用
过滤了一部分对显存的访问,节约了带宽,也不必按照显存对齐的要求读取。
第二,纹理缓存可以缓存拾取坐标附近几个像元的数据,可以实现滤波模式,
也能提高具有一定局部性的访问的效率。
纹理存储器是只读的,不需要关心缓存数据一致性问题。这意味着如果更改了
绑定到纹理存储器的数据,纹理缓存中的数据可能并没有被更新,此时通过纹
理拾取得到的数据可能是错误的。因此,在每次修改了绑定到纹理的数据以后,
都需要对纹理进行重新绑定。由于不能从设备端修改 CUDA 数组,因此只有在
对绑定到纹理的线性内存进行修改时才需要注意这一点。
使用过程说明:
(一)host 端
1)声明实际纹理数据
float2 *hvfield = NULL;
float2 *dvfield = NULL;
2) 对 host 数据和 device 数据进行初始化
hvfield = (cData*)malloc(sizeof(cData) * DS);
memset(hvfield, 0, sizeof(cData) * DS);
// Allocate and initialize device data
cudaMallocPitch((void**)dvfield, tPitch, sizeof(cData)*DIM, DIM);
cudaMemcpy(dvfield, hvfield, sizeof(cData) * DS,
cudaMemcpyHostToDevice);
3 )调用 device 端函数,建立并绑定纹理数据
setupTexture(DIM, DIM);
bindTexture(); // , array texref
注意 其中将 和纹理标识 绑定
(二)device 端
1)声明纹理对象标识,以及纹理实际数据数组
texturefloat2, 2 texref;
static cudaArray *array = NULL;
2 )实现纹理建立、绑定函数
void setupTexture(int x, int y) {
// Wrap mode appears to be the new default
texref.filterMode = cudaFilterModeLinear;
cudaChannelFormatDesc desc = cudaCreateChannelDescfloat2();
cudaMal
您可能关注的文档
- 06性质判断练习.ppt
- 1-6MM极限运算法则.pdf
- 05_LTE系统原理.pdf
- 1.吉林省第九届社科优秀成果奖暨省社科联第四次优秀成果奖申报表.doc
- 1.椭圆的几何性质(简单性质)第三课时.ppt
- 10.4最小二乘优化问题.pdf
- 11-12操作系统B卷.doc
- 121030 前束范式存在定理与证明_27180100.docx
- 12277Gaussian中分子的几何构型.doc
- 12~13下八年级下数学教学计划.doc
- TZSM-校史馆展览展示工程服务规范及编制说明.pdf
- TSEEPLA-生态环境标准实施评估指南及编制说明.pdf
- 化妆品中羟吡啶酮的测定 高效液相色谱法编制说明.pdf
- QJKL023-2020 佳木斯市恺乐农药有限公司企业标准240gpL乳氟禾草灵乳油.pdf
- QHTY031-2020 过氧化氢分解仪.pdf
- TGLAC-基于北斗的智能网联车载设备技术要求及编制说明.pdf
- QALKS0001-2020 新能源车用机械式变速器总成台架试验标准.pdf
- TSSM-基于计量方法学的碳排放核算指南 铝冶炼企业及编制说明.pdf
- 产品碳足迹评价规范 污泥干化焚烧系统集成装备及编制说明.pdf
- DBS333018-2024 食品安全地方标准 藕粉生产卫生规范.pdf
最近下载
- T∕CACM 1021.135-2018 中药材商品规格等级 桑椹.docx VIP
- 合肥南站枢纽方案.pdf
- 内蒙古自治区包头市昆都仑区2023-2024学年七年级下学期期中语文试题【含答案解析】.docx VIP
- 公司年度颁奖晚会主持词与公司年终工作总结2合集.doc VIP
- GB/T 27726-2011_热塑性塑料阀门压力试验方法及要求.pdf
- 医学生全国水平测试题库.pdf
- 2025年东莞实业投资控股集团有限公司招聘笔试模拟试题及答案解析.docx
- 《第十章-中国文化的基本精神》-课件.ppt VIP
- 基于模糊控制的智能浇灌系统设计.pptx VIP
- 乳腺癌诊治指南与规范(2025年版精要本).PDF VIP
文档评论(0)