CUDA入门(四)Visual Profiler

简介: Visual Profiler 在CUDA程序开发的过程中是一个极有利的工具。可以帮助你找到程序中性能不足之处。 下面是《CUDA_Profiler_Users_Guide》对Visual Profiler描述 Visual Profiler 是是一个图形化的剖析工具,可以显示你的应用程序中CPU和GPU的活动情况,利用分析引擎帮助你寻找优化的机会。 其实除了可视化

Visual Profiler 在CUDA程序开发的过程中是一个极有利的工具。可以帮助你找到程序中性能不足之处。
下面是《CUDA_Profiler_Users_Guide》对Visual Profiler描述
Visual Profiler 是是一个图形化的剖析工具,可以显示你的应用程序中CPU和GPU的活动情况,利用分析引擎帮助你寻找优化的机会。
其实除了可视化的界面,NVIDIA提供了命令行方式的剖析命令:nvprof。对于初学者,使用图形化的方式比较容易上手,所以本节使用Visual Profiler。
Visual Profiler在cuda安装时就自动帮你安装,你可以在菜单-》NVIDIA Corporation-》CUDA ToolKit下找到。这里写图片描述

首先, 将相应的代码通过VS编译生成.exe文件,
如果在生成exe文件是提醒:R6010 -abort() has been called,看一下程序中是否有malloc或者cudamalloc的空间没有Free.

打开Visual Profiler->File->new session 在File中选择刚才编译出来的exe文件
这里写图片描述
直接next再finsh,Visual Profiler将开始运行程序,并开始分析。
当出现

等程序运行完会看到如图:这里写图片描述
其中1为程序中的一些函数等,如cudaMemcpy,stream;2中显示程序中各部分在程序执行过程中占的比例的可视化结果。
Visual Profiler下面的框中 Analysis是对程序改进的一些意见
如点击Examine GPU Usage
会出现这里写图片描述
点击more可以看到对代码的优化建议。
这里写图片描述
details中显示的是程序运行的详细数据,包括函数开始时间,持续时间,线程,块以及带宽等数据;
Console中显示是控制台显示的信息,包括一些程序中的printf 和运行时的警告;
如在运行时会遇到典型的:
==7196== Warning: Some profiling data are not recorded. Make sure cudaProfilerStop() or cuProfilerStop() is called before application exit to flush profile data.
解决方法在程序末尾加cudaDeviceReset()或者cudaProfilerStop()
Warning: Unified Memory Profiling is not supported on devices of compute capability less than 3.0
显卡计算能力没有达到3.0,
解决方法换电脑
settings是刚刚设置Newsession时的相关配置
旁边的Properties是某一个runtime API,函数等的具体特征。
这只是Visual Profiler的入门,具体还要自己去发掘,不说了该优化我的程序去了。

目录
相关文章
|
机器学习/深度学习 并行计算 编译器
了解NVIDAI显卡驱动(包括:CUDA、CUDA Driver、CUDA Toolkit、CUDNN、NCVV)
开发过程中需要用到GPU时,通常在安装配置GPU的环境过程中遇到问题;CUDA Toolkit和CUDNN版本的对应关系;CUDA和电脑显卡驱动的版本的对应关系;CUDA Toolkit、CUDNN、NCVV是什么呢?
17906 1
了解NVIDAI显卡驱动(包括:CUDA、CUDA Driver、CUDA Toolkit、CUDNN、NCVV)
|
计算机视觉 Python
Jetson 学习笔记(六):cv2调用CSI摄像头(jetson nx/nano)、打开海康摄像头、打开电脑摄像头
这篇文章介绍了在不同平台上接入并显示摄像头视频流的方法,包括海康摄像头的RTSP连接、电脑内置摄像头的直接读取、Jetson NX/Nano通过CSI接口和USB接口的操作,以及Jetson Nano通过Gstreamer管道和jetcam库的使用,并提供了相应的代码示例。
1755 1
|
传感器 运维 机器人
解析 RS485 总线:从技术内核到终端电阻的可靠性密码
RS485 总线凭借差分传输、多节点组网与长距离通信等特性,成为工业自动化领域的核心通信技术。其稳定运行离不开终端电阻的精准配置,通过匹配 120Ω 阻抗有效抑制信号反射,保障数据完整性。本文从技术原理到工程实践,深入解析 RS485 总线的可靠性设计,揭示终端电阻在抗干扰、布线与故障排查中的关键作用。
1031 0
|
jenkins 持续交付 开发者
自动化部署:使用Jenkins和Docker实现持续集成与交付
【8月更文挑战第31天】本文旨在为读者揭示如何通过Jenkins和Docker实现自动化部署,从而加速软件开发流程。我们将从基础概念讲起,逐步深入到实际操作,确保即使是初学者也能跟上步伐。文章将提供详细的步骤说明和代码示例,帮助读者理解并应用这些工具来优化他们的工作流程。
|
JSON API 数据格式
淘宝天猫店铺订单列表、订单详情、订单物流 API 接口全攻略
淘宝天猫订单API接口简介:支持订单列表查询、订单详情获取及物流轨迹追踪功能。通过taobao.trades.sold.get等接口批量查询订单,按状态/时间筛选;taobao.trade.fullinfo.get获取订单详细信息;taobao.logistics.trade.trackget实时跟踪物流状态。开发者需注册账号、申请权限,并使用编程语言调用API,传递必要参数(如App Key、订单ID),处理JSON返回数据。适用于多场景订单管理与物流同步。
1499 5
|
Java Linux 网络安全
基于云服务器的数仓搭建-服务器配置
本文介绍了购置并配置三台云服务器的详细步骤。使用FinalShell连接服务器,并安装了必要的工具如epel-release、net-tools和vim。关闭防火墙后,在/opt目录下创建module和software文件夹,卸载默认JDK并修改主机名。添加环境变量路径/home/alpfree/bin,编写集群分发脚本xsync实现文件同步,配置无密登录,安装并分发JDK。参考资料来自海波老师的电商数仓课程。
|
缓存 前端开发 JavaScript
10 种方案提升你 React 应用的性能
本文首发于微信公众号「前端徐徐」,作者徐徐分享了提升 React 应用性能的方法。文章详细介绍了 `useMemo`、虚拟化长列表、`React.PureComponent`、缓存函数、使用 Reselect、Web Worker、懒加载、`React.memo`、`useCallback` 和 `shouldComponentUpdate` 等技术,通过实际案例和代码示例展示了如何优化 React 应用的性能。这些方法不仅减少了不必要的重新渲染和计算,还提升了应用的响应速度和用户体验。
408 0
|
存储 前端开发 JavaScript
什么是web与搭建自己的第一个pikachu靶场
本文是关于Web基础知识和搭建Pikachu靶场的教程。首先介绍了Web的定义,强调其作为互联网信息传输方式的核心是超链接,以及HTML、CSS和JavaScript在构建网页中的作用。接着,详细讲解了如何在本地使用phpStudy搭建Pikachu靶场,包括下载相关软件、配置安装路径、启动环境和初始化数据库设置。对于使用特定Win7系统的用户,提供了因系统自带phpStudy导致安装问题的解决办法。分享了学习心得和每日一言,鼓励专注力的重要性。
|
传感器 负载均衡 网络协议
物联网协议之MQTT
物联网协议之MQTT
1691 0

热门文章

最新文章