GPA monitor on IVB doesnt generate traces

GPA monitor on IVB doesnt generate traces

Ehsan Totoni's picture

Hello,

I am running GPA 2012 R5 on an Ivy Bridge machine with Intel HD 2500 graphics (OS is windows 7 and latest driver is installed). When I run the GPA monitor even on the sample executable provided, no trace file is being generated. In the Documents\GPA_2012_R5\Logs folder, a log file is generated with a sample of its contents following. What could be the issue?

[TAL][WIN pid=2984][ 10c4] Export "__itt_pause" is not found.
[TAL][WIN pid=2984][ 10c4] Export "__itt_resume" is not found.
[TAL][WIN pid=2984][ 10c4] Export "__itt_thread_ignore" is not found.
[TAL][WIN pid=2984][ 10c4] Export "__itt_sync_createA" is not found.
[TAL][WIN pid=2984][ 10c4] Export "__itt_sync_createW" is not found.
....

Thanks in advance,

-Ehsan

12 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.
Neal P (Intel)'s picture

Hello,

Sorry that you are having problems...

First of all, could you right-click the Intel GPA Monitor icon in the notification tray, select "About...", and please copy that info here? I need some more detailed information about your configuration. This info will help us more quickly debug the issue.

Next, check the "preferences" option of Intel GPA Monitor -- there's an option to "disable tracing", so make sure this is unchecked.

A couple more questions for you:

  • What happens when you try to create a trace file? Does Intel GPA print any message (either success or error), or does it look like Intel GPA didn't do anything at all?
  • Can you create a frame capture file OK, or does this only happen with trace capture files?
  • Is 2012 R5 the only version that fails? In other words, did you upgrade from a previous version that worked, or is 2012 R5 the only version that you've been testing.
  • How did you start creating the trace capture file? Was it via a trigger (such as frame number = 100), or did you use a keyboard shortcut for this (such as Ctrl-Shift-T)?

Thanks for using Intel GPA, and hopefully we can quickly get you up and running with the product's tracing feature.

Regards,

Neal

Ehsan Totoni's picture

Thanks for your quick response Neal.

Looks like I didn't look into enough of documentations. I was just following the Intel OpenCL webinar (http://software.intel.com/en-us/articles/webinar-creating-and-optimizing...). In that they just open and close the application and the trace file is generated magically, but they don't mention the trigger.

After following the documentations, now GPA monitor can generate the traces (I use the trigger in the profiles section). However, when I open the traces of an OpenCL application in the platform analyzer, it is completely empty. It is fine for the sample graphics application though (shows the tasks).

In addition, the system analyzer does not show any of the GPU utilization metrics for OpenCL applications. It is fine for the sample graphics application. Am I missing some settings or environment variables here?

BTW, GPA monitor crashes when a CPU OpenCL context is created but I assume OpenCL on CPU it is not supported yet.

Here are the answers to your questions:

Windows 7, 64-bit DEP enabled
Num Processors: 4
Memory: 16227MB
System BIOS: American Megatrends Inc. ACRVMBY1.86C.0075.B00.1112251124 (12/25/2011)
Video BIOS: Hardware Version 0.0 (12/23/20)
Driver 0:
Device: Intel(R) HD Graphics
Provider: Intel Corporation
Date: 10-17-2012
Version: 9.17.10.2875
VendorId: 8086
ProductId: 152 (Intel® HD Graphics 2500)
Stepping: 9
Supports GPA Instrumentation
GPA install directory: C:\Program Files\Intel\GPA\2012 R5\
GPA version: 12.5.187105
Current user is in Administrators group: YES
Current GPA 2012 R5 (12.5.187105)
"Auto-detect launched applications" is On

disable tracing is off.
I have tested 2012 R4 also but not any other version. I trigger the trace generation when CPU load goes above 30%.

Regards,
-Ehsan

Neal P (Intel)'s picture

Hello Ehsan,

It sounds like some good news in that you can see some information when using the Intel GPA sample application. However, it looks like there are still some issues when trying to see traces using your sample OpenCL* application.

I think the issue may be that other settings are required to use the two tools together. For example, I saw a note in our online help for using OpenCL* with Intel GPA (http://software.intel.com/sites/products/documentation/gpa/12.5/index.htm and search for "OpenCL"):

For profiling OpenCL* applications, install the Intel® SDK for OpenCL* Applications and use the OpenCL* Profiler to collect traces. You can collect additional CPU tracing information by setting the CL_GPA_CONFIG_ENABLE_API_TRACING environment variable to TRUE. This will enable you to (1) view detailed timing information about your OpenCL* workload by inspecting the time the host API took to execute, and (2) know when certain parts of the host API took more time to execute.

There's also a separate section in the OpenCL* online help as well that talks about using Intel GPA and OpenCL* together: http://software.intel.com/sites/landingpage/opencl/user-guide/hh_goto.ht...

Hopefully the two notes above help resolve the issue about not seeing the trace data, but you should be able to get both CPU and GPU activity in Intel GPA Platform Analyzer. However, due to the way Intel GPA System Analyzer works you won't be able to directly observe OpenCL* kernel activity.

As to your issue about the crash of the Intel GPA Monitor, this shouldn't happen (crashes are never good!) -- do you have more details on this specific issue?

Regards,

Neal

Neal P (Intel)'s picture

Hello again,

Forgot to mention, try a couple of the suggestions I've mentioned in my response, and let me know whether these give you the results you expect/need. If not, I may need to get a copy of the app from you (hopefully a small app!).

Regards,

Neal

Ehsan Totoni's picture

Hi Neal,

I have gone through these documentation links already and I've set both CL_GPA_CONFIG_ENABLE_API_TRACING and CL_CONFIG_USE_GPA. However, I missed this line that the Platform analyzer doesn't support OpenCL on the GPU yet (http://software.intel.com/sites/landingpage/opencl/user-guide/index.htm#...). So my platform analyzer issue makes sense but does it also mean that system analyzer doesn't show GPU utilization metrics?
For OpenCL on the CPU, the GPA Monitor doesn't crash. The application itself crashes when it is run through the monitor (with analyze application...). Otherwise the application is fine. The other issues happen even for Intel opencl examples (e.g. bitonic sort) but this crash is specific to my code. If platform analyzer doesn't support the GPU this crash is not important for now anyways. However, system analyzer doesn't show GPU utilization for any OpenCL application for me.

Bests,
-Ehsan

Neal P (Intel)'s picture

Hello,

Thanks for the additional information.

I'm doing some more checking on the GPU tracing of OpenCL*, and will get back to you on this.

Is your sample program one of the OpenCL* samples, or is it something that you wrote? The reason I'm asking is the Intel GPA Monitor shouldn't cause the application to crash, so it would be nice to get a copy of the sample in order to find out why the crash occurs.

Thanks!

Neal

Ehsan Totoni's picture

Hi Neal,

Thanks, looking forward to that.
The crash happens for the codes we developed ourselves here and I couldn't reproduce it with the opencl samples yet. It might be because of one of the libraries we use or the way we setup opencl (create context etc). I will try to reproduce with smaller examples or pack up and send you our code.

Bests,
-Ehsan

Neal P (Intel)'s picture

Hello

I did some more checking and you should be able to get the GPU data if you use the Profiler Configuration Utility to enable the OpenCLProfiler. With this "shim" installed, this adds Intel GPA instrumentation and GPU HW counter support on Intel® HD Graphics 4000/2500 systems.

Also, try using the profile option "Capture Application Startup" and set the default buffer size larger -- this will help you see all the OpenCL* initialization calls as well as the GPU usage.

Also, you won't see OpenCL* on Intel GPA System Analyzer, but only within Intel GPA Platform Analyzer.

Let me know if this helps.

Regards,

Neal

Neal P (Intel)'s picture

Hello,

I think I found the key piece that's missing: you need to download the 2013 Beta version of the Intel OpenCL* SDK: http://software.intel.com/en-us/vcsource/tools/opencl-sdk-2013

Try this, along with the other items we've discussed here, and see if you can now get the GPU data traces for OpenCL*.

Regards,

Neal

ps-> one other document that might be helpful (you've probably already seen this one): http://software.intel.com/en-us/articles/collecting-opencl-related-metri...

Ehsan Totoni's picture

Hello,

Is "Profiler Configuration Utility" the profiles\tracing window of GPA monitor? Opencl is already there. "Capture Application Startup" makes it show the startup calls but nothing more. I am already using the 2013 beta SDK. That online document says:

"When profiling non-DirectX applications, only CPU metrics are available. The reason is that even general GPU metrics are queried as deltas within each Direct3D* frame. Thus, you cannot view any GPU–related metrics for console applications."

I think this might be the issue. Maybe I should call my kernel inside a dummy directx app? Is there another way to get the GPU performance counters other than using GPA (like some API calls)?

Bests,
-Ehsan

Neal P (Intel)'s picture

Hello,

Sorry, but I didn't realize that you weren't using DirectX.

Unfortunately, at this time there are no API calls that access GPU metrics, and you're not the first person to request this. In other words, we understand the need for this capability, and it's on our list as a potential future enhancement for the Intel GPA product.

Regards,

Neal

Login to leave a comment.