Replies: 2 comments 2 replies
-
If Intel has a decent implementation of OpenCL, I'd expect it to work already. Some tuning may be necessary to obtain optimal performance - the compiler is currently based around AMD/NVIDIA-style architectural assumptions. Most of the initial development of Futhark took place on mobile Intel GPUs, and they worked quite well. I find it unlikely that a SYCL backend would be faster than OpenCL. Why would it be? |
Beta Was this translation helpful? Give feedback.
-
https://futhark.readthedocs.io/en/latest/man/futhark-profile.html (but perhaps also read https://futhark-book.readthedocs.io/en/latest/practical-matters.html#benchmarking )
I assume you mean OpenGL here. I think most OpenGL implementations are stagnating, since nobody really likes the API, and it is clearly superior alternatives (Vulkan and WebGPU). It is certainly possible that Intel's OpenCL implementation is similarly bad (which might happen if they are all-in on SYCL), but my understanding was that these were all based on the same underlying compiler and runtime infrastructure. OpenCL may not have much market penetration, but the kind of runtime system you need to make OpenCL work well is pretty much a subset of what you need for SYCL or anything similar (the OpenCL frontend language is pretty trivial). Also, Intel put pretty serious effort into OpenCL last I checked, so it would be a change if they didn't care at all anymore.
It's possible, but since Futhark can by necessity only expose monomorphic and first-order functions to the outside world, you don't get all the template-based SYCL flexibility. If SYCL has any way of interoperating with OpenCL (for transferring data), then a simple wrapper generator in the style of futhark-bindgen would probably be as ergonomic as an actual SYCL backend.
That is certainly possible. The HIP backend outperforms OpenCL on AMD hardware because HIP (and CUDA) has certain guarantees that are not provided by OpenCL. The main consequence of these is these APIs allow a very efficient scan implementation, which is a critical building block for fancy parallel programming. Some details here: https://futhark-lang.org/blog/2023-08-30-futhark-0.25.3-released.html |
Beta Was this translation helpful? Give feedback.
-
Hi there, I found this exciting project while exploring repos with the CUDA tag. Based on my interest of functional programming and experience of AI performance on Intel GPUs, I would like to make contributions to Futhark as a side project. Starting from basic usages of Futhark and recaption of my undergraduate FP and compiler knowledge, my final goal is to add native support of Intel (integrated / discrete) GPUs to Futhark. Here is my draft plan and I'd like to have your concerns and suggestions.
Beta Was this translation helpful? Give feedback.
All reactions