Intel OpenCL Compiler does not know about cl_intel_printf

Intel OpenCL Compiler does not know about cl_intel_printf

Portrait de kugeleck

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

4 posts / 0 nouveau(x)
Dernière contribution
Reportez-vous à notre Notice d'optimisation pour plus d'informations sur les choix et l'optimisation des performances dans les produits logiciels Intel.
Portrait de pesh

Are you using CPU or Intel GPU device?
On GPU cl_intel_printf extention and -cl-opt-disable compiler option are both unsupported.

Portrait de kugeleck

I'm using a dual core Intel CPU.

Portrait de pesh

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.

Connectez-vous pour laisser un commentaire.