Thank you for making various drivers and tools for OpenCL development. They are my reference driver for my OpenCL work. I have a question concerning the "Intel® Xeon® Processor OR Intel® Core™ Processor (CPU) Runtimes".
Your current CPU runtime is from 2018 (version 18.1) and is limited to Ubuntu 16.04. When can we expect a newer runtime for Ubuntu 18.04? Will this runtime include support for OpenCL 2.2?
Thank you for your time,
With best regards,
I do most of my testing with OpenCL implementations on Ubuntu 18.04. I find it functional there.
If you would like to communicate your strategic concerns away from the public forum, we can communicate via private message. Please let me know.
I'd like to feed such feedback to the developer team.
Thank you for your response. I was not aware that the 18.1 driver could be installed on Ubuntu 18.04. As far as I can tell the manual only specifies that it works for Ubuntu 16.04. I will try installing it to see if it works.
To give a bit of context about my request for information. I develop scientific software for analysis of neurological MRI images (https://mdt-toolbox.readthedocs.io/en/latest_release/). Results show that GPU acceleration dramatically benefits the analysis. Preferring open source software, I chose OpenCL as compute platform.
I recently had requests from several universities to support newer Ubuntu versions, as such I inquire if Intel has plans to officially support 18.04.
In addition, given this context, you can imagine that I am highly interested in having the OpenCL runtime pass conformance tests to make sure that the scientific computations can be trusted upon.
Concerning OpenCL 2.2, I am very interested in using C++ as a kernel language for some of the computations. This is almost a must have for some of the planned features in my software and I am very keen on using C++ in my kernels.
I have read about SYCL, but I am not a SYCL developer myself. The software I write depends absolutely on the availability of just-in-time compiling of compute kernels. In addition, there is now six years of work in this scientific software and I consider OpenCL as the perfect language for the scientific field I operate in.
I hope this answers your questions. Do you have a timeline for when you would expect Ubuntu 18.04 support and/or just-in-time OpenCL C++ support?
With kind regards,
Do you have a timeline for when you would expect Ubuntu 18.04 support and/or just-in-time OpenCL C++ support?
Looking forward to your answer,
With kind regards,
Thanks for the followup and the interest.
There is no timeline for CPU Runtime on 18.04 support nor JIT OpenCL-C++ support. Some follow up on options that may match your interests.
For OpenCL-C++ kernels, the path is compile to SPIR-V first... then ingest via the OpenCL runtime. This is still JIT-able in a sense, however it requires the developer to manage procedurally forking for the OpenCL-C++ compile.
Subsequent development after 18.1 was put into the Experimental Intel CPU Runtime for OpenCL Applications.
For C++ style access, it may be in your interest to evaluate the DPC++/SYCL offering as part of Intel oneAPI. It is currently in beta. SYCL is intended for the developer who is most interested in C++ for heterogeneous targets.
My colleague, Anoop, gave a training on DPC++/SYCL in mid December that shows a good overview introduction to SYCL.
Thank you for your elaborate response and the provided references.
Too bad that there is no timeline for CPU Runtime on 18.04 support nor JIT OpenCL-C++ support. To me, these are two key features missing from Intel's OpenCL offering. Nonetheless, I will have a look at the Godbolt and the "Experimental Intel CPU Runtime for OpenCL Applications" packages.
Considering the large software I have already written, and the fact that I make frequent use of meta-programming (generate kernels on the fly) I am only interested in OpenCL C++ JIT support. Anything else, DPC++/SYCL/oneAPI is not useful to me.
I will keep taps on the Experimental Intel CPU Runtime in the hope that it will support OpenCL 2.2 in the future.
Thank you again for your time,
With best wishes,
Thanks for the feedback... the context helps.
Capabilities similar to metaprogramming are possible inherently with SYCL spec... and it's usage of functor/lambda construction.
Also, SYCL spec does provision for some level of OpenCL API kernel/program object interoperability. SYCL spec 1.2.1 section 4.8.9, and in particular 188.8.131.52 184.108.40.206 denote some useful commentary. Note the constructors and member functions based of off OpenCL API objects.