Nsight Systems/Compute 使用分享笔记
本文原视频出自百度培训中心: https://www.bilibili.com/video/BV15P4y1R7VG/?vd_source=a6509cab8ccb8b81d6a70af693cc008f
利用工具:autocut-dev 转录,以及claude2 缩写
prompt:
-
请你根据全文,分章节阐述讲了什么
-
详细讲解一下章节X
全文概括
第一章 介绍了NVIDIA的GPU性能分析工具Nsight的产品组成,它包含了Nsight System、Nsight Compute和Nsight Graphics三个组件,各自用于不同的性能分析场景。
第二章 介绍了Nsight System的功能和特点,它可以进行系统级性能分析,通过pipeline时间线分析CPU和GPU的协同情况,同时支持多进程和多节点应用的分析。
第三章 介绍了Nsight Compute的功能和特点,它可以进行CUDA kernel级别的细粒度性能分析,查看硬件指令执行情况等信息,用于优化kernel性能。
第四章 通过几个案例介绍了Nsight System和Nsight Compute的具体使用,包括分析深度学习训练流程、优化BERT性能、优化矩阵转置kernel等,讲解了如何使用Nsight进行性能分析与优化。
第五章 总结了Nsight的优势,它是一个功能强大的GPU性能分析平台,可以帮助开发者定位各种性能瓶颈并进行优化,提升CUDA应用的性能。
对于具体使用部分的阐述
Nsight System可以捕获CUDA运行时API调用,如内存复制、kernel启动等,通过pipeline时间线分析CPU和GPU时间占比、空闲状态等。支持添加NVTX注释进行代码注释。输出标准性能分析文件供查看分析。
Nsight Compute可以分析CUDA kernel的细粒度性能数据,如每个thread的stall原因、instruction throughput、memory throughput等。可以比较不同kernel的性能数据。支持汇编代码分析。
案例一利用Nsight System分析深度学习训练流程,发现数据加载阶段GPU空闲时间过长。通过增加DataLoader线程数,缩短GPU空闲时间,提升性能。
案例二利用Nsight System分析BERT训练,发现矩阵乘法kernel占比过高。采用混合精度及TensorCore优化,加速矩阵乘法计算,提升训练吞吐。
案例三利用Nsight Compute分析矩阵转置kernel,发现Global Memory读写效率过低。通过使用Shared Memory优化,解决不连续访问问题,显著提升性能。
以下是分章节阐述