- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi.
I am trying using vtune to analysis the my code. When I use the microarchitecture analysis. It shows my code is terrible.
Then I go to the bottom-up windows. Trying to see the which function causes this problem. When I choose Function/stack in group:
It shows my four function run very well.(My four functions is update_slack ....)
But when I choose source / function / Call stack in group
It shows that:
It seems that these functions cause my problem. But actually I even not use this function in my code!!.
I have two problem:
1, What is the difference between the source function and function.
2, I never use this function. How these functions appears in my profilers?
Best,
lzxdjb
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Eigen is a C++ template library for linear algebra, if your functions call these library functions? By default, the child processes will be analyzed by the VTune, if the functions are called by the processes? From the VTune result, the bottlenecks should be located in the library.
Hotspots analysis type with call stack can tell you the callers of the library functions.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I never call Eigen::internal::function;
In fact, These kind of functions even never appears in the Eigen library!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It is interesting. Did you launch one application or profile system? Please post your command line.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I actually run a binary file in the VTune-gui. I do not run any command line. I think I just launch one application, put the binary file into it, and I run microarchitecture analysis.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Please share the binary if possible. I can try it locally.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
This is the binary's zip.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
MY code actually use four function: update_slack update_primal update_dual update_linear_cost. I think this four functions should be the top of time. But actually I even could not find them since they cost so short time compare to those Eigen::internal .... , that even not appear in Eigen library!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It looks like the binary is based on Mac OS? I can't run it on Windows and Ubuntu. Actually, VTune doesn't support Mac OS anymore.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I run it in ubuntu. I guess because binary can only run in local machine.
here is the source code:
you can first :
mkdir build
cd build
cmake ..
make
and the binary file is in the ../build/examples/original_tine_profile.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Failed to build.
yuzhang3@yuzhang3-10710:~/workspace/isvc_jira_ips/TinyMPC/build$ make
[ 16%] Building CXX object src/tinympc/CMakeFiles/tinympc.dir/admm.cpp.o
In file included from /home/yuzhang3/workspace/isvc_jira_ips/TinyMPC/include/Eigen/Eigen.h:61,
from /home/yuzhang3/workspace/isvc_jira_ips/TinyMPC/src/tinympc/types.hpp:3,
from /home/yuzhang3/workspace/isvc_jira_ips/TinyMPC/src/tinympc/admm.hpp:3,
from /home/yuzhang3/workspace/isvc_jira_ips/TinyMPC/src/tinympc/admm.cpp:4:
/home/yuzhang3/workspace/isvc_jira_ips/TinyMPC/include/Eigen/Eigen/Core:39:52: error: missing binary operator before token "("
39 | #if EIGEN_COMP_MINGW && EIGEN_GNUC_STRICT_LESS_THAN(6,0,0)
| ^
/home/yuzhang3/workspace/isvc_jira_ips/TinyMPC/include/Eigen/Eigen/Core:185:10: fatal error: src/Core/arch/Default/ConjHelper.h: No such file or directory
185 | #include "src/Core/arch/Default/ConjHelper.h"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [src/tinympc/CMakeFiles/tinympc.dir/build.make:76: src/tinympc/CMakeFiles/tinympc.dir/admm.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:118: src/tinympc/CMakeFiles/tinympc.dir/all] Error 2
make: *** [Makefile:91: all] Error 2
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It is very strange though.
Try this one?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Built success. I captured one hotspot as attached. You can see the call stack information about Eigen.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page