• NVIDIA Nsight Systems CUDA 跟踪


    NVIDIA Nsight Systems CUDA 跟踪

    CUDA跟踪             

    NVIDIA Nsight Systems能够捕获有关在概要过程中执行CUDA的信息。             

    可以在报告的时间轴上收集和呈现以下信息:             

    CUDAAPI跟踪-跟踪应用程序进行的CUDA运行时和CUDA驱动程序调用。             

    CUDA运行时调用通常以CUDA前缀开始(例如,cudaLaunch)。             

    CUDA驱动程序调用通常以cu前缀开始(例如,cuDeviceGetCount)。             

    跟踪主机上发生的操作(例如,对内存的跟踪)和对内存执行的拷贝。在使用CUDAAPI的线程中,时间轴树中将显示其他子行。

     

    在时间线行树的底部附近,GPU节点将出现并包含一个CUDA节点。在CUDA节点中,进程中使用的每个CUDA上下文将与其相应的CUDA流一起显示。steam将包含内存操作和GPU上的内核启动。内核启动用蓝色表示,内存传输用红色显示。

     

    获取CUDA信息最简单的方法是从NVIDIA Nsight Systems启动进程,它将为您设置环境。为此,只需设置正常启动并选中Collect CUDA trace复选框。

     

    其他配置参数可用:             

    收集超过X秒的API调用的回溯-打开CUDA API回溯的收集,并设置CUDA API事件在收集其回溯之前必须花费的最短时间。将此值设置得太低可能会导致应用程序开销过高,并严重增加结果文件的大小。             

    定期刷新数据-指定尝试刷新CUDA跟踪数据的时间段。通常,为了收集完整的CUDA跟踪,应用程序需要完成用于CUDA工作的设备(调用cudaDeviceReset()),然后让应用程序正常退出(而不是崩溃)。             

    此选项允许在设备完成之前刷新CUDA跟踪数据。但是,它可能会给随机的CUDA驱动程序或CUDA运行时API调用带来额外的开销。             

    跳过一些API调用-避免跟踪无关紧要的CUDA运行时API调用(即,cudaConfigureCall()、cudaSetupArgument()、cudaHostGetDevicePointers())。不跟踪这些函数可以显著减少分析开销,而不会丢失任何有趣的数据。(见下面的CUDA跟踪过滤器)             

    如果需要,可以手动设置目标应用程序以收集CUDA跟踪。要获取有关CUDA执行的信息,应满足以下要求:

    如果需要,可以手动设置目标应用程序以收集CUDA跟踪。要获取有关CUDA执行的信息,应满足以下要求:             

    根据流程的体系结构,应使用指定的环境变量启动已分析的流程:             

    对于ARMv7(32位)进程:

    CUDA_INJECTION32_PATH,它应该指向注入库:

    /opt/nvidia/nsight_systems/libToolsInjection32.so

    对于ARMv8(64位)进程:CUDA_INJECTION64_PATH,它应该指向注入库:

    /opt/nvidia/nsight_systems/libToolsInjection64.

    如果应用程序由NVIDIA Nsight Systems启动,所有必需的环境变量都将自动设置。              请注意,如果在复制所有收集的CUDA跟踪数据之前应用程序崩溃,则部分或所有数据可能会丢失,并且不会出现在报告中。

    人工智能芯片与自动驾驶
  • 相关阅读:
    服务器出现大量的127.0.0.1:3306 TIME_WAIT连接 解决方法 [转载]
    phpize安装php扩展CURL
    linux位数查看
    Linux下Sublime Text 3的安装
    ECstore后台报表显示空白问题解决办法
    centos 上安装phpstorm
    Nginx禁止目录执行php文件权限
    vue 动画
    vue的路由
    组件的传值 组件之间的通讯
  • 原文地址:https://www.cnblogs.com/wujianming-110117/p/13943442.html
Copyright © 2020-2023  润新知