OpenCL.jl v0.9

Dear community,

We are happy to revive the OpenCL.jl package for Julia v1.x. It now uses OpenCL_jll to automatically install the OpenCL ICD loader on different (currently 14) platforms. Thank you to @giordano for all the help with BinaryBuilder.jl, it is really great :juliaheartpulsing: and thank you @ClaroHenrique for the help porting the test infrastructure to buildkite :gear: :clap:

We are not experts in OpenCL.jl. We are maintaining it because of some ongoing research. If you are experienced with this programming interface, we kindly ask you to join our team of maintainers. There are a few issues that we would like to address next:

  1. The OpenCL_jll build is failing on Windows. One of the OpenCL maintainers successfully fixed the build by disabling a feature that I think may be important for Windows users. He mentioned that an alternative solution would be to upgrade the version of mingw in BinaryBuilder.jl. Is this possible @giordano? More details here.

  2. We would like to automatically install drivers for end-users. As far as I understand, PoCL is a recent attempt to provide a portable driver that works with any device (NVIDA, AMD, Intel…). The plan is to create a PoCL_jll that gets installed as a fallback driver. That would save users from cryptic runtime error messages. Can anyone help here building the PoCL_jll?

  3. The OpenCL.jl repository currently lists different API files manually for the different OpenCL standards. I understand that nowadays a better approach is to simply use Clang.jl for automatic generation of Julia bindings. If you have experience here, we appreciate any help.

  4. We successfully built CLFFT_jll for a reduced set of platforms. The build of this project could support more platforms. Any help here is appreciated.

We are currently refactoring CLFFT.jl to use CLFFT_jll for automatic installation of this library as well. But that is all that we are planning to do to attain our research objectives. If you would like to add more features, please open an issue and volunteer as a maintainer, we need people with know-how in OpenCL to keep the project alive.