问题标签 [intel-vtune]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
248 浏览

intel - Intel Vtune: Power driver not accessible

I'm trying to run Intel vtune power analysis on intel(R) Core(TM) i7-3632QM CPU running Ubuntu 13.04 i keep getting "Power driver is inaccessible. Make sure the driver is installed and you have permission to access it." I tried building and loading drivers manually, the sepdk builds and loads correctly but loading the powerdk driver gives the error

"Setting group ownership of device to group "vtune" ... ./insmod-apwr: 475: [: vtune: unexpected operator Not managed to install the driver with the proper group. Wrong group is vtune Setting group ownership of device to group "vtune" ... ./insmod-apwr: 475: [: vtune: unexpected operator Not managed to install the driver with the proper group. Wrong group is vtune Setting group ownership of device to group "vtune" ... ./insmod-apwr: 475: [: vtune: unexpected operator Not managed to install the driver with the proper group. Wrong group is vtune ./insmod-apwr: 487: [: vtune: unexpected operator Setting file permissions on device to "660" ... done. ./insmod-apwr: 514: [: vtune: unexpected operator ./insmod-apwr: 528: [: unexpected operator The apwr3_1 driver has been successfully loaded."

Could it be that my processor is not supported?

0 投票
2 回答
649 浏览

c - VTune 2013 Profiler 给出错误:“无法显示数据,没有可用于数据的视点”

我想优化我用 C 编写的代码,但这个错误总是显示“无法显示数据,没有可用于数据的视点”,正在 Windows XP 上工作,探查器是更新 2!

0 投票
1 回答
152 浏览

multithreading - 无法设置处理器关联

我正在尝试在 8 核集群上实现此代码。它有 2 个插槽,每个插槽有 4 个核心。我正在尝试创建 8 个线程并使用pthread_attr_setaffinity_np函数设置亲和力。但是当我查看我在 VTunes 中的表现时,它告诉我正在创建 3969 个奇数线程。我不明白为什么以及如何!最重要的是,我的性能与未设置关联(OS 线程调度)时完全相同。有人可以帮我调试这个问题吗?我的代码运行得很好,但我无法控制线程!提前致谢。

- - - - - - - - - - - - - - - - - - - 代码 - - - - - - --------------------------------

0 投票
2 回答
863 浏览

c++ - VTune 分析没有显示多态函数的分支预测指标?

我正在分析处理数百万条消息的两种设计之间的差异。一种设计使用多态,而另一种则不使用——每条消息都将由多态子类型表示。

我已经使用 VTune 分析了这两种设计。高级摘要数据似乎是有道理的——与使用 IF 语句实现的非多态版本相比,多态设计具有更高的“分支错误预测”率、更高的 CPI 和更高的“ICache 未命中”率。

多态设计有一行这样的源代码:

这被称为数百万次(子类型每次都更改)。由于分支目标错误预测/指令未命中,我预计多态设计会变慢。如上所述,VTune“摘要”选项卡似乎证实了这一点。但是,当我转到源代码行旁边的指标时,绝对没有指标,除了:

  • 已填充的管道插槽总数 -> 退休 -> 一般退休
  • 填充管道槽自我->退休->一般退休
  • 未填充的管道插槽总数 -> 前端绑定 -> 前端带宽 -> 前端带宽 MITE
  • 未填充的管道槽 self -> 前端绑定 -> 前端带宽 -> 前端带宽 MITE

分支预测列都没有数据,指令缓存未命中列也没有?

有人可以评论这是否合理吗?对我来说,它没有——对于一行多态代码,分支目标将不断变化的每条消息,怎么可能没有分支错误预测或指令缓存未命中统计信息?

这不可能是由于编译器优化/内联,因为编译器不知道要优化的对象的子类型。

我应该如何使用 VTune 分析多态性的开销?

0 投票
2 回答
433 浏览

performance - 优化 libc 中“问题”所在的代码

我有一个 C++ 代码,我正在玩 Intel 的 VTune,我运行了General Exploration 分析,但不知道如何解释结果。它将Retire Stalls的数量标记为问题。

就其本身而言,这足以让我感到困惑,因为我可能已经不知所措了。但是它列出的具有异常数量的退休摊位的功能是_int_mallocmalloc_consolidate,两者都在libc. 因此,这甚至不是我可以查看自己的代码并试图弄清楚的事情,也不是我真正可以开始改变的事情。

有没有办法使用这些信息来改进我自己的代码?或者这真的只是意味着我应该找到减少或减少分配频率的方法吗?

(注意:手头的特定代码不是问题,我正在寻找策略来解释数据并在热点或停顿或任何“问题”可能出现在我无法控制的代码中时进行改进)

0 投票
1 回答
172 浏览

intel - 来自 Intel Vtune 的内存跟踪

是否可以从 intel vtune 沿指令计数提取内存跟踪信息?如果是,请告诉我如何执行此操作。

谢谢

0 投票
0 回答
111 浏览

c - Vtune 结果很奇怪

我使用 Intel Vtune 对两个程序进行了剖析,一个经过优化,另一个没有,结果有点奇怪,两者的 Instructions Retired 都在 7,400,000 左右,在 CPI 中优化程序的比率高于 un - 优化程序!那么,任何人都可以帮助我理解这一点吗?

0 投票
1 回答
310 浏览

c - 循环展开后退出的指令减少

我有一个 O(N^4) 图像处理循环,在对其进行分析后(使用 Intel Vtune 2013),我发现退役指令的数量大大减少了。我需要帮助来理解多核架构上的这种行为。(我使用的是 Intel Xeon x5365- 有 8 个内核,每 2 个内核共享 L2 缓存)。并且分支错误预测的数量也急剧增加!/////////////EDITS/////////// 我的非展开代码示例如下所示:

我通过 4 次迭代展开最里面的循环。(你将有一个一般的理想我如何剥离循环。基本上我创建了一个 Array[4] 数组并在其中填充了相应的值。)做数学,我将总迭代次数减少 75%。假设每个循环有 4 个循环处理指令(加载 i、inc i、cmp i、jle 循环),展开后的指令总数应减少 (256-64)*4*256*256*496=24.96G . 分析结果如下:

no instr 退休减少了 518.06G 。我不知道这是怎么发生的。我将不胜感激有关此的任何帮助(即使它发生的可能性很小)。另外,我想知道为什么分支错误预测会增加。提前致谢!

0 投票
1 回答
881 浏览

intel-vtune - 英特尔® VTune™ 放大器 XE 2013 未知源文件

我的报告中有未知的源文件,这使我无法正确循环来分析我的报告

我想用 vtune 分析显示源代码,但是如果我编译 c 并获取执行文件。当我试图分析行为时,我只能检查汇编代码!有人知道如何显示源代码吗?另外,如果我想做 itt_pause() 和 itt_resum() 我想在没有 icc 编译器的情况下怎么做,我将文件编译为

我需要分析的源代码:

0 投票
2 回答
1860 浏览

c++ - 使用 Intel Vtune 从 Qt Creator 分析应用程序

我想在 Windows 7 上使用 Vtune 从 QtCreator 分析应用程序。但是 Vtune 基本上是为 Visual Studio 应用程序制作的,所以我必须在我的函数名称和发布版本中的指令之间建立链接。实际上,我在 Hotspots 中只有伪名称 func@address,它不可用。

通过探索英特尔 Vtune 的“入门”,我发现我必须在我的发布版本中启用调试信息,但如何在 QtCreator 中执行该操作?

从“使用调试信息”文件中:

为了提供准确的性能数据并启用源分析,英特尔® VTune™ 放大器需要其分析的二进制文件的调试信息。如果在二进制文件中找不到调试信息,VTune Amplifier 会静态识别函数边界并将热点地址分配给为此类函数生成的伪名称 func@address。

如果没有调试信息,则调用堆栈窗格可能无法正确展开用户模式采样和跟踪分析类型的调用堆栈。此外,在某些情况下,为没有调试信息的模块确定结果可能需要更多时间。

在 Windows* 操作系统上,PDB 文件提供调试信息。确保您的系统和应用程序库/可执行文件都有 PDB 文件。使用优化编译您的目标并开始分析其性能。

默认情况下,Microsoft Visual Studio* IDE 不会在发布模式下生成 PDB 信息。要使用 VTune 放大器获得更好的结果,请手动启用符号生成。对于系统库,使用 Microsoft* 符号服务器从 Microsoft* 网站下载所需的 PDB 文件。按照以下步骤确保 VTune 放大器使用系统和您自己的库的调试信息。

我尝试了一些方法,例如:-编辑 file.pro 以更改发布版本

  • 配置调试版本。

但它没有改变任何东西,我仍然没有打印函数名称

非常感谢任何输入。