ncu学习笔记01——合并访存

全局内存通过缓存实现加载和存储过程。其中,L1为一级缓存,每个SM都有自己的L1;L2为二级缓存,L2则被所有SM共有。

数据从全局内存到SM的传输过程中,会去L1和L2中查询是否有缓存。对全局内存的访问将经过L1;如果未命中,则会接着从L2中查找;如果再次未命中,则会从全局内存DRAM中读取。

CUDA允许通过编译选项控制是否启用L1。当L1被禁用时,对全局内存的加载请求将直接进入L2;如果L2未命中,将由DRAM完成请求。

核函数从全局内存DRAM中读取数据有两种粒度,使用L1时,每次按照128字节进行缓存;不使用L1时,每次按照32字节进行缓存。

# 禁用一级缓存
-Xptxas -dlcm=cg
# 启用一级缓存
-Xptxas -dlcm=ca

全局内存的访问模式,有合并和非合并之分。

合并访问指的是一个线程束对全局内存的一次访问请求(读或者写)导致最少数量的数据传输;否则称访问是非合并的。

合并度:线程束请求的字节数 / 由该次请求导致的所有数据传输的字节数。

以仅使用L2缓存为例,一次数据传输或者一次内存事务是将32字节的数据从全局内存(cache sector)传输到SM。考虑一个线程束(32个线程)访问单精度浮点数(4字节)的全局变量,该线程束请求128字节的数据。

https://zhuanlan.zhihu.com/p/641639133

Memory Workload Analysis

内存图表以图形化、逻辑化的方式,展现 GPU 上和 GPU 外内存子单元的性能数据。性能数据包括传输大小、命中率、指令或请求数量等。

逻辑单元显示为绿色(活动)或者灰色(非活动),包括在GPU的SM上执行的CUDA Kernel、全局内存、本地内存、纹理内存、表面内存、共享内存和加载全局存储共享(指令直接从全局加载到共享内存中,无需中间寄存器文件访问)。

物理单元显示为蓝色(活动)或者灰色(非活动),包括

(1)L1/TEX Cache:L1缓存和纹理缓存

(2)Shared Memory:共享内存

(3)L2 Cache:L2缓存

(4)L2 Compression:L2 Cache的内存压缩单元

(5)System Memory:CPU内存

(6)Device Memory:GPU显存

(7)Peer Memory:其他CUDA设备的GPU显存

内核与其他逻辑单元之间的链接表示针对相应单元执行的指令 ( Inst ) 数量。例如, 内核全局之间的链接表示从全局内存空间加载或存储的指令。

逻辑单元与蓝色物理单元之间的链接表示其各自指令产生的请求 ( Req ) 数量。例如,从 L1/TEX Cache 到 Global 的链接显示了全局加载指令产生的请求数量。

每条链路的颜色代表相应通信路径的峰值利用率百分比。图表右侧的颜色图例显示了从未使用 (0%) 到峰值性能运行 (100%) 所应用的颜色渐变。如果链路处于非活动状态,则显示为灰色。图例左侧的三角形标记对应于图表中的链路。与单独的颜色渐变相比,这些标记可以更准确地估算已实现的峰值性能值。

(1)Instructions

对于每种访问类型,每个 Warp 中实际执行的汇编 (SASS) 指令总数。不包括预测指令。

(2)Requests

每种指令类型生成的所有 L1 请求总数。在 SM 7.0 (Volta) 及更新的架构上,每条指令只会为 LSU 流量(全局、本地等)生成一个请求。对于纹理 (TEX) 流量,可能会生成多个请求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/910296.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/910296.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2012 - 正方形矩阵

​​​​题目描述 晶晶同学非常喜欢方形,她希望打印出来的字符串也是方形的。老师给了晶晶同学一个字符串"ACM",晶晶同学突发奇想,如果任意给定义一个整数n,能不能打印出由这个字符串组成的正方形字符串呢?…

C++中set的常见用法

在 C 里&#xff0c;std::set属于标准库容器的一种&#xff0c;其特性是按照特定顺序存储唯一的元素。下面为你详细介绍它的常见使用方法&#xff1a; 1. 头文件引入 要使用std::set&#xff0c;需要在代码中包含相应的头文件&#xff1a; #include <set> 2. 集合的定…

stm32移植freemodbus

1、设置串口 开启串口中断 2、设置定时器 已知在freemodbus中默认定义&#xff1a;当波特率大于19200时&#xff0c;判断一帧数据超时时间固定为1750us&#xff0c;当波特率小于19200时&#xff0c;超时时间为3.5个字符时间。这里移植的是115200&#xff0c;所以一帧数据超时…

鸿蒙next 使用canvas实现ecg动态波形绘制

该代码可在Arkts 与 前端使用&#xff0c;基于canvas 仓库地址&#xff1a;https://gitee.com/harmony_os_example/harmony-os-ecg-waveform.git 代码中的list数组为波形数据&#xff0c;该示例需要根据自己业务替换绘制频率&#xff0c;波形数据&#xff0c;ecg原始数据生成…

基于原生能力的键盘控制

基于原生能力的键盘控制 前言一、进入页面TextInput获焦1、方案2、核心代码 二、点击按钮或其他事件触发TextInput获焦1、方案2、核心代码 三、键盘弹出后只上抬特定的输入组件1、方案2、核心代码 四、监听键盘高度1、方案2、核心代码 五、设置窗口在键盘抬起时的页面避让模式为…

大数据治理域——数据存储与成本管理

摘要 本文主要探讨了数据存储与成本管理的多种策略。介绍了数据压缩技术&#xff0c;如MaxCompute的archive压缩方法&#xff0c;通过RAID file形式存储数据&#xff0c;可有效节省空间&#xff0c;但恢复时间较长&#xff0c;适用于冷备与日志数据。还详细阐述了数据生命周期…

国产Linux银河麒麟操作系统上使用自带openssh远程工具SSH方式登陆华为交换机或服务器

在Windows和Linux Debian系统上我一直使用electerm远程工具访问服务器或交换机&#xff0c; 一、 electerm简介 简介&#xff1a;electerm是一款开源免费的SSH工具&#xff0c;具有良好的跨平台兼容性&#xff0c;适用于Windows、macOS、Linux以及麒麟操作系统。特点&#xf…

Logback 在java中的使用

Logback 是 Java 应用中广泛使用的日志框架&#xff0c;以下是其核心使用方法及最佳实践&#xff1a; 1. 引入依赖 在 Maven 或 Gradle 项目中添加 Logback 及 SLF4J 依赖&#xff1a; <!-- Maven --> <dependency><groupId>ch.qos.logback</groupId>…

Axure应用交互设计:中继器—整行、条件行、当前行赋值

亲爱的小伙伴,如有帮助请订阅专栏!跟着老师每课一练,系统学习Axure交互设计课程! Axure产品经理精品视频课https://edu.csdn.net/course/detail/40420 课程主题:对中继器中:整行、符合某种条件的任意行、当前行的赋值操作 课程视频:

ToolsSet之:TTS及Morse编解码

ToolsSet是微软商店中的一款包含数十种实用工具数百种细分功能的工具集合应用&#xff0c;应用基本功能介绍可以查看以下文章&#xff1a; Windows应用ToolsSet介绍https://blog.csdn.net/BinField/article/details/145898264其中Text菜单中的TTS & Morse可用于将文本转换…

【C++】编码传输:创建零拷贝帧对象4:shared_ptr转unique_ptr给到rtp打包

【C++】编码传输:创建零拷贝帧对象3: dll api转换内部的共享内存根本原因 你想要的是基于 packet 指向的那个已有对象,拷贝(或移动)出一个新的 VideoDataPacket3 实例,因此需要把那个对象本身传进去——也就是 *packet。copilot的原因分析与gpt一致 The issue is with t…

基于UDP的套接字通信

udp是一个面向无连接的&#xff0c;不安全的&#xff0c;报式传输层协议&#xff0c;udp的通信过程默认也是阻塞的。使用UDP进行通信&#xff0c;服务器和客户端的处理步骤比TCP要简单很多&#xff0c;并且两端是对等的 &#xff08;通信的处理流程几乎是一样的&#xff09;&am…

华为CE交换机抓包

capture-packet interface 100GE1/0/5 destination file 001.cap packet-len 64 注&#xff1a;早期版本&#xff08;disp device&#xff09;可能在系统视图下&#xff08;sys&#xff09; 抓完包后可以看到对应文件&#xff08;早期版本在根目录下&#xff09;&#xff1a;…

Python 数据分析与可视化 Day 3 - Pandas 数据筛选与排序操作

&#x1f3af; 今日目标 掌握 DataFrame 的条件筛选&#xff08;布尔索引&#xff09;学会多条件筛选、逻辑运算熟练使用排序&#xff08;sort_values&#xff09;提升数据组织力结合列选择进行数据提取分析 &#x1f9ea; 一、列选择与基本筛选 ✅ 选择单列 / 多列 df[&quo…

Vite项目初始化与配置

下面,我们来系统的梳理关于 Vite 项目初始化与配置 的基本知识点: 一、Vite 核心概念与优势 1.1 什么是 Vite? Vite(法语意为 “快速”)是新一代的前端构建工具,由 Vue.js 作者尤雨溪开发。它解决了传统构建工具(如 Webpack)在开发环境中的性能瓶颈问题。 1.2 Vite …

Transformer中的核心问题 知识点汇总

Transformer架构图 transformer整体架构 1. Transformer 的参数配置 Transformer 的Encoder层和Decoder层都使用6个注意力模块&#xff0c;所有的子网络的输出维度均为512维&#xff0c;多头注意力部分使用了8个注意力头。 2. 归一化的方式 归一化的方式为LayerNorm&#xff0c…

python web开发-Flask数据库集成

Flask 数据库集成完全指南&#xff1a;Flask-SQLAlchemy 实践 1. 引言 数据库是现代Web应用的核心组件&#xff0c;Flask通过Flask-SQLAlchemy扩展提供了强大的数据库集成能力。本文将全面介绍如何在Flask应用中使用Flask-SQLAlchemy进行数据库操作&#xff0c;涵盖从基础配置…

一站式用AI编程神奇Cursor/Trae(VScode环境)开发运行Scala应用

平时开发时&#xff0c;我们常用 IDEA 搭配 Scala 来开发 Spark 或 Flink 等大数据应用。但如今像 Cursor 这样的编程神器层出不穷&#xff0c;它们只支持 VSCode。要是 Scala 应用能在 VSCode 环境下便捷运行&#xff0c;我们就无需在 VSCode 开发、却在 IDEA 运行&#xff0c…

【Django开发】django美多商城项目完整开发4.0第2篇:项目准备,配置【附代码文档】

教程总体简介&#xff1a;美多商城 商业模式介绍 1.B2B--企业对企业 2.C2C--个人对个人 5.O2O--线上到线下 开发流程 说明&#xff1a; 需求分析 1. 用户部分 注册 登录 个人信息 地址管理 修改密码 3. 购物车部分 购物车管理 项目架构 创建工程 1. 在git平台创建工程 2. 添加前…

基于 OpenCV 的图像亮度、对比度与锐度调节

图像亮度、对比度和锐度是图像质量感知的重要参数&#xff0c;调节这些属性常用于图像增强、图像美化或图像分析的预处理阶段。本文将基于 OpenCV 实现这三项基础图像处理功能&#xff0c;并提供滑动条交互界面与直方图可视化分析&#xff0c;方便调试和理解效果。 亮度调整 图…