GPU编程和流式多处理器(六)
GPU编程和流式多处理器(六)
5. 纹理和表面
读取和写入纹理和表面的指令,所引用的隐式状态,比其他指令要多得多。header中包含诸如基地址,尺寸,格式和纹理内容的解释之类的参数,该header是一种中间数据结构,其软件抽象称为纹理参考或表面参考。当开发人员操纵纹理或表面引用时,CUDA运行时runtime和驱动程序,必须将这些更改转换为header,纹理或表面指令,将其作为索引引用。
在启动在纹理或表面上运行的内核之前,驱动程序必须确保,在硬件上正确设置了所有状态。结果,启动此类内核,可能需要更长的时间。纹理读取,通过专用的缓存子系统进行服务,该子系统与Fermi中的L1 / L2缓存分开,并且也与常量缓存分开。每个SM具有L1纹理缓存,而TPC(纹理处理器集群)或GPC(图形处理器集群),每个都另外具有L2纹理缓存。表面读取和写入,通过为全局内存流量,提供服务的相同L1 / L2缓存,进行服务。
开普勒在纹理方面,增加了两种值得注意的技术:通过纹理缓存层次结构,从全局存储器读取数据,无需绑定纹理引用,通过地址,而不是通过索引,指定纹理header的能力。后一种技术称为“无边界纹理”。
在SM 3.5及更高版本的硬件,通过纹理缓存,读取全局内存,可以通过使用要求常量__restrict指针,或通过sm_35_intrinsics.h中的内部函数,显式调用LDG()。
GPU编程和流式多处理器(六)的更多相关文章
- GPU编程和流式多处理器(四)
GPU编程和流式多处理器(四) 3.2. 单精度(32位) 单精度浮点支持是GPU计算的主力军.GPU已经过优化,可以在此数据类型上原生提供高性能,不仅适用于核心标准IEEE操作(例如加法和乘法),还 ...
- GPU编程和流式多处理器(三)
GPU编程和流式多处理器(三) 3. Floating-Point Support 快速的本机浮点硬件是GPU的存在理由,并且在许多方面,它们在浮点实现方面都等于或优于CPU.全速支持异常可以根据每条 ...
- GPU编程和流式多处理器(五)
GPU编程和流式多处理器(五) 4. 条件代码 硬件实现了"条件代码"或CC寄存器,其中包含用于整数比较的常用4位状态向量(符号,进位,零,溢出).可以使用比较指令(例如ISET) ...
- GPU编程和流式多处理器(二)
GPU编程和流式多处理器(二) 2. 整数支持 SM具有32位整数运算的完整补充. 加法运算符的可选否定加法 乘法与乘法加法 整数除法 逻辑运算 条件码操作 to/from浮点转换 其它操作(例如,S ...
- GPU编程和流式多处理器
GPU编程和流式多处理器 流式多处理器(SM)是运行CUDA内核的GPU的一部分.本章重点介绍SM的指令集功能. 流式多处理器(SM)是运行我们的CUDA内核的GPU的一部分.每个SM包含以下内容. ...
- GPU编程和流式多处理器(七)
6. 杂项说明 6.1. warp级原语 warp作为执行的原始单元(自然位于线程和块之间),重要性对CUDA程序员显而易见.从SM 1.x开始,NVIDIA开始添加专门针对thread的指令. Vo ...
- tcp流式套接字和udp数据报套接字编程区别
1. 流式套接字采用字节流方式进行传输,而数据报套接字 使用数据报形式传输数据2. tcp套接字会产生粘包,udp有消息边界,不会形成粘包.3. tcp编程可以保证消息的完整性,udp则不能保证4. ...
- golang的极简流式编程实现
传统的过程编码方式带来的弊端是显而易见,我们经常有这样的经验,一段时间不维护的代码或者别人的代码,突然拉回来看需要花费较长的时间,理解原来的思路,如果此时有个文档或者注释写的很好的话,可能花的时间会短 ...
- Spark流式编程介绍 - 编程模型
来源Spark官方文档 http://spark.apache.org/docs/latest/structured-streaming-programming-guide.html#programm ...
随机推荐
- 【工具类】Stream流构建指定长度的时间集合
package com.gabriel.stage.utils; import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.Dat ...
- poj 2472
题意: 给你一个无向图,然后每条边的权值就是不被抓的概率,有个货要从1逃到n,问你他的最安全概率是多少? 思路: 水题,直接跑就行了,一开始自己想多了,还转换了一下log,后来发 ...
- 仁者见仁:缓冲区栈溢出之利用 Exploit 形成完整攻击链完全攻略(含有 PayLoad)
> 前言 内存缓冲区溢出又名 Buffer OverFlow,是一种非常危险的漏洞,在各种操作系统和应用软件中广泛存在.利用缓冲区溢出进行的攻击,小则导致程序运行失败.系统宕机等后果,大则可以取 ...
- MySQL三种报错注入方式下的insert,update,delete命令注入示例
select 查询数据(大部分) 在网站应用中进行数据显示查询操作 insert 插入数据 在网站应用中进行用户注册添加等操作 delete 删除数据 后台管理里面删除文章删除用户等操作 update ...
- 【译】N 皇后问题 – 构造法原理与证明 时间复杂度O(1)
[原] E.J.Hoffman; J.C.Loessi; R.C.Moore The Johns Hopkins University Applied Physics Laboratory *[译]* ...
- 老师不讲的C语言知识
老师不讲的C语言知识 导语: 对于工科生,C语言是一门必修课.标准C(ANSI C)这个看似简单的语言在硬件底层编程.嵌入式开发领域还是稳坐头把交椅.在20年5月份,C语言就凭借其在医疗设备上的广泛应 ...
- VMware-viclient-all
VMware-viclient-all https://my.vmware.com/web/vmware/details?productId=491&downloadGroup=ESXI60U ...
- Java中浮点数的坑
基本数据类型 浮点数存在误差 浮点数有一个需要特别注意的点就是浮点数是有误差的,比如以下这段代码你觉得输出的什么结果: public class Demo { public static void m ...
- phpstudy2018 开启目录浏览
废话不多说直接开始 一.打开 vhosts-ini 配置文件 二.加入以下内容 注意填写自己的网站根目录 <Directory "你自己的网站根目录"> Option ...
- 如何安装Eigen库和Sophus库
* { font-family: "Tibetan Machine Uni", "sans-serif", STFangSong; outline: none ...