CUDA实践指南(十九)

简介:

本地内存:
本地内存是如此命名的,因为它的范围对于线程来说是本地的,而不是因为它的物理位置。事实上,本地内存是片外的。因此,访问本地内存与访问全局内存一样昂贵。换句话说,名称中的术语“本地”并不意味着访问速度更快。
本地内存仅用于保存自动变量。这是由nvcc编译器在确定没有足够的寄存器空间来保存变量时完成的。可能放置在本地内存中的自动变量是大型结构或数组,会占用太多的寄存器空间,而编译器确定的数组可能会动态编制索引。
检查PTX汇编代码(通过使用-ptx或-keep命令行选项编译到nvcc获得)显示在第一个编译阶段期间变量是否已放置在本地内存中。如果有,它将使用.local助记符进行声明并使用ld.local和st.local助记符进行访问。如果没有,则后续编译阶段可能仍然会作出其他决定,如果他们发现变量为目标架构消耗太多寄存器空间。没有办法针对特定变量检查这一点,但编译器在使用--ptxas-options = -v选项运行时报告每个内核的本地内存使用情况(lmem)。
纹理内存:
只读纹理内存空间被缓存。 因此,纹理读取只需要在高速缓存未命中时读取一个器件存储器; 否则,它只花费一次从纹理缓存中读取数据。 纹理缓存针对2D空间局部性进行了优化,因此读取贴近在一起的纹理地址的相同变形的线程将获得最佳性能。 纹理内存也被设计用于具有恒定延迟的流式抓取; 也就是说,缓存命中减少了DRAM带宽需求,但不能提取延迟。 在某些寻址情况下,通过纹理读取读取设备存储器可能是从全局或常量存储器读取设备存储器的有利替代方案。
其他纹理功能:
如果使用tex1D(),tex2D()或tex3D()而不是tex1Dfetch()来提取纹理,则硬件提供了其他功能,这些功能可能对图像处理等应用程序有用,如表4所示。
1

在内核调用中,纹理高速缓存不会与全局内存写入保持一致,因此从同一内核调用中通过全局存储器写入的地址获取的纹理会返回未定义的数据。 也就是说,如果该位置已被先前的内核调用或内存副本更新,则线程可以安全地通过纹理读取内存位置,但如果先前已由相同内核调用中的相同线程或另一线程更新,则线程可以安全地读取内存位置。

目录
相关文章
|
5月前
|
人工智能 Linux API
你的 AI 编程 CLI 配置管理工具来了
CC Switch 是一款开源跨平台桌面工具,统一管理 Claude Code、Codex、OpenClaw 等六大 AI 编程 CLI 的供应商配置、MCP/Skills、API 用量与本地路由,支持自动故障转移、安全本地存储及实时成本可视化,让多模型开发高效又省心。(239字)
1458 0
|
开发框架 前端开发 安全
云算力质押挖矿系统开发(详细案例)丨云算力质押挖矿系统开发成熟技术/源码流程
云算力质押挖矿系统开发(详细案例)丨云算力质押挖矿系统开发成熟技术/源码流程
|
自然语言处理 Android开发 图形学
修行Android Studio技巧到出神入化,快速涨薪-【国际化】、【JPG/PNG转WebP】、【代码折叠】篇
众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣!!!
367 0
|
4天前
|
云安全 人工智能 运维
当攻击全面Agent化,你的安全防御能否跟上AI Speed?
多起客户侧AK泄露事件应急的真实观察
1222 3
|
27天前
|
人工智能 JSON API
全网刷屏的 Jev 模型正式开放!一手实战测评 + 保姆级教程
全网爆火的 Jev 模型是什么?有什么用?怎么使用?怎么接入 AI 编程工具?效果真的好么?傻子可懂的 Jev 保姆级实战教程 + 项目实战测评来啦
9671 32
|
13天前
|
存储 人工智能 并行计算
大模型本地部署终端选型方法论:以 Qwen3.8-27B 为例的四档分层完整流程
本文提出一套大模型本地部署终端选型方法论:定约束、定档位、定框架、定参数四步决策法,配合入门、主力、质量、无损四档分层模型。以 Qwen3.8-27B 实测数据为例,逐环节解读显存、带宽、存储、散热、系统、预算等要素,给出面向不同预算的优选方案、决策自查清单与市场观察框架。文末前瞻 AI 笔记本的 CPU+GPU 与统一内存两条路线,论证四步决策法在新品类上的延续性。