During finalizing analysis I get such error: "Communication with sampling driver failed.". How to solve this problem? Does it influence analysis results?
I use VTune 2013 update 14 on Windows 7 x64 with i7-2600.
Are you sure it is during finalization? How long does your application run?
As Administrator, locate
amplxe-sepreg.exe (in bin64 subdirectory of product installation) and execute:
> amplxe-sepreg -s
Does it say everything is OK?
I start my application with paused analysis. Then it is resumed using __itt_resume/__itt_pause for ~3s. Then I exit my application. All mentioned steps take 2-3 minutes. When my application disappears then the Collector Messages window shows mentioned error, so I understand it's during analysis finalization.
Checking sepdrv3_10 driver path...OK
Checking sepdrv3_10 service...
Driver status: the sepdrv3_10 service is running
Checking sepdal driver path...OK
Checking sepdal service...
Driver status: the sepdal service is running
Both versions of my application (32/64 bits) gives the same error, however, from time to time it doesn't appear. Both versions of amplxe-sepreg (bin32/bin64) shows the same output as above.
What is the "Duration Time Estimate" set to in your project settings?
What happens if you start normally, i.e., without pause? (Don't forget to change the time estimate!)
Duration time was set to 'under 1 minute', and pure analysis didn't take more.
If I don't pause analysis then everything seems to work OK. I noticed that it matters if I run analysis with 'Advanced Hotspots'. If I use 'Basic Hotspots' then pausing/resuming doesn't matter.
One more thing, from time to time, during my application heavy workload, I get such warning: 'Failed to get the application thread context: A device attached to the system is not functioning.'
> If I don't pause analysis then everything seems to work OK.
Did you mean if you started Advanced-hotspots without paused option, it was OK? Hotspots will not report driver communication failure.
In your description, you only insert a pair of Resume/.Pause in your code, have your verified these code are used in parallel code region? If it was the case, you can image: if your code in one thread wanted to resume sampling via communicating with the driver, but code in other thread wanted to resume later, the driver's status will be unexpected to cause communication failed.
I opinion is to put Resume API in serial code -> then run parallel code region -> put Pause API in serial code -> stop advanced-hotspot.
Another tip is - if vtune driver is in exception (unstable), you have to restart the machine (or unload / reload the driver)
> Did you mean if you started Advanced-hotspots without paused option, it was OK? Hotspots will not report driver communication failure.
Yes. If I start advanced-hotspots with paused option then I get error. If I do the same with basic-hotspots then I don't. If I start advanced/basic hotspots without paused option then everything works OK.
> In your description, you only insert a pair of Resume/.Pause in your code, have your verified these code are used in parallel code region?
resume/pause is called from the same method in the same thread, perfectly serial part.
> Another tip is - if vtune driver is in exception (unstable), you have to restart the machine (or unload / reload the driver)
Hmm, restart seems to be cure for every problem...
> If I start advanced/basic hotspots without paused option then everything works OK.
Have you see expected result?
It was so strange...and I can't image what wrong was, I suppose that you can run "amplxe-feedback -create-bug-report <report archive>" when met error: "Communication with sampling driver failed.", it will generate logs and your system configuration info, so engineering team can investigate your issue based on these data. You can attach them on this issue, or go Intel Premier to submit.
> Have you see expected result?
Yes, I have. Everytime they seem to be OK. However, the main question here is: are these results influenced/corrupted somehow by this error?
> I suppose that you can run "amplxe-feedback -create-bug-report <report archive>"
OK, I didn't know this command. Thanks.