当前位置: 首页 > news >正文

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

相关文章:

  • export和import的用法总结
  • Picasso源码阅读笔记九
  • 《Python编程快速上手》第8.9.2实践练习
  • Intel发布P4500、P4600 NVMe SSD:规格释疑
  • Gradle:Gradle入门
  • 超简便安装mysql
  • 个人开发—进度记录(十)
  • 【技巧】从键盘读入一串字符并输出
  • [转] Webpack 打包优化之体积篇
  • Java并发编程实战系列16之Java内存模型(JMM)
  • [20180224]expdp query 写法问题.txt
  • Android SDK Manager 和 AVD Manager使用
  • Ubuntu 开机挂载分区
  • SQL自动审核工具archer
  • django生产环节部署
  • 【译】JS基础算法脚本:字符串结尾
  • ES6指北【2】—— 箭头函数
  • [iOS]Core Data浅析一 -- 启用Core Data
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • AHK 中 = 和 == 等比较运算符的用法
  • Angular Elements 及其运作原理
  • JS实现简单的MVC模式开发小游戏
  • mysql 5.6 原生Online DDL解析
  • SpiderData 2019年2月13日 DApp数据排行榜
  • Spring声明式事务管理之一:五大属性分析
  • web标准化(下)
  • 包装类对象
  • 电商搜索引擎的架构设计和性能优化
  • 多线程 start 和 run 方法到底有什么区别?
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 漂亮刷新控件-iOS
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 思维导图—你不知道的JavaScript中卷
  • 算法-插入排序
  • 一个完整Java Web项目背后的密码
  • 用mpvue开发微信小程序
  • 主流的CSS水平和垂直居中技术大全
  • # Maven错误Error executing Maven
  • #传输# #传输数据判断#
  • (1)SpringCloud 整合Python
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (第二周)效能测试
  • (二)springcloud实战之config配置中心
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (离散数学)逻辑连接词
  • (强烈推荐)移动端音视频从零到上手(上)
  • (五)c52学习之旅-静态数码管
  • (原創) 物件導向與老子思想 (OO)
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .NET 解决重复提交问题
  • .NET 使用 XPath 来读写 XML 文件
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)