mirror of
https://github.com/opencv/opencv.git
synced 2026-07-30 07:43:03 +04:00
Refactor OpenCL initialization and allow to use ocl module witout explicit setup
This commit is contained in:
@@ -87,7 +87,7 @@ void cv::ocl::gemm(const oclMat &src1, const oclMat &src2, double alpha,
|
||||
int offb = src2.offset;
|
||||
int offc = dst.offset;
|
||||
|
||||
|
||||
cl_command_queue clq = (cl_command_queue)src1.clCxt->oclCommandQueue();
|
||||
switch(src1.type())
|
||||
{
|
||||
case CV_32FC1:
|
||||
@@ -97,11 +97,12 @@ void cv::ocl::gemm(const oclMat &src1, const oclMat &src2, double alpha,
|
||||
offa /= sizeof(float);
|
||||
offb /= sizeof(float);
|
||||
offc /= sizeof(float);
|
||||
|
||||
openCLSafeCall
|
||||
(
|
||||
clAmdBlasSgemmEx(order, transA, transB, M, N, K,
|
||||
alpha, (const cl_mem)src1.data, offa, lda, (const cl_mem)src2.data, offb, ldb,
|
||||
beta, (cl_mem)dst.data, offc, ldc, 1, &src1.clCxt->impl->clCmdQueue, 0, NULL, NULL)
|
||||
beta, (cl_mem)dst.data, offc, ldc, 1, &clq, 0, NULL, NULL)
|
||||
);
|
||||
break;
|
||||
case CV_64FC1:
|
||||
@@ -115,7 +116,7 @@ void cv::ocl::gemm(const oclMat &src1, const oclMat &src2, double alpha,
|
||||
(
|
||||
clAmdBlasDgemmEx(order, transA, transB, M, N, K,
|
||||
alpha, (const cl_mem)src1.data, offa, lda, (const cl_mem)src2.data, offb, ldb,
|
||||
beta, (cl_mem)dst.data, offc, ldc, 1, &src1.clCxt->impl->clCmdQueue, 0, NULL, NULL)
|
||||
beta, (cl_mem)dst.data, offc, ldc, 1, &clq, 0, NULL, NULL)
|
||||
);
|
||||
break;
|
||||
case CV_32FC2:
|
||||
@@ -132,7 +133,7 @@ void cv::ocl::gemm(const oclMat &src1, const oclMat &src2, double alpha,
|
||||
(
|
||||
clAmdBlasCgemmEx(order, transA, transB, M, N, K,
|
||||
alpha_2, (const cl_mem)src1.data, offa, lda, (const cl_mem)src2.data, offb, ldb,
|
||||
beta_2, (cl_mem)dst.data, offc, ldc, 1, &src1.clCxt->impl->clCmdQueue, 0, NULL, NULL)
|
||||
beta_2, (cl_mem)dst.data, offc, ldc, 1, &clq, 0, NULL, NULL)
|
||||
);
|
||||
}
|
||||
break;
|
||||
@@ -150,7 +151,7 @@ void cv::ocl::gemm(const oclMat &src1, const oclMat &src2, double alpha,
|
||||
(
|
||||
clAmdBlasZgemmEx(order, transA, transB, M, N, K,
|
||||
alpha_2, (const cl_mem)src1.data, offa, lda, (const cl_mem)src2.data, offb, ldb,
|
||||
beta_2, (cl_mem)dst.data, offc, ldc, 1, &src1.clCxt->impl->clCmdQueue, 0, NULL, NULL)
|
||||
beta_2, (cl_mem)dst.data, offc, ldc, 1, &clq, 0, NULL, NULL)
|
||||
);
|
||||
}
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user