Yes, In OpenCL 1.2, using double no longer requires using the pragma cl_khr_fp64. But clang support it from clang 3.7. which llvm/clang version do you use? Could you update to llvm/clang 3.7 and try again?
> -----Original Message----- > From: Beignet [mailto:[email protected]] On Behalf Of > Brian Paterni > Sent: Tuesday, March 1, 2016 22:36 > To: [email protected] > Subject: [Beignet] cl_khr_fp64 on OpenCL 1.2+ > > Hi > > Since the latest beignet release (1.1.1) provided by debian does not support > double precision floating point, I ended up compiling from source and > installed the latest git code locally with EXPERIMENTAL_DOUBLE enabled. > > Successfully, clinfo does detect the cl_khr_fp64 extension. However, the > pyopencl framework I'm working with expects the extension to be included > as core functionality with OpenCL 1.2+. As an example, the attached minimal > python code (test-double-record.py) attempts to map a > numpy.float64 type to an OpenCL C struct, and in doing so, generates a > minimal kernel to test the struct (tmpvRXvhp.cl). As seen, the kernel only > enables cl_khr_fp64 if using OpenCL < 1.2, but since I'm using Beignet (opencl > 1.2), and cl_khr_fp64 is not part of core functionality, I'm met with the > following error as the generated kernel fails to compile: > > Traceback (most recent call last): > File "./test-double-record.py", line 14, in <module> > numpy.dtype([('double_0', numpy.float64)])) > File "<decorator-gen-3>", line 2, in match_dtype_to_c_struct > File "/usr/lib/python2.7/dist-packages/pytools/__init__.py", line 430, > in > _deco > result = func(*args) > File "/usr/lib/python2.7/dist-packages/pyopencl/tools.py", line 603, in > match_dtype_to_c_struct > knl = prg.build(devices=[device]).get_size_and_offsets > File "/usr/lib/python2.7/dist-packages/pyopencl/__init__.py", line 213, > in > build > options=options, source=self._source) > File "/usr/lib/python2.7/dist-packages/pyopencl/__init__.py", line 253, > in > _build_and_catch_errors > raise err > pyopencl.RuntimeError: clBuildProgram failed: build program failure - > > Build on <pyopencl.Device 'Intel(R) HD Graphics 5500 BroadWell U- > Processor GT2' on 'Intel Gen OCL Driver' at 0x7f4163b190e0>: > > stringInput.cl:14:3: error: use of type 'double' requires > cl_khr_fp64 extension to be enabled > > (options: -I /usr/lib/python2.7/dist-packages/pyopencl/cl) > (source saved as /tmp/tmpNQsE23.cl) > > Given the above, I'm wondering what the best resolution would be? Would a > request to add cl_khr_fp64 to Beignet's core be possible? Or would a better > solution exist where pyopencl does not assume cl_khr_fp64 core > functionality in OpenCL 1.2+? _______________________________________________ Beignet mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/beignet
