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.
1663 Discussions

Error: unimplemented function(s) used:

sharpneli
Beginner
284 Views
First of all I wish to say that Intel's alpha release of OpenCL 1.1 is currently among the best out there. However despite this it seems some features have slipped trough the cracks.

If vector indexing is used with select it simply does not work.
uchar3 xx,yy,zz;
select(min(zz.x, max(xx.z,yy.y)), zz.x, zz.x < min(xx.z,yy.y));

produces

Error: unimplemented function(s) used:
_Z6selecthhi in function foo

Obviously I use ?: notation for scalars now, but it's 'cleaner' to use select everywhere.

p.s I wonder if using an unimplemented function is a valid error according to the spec ;)
0 Kudos
2 Replies
Shiri_M_Intel
Employee
284 Views
Hi
Your code is perfect, it looks like a bug. We will fix it in future releases.
In the mean while, I suggest to avoid this statement
Thanks, Shiri
Victor_Umansky__Inte
284 Views
Hi,

There is an ambiguity in select() function defintion in OCL 1.1. spec. It doesn't mention explicitely that exp3 must be of the same vector size and element size (in bits) as exp1 and exp2. That means that the folowing usages are valid:

select( double, double, long)
select( char, char, char)

while the following usages are invalid:
select( double, double, int)
select( char, char, int)

In the future, the spec will be updated with the "refined" definition (adding explicit same-sizeconstraint).

Consequently, the behaviour of Intel SDK w.r.t. select parameter type scope is correct.

Victor
Reply