我是一名GPGPU开发人员,一直使用CUDA完成工作。最近我在家里配置了一台AMD GPU并且阅读了SYCL和oneAPI的相关资料,但我不确定我是否理解了每个技术的含义以及它们如何相互补充。如果我理解得正确的话,SYCL是由Khronos开发的标准,允许使用C++创建并行软件。它需要一个由SYCL实现提供的自定义工具链,并且有几种不同的实现方式。
另一方面,oneAPI是SYCL的一种实现,具有一些额外的扩展(这些扩展可能在未来被添加到SYCL标准中)和一些常见的并行库,对吗?
由于我有一张AMD GPU,我想要将其用于进行一些GPGPU计算,但整个生态系统有点令人生畏。我们有mesa驱动程序、AMD驱动程序、不同的OpenCL实现、HIP等等...这一切要如何协同工作呢?
另一方面,oneAPI是SYCL的一种实现,具有一些额外的扩展(这些扩展可能在未来被添加到SYCL标准中)和一些常见的并行库,对吗?
由于我有一张AMD GPU,我想要将其用于进行一些GPGPU计算,但整个生态系统有点令人生畏。我们有mesa驱动程序、AMD驱动程序、不同的OpenCL实现、HIP等等...这一切要如何协同工作呢?