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

GPU HD4600 OpenCL SPIR compilation problem

Nikolay_P_
Beginner
234 Views

I use OpenCL SPIR for two algorithms, each one has templated functions for uchar, ushort, uint, float and double (templates are implemented via defines/includes). So I have two SPIR binaries, each contains code with specializations for these types.

But I have problems while compiling OpenCL program from SPIR binaries on Intel HD 4600 (actual driver 10.18.14.4414, 23.03.2016, Windows 8.1):

1. First algorithm fails to compile with following message:

error: IGILTargetLowering::LowerCall(): unhandled function call!
Call made to: _truncdfsf2()
0x1c9d2c50: i64 = ExternalSymbol'
_truncdfsf2'
error: midlevel compiler failed build.

2. Second one fails to compile with:

error: IGILTargetLowering::LowerCall(): unhandled function call!
Call made to: _ltdf2()
0x266e2520: i64 = ExternalSymbol'
_ltdf2'
error: midlevel compiler failed build.

As I understand - _truncdfsf2 is a double->float conversion and _ltdf2 is a "lesser than" operator for doubles. So I removed double support from algorithms and now I have:

1. The first one leads to driver crash and system hangs up on clBuildProgram call.

2. The second one works good.

So the question is - why these two external symbols can't be found?

0 Kudos
1 Reply
Nikolay_P_
Beginner
234 Views

Oh, I understand, Intel HD doesn't support cl_khr_fp64 extension :(

Reply