OpenCL* for CPU
Ask questions and share information on Intel® SDK for OpenCL™ Applications and OpenCL™ implementations for Intel® CPU.
Announcements
This forum covers OpenCL* for CPU only. OpenCL* for GPU questions can be asked in the GPU Compute Software forum. Intel® FPGA SDK for OpenCL™ questions can be ask in the FPGA Intel® High Level Design forum.
1719 Discussions

Intel OpenCL Compiler does not know about cl_intel_printf

kugeleck
Beginner
787 Views
Hello,

I'm using Intel OpenCL SDK 2012 on Linux and I get the following error message when I compile my kernel:
:5:48: warning: OpenCL extension 'cl_intel_printf' is not supported - ignoring
This does not make sense since I can use it and it's working.

In my code I first check for cl_intel_printf with
#if defined cl_intel_printf
and then I enable it with
#pragma OPENCL EXTENSION cl_intel_printf : enable

This warning is quite annoying since I want to compile my OpenCL code with
-Werror
as a build parameter during development. This obviously does not work since the false warning prevents the code from executing.

I also noticed that
-cl-opt-disable
seems to be ignored since the build log contains
Kernel  was successfully vectorized
As far as I understand it vectorization is an optimization step.

How can I get rid of the warning?

Regards
kugeleck
0 Kudos
3 Replies
EvgeniyPeshkov
New Contributor I
787 Views
Are you using CPU or Intel GPU device?
On GPU cl_intel_printf extention and -cl-opt-disable compiler option are both unsupported.
0 Kudos
kugeleck
Beginner
787 Views
I'm using a dual core Intel CPU.
0 Kudos
EvgeniyPeshkov
New Contributor I
787 Views
I've tried -cl-opt-disable compiler option and yes, there is still "Kernel was successfully vectorized" string in log.
As OpenCL specification says-cl-opt-disable disables all optimizations that are listed in "Optimization Options" chapter like-cl-mad-enable,-cl-unsafe-math-optimizations etc. It's optimizations of math functions commonly. So this option doesn't have to disable Intel autovectorization. And vectorization is another kind of optimization related to parallel execution of work-items by splitting them to compute using wide vector ALUs.
You only can disable autovectorization by usingvec_type_hint kernel attribute (see OpenCL specification), or using -g (debug) option that disables autovectorization and all optimizations.
In respect of cl_intel printf extention, I have the same warning. Maybe it is a bug of SDK.

0 Kudos
Reply