我是英特尔VTune的新手。所以,我有一个普遍的疑问。
我试图使用VTune分析一个应用程序,并想知道VTune核心的位置。
在分析一个应用程序时,VTune占用了多少核心?
它依赖于操作系统吗?
发布于 2022-11-11 20:45:18
从硬件PMU事件中收集数据只需要在运行分析代码的核心上的中断处理程序中做一些工作。这是有意相当轻的重量,就像只触发时,一个计数器包围周围。如果您运行的是perf record而不是perf stat,那么这是一个“示例”:CPU必须将该事件与指令地址相关联,即使是在cycles这样的事件中,CPU正在忙着处理数百条指令。
分析器将调整包装阈值以生成具有有用频率的事件(因此,即使对于较少见的事件,也可以获得一些示例,但对于常见事件,您没有花费所有CPU时间处理中断)。
如果VTune在收集配置文件时对该数据进行任何实时可视化,则在VTune进程本身中就会出现这种情况,根据操作系统的调度,不管运行的核心是什么。
发布于 2022-11-13 00:40:27
VTune当然能够“在后台”运行(通过在某些核上进行分时),同时监视一个使用所有内核的作业。一些版本没有遇到任何问题,而其他版本(与特定的内核版本结合在一起)在监视使用所有内核的作业(即大量丢失的示例)时遇到了困难。(考虑到最近处理器中的核心和线程数量惊人,这一点也不足为奇。)
根据我的观察,在作业运行时,VTune不进行任何重要的后处理(甚至不压缩输出文件)。“报告”通常在被测试作业完成后运行,但也可以推迟到一个独立的步骤,以便在您方便的情况下运行。可视化和后处理是由“查看者”完成的,而不是由“收集器”完成的,因此它不与被调查的应用程序竞争处理资源。这是针对“经典”版本的VTune,它将结果保存到本地文件。
还有一个版本运行web服务器,通过web浏览器承载“查看器”功能,但我从未尝试过在我的环境中使其工作。
https://stackoverflow.com/questions/74399364
复制相似问题