I have downloaded trial of VTune 9.0 update 7 to re-evaluate VTune for our company. After installing EM64T version on XP x64 SP2 I tried to profile a project. Problems I encountered are as follows:
- VTune crashes with access violation if I right-click on module, function or address and select Get Tuning Advice. Only if I drill all the way down to assembler code and then click Get Tuning Advice (for current function) then it doesn't crash.
- It offers useless advice #1 — for example it says "use leave instead of mov esp, ebp and pop ebp". Code in question was generated by the Intel compiler 10.1.021 with /QxT so VTune should complain to Intel compiler writers, not to me. They obviously don't have a clue what instructions are faster on Core 2 Duo.
- It offers useless advice #2 — for example it says "SSE_Scalar_Instructions_Not_Fused". It advises me to use x87(!) instructions instead. Check below for code examples.
- It shows a lot of L2 and L1 cache misses but the advice mentions to use event counters from "Precise Events" group to pinpoint the offending instructions. Needless to say such a group doesn't exist so I am completely baffled as to what to do with it.
- Sometimes on drill-down from Hotspots view to particular address in the code it pops up a message box saying "Fatal error, aborting" and it refuses to open next window with code/disassembly.
- Even though I select the sampled data for say L2_M_LINES_OUT.SELF.ANY when I ask for advice it shows only CPU_CLK_UNHALTED.CORE instead and no advice at all.
- When I right-click on an instruction which has been marked as having a lot of L2 misses and ask for advice it doesn't offer any. In my opinion this Tuning Assistant is completely broken, it doesn't even offer higher bus frequency than 800 MHz and my CPU has 1333 MHz FSB since like three months ago. Seems like someone updating VTune code has been in hibernation ever since Netburst days.
- When VTune is installed Visual Studio 2008 takes AEONS to start. Namely, it takes 30 seconds(!) to open any solution (by double-clicking on a .sln file) and during that time CPU load is fluctuationg around 50% divided between two cores and memory usage of devenv.exe process skyrockets to 151,864 KB(!). Once open it takes 10 seconds(!) to close even though no files were modified. On the other hand, starting devenv.exe with an empty environment from the Start Menu shortcut and then opening the solution by hand is instant and it takes only 45,192 KB of memory.
About that SSE_Scalar_Instructions_Not_Fused code example:
movss xmm6, dword ptr [ebp + 24h] ! shufps xmm6, xmm6, 0 ; SSE_Scalar_Instructions_Not_Fused ... label: test edx, edx jz done ... sub edx, 1 ! jmp label ; SSE_Scalar_Instructions_Not_Fused done:
I sincerely doubt I could replace movss/shufps with x87 code much less that jmp and integer instructions.
I have attached screenshots of Task Manager CPU load graph, process list and memory load for devenv.exe when launched by double-clicking on a .sln file and from the Start Menu shortcut as described above.
Someone from Intel argued with me last time and said I was just bashing VTune without presenting real arguments. If we released and sold such a buggy application for our company (we deal wit h medical imaging) we would already have our heads chopped off and thrown to lions. It looks like VTune is indeed developed in someone's spare time as a fun project.
In my opinion usability is on a level of a small child's toy and it also evokes the proper emotions — to smash it into the nearest wall when it doesn't fit nicely with other "toys" and it doesn't do what you expect from it. My advice would be to either fix it quickly or start giving it away for free.
Finally, I am really frustrated with this experience and the lack of progress in VTune development. Seems that Avery Lee (author of VirtualDub) was right when he said that the last usable VTune was version 6.1.
Frankly speaking, VTune Tuning Assistant annoys me either, although I know the reasons of its behavior and I do not bother with this feature. Yes, Tuning Assistant component experiences lack of support and in some cases is useless of gives weird advises. In your case Id recommend drop it, since you seem to be quite experienced in low level optimization. Rely mostly on the microprocessor optimization reference manual and CPU events description, which goes along with VTune help system.
If you experience other crashes of VTune, please submit the issue through the Premier Support system, it will guaranty that the problem will be recorded and considered.
What regards to the slowdown with VS 2008, its known problem. Check your system for the following environment variables:
If any are found, remove them and restart Visual Studio. It should eliminate the problem. If not, submit the issue to the Premier Support. For more information regarding this problem take a look at this support page.