很抱歉这个标题有点滑稽,但我找不到其他的方式来简洁地描述这个问题。我所在的团队主要使用OpenCL代码,并有一个CPU后备。在大多数情况下,这工作得很好,除了Nvidia和他们拒绝使用SPIR-V的OpenCL。
我最近发现并一直在研究SYCL,但是围绕它的生态系统非常混乱,在一个案例中,我发现一个实现指的是使用另一个实现。
所以我的问题是:是否有一个SYCL实现可以生成一个运行时支持Nvidia、AMD和Intel(首选,但不是必需)以及x64或Arm64(我们将为另一个创建第二个二进制)的二进制文件,而不必执行我们现在所做的事情,即从各个供应商选择一堆GPU,分别为每个GPU构建内核,然后将它们全部发货。
谢啦,谢啦
1条答案
按热度按时间ldfqzlk81#
截至2022年12月,对于Linux和x86_64:
而不必做我们现在做的事情,那就是从各个供应商那里选择一堆GPU,分别为每一个构建内核,然后必须将它们全部发货。
注意:hipSYCL和DPC++都是这样工作的,内核被编译成PTX、GCN和/或SPIR-V。它们被捆绑成一个二进制文件,因此,在这方面,发行版可以更简单(或不:您可能还必须将SYCL运行时库与应用程序一起提供)。