4

目前我正在使用 OpenCL 做一些图像处理算法。基本上我的算法需要为每个像素求解一个线性方程组。每个系统都独立于其他系统,因此进行并行实现是很自然的。

我看过几个 BLAS 包,例如 ViennaCL 和AMD APPML,但似乎它们都具有相同的使用模式(主机调用 BLAS 子例程以在 CL 设备上执行)。

我需要的是一个可以在 OpenCL 内核中调用的 BLAS 库,这样我就可以并行解决许多线性系统。

我在 AMD 论坛上发现了这个类似的问题。

谢谢

4

1 回答 1

0

这是不可能的。clBLAS 例程进行一系列内核启动,一些“解决”例程内核启动非常复杂。clBLAS 例程将 cl_mem 和 commandQueues 作为参数。因此,如果您的缓冲区已经在设备上,clBLAS 将直接对其进行操作。它不接受主机缓冲区或管理主机->设备传输

如果您想查看生成和启动的内核,请取消注释此行https://github.com/clMathLibraries/clBLAS/blob/master/src/library/blas/generic/common.c#L461并构建 clBLAS . 它将转储所有被调用的内核

于 2013-09-12T09:11:54.373 回答