zoukankan      html  css  js  c++  java
  • 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()

  • 相关阅读:
    g4e基础篇#1 为什么要使用版本控制系统
    软件开发的自然属性
    定时器实现延时处理
    二分查找法
    php实现循环链表
    redis实现分布式锁
    RabbitMq初探——用队列实现RPC
    RabbitMq初探——发布与订阅
    RabbitMq初探——消息均发
    RabbitMq初探——消息持久化
  • 原文地址:https://www.cnblogs.com/wujianming-110117/p/14238911.html
Copyright © 2011-2022 走看看