c++ 是否有一个SYCL实现来统治所有平台?

4c8rllxm  于 2022-12-20  发布在  其他
关注(0)|答案(1)|浏览(155)

很抱歉这个标题有点滑稽,但我找不到其他的方式来简洁地描述这个问题。我所在的团队主要使用OpenCL代码,并有一个CPU后备。在大多数情况下,这工作得很好,除了Nvidia和他们拒绝使用SPIR-V的OpenCL。
我最近发现并一直在研究SYCL,但是围绕它的生态系统非常混乱,在一个案例中,我发现一个实现指的是使用另一个实现。
所以我的问题是:是否有一个SYCL实现可以生成一个运行时支持Nvidia、AMD和Intel(首选,但不是必需)以及x64或Arm64(我们将为另一个创建第二个二进制)的二进制文件,而不必执行我们现在所做的事情,即从各个供应商选择一堆GPU,分别为每个GPU构建内核,然后将它们全部发货。
谢啦,谢啦

ldfqzlk8

ldfqzlk81#

截至2022年12月,对于Linux和x86_64:

  • open-source version of DPC++可以为所有三家GPU供应商编译代码。根据我的经验,一个单一的二进制文件适用于所有三家供应商。
  • hipSYCL官方支持NVIDIA和AMD设备,实验性支持Intel GPU(通过上面提到的DPC++)。

而不必做我们现在做的事情,那就是从各个供应商那里选择一堆GPU,分别为每一个构建内核,然后必须将它们全部发货。
注意:hipSYCL和DPC++都是这样工作的,内核被编译成PTX、GCN和/或SPIR-V。它们被捆绑成一个二进制文件,因此,在这方面,发行版可以更简单(或不:您可能还必须将SYCL运行时库与应用程序一起提供)。

相关问题