4 ms·
OneAPI is an implementation of SYCL. Apart from being standardized by Khronos, SYCL and OpenCL don't have that much in common, except that they are often intero
by ColonelPhantom 2y ago
OneAPI is an implementation of SYCL. Apart from being standardized by Khronos, SYCL and OpenCL don't have that much in common, except that they are often interoperable due to many SYCL implementations running on top of OpenCL. Intel specifically has two backends, one for OpenCL and one for the lower-level Level Zero API.
Saying OneAPI/SYCL is bad "because OpenCL" is the same as saying OpenCL is good "because CUDA" (since the NVIDIA implementation of OpenCL is called CUDA and uses the larger CUDA stack).
As for the FPGA/GPU code sharing, iirc FPGA vendors including Altera/Intel and Xilinx/AMD support OpenCL as well. The idea doesn't sound that crazy to me: GPU code also often uses small data types (fp16, tf32, int4), and both work with data parallelism. GPUs operate in parallel with SIMD vectors, but a compute accelerator FPGA achieves a similar thing by essentially pipelining the program. Effective pipelining requires parallelism too, since a serial FPGA program only has one stage active, similar to how a serial GPU program only has one ALU per compute unit active. As such both are mostly suitable for massively parallel programs.