The default llvm/clang on debian is 3.6, and that is what I had installed. 3.7 is available and I have it installed, but the trouble now is getting beignet to see it. I've changed the following cmake variables:
CLANG_EXECUTABLE /usr/bin/clang-3.7 LLVM_AS_EXECUTABLE /usr/bin/llvm-as-3.7 LLVM_CONFIG_EXECUTABLE /usr/bin/llvm-config-3.7 LLVM_LINK_EXECUTABLE /usr/bin/llvm-link-3.7 but am met with the following CMake Error: CMake Error: The following variables are used in this project, but they are set to NOTFOUND. Please set them or make sure they are set and tested correctly in the CMake files: CLANG_LIB linked by target "gbe" in directory /home/bpaterni/usr/src/beignet/backend/src linked by target "gbe" in directory /home/bpaterni/usr/src/beignet/backend/src linked by target "gbe" in directory /home/bpaterni/usr/src/beignet/backend/src . . . Please let me know what I'm missing. Thank You On 03/02/2016 02:37 AM, Yang, Rong R wrote: > 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:beignet-boun...@lists.freedesktop.org] On Behalf Of >> Brian Paterni >> Sent: Tuesday, March 1, 2016 22:36 >> To: beignet@lists.freedesktop.org >> 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 Beignet@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/beignet