CUDA学习(十九)

简介:

16位浮点纹理:
CUDA阵列支持的16位浮点或半格式与IEEE 754-2008 binary2格式相同。
CUDA C不支持匹配的数据类型,但提供了通过unsigned short类型__float2half_rn(float)和__half2float(unsigned short)转换32位浮点格式和从32位浮点格式转换的内部函数。 这些功能仅在设备代码中受支持。 主机代码的等价函数可以在OpenEXR库中找到。
在执行任何过滤之前,16位浮点组件在纹理提取期间被提升为32位浮点数。
可以通过调用cudaCreateChannelDescHalf *()函数之一来创建16位浮点格式的通道描述。
分层纹理:
一维或二维的分层纹理(也称为Direct3D中的纹理阵列和OpenGL中的阵列纹理)是由一系列层组成的纹理,它们都是具有相同维度,大小和数据类型的规则纹理。
使用整数索引和浮点纹理坐标来寻址一维分层纹理; 索引表示序列中的一个层,坐标表示该层内的纹理元素。 使用整数索引和两个浮点纹理坐标来寻址二维分层纹理; 索引表示序列中的一个层,坐标表示该层内的纹理元素。
通过使用cudaArrayLayered标志调用cudaMalloc3DArray()(一维分层纹理的高度为零),分层纹理只能是CUDA数组。
使用tex1DLayered(),tex1DLayered(),tex2DLayered()和tex2DLayered()中描述的设备函数来获取分层纹理。 纹理过滤(请参见纹理拾取)仅在一个图层内完成,而不是跨层完成。
立方地图纹理:
立方体贴图纹理是一种特殊类型的二维分层纹理,具有六个表示立方体面的图层:

  • 层的宽度等于它的高度。
  • 使用三个纹理坐标x,y和z来寻址立方体贴图,这三个纹理坐标被解释为从立方体的中心发出并且指向立方体的一个面的方向向量以及与该面对应的层内的纹理元素。 更具体地说,通过具有最大量值m的坐标来选择面部,并且使用坐标(s / m + 1)/ 2和(t / m + 1)/ 2来寻址对应的层,其中s和t在表1中定义

通过使用cudaArrayCubemap标志调用cudaMalloc3DArray(),分层纹理只能是CUDA数组。
使用texCubemap()和texCubemap()中描述的设备函数来获取立方体贴图纹理。
Cubemap纹理仅支
持计算能力为2.0或更高的设备。
立方体贴图分层纹理:
立方体贴图分层纹理是分层纹理,其图层是具有相同维度的立方体贴图。
使用整数索引和三个浮点纹理坐标来寻址立方体贴图分层纹理; 索引表示该序列内的立方体贴图,坐标表示该立方体贴图内的纹理元素。
通过使用cudaArrayLayered和cudaArrayCubemap标志调用cudaMalloc3DArray(),分层纹理只能是CUDA数组。
使用texCubemapLayered()和texCubemapLayered()中描述的设备功能获取立方体贴图分层纹理。 纹理过滤(请参见纹理拾取)仅在一个图层中完成,而不是跨层完成。
Cubemap分层纹理仅支持计算能力为2.0或更高的设备。
纹理聚集:
纹理拾取是一种特殊的纹理拾取,仅适用于二维纹理。 它由tex2Dgather()函数执行,该函数与tex2D()具有相同的参数,另外还有一个等于0,1,2或3的comp参数(请参阅tex2Dgather()和tex2Dgather())。 它将返回四个32位数字,它们对应于在常规纹理提取期间将用于双线性滤波的四个纹素中每一个的分量comp的值。 例如,如果这些纹理元素具有值(253,20,31,255),(250,25,29,254),(249,16,37,253),(251,22,30,250)和 comp是2,tex2Dgather()返回(31,29,37,30)
请注意,纹理坐标只用8位小数精度进行计算。 tex2Dgather()因此可能会返回意外的结果,其中tex2D()将为其权重之一使用1.0(α或β,请参阅线性过滤)。 例如,使用2.49805的x纹理坐标:xB = x-0.5 = 1.99805,但xB的小数部分以8位定点格式存储。 由于0.99805比256.f / 256.f更接近于255.f / 256.f,所以xB的值为2.因此,在这种情况下,tex2Dgather()将返回索引2和索引3,而不是索引 1和2。
只有用cudaArrayTextureGather标志创建的CUDA数组才支持纹理集合,并且纹理集合的宽度和高度小于表14中指定的最大值,这比纹理拾取的纹理集合小。 纹理集合仅在计算能力2.0和更高的设备上受支持。
timg

目录
相关文章
|
并行计算 异构计算 数据管理
|
并行计算 异构计算
|
并行计算 Linux 程序员
|
存储 并行计算 API
|
并行计算 API
|
并行计算 API 异构计算
|
并行计算 API
|
并行计算 程序员 编译器
|
并行计算 异构计算 存储