[Beignet] [PATCH] Libocl: Add define for cl_intel_subgroups
From: Pan XiuliSigned-off-by: Pan Xiuli --- backend/src/libocl/tmpl/ocl_defines.tmpl.h | 1 + 1 file changed, 1 insertion(+) diff --git a/backend/src/libocl/tmpl/ocl_defines.tmpl.h b/backend/src/libocl/tmpl/ocl_defines.tmpl.h index 8fb5d2b..8c7d08f 100644 --- a/backend/src/libocl/tmpl/ocl_defines.tmpl.h +++ b/backend/src/libocl/tmpl/ocl_defines.tmpl.h @@ -37,5 +37,6 @@ #define cl_khr_spir #define cl_khr_fp16 #define cl_khr_3d_image_writes +#define cl_intel_subgroups #endif /* end of __OCL_COMMON_DEF_H__ */ -- 2.7.4 ___ Beignet mailing list Beignet@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/beignet
[Beignet] [PATCH] Runtime: Fix null device for clGetKernelWorkGroupInfo
From: Pan XiuliThe device arg for API clGetKernelWorkGroupInfo can be NULL. Signed-off-by: Pan Xiuli --- src/cl_device_id.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/cl_device_id.c b/src/cl_device_id.c index d29138d..08cc0c0 100644 --- a/src/cl_device_id.c +++ b/src/cl_device_id.c @@ -1157,6 +1157,8 @@ cl_get_kernel_workgroup_info(cl_kernel kernel, { int err = CL_SUCCESS; int dimension = 0; + if (device == NULL) +device = kernel->program->ctx->device; if (UNLIKELY(is_gen_device(device) == CL_FALSE)) return CL_INVALID_DEVICE; -- 2.7.4 ___ Beignet mailing list Beignet@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/beignet
[Beignet] [PATCH] Backend: Fix printf bug for simd8
From: Pan XiuliThe tmp0 and tmp1 for simd8 should be half size of the simd16 mode. Otherwise the send message will use wrong reg and wrong message length. Signed-off-by: Pan Xiuli --- backend/src/backend/gen_context.cpp| 3 ++- backend/src/backend/gen_insn_selection.cpp | 9 ++--- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/backend/src/backend/gen_context.cpp b/backend/src/backend/gen_context.cpp index b429ec3..f1c58eb 100644 --- a/backend/src/backend/gen_context.cpp +++ b/backend/src/backend/gen_context.cpp @@ -3411,13 +3411,14 @@ namespace gbe void GenContext::emitPrintfInstruction(const SelectionInstruction ) { const GenRegister dst = ra->genReg(insn.dst(0)); const GenRegister tmp0 = ra->genReg(insn.dst(1)); +const GenRegister tmp1 = ra->genReg(insn.dst(2)); GenRegister src; uint32_t srcNum = insn.srcNum; if (insn.extra.continueFlag) srcNum--; GenRegister addr = GenRegister::retype(tmp0, GEN_TYPE_UD); -GenRegister data = GenRegister::offset(addr, 2); +GenRegister data = GenRegister::retype(tmp1, GEN_TYPE_UD); if (!insn.extra.continueFlag) { p->push(); { diff --git a/backend/src/backend/gen_insn_selection.cpp b/backend/src/backend/gen_insn_selection.cpp index 6cfa87f..c4e2934 100644 --- a/backend/src/backend/gen_insn_selection.cpp +++ b/backend/src/backend/gen_insn_selection.cpp @@ -6166,13 +6166,8 @@ extern bool OCL_DEBUGINFO; // first defined by calling BVAR in program.cpp uint32_t totalSize = 0; bool isContinue = false; GBE_ASSERT(sel.ctx.getSimdWidth() == 16 || sel.ctx.getSimdWidth() == 8); - if (sel.ctx.getSimdWidth() == 16) { -tmp0 = GenRegister::retype(sel.selReg(sel.reg(FAMILY_DWORD)), GEN_TYPE_UD); -tmp1 = GenRegister::retype(sel.selReg(sel.reg(FAMILY_DWORD)), GEN_TYPE_UD); - } else { -tmp0 = GenRegister::retype(sel.selReg(sel.reg(FAMILY_QWORD)), GEN_TYPE_UD); -tmp1 = GenRegister::retype(sel.selReg(sel.reg(FAMILY_QWORD)), GEN_TYPE_UD); - } + tmp0 = GenRegister::retype(sel.selReg(sel.reg(FAMILY_DWORD)), GEN_TYPE_UD); + tmp1 = GenRegister::retype(sel.selReg(sel.reg(FAMILY_DWORD)), GEN_TYPE_UD); /* Get the total size for one printf statement. */ for (i = 0; i < srcNum; i++) { -- 2.7.4 ___ Beignet mailing list Beignet@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/beignet
[Beignet] [PATCH] use OCL_MAP_BUFFER_GTT to map climage
Signed-off-by: Guo Yejun--- utests/runtime_cmrt.cpp | 16 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/utests/runtime_cmrt.cpp b/utests/runtime_cmrt.cpp index 837f09a..92bd368 100644 --- a/utests/runtime_cmrt.cpp +++ b/utests/runtime_cmrt.cpp @@ -236,8 +236,8 @@ void runtime_cmrt(void) OCL_CREATE_IMAGE(buf[0], 0, , , NULL); OCL_CREATE_IMAGE(buf[1], 0, , , NULL); - OCL_MAP_BUFFER(0); - OCL_MAP_BUFFER(1); + OCL_MAP_BUFFER_GTT(0); + OCL_MAP_BUFFER_GTT(1); uint8_t* src = (uint8_t*)buf_data[0]; uint8_t* dst = (uint8_t*)buf_data[1]; for (uint32_t j = 0; j < h; ++j) @@ -245,8 +245,8 @@ void runtime_cmrt(void) src[j * w * 4 + i] = i; dst[j * w * 4 + i] = 0; } - OCL_UNMAP_BUFFER(0); - OCL_UNMAP_BUFFER(1); + OCL_UNMAP_BUFFER_GTT(0); + OCL_UNMAP_BUFFER_GTT(1); unsigned int d = 3; OCL_SET_ARG(0, sizeof(cl_mem), [0]); @@ -259,16 +259,16 @@ void runtime_cmrt(void) //if kernel uses cm_linear_global_id, locals must be not NULL to invoke pCmQueue->EnqueueWithGroup OCL_CALL (clEnqueueNDRangeKernel, queue, kernel, 2, NULL, globals, NULL, 0, NULL, NULL); - OCL_MAP_BUFFER(0); - OCL_MAP_BUFFER(1); + OCL_MAP_BUFFER_GTT(0); + OCL_MAP_BUFFER_GTT(1); src = (uint8_t*)buf_data[0]; dst = (uint8_t*)buf_data[1]; for (uint32_t j = 0; j < h; ++j) for (uint32_t i = 0; i < w*4; i++) { OCL_ASSERT(src[j * w * 4 + i] / d == dst[j * w * 4 + i]); } - OCL_UNMAP_BUFFER(0); - OCL_UNMAP_BUFFER(1); + OCL_UNMAP_BUFFER_GTT(0); + OCL_UNMAP_BUFFER_GTT(1); } MAKE_UTEST_FROM_FUNCTION(runtime_cmrt); -- 1.9.1 ___ Beignet mailing list Beignet@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/beignet
[Beignet] [PATCH] fix the condition to check if there are built-in kernels
an empty string is returned if no built-in kernels are supported by the device, and so the returned size is 1, not 0. Signed-off-by: Guo Yejun--- utests/builtin_kernel_max_global_size.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utests/builtin_kernel_max_global_size.cpp b/utests/builtin_kernel_max_global_size.cpp index d3e8373..7580572 100644 --- a/utests/builtin_kernel_max_global_size.cpp +++ b/utests/builtin_kernel_max_global_size.cpp @@ -10,7 +10,7 @@ void builtin_kernel_max_global_size(void) OCL_CALL (clGetDeviceInfo, device, CL_DEVICE_BUILT_IN_KERNELS, 0, 0, _in_kernels_size); - if(built_in_kernels_size == 0) + if(built_in_kernels_size <= 1) //the size of empty string is 1 return; built_in_kernel_names = (char* )malloc(built_in_kernels_size * sizeof(char) ); -- 1.9.1 ___ Beignet mailing list Beignet@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/beignet