Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
29001 Discussions

How to identify callers of _intel_fast_memset ?

mriedman
Novice
598 Views
After increasing array sizes I got a test case where _intel_fast_memset consumes 80% of total compute time. The OProfile call graph is not very helpful in finding the caller. The only approach right now is browsing through the OProfile assembly output and check the calls of this routine.

Is anybody aware of a cheap trick to find this easier ? Or would it be possible to intercept and replacethis routine with a clone through LD_PRELOAD ? In order to do that one has to have knowledge of the API. Is it identical to memset() or is it somewhat optimized (I bet it is) ? Any hints welcome.

thanks

michael
0 Kudos
1 Solution
TimP
Honored Contributor III
598 Views
It does appear that linking in a renamed memset() might work. As your task appears to be to find out where you spend the most time copying arrays, cutting back on optimization of the possible culprits so that the fast_memset optimization doesn't occur would be another possibility. Not to mention profiling under another compiler such as gfortran.

View solution in original post

0 Kudos
2 Replies
TimP
Honored Contributor III
599 Views
It does appear that linking in a renamed memset() might work. As your task appears to be to find out where you spend the most time copying arrays, cutting back on optimization of the possible culprits so that the fast_memset optimization doesn't occur would be another possibility. Not to mention profiling under another compiler such as gfortran.
0 Kudos
mriedman
Novice
598 Views
Indeed, that's it. That way thememset time will be accountedwith the calling routine. Thanks a lot.
0 Kudos
Reply