【发布时间】:2016-08-17 08:30:27
【问题描述】:
我是 OpenCl 的新手,我想尝试以下方法,使用 ClMagma 和 opencl 内核:
cl_mem A_k, B_k;
magma_malloc(&A_k, col*row*sizeof(double));
magma_malloc(&B_k, col*row*sizeof(double));
magma_dgemm(MagmaNoTrans, MagmaTrans, row, row, col, alpha, A_k, size, row, A_k, size, row, beta, B_k, size, row, queue);
我想在 OpenCl 内核中使用 A_k 和 B_k,但是如果我使用类似的东西:
status = clSetKernelArg(k_test, 0, sizeof(cl_mem), &A_k);
我收到一个“CL_INVALID_MEM_OBJECT”,所以我如何在 OpenCl 内核中使用 A_k 数组而不将其移动到主机然后再次移动到设备(使用 clCreateBuffer 制作新数组)。
已经尝试过“clEnqueueCopyBuffer”,但没有成功
我们将不胜感激,谢谢!
【问题讨论】:
-
magma_dmalloc_pinned 如果是对齐问题可以工作吗?
-
没有使用固定内存进行更改,问题是在 OpenCl 内核中使用 magma 指针数组...谢谢