问题标签 [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 投票
0 回答
215 浏览

tensorflow - 在带有 GPU 的 armv8 设备上运行我的 tensorflow 代码后崩溃

我想通过使用 sycl 在带有 GPU 的 armv8 设备上运行 deeplab 模型。但我被困在那里。

我已经从源代码构建,然后在我的萤火虫 RK3399 设备上安装了 Tensorflow 轮,没有发生错误。但是当我使用以下代码运行 tensorflow 模型时:

崩溃调用如下:

然后我切换到传统方法 with tf.Session() as sess:,当我运行sess.run() 同样的错误时。我还检查了 网站上的 error_code :

但是我不知道要解决这个问题,真正的原因是什么,如果我得到“将 SYCL 内核编译到 SYCL 设备时出错”如何处理这个问题。

配置

  • CPU aarch64
  • GPU 马里-T860
  • 操作系统 ubuntu 16.04
  • 设备萤火虫rk3399
  • 软件 tensorflow-1.6.0 bazel-0.11.1 computeCpp-1.0.0 python2.7.12 gcc-5.4.0

这是我的 computecpp_info 输出:

firefly@firefly:/usr/local/computecpp/bin$ ./computecpp_info

ComputeCpp 信息 (CE 1.0.0)

SYCL 1.2.1 修订版 3

工具链信息:

GLIBC 版本:2.23 GLIBCXX:20160609 支持此版本的 libstdc++。

设备信息:

发现 1 个设备匹配:平台:设备类型:

设备 0:

支持设备:否 - 设备不支持 SPIR

CL_DEVICE_NAME:马里-T860

CL_DEVICE_VENDOR:ARM

CL_DRIVER_VERSION:1.2

CL_DEVICE_TYPE : CL_DEVICE_TYPE_GPU

如果您在使用任何这些 OpenCL 设备时遇到问题,请访问此网站了解已知问题: https ://computecpp.codeplay.com/releases/v1.0.0/platform-support-notes

我收到了 的突出显示警告Device is supported : NO - Device does not support SPIR,但说明告诉我没关系!所以我不介意,这应该是一个问题吗?

0 投票
0 回答
200 浏览

tensorflow - 带有 sycl 和 fpga 加速的 Tensorflow

所以我需要某种形式的低延迟硬件加速来在raspberry-pi. 我研究过使用 leflow,但它不能支持tensorflowsmall 上的大型模型FPGAs

我已经想出了如何tensorflow使用 sycl 支持从源代码构建。不过,我遇到的问题是如何配置 sycl(或sycl包装的 OpenCL)以与 fpga 一起使用。

我也不确定如何将我的 fpga 物理连接到 raspis gpios 以使其加速opencl

任何有关此问题的帮助或链接将不胜感激。

0 投票
2 回答
878 浏览

opencl - 在 SYCL 中找不到 CL/cl.h

我刚刚开始研究 SYCL 并在我的系统上运行 ComputeCpp_info 并显示了 3 台设备上的以下数据

ComputeCpp 信息 (CE 1.1.0)

SYCL 1.2.1 修订版 3

设备 1(GeForce GTX 1050 = NO - 设备不支持 SPIR)

设备 2(Intel(R) HD Graphics 630 = UNTESTED - 设备未在此操作系统上测试)

设备 3(Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz = UNTESTED - 设备运行未经测试的驱动程序)

现在我的问题是我可以在这些设备上工作吗,因为 2 未经测试而 1 是不可能的?还是我缺少一些驱动程序?

我也实现了一个简单的例子,但它给了我 CL/cl.h not found 错误

0 投票
3 回答
757 浏览

sycl - 用于 Windows 的 HipSYCL

我刚刚开始阅读有关 hipSYCL 的 SYCL 实现,但没有太多关于它的信息。所以我的问题是 hipsycl 支持 windows 吗?它还支持所有现代英特尔 GPU 吗?感谢帮助

我已经阅读了 github 自述文件和其他几篇文章,但仍然感到困惑

0 投票
1 回答
39 浏览

sycl - 为什么默认情况下每个 SYCL 设备都在单独的上下文中?

当我使用 cpu_selector 和 gpu_selector 时,这两个设备默认属于 2 个不同的上下文?为什么在相同上下文中拥有设备时的默认设置有助于缓冲区的高性能内存访问(没有将数据复制到不同上下文的开销)?

0 投票
1 回答
67 浏览

sycl - 错误:: SYCL 对象在运行时关闭时仍然存在

我正在尝试使用 Visual Studio 在 SYCL 上实现一个简单的矢量添加示例。它构建成功,但在执行时它给了我SYCL 对象在运行时关闭时仍然存在。. 这是什么意思,我该如何解决,下面是示例代码。提前致谢

0 投票
2 回答
283 浏览

c++ - 缓冲区内的 SYCL 缓冲区

假设我有以下包含缓冲区的结构:

然后稍后我想创建一个像这样的缓冲区:

我将如何阅读nestedBuffer设备代码?是否可以像这样构造数据?像往常一样使用数据访问器并在使用读取nestedBuffer访问器访问后简单地获取数据访问器就足够了吗?topLevelBuffer

0 投票
2 回答
149 浏览

c++ - 读取嵌套缓冲区的可能 ComputeCPP SYCL 错误

我正在尝试在 GPU 上访问具有多个间接级别的数据结构。我现在拥有的示例层次结构是 A 包含 B 包含 C。每个都包含数据。A 包含指向 B 的指针,B 包含指向 C 的指针。当释放包含访问器的堆分配数据结构时,SYCL 实现会在访问器的析构函数中出现段错误。当 BView 被销毁时,就会发生 segfault。

我正在为 Ubuntu 使用 ComputeCPP 实现。这似乎是运行时中的一个错误,因为与访问器关联的缓冲区在BViewBView 销毁时仍然有效。没有抛出任何其他错误。我还尝试泄漏BView以绕过错误。但是,由于 BView 的访问器持有对 B 和 C 缓冲区的引用,因此会导致死锁。这进一步表明 BView 的访问器引用的缓冲区是有效的。堆分配访问器或缓冲区是否违反了 SYCL 规范?也许这可能会导致问题,因为AView释放没有任何问题。

如上所述,在取消分配时m_cAcc存在段错误BView。这是堆栈跟踪从它的外观来看,访问器( m_cBuff)的访问器中shared_ptr的整个内存都是无效的(不是指向的内存,shared_ptr中的实际数据包括计数)。怎么会这样?BView不会多次释放、复制、移动等。

0 投票
1 回答
49 浏览

c++ - 如果在 DLL 和调用应用程序中使用 GPGPU API 会发生什么

我目前正在设计一个 dll(等等)库,它将为 CUDA、SYCL、OpenCL 或 Vulkan(尚未决定)构建卸载任务。由于不知道应用程序将做什么(也可能使用相同的 API),我的问题是,在 DLL 和应用程序中使用其中一个 API 时是否会出现运行时问题。

我猜想,在 SYCL/OpenCL/Vulkan 中创建两个上下文不会受到伤害,并且应该相应地分离 API 调用。这是对的吗?仅仅在 DLL 中显式地创建一个上下文/流(在 CUDA 中)就足够了吗?

是否还可以将 DLL 中的缓冲区对象传递给应用程序,以便调用应用程序可以直接在其上下文中使用相同的缓冲区,还是需要先复制到主机?

0 投票
1 回答
253 浏览

sycl - 在 SYCL 中实现矩阵加法和乘法

我正在尝试在单个程序中在 sycl 中实现矩阵加法和乘法,但在加法部分出现错误[对于类型 'const] 没有可行的重载运算符 []。我不知道错误的原因。如果有人告诉我原因,那将是很大的帮助。谢谢

我已经分别实现了加法和乘法,它可以工作。我认为原因是我使用模板进行乘法运算,这给加法部分带来了问题