During the panel discussion some very interesting questions were asked, I’d like to share with you.
Should the Khronos group poll the community more often about the future of OpenCL?
I asked it on twitter, and this is the current result:
Khronos needs more feedback from OpenCL developers, to better serve the user base. Tell the OpenCL working group what holds you back in solving your specific problems here. Want more influence? You can also join the OpenCL advisory board, or join Khronos with your company. Get in contact with Neil Trevett for more information.
How to (further) popularise OpenCL?
While the open standard is popular at IWOCL, it is not popular enough at universities. NVidia puts a lot of effort in convincing academics that OpenCL is not as good as CUDA and to keep CUDA as the only GPGPU API in the curriculum.
Altera: “OpenCL is important to be thought at universities, because of the low-level parts, it creates better programmers”. And I agree, too many freshly graduated CS students don’t understand malloc() and say “The compiler should solve this for me”.
The short answer is: more marketing.
At StreamComputing we have been supporting OpenCL with marketing (via this blog) since 2010. 6 years already. We are now developing the website opencl.org to continue the effort, while we have diversified at the company.
How to get all vendors to OpenCL 2.0?
Ofcourse this was a question targeted at NVidia, and thus Neil Trevett answered this one. Use a carrot and not a stick, as it is business in the end.
Think more marketing and more apps. We already have a big list:
Know more active(!) projects? Share!
Can we break the backwards compatibility to advance faster?
This was a question from the panel to the audience. From what I sensed, the audience and panel are quite open to this. This would mean that OpenCL could make a big step forward, fixing the initial problems. Deprecation would be the way to go the panel said. (OpenCL 2.3 deprecates all nuisances and OpenCL 3.0 is a redesign? Or will it take longer?)
See also the question below on better serving FPGAs and DSPs.
Should we do a specs freeze and harden the implementations?
Michael Wong (OpenMP) was clear on this. Learn from C++98. Two years were focused on hardening the implementations. After that it took 11 years to restart the innovation process and get to C++11! So don’t do a specs freeze.
How to evolve OpenCL faster?
Vendor extensions are the only option.
At StreamComputing we have discussed a lot about it, especially fall-backs. In most cases it is very doable to create slower fall-backs, and in other cases (like with special features on i.e. FPGAs) it can be the only option to make it work.
How to get more robust OpenCL implementations?
Open sourcing the Vulkan conformance tests was a very good decision to make Vulkan more robust. Khronos gets a lot of feedback on the test cases. It will be discussed soon to what extend this also can be done for OpenCL.
Test-cases from open source libraries are often used to create more test cases.
How to better support FPGAs and DSPs?
Now GPUs are the majority and democracy doesn’t work for the minorities.
An option to better support FPGAs and DSPs in OpenCL is to introduce feature sets. A lesson learnt from Vulkan. This way GPU vendors don’t need to spend time implementing features that they don’t find interesting.
Do we see you at IWOCL 2017?
Location will be announced later. Boston and Toronto are mentioned.