logo好方法网

一种应用性能分析系统及方法


技术摘要:
本发明涉及一种应用性能分析系统及方法,该系统包括显存泄漏分析模块和核函数执行时间模块;其中,显存泄漏分析模块,用于通过分析静态程序的抽象语法树,对指针地址映射集合进行增、删、改操作,来记录对显存的操作;通过分析指针地址映射集合里是否有空指针或者还未  全部
背景技术:
HPCToolkit是一组多平台的工具,用于应用程序的性能分析。HPCToolkit通过动 态检测方法进行显存泄漏检测,动态检测方法需要在程序运行的过程中插桩或者设置中断 捕获一些信息,对应用程序的实际运行效率是会产生或多或少的影响。HPCToolkit在统计 核函数执行时间,需要能够捕获到核函数执行开始的时间以及结束的时间。通过平台提供 的API函数,如cudaDeviceSynchronize(AMD平台对应hipDeviceSynchronize函数),程序将 会一直处于阻塞状态,直到前面所有请求的任务已经被全部执行完毕,如果前面执行的某 个任务失败了的话,将会返回一个错误。
技术实现要素:
本发明目的在于,解决现有应用性能分析系统在进行显存泄漏检测时存在的上述 问题。 为实现上述目的,一方面,本发明提供了一种应用性能分析系统,该系统包括显存 泄漏分析模块和核函数执行时间模块;其中, 显存泄漏分析模块,用于通过分析静态程序的抽象语法树,对指针地址映射集合 进行增、删、改操作,来记录对显存的操作;通过分析指针地址映射集合里是否有空指针或 者还未释放的显存地址;以及 核函数执行时间模块,用于通过相应接口捕获需要统计的核函数执行名称,在应 用程序的目标核函数执行前进行捕获,插入CPU/GPU时间测量代码片段,在程序运行结束时 汇总统计的时间,并进行展示。 另一方面,本发明提供了一种应用性能分析方法,该方法包括以下步骤: 通过分析静态程序的抽象语法树,对指针地址映射集合进行增、删、改操作,来记 录对显存的操作;通过分析指针地址映射集合里是否有空指针或者还未释放的显存地址; 以及 通过相应接口捕获需要统计的核函数执行名称,在应用程序的目标核函数执行前 进行捕获,插入CPU/GPU时间测量代码片段,在程序运行结束时汇总统计的时间,并进行展 示。 本发明的有益效果在于: (1)在程序运行前进行分析,尽可能早的发现程序是否有显存泄漏问题。 (2)静态检测不涉及应用程序的实际运行,不会影响实际运行效率。 (3)由于是静态分析,只针对源码进行检测,所以可以将检测软件部署到不同的异 构平台中应用。 4 CN 111611158 A 说 明 书 2/6 页 附图说明 下面结合附图和实施例对本发明进一步说明。 图1为本发明实施例提供的一种应用性能分析系统结构示意图; 图2为扩展显存泄漏检测流程示意图; 图3为扩展核函数执行时间统计流程示意图; 图4为CPU/GPU函数执行时间统计流程示意图。
分享到:
收藏