问题标签 [sycl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
121 浏览

c++ - 如何指定在 SYCL/DPC++ 中运行程序时要使用的特定 GPU 设备?

我正在尝试使用 SYCL/DPC++ 的代码。我的设备上有两个 GPU。如何指定我的代码需要在特定的 GPU 设备上运行?当我尝试使用“gpu-selector”运行我的代码时,只有一个默认的用于运行。如何使用其他 GPU 设备来运行我的代码?

这是我的代码。

有人可以帮我解决如何在特定的 GPU 设备上运行我的代码吗?

提前致谢!

0 投票
1 回答
49 浏览

sycl - 为不同的实现编写 SYCL 代码

SYCL 有各种不同的实现,如 DPC++/oneAPI、ComputeCpp、hipSYCL、triSYCL。是否可以编写相同的 SYCL 代码并使用所有不同的实现进行编译?

如果不是,那能有多大不同?

谢谢

0 投票
1 回答
92 浏览

c++ - DPC++ 中的范围函数面临的错误

我是 Sycl/DPC++ 语言的新手。我使用统一共享内存 (USM) 编写了一个示例向量添加代码:

当我编译它时,我收到以下错误:

如何修复此错误?

0 投票
1 回答
58 浏览

sycl - 在 dpc++ malloc_shared 我们可以在 2 个 gpus 之间共享一个缓冲区吗

在 sycl/dpc++ malloc_shared 中,我知道可以创建一个缓冲区,该缓冲区可以在主机和具有以下功能的单个 gpu 之间共享。

或者

我想知道是否存在可以跨多个 GPU 共享相同数据/缓冲区的东西?类似下面的东西

0 投票
1 回答
38 浏览

sycl - 是通过值还是通过引用传递 sycl::vec 更好?

在 Sycl 中,如果我想将 a 传递sycl::vec<double 3>给另一个函数,是通过值传递还是通过 const 引用传递更好?

如何查看目标代码的输出?是否有类似 sycl cuda 的编译器资源管理器之类的东西?(我正在使用 Intell Clang / DPC++ 编译器)

0 投票
1 回答
75 浏览

cuda - 使用 intel clang++ 为 nvidia cuda GPU 构建二进制文件时找不到 libspirv-nvptx64--nvidiacl.bc

我使用以下命令为 nvidia GPU 构建二进制文件:

但收到以下错误消息:

clang++:错误:找不到'libspirv-nvptx64--nvidiacl.bc';通过 '-fsycl-libspirv-path' 提供 libspirv 库的路径,或传递 '-fno-sycl-libspirv' 来构建而不与 libspirv 链接

我在 intel oneAPI 安装路径和 cuda 工具包路径中都进行了搜索,但找不到spirv-nvptx64-nvidiacl.bc. 有谁知道在哪里可以找到libspirv-nvptx64—nvidiacl.bc

0 投票
1 回答
37 浏览

opencl - 在 SYCL 中声明半精度浮点内存

我想知道并理解如何在 SYCL 中声明半精度缓冲区和指针,即通过以下方式 -

  • 通过缓冲区类。
  • 使用 malloc_device() 函数。

另外,假设我在主机端有一个现有的 fp32 矩阵/数组。如何将其内容复制到 GPU 端的 fp16 内存。

TIA

0 投票
1 回答
50 浏览

c++ - 优化 CPU/GPU 运行时的成员函数选择

我有以下需要优化的代码(稍后通过 SYCL 或 ArrayFire 移植到 GPU):

AFAIK,在 GPU 上,函数指针方法不适合。

在 CPU 和/或 GPU 上是否有比这个更高效的方法?

0 投票
1 回答
46 浏览

gpu - 当目标是拥有最硬件兼容的程序时,使用 OpenCL 而不是 SYCL 是否更安全?

我的目标是获得并行化代码的能力,以便能够在 GPU 上运行它,而 Graal 将是拥有可以在任何 GPU 甚至 CPU(英特尔、NVIDIA、AMD 和所以...)。

据我了解,最好的解决方案是使用 OpenCL。但在那之后不久,我还阅读了有关 SYCL 的文章,它旨在简化在 GPU 上运行的代码。

但仅此而已吗?使用较低级别的语言以确保可以在尽可能多的硬件中使用不是更好吗?

我知道所有的兼容性都列在The Khronos Group 网站上,但我正在互联网上阅读所有内容和相反的内容(例如,如果 NVIDIA 卡支持 CUDA,那么它支持 OpenCL,或者 NVIDIA 卡将永远无法与 OpenCL 一起使用,即使OpenCL 应该适用于一切)...

这对我来说是一个新话题,互联网上有很多信息......如果有人能给我一个简单的答案,那就太好了。

0 投票
2 回答
28 浏览

sycl - SYCL 未找到命名内核 -46 (CL_INVALID_KERNEL_NAME)

以下 c++ SYCL 代码仅适用于主机设备,使用 GPU 设备(NVIDIA 或 INTEL)我有以下错误:

未找到名为 _ZTSZZN10MainWindow15testPerformanceEiENKUlRN2cl4sycl7handlerEE_clES3_E10FillBuffer 的内核 -46 (CL_INVALID_KERNEL_NAME)

提前致谢。