CUDA编程 - Nsight system Nsight compute 的安装和使用 - (1) 学习记录

news2024/10/7 12:27:07

Nsight system & Nsight compute

  • 安装和下载地址
  • 一、Nsight Systems
    • 1.1、主要应用
    • 1.2、比较常用的分析
      • 1.2.1、情况一
      • 1.2.2、情况二
  • 二、Nsight Compute
    • 2.1、主要应用
    • 2.2、比较常用的分析
      • 2.2.1、情况一
      • 2.2.2、情况二
  • 三、两者的比较
    • 3.1、Nsight systems
    • 3.2、Nsight compute
  • 四、参考使用途径
      • 方法一
      • 方法二
      • 方法三
      • 方法四

在 cuda 编程中,经常会用到 Nsight system 和 Nsight compute 进行性能分析等,下面做个学习总结。

本篇包括安装和常用分析思路总结,具体实践操作总结会放在下一篇博客。

安装和下载地址

Nsight Systems

Nsight Compute

汇总下载地址

一、Nsight Systems

1.1、主要应用

主要倾向于观察全局的 Profiling,比如 核函数读写情况,核函数之间的调度情况,SM占有率,CPU和GPU之间的异步执行的情况等。

在这里插入图片描述

1.2、比较常用的分析

1.2.1、情况一

可以对 kernel 执行 和 memory 进行 timeline 分析,尝试寻找是否可以优化

常用的优化角度:

  • 隐藏 memory access
  • 多流调度
  • 删除冗长的 memory access
  • 融合kernel减少 kernel launch的overhead
  • CPU与GPU的 overlapping

一、比如核函数与核函数之间的执行情况,是根据 timeline 进行分析的

比如下面的 timeline 可以发现核函数与核函数之间有延迟,或者是核函数的启动延迟等,都是可以展示出来的
在这里插入图片描述

二、 在多个 stream 的时候,可以查看调度情况和 Overlap 等,从而分析出如何进行更高效的调度

在这里插入图片描述

1.2.2、情况二

分析 DRAM 以及 PCIe 带宽的使用率 ,分析 SM 中 warp 的占有率

一、可以从中分析到哪些带宽没有被充分利用,从而进行优化

在这里插入图片描述

二、可以从中知道一个 SM 中资源是否被用满

在这里插入图片描述

二、Nsight Compute

官方使用说明链接

2.1、主要应用

主要分析核函数的内部的操作,比如显示不同block size核函数的执行时间,执行的吞吐量,带宽分析等。
在这里插入图片描述

2.2、比较常用的分析

2.2.1、情况一

一、roofline analysis

对核函数进行 roofline analysis,可以知道现在的核函数是计算密集型还是仿真密集型。即可以判断下一步优化是提高计算度,计算密度,还是优化访存等。

并且根据 base line 进行优化比较,比如设置两个核函数,对比核函数对性能的影响

在这里插入图片描述

比如在下图 蓝色在绿色的上方
在这里插入图片描述

2.2.2、情况二

二、occupancy analysis (占有率)

对核函数的各个指标进行估算一个warp的占有率的变化

在这里插入图片描述

三、memory bindwidth analysis

针对核函数中对各个memory的数据传输的带宽进行分析。可以比较好的理解memory架构

在这里插入图片描述

四、shared memory analysis

针对核函数中对 shared memory 访问以及使用效率的分析

在这里插入图片描述

三、两者的比较

3.1、Nsight systems

偏重于可视化application的整体的profiling以及各个细节指标

  • PCIe bindwidth
  • DRAM bindwidth
  • SM Warp occupancy
  • 所有核函数的调度信息
  • 所有核函数的执行时间,以及占用整体时间的比例
  • 多个Stream之间的调度信息
  • 同一个stream中的多个队列的调度信息
  • CPU和GPU之间的数据传输耗时
  • Application整体上的各个核函数以及操作的消耗时间排序
  • 捕捉同一个stream中的多个event

整体上会提供一些比较全面的信息,我们一般会从这里得到很多信息进而进行优化

3.2、Nsight compute

偏重于可视化每一个CUDA kernel的profiling以及各个细节指标

-SM中计算吞吐量
-L1 cache数据传输吞吐量
-L2 cache数据传输吞吐量
-DRAM数据传输吞吐量
-当前核函数属于计算密集型还是访存密集型
•Roofline model分析
-核函数中的L1 cache的cache hit几率, cache miss几率的多少
-核函数中各个代码部分的延迟
•精确到代码部分进行highlight
-核函数的load bandwidth, store bandwith, load次数, store次数
-L1 cache/shared memory, L2 cache, global memory中的memory access scheduling
-设置baseline,来进行核函数的优化前后的效率对比

整体上能够得到一个针对某一个kernel的非常精确的profiling,源码级别的性能捕捉,以及优化推荐

四、参考使用途径

方法一

在 host 端使用 Nsight 进行 ssh 远程 profiling

方法二

在 remote 端使用 Nsight 进行直接 profiling

方法三

在 remote 端通过CUI获取statistics之后传输到host端进行查看

***在当host端的nsight不能够直接ssh到 target device 情况下使用。比如说Jetson的profiling

方法四

在 remote 端直接使用CUI进行分析

***在当host端的nsight不能够直接ssh到 target device 情况下使用。比如说 Jetson 的profiling

在wsl中配置的问题参考链接

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

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

相关文章

Runaway Queries 管理:提升 TiDB 稳定性的智能引擎

在数字化系统扮演重要角色的今天,数据库稳定性成为企业关注的核心问题。对于重要计算机系统而言,突发的性能下降可能对业务造成不可估量的损失。为了稳定数据库性能,用户可以从管理流程入手规范变更的测试,或者利用产品手段减少预…

su模型在3d里渲染效果如何---模大狮模型网

SketchUp模型在其他3D应用程序中进行渲染可以获得非常好的效果,取决于您所选择的渲染引擎和技术水平。下面是一些常见的渲染效果和技巧: 一:光照和阴影 通过添加适当的光源和调整阴影设置,可以使SketchUp模型在渲染中呈现出更加真…

python递归算法

递归算法 一、嵌套调用的过程二、递归的基本原则1、递归的基本原则2、无限递归调用3、正常递归调用4、阶乘问题5、力扣:231. 2 的幂6、力扣面试题 08.05. 递归乘法7、力扣、326. 3 的幂8、力扣342. 4的幂 一、嵌套调用的过程 def show1():print("show 1 run s…

第2讲:C语言数据类型和变量

第2讲:C语言数据类型和变量 目录1.数据类型介绍1.1字符型1.2整型1.3浮点型1.4 布尔类型1.5 各种数据类型的长度1.5.1 sizeof 操作符1.5.2 数据类型长度1.5.3 sizeof 中表达式不计算 2.signed 和 unsigned3.数据类型的取值范围4. 变量4.1 变量的创建4.2 变量的分类 5…

Leetcode日记 2583. 二叉树中的第 K 大层和

Leetcode日记 2583. 二叉树中的第 K 大层和 题目:解题思路:代码实现制作不易,感谢三连,谢谢啦 题目: 给你一棵二叉树的根节点 root 和一个正整数 k 。 树中的 层和 是指 同一层 上节点值的总和。 返回树中第 k 大的层和…

Jenkins邮件通知配置(7)

1、安装插件: Email Extension,Email Extension Template,这两个插件可以帮助我们进行邮件的编写发送以及格式化 2、配置jenkins中链接腾讯企业邮箱 先配置发送服务,然后在具体工程中设置接收者 基础信息: POP3/S…

thinkphp5.1 phpexcel 批量导入导出

1.批量导入 public function importExcel(){$authority $this->getUserAuthority(order_input, batch_import);if ($authority[code] ! 0) {return json($authority);}$file request()->file(files);if(empty($file)){return printMsg(-1, "请上传文件");}/…

LeetCode刷题日志-200.岛屿数量

思路: 遍历二维数组,每当遇到一个‘1’进行一次dfs,根据规则,将本次dfs到的所有元素标记为‘0’(放置重复dfs,并且能dfs到的元素一定是与当前遍历到的元素属于统一岛屿。)最后,dfs的…

Sora-OpenAI 的 Text-to-Video 模型:制作逼真的 60s 视频片段

OpenAI 推出的人工智能功能曾经只存在于科幻小说中。 2022年,Openai 发布了 ChatGPT,展示了先进的语言模型如何实现自然对话。 随后,DALL-E 问世,它利用文字提示生成令人惊叹的合成图像。 现在,他们又推出了 Text-t…

【初中生讲机器学习】11. 回归算法中常用的模型评价指标有哪些?here!

创建时间:2024-02-19 最后编辑时间:2024-02-23 作者:Geeker_LStar 你好呀~这里是 Geeker_LStar 的人工智能学习专栏,很高兴遇见你~ 我是 Geeker_LStar,一名初三学生,热爱计算机和数学,我们一起加…

【关于python变量类型学习笔记】

python的变量类型 在创建变量时会在内存中开辟一个空间,变量是存储在内存中的值。 根据变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。 变量可以指定不同的数据类型,这些变量可以存储整数,…

Codeforces Round 927 (Div. 3) G. Moving Platforms --- 题解 (非常好的题)

目录 Codeforces Round 927 (Div. 3) G. Moving Platforms: 原题链接:Problem - G - Codeforces 题目大意: 思路解析: 代码实现: Codeforces Round 927 (Div. 3) G. Moving Platforms: 原题链接&#…

高刷电竞显示器 - HKC VG253KM

今天给大家分享一款高刷电竞显示器 - HKC VG253KM。 高刷电竞显示器 - HKC VG253KM源于雄鹰展翅翱翔的设计灵感,严格遵循黄金分割比例的蓝色点晴线条,加上雾面工艺及高低起伏错落有致的线条处理,在VG253KM的背部勾勒出宛若大鹏展翅的鹰翼图腾…

app自动化元素定位工具Weditor安装使用

之前用appium自带的appium Desktop inspector老是定位不到元素 如下 用另外工具 Weditor M1电脑 安装 pip3 install weditor 启动-自动打开端口 python3 -m weditor 输入设备名称,点击【connect】出现绿色为连接成功 获取到

vscode中git相应插件的使用(强化工作效率)

git graph 这篇文章写的不错:Git Graph 对于git graph的插件的使用: 1、首先vscode-extension中去下载 2、打开 相应的项目,然后在vscode左边底下去找到git graph标识然后打开就可以看到commit记录的可视化形式了。 能够很清晰的看到你的提…

自定义股票池策略周报告---收益1.8,回撤0.7,提供实盘设置

综合交易模型已经交易了1个月了目前收益10,回测0.8,策略追求稳稳的幸福,细水流长,回测年化20,最大回撤8 链接自定义股票池策略周报告---收益1.8,回撤0.7,提供实盘设置 (qq.com) 实盘稳定运行2…

镜像的使用条件

Q:老师,我怎么才能把做了一半的脸直接复制呢? A:镜像,但是镜像是有条件的 Q:镜像的使用条件有哪些呢? A: 1.对称面不能存在,必须是镂空的(以哪个面做对称…

yolov8学习笔记(一)网络结构

一、yolov8.yaml YOLOv8详解 【网络结构代码实操】: YOLOv8详解 【网络结构代码实操】-CSDN博客文章浏览阅读10w次,点赞559次,收藏2.9k次。YOLOv8 算法的核心特性和改动可以归结为如下:提供了一个全新的 SOTA 模型,包…

SQL Server——建表时为字段添加注释

在 MySQL 中,新建数据库表为字段添加注释可以使用 comment 属性来实现。SQL Server 没有 comment 属性,但是可以通过执行 sys.sp_addextendedproperty 这个存储过程添加扩展属性来实现相同的功能。 这个存储过程的参数定义如下: exec sys.s…

TiDB 社区智慧合集丨TiDB 相关 SQL 脚本大全

非常感谢各位 TiDBer 在之前 【TiDBer 唠嗑茶话会 48】非正式 TiDB 相关 SQL 脚本征集大赛!( https://asktug.com/t/topic/996635 )里提供的各种常用脚本。 在这篇文章中,我们整理了社区同学提供的一系列 TiDB 相关 SQL 脚本,希望能为大家在…