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 ...
随机推荐
- 修改Android手机内核,绕过反调试
本文博客链接:http://blog.csdn.net/qq1084283172/article/details/57086486 0x1.手机设备环境 Model number: Nexus 5 O ...
- JSONP跨域资源共享的安全问题
目录 关于 JSONP 一.JSON 劫持 二.Callback 可定义导致的安全问题 三.其他文件格式( Content-Type )与 JSON 四.防御 摘自:http://blog.known ...
- 插入排序——Python实现
插入排序Python实现 # -*- coding: utf-8 -*- # @Time : 2019/10/28 20:47 # @Author : yuzhou_1shu # @Email : y ...
- 【译】N 皇后问题 – 构造法原理与证明 时间复杂度O(1)
[原] E.J.Hoffman; J.C.Loessi; R.C.Moore The Johns Hopkins University Applied Physics Laboratory *[译]* ...
- maven工程添加servlet依赖
实现导入HttpServlet <!-- Servlet依赖--> <dependency> <groupId>javax.servlet</groupId& ...
- git的一些常用命令总结
1.拉取代码Git clone "链接名称" 2.新建分支 git checkout -b "分支名称" 3.提交代码步骤 (1)Git status查看项目 ...
- python常识系列07-->python利用xlwt写入excel文件
前言 读书之法,在循序而渐进,熟读而精思.--朱熹 抽空又来写一篇,毕竟知识在于分享! 一.xlwt模块是什么 python第三方工具包,用于往excel中写入数据:(ps:只能创建新表格,不能修改表 ...
- Go语言源码分析之unsafe
Go语言源码分析之unsafe 1.什么是unsafe unsafe 库让 golang 可以像C语言一样操作计算机内存,但这并不是golang推荐使用的,能不用尽量不用,就像它的名字所表达的一样,它 ...
- not full 和 default
create table t16( id int, name char(6), sex enum('male','female') not null default 'male'); insert i ...
- 虚拟机快速下载安装配置aarch64-linux-gnu-gcc工具链
方式一:软件仓库安装 此方法不用自己去配置交叉编译工具链 1.查看本地仓库有支持哪些版本哪些 输入命令: apt-cache search aarch64 2.下载安装 gcc-8-aarch64-l ...