- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Setting up profiling for standard applications is usually fairly trivial. For example, to generate C or C++ language code coverage analysis, it's a simple matter of adding "--coverage" to the gcc command line (for both compile and link flags).
However, there is ZERO documentation about how to generate coverage information for code that gets compiled to OpenCL kernels. There seems to be no way to get "external" profiling data, and source code must be modified to include calls to clGetEventProfilingInfo wherever profiling data is desired. Apparently this is a failure in the OpenCL Specification, so Altera is not to blame, but, ignoring the lack of profiling support is a huge omission - I'd call it a "Schoolboy error". When will profiling support make it into the Specification, and be supported by Altera SDKs ?Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Profiling is supported in aoc:
aoc --profile --board <board> <kernel file> Then use "aocl report <.aocx file> profile.mon" after running the kernel on the device to see the profile info. clGetEventProfilingInfo is on the host when you are using events. Are you looking for something different?- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
There is a lot more than "ZERO" documentation: "Intel FPGA SDK for OpenCL Programming Guide, 1.11 Profiling Your OpenCL Kernel" and "Intel FPGA SDK for OpenCL Best Practices Guide, 1.5 Profile Your Kernel to Identify Performance Bottlenecks". The "Schoolboy error" is not bothering to read the documentation.
Profiling is not supposed to be in the specification, it is supposed to be provided by the compiler, which is also provided by Altera's compiler in this case.- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
SOrry, I shouldn't have used the word "profiling" when I really mean coverage analysis.
How is coverage analysis performed, them ?- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
What information are you specifically looking for? If you are using the single work-item programming model, in which the kernel is basically a piece of sequential C code, you can always use the kernel code as a standard C function, and use gcc's code coverage analysis. For NDRange kernels, there is probably nothing official, but you can also convert those to standard sequential C code and perform the analysis.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page