目前我正在使用OpenCL做一些图像处理算法。基本上我的算法需要为每个像素求解线性方程组。每个系统都独立于其他系统,因此并行实现是很自然的。
我查看了几个BLAS包,例如ViennaCL和AMD APPML,但似乎它们都具有相同的使用模式(主机调用BLAS子程序在CL设备上执行)。
我需要的是一个可以在OpenCL内核中调用的BLAS库,这样我就可以并行解决许多线性系统。
我在AMD论坛上发现了类似的问题。
由于
答案 0 :(得分:0)
不可能。 clBLAS例程使一系列内核启动,一些'解决'例程内核启动非常复杂。 clBLAS例程将cl_mem和commandQueues作为args。因此,如果您的缓冲区已经在设备上,clBLAS将直接对其进行操作。它不接受主机缓冲区或管理主机 - >设备传输
如果您想查看生成和启动的内核,请取消注释此行https://github.com/clMathLibraries/clBLAS/blob/master/src/library/blas/generic/common.c#L461并构建clBLAS。它将转储所有被称为
的内核