The ComputeCpp Professional Edition offers dedicated helpdesk based support along with a set of advanced features only available to Professional Edition users. Enquiries for new Professional Edition licenses can be made through our contact form.
Dedicated Helpdesk Support
Professional Edition license holders can access the Helpdesk when logged in on our developer website PE section via the "Support" text hyperlink in the page header. If you encounter any problems please contact your account manager at Codeplay.
Professional Edition Features
Offline Kernel Compilation
It is possible to compile the kernels in your SYCL program ahead of time using "Offline Compilation." Without using this option you will notice that the first iteration of your kernel execution takes longer than subsequent iterations. This is because in the first iteration the kernels need to be compiled on the device. With "Offline Compilation" this step is done during binary compilation.
To find out how to use this feature read the compute++ Information Manual in our compiler manual under the option -sycl-target
E.g. compute++ -sycl-driver -sycl-target custom-spir32 --sycl-custom-tool=<path to offline compiler>
Program Execution Tracing
Profiling can be used to optimize and fine tune your application code to get the best performance possible on your target hardware. The Professional Edition provides built-in support for profiling. To find out how to use the profiling features there are two main articles, the Profiling ComputeCpp Applications and a more Profiling SYCL applications are available.
Kernel Performance Tool Inspector
The compute++ Information Manual in our compiler manual lists the option -sycl-print-stats
that outputs raw data about kernels following execution. We are currently working on further tools to analyze this data, if you would like to find out more about these please contact us via our support team.
Multi Instruction Single Binary
It's possible with the Professional Edition to generate a single binary that can be executed on multiple different instruction sets. To do this simply append the targets when invoking the ComputeCpp compiler compute++
E.g. compute++ -sycl-target spir32 -sycl-target spir64 -sycl-target spirv64 hello-world.cpp