前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >DAY16:阅读纹理内存之纹理对象API

DAY16:阅读纹理内存之纹理对象API

作者头像
GPUS Lady
发布2018-06-25 15:57:05
1K0
发布2018-06-25 15:57:05
举报
文章被收录于专栏:GPUS开发者

我们正带领大家开始阅读英文的《CUDA C Programming Guide》,今天是第16天,我们用几天时间来学习CUDA 的编程接口,其中最重要的部分就是CUDA C runtime.希望在接下来的84天里,您可以学习到原汁原味的CUDA,同时能养成英文阅读的习惯。

本文共计76字,阅读时间5分钟

3.2.11.1.1. Texture Object API

A texture object is created using cudaCreateTextureObject() from a resource description of type struct cudaResourceDesc, which specifies the texture, and from a texture description defined as such:

· addressMode specifies the addressing mode;

· filterMode specifies the filter【插值】 mode;

· readMode specifies the read mode;

· normalizedCoords specifies whether texture coordinates are normalized or not;

· See reference manual for sRGB, maxAnisotropy, mipmapFilterMode, mipmapLevelBias, minMipmapLevelClamp, and maxMipmapLevelClamp.

The following code sample applies some simple transformation kernel to a texture.

本文备注/经验分享:

昨天开始我们开始介绍纹理内存。

什么情况下使用纹理内存? 需要使用免费的地址变换, 值变换(归一化读取方式), 边界处理, 以及, 可能的CUDA Array的缓存优势的时候用,还有自带的免费插值(线性)。 不需要这些特性的请使用普通读取。请注意现在的卡使用纹理不一定有提速效果,这个不保证的。以前说纹理提速巨大那是说的1.X,1.X普通读取无缓存。现在已经过时了。

A texture object is created using cudaCreateTextureObject() from a resource description of type struct cudaResourceDesc, which specifies the texture, and from a texture description.... 这句是字面意思. 没啥可说的。主要注意,Texture Object没有单独的一个绑定过程,在创建的时候就已经绑定了。什么情况下要用纹理对象API ? 任何时候都可以使用,新代码建议总是使用Texture Object。 Texture Object的一大特点就是能作为参数用。

The following code sample applies some simple transformation kernel to a texture.这段读取texture,做简单的变换,这代码是做图像旋转的。(1)x和y坐标,分别除以总宽度和高度,这是将X: [0,W)和Y:[0,H)变换到(0,1)和(0,1)上

(坐标归一化),然后各自减掉0.5, 平移, 平移原点到中心位置,再用旋转公式在新坐标系下, 对新原点旋转, 因为之前平移过。对于对图像原本的中点旋转,旋转完了, 再恢复原本的以图像(0,0)点为原点, 平移回来。这样就得到了对中点旋转后的新坐标了。新坐标依然是归一化的,然后用texture的归一化坐标进行读取。最后将旋转后的结果图像,保存到普通内存。注意普通内存这里是普通坐标(x,y)的这种。x和y来自线程编号和block编号。另外注意这里用的是纹理的线性插值,如果旋转后的新坐标落到了原本的一些点的中间。则用它们的线性插值平均后的值作为新值,这样多少能让旋转后的图像变得平滑一点。

有不明白的地方,请在本文后留言

或者在我们的技术论坛bbs.gpuworld.cn上发帖

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-05-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GPUS开发者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 3.2.11.1.1. Texture Object API
  • 有不明白的地方,请在本文后留言
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档