mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-03 23:03:02 +08:00
Add clGetKernelMaxConcurrentWorkGroupCountINTEL
clGetKernelMaxConcurrentWorkGroupCountINTEL replaces clGetExecutionInfoINTEL function. Change-Id: I7e3461695de7ee4c0e43c3e9770724b025c0e2be Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
This commit is contained in:
committed by
sys_ocldev
parent
2c568542f1
commit
9c16c1a425
@@ -74,13 +74,13 @@ set(IGDRCL_SRCS_tests_api
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cl_get_device_ids_tests.inl
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cl_get_device_info_tests.inl
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cl_get_event_profiling_info_tests.inl
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cl_get_execution_info_intel_tests.inl
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cl_get_extension_function_address_for_platform_tests.inl
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cl_get_extension_function_address_tests.inl
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cl_get_image_info_tests.inl
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cl_get_image_params_tests.inl
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cl_get_kernel_arg_info_tests.inl
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cl_get_kernel_info_tests.inl
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cl_get_kernel_max_concurrent_work_group_count_intel_tests.inl
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cl_get_kernel_sub_group_info_khr_tests.inl
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cl_get_kernel_sub_group_info_tests.inl
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cl_get_kernel_suggested_local_work_size_intel_tests.inl
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "unit_tests/api/cl_get_execution_info_intel_tests.inl"
|
||||
#include "unit_tests/api/cl_get_kernel_max_concurrent_work_group_count_intel_tests.inl"
|
||||
#include "unit_tests/api/cl_get_kernel_suggested_local_work_size_intel_tests.inl"
|
||||
#include "unit_tests/api/cl_get_kernel_work_group_info_tests.inl"
|
||||
#include "unit_tests/api/cl_get_mem_object_info_tests.inl"
|
||||
|
||||
@@ -1,69 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2017-2019 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include "runtime/command_queue/command_queue.h"
|
||||
#include "unit_tests/mocks/mock_kernel.h"
|
||||
|
||||
#include "cl_api_tests.h"
|
||||
|
||||
using namespace NEO;
|
||||
|
||||
using clGetExecutionInfoTests = api_tests;
|
||||
|
||||
namespace ULT {
|
||||
|
||||
TEST_F(clGetExecutionInfoTests, GivenInvalidInputWhenCallingGetExecutionInfoThenErrorIsReturned) {
|
||||
retVal = clGetExecutionInfoINTEL(nullptr, pKernel, 0, nullptr, nullptr, 0, 0, nullptr, nullptr);
|
||||
EXPECT_NE(CL_SUCCESS, retVal);
|
||||
|
||||
retVal = clGetExecutionInfoINTEL(pCommandQueue, nullptr, 0, nullptr, nullptr, 0, 0, nullptr, nullptr);
|
||||
EXPECT_NE(CL_SUCCESS, retVal);
|
||||
|
||||
pKernel->isPatchedOverride = false;
|
||||
retVal = clGetExecutionInfoINTEL(pCommandQueue, pKernel, 0, nullptr, nullptr, 0, 0, nullptr, nullptr);
|
||||
EXPECT_NE(CL_SUCCESS, retVal);
|
||||
pKernel->isPatchedOverride = true;
|
||||
|
||||
auto invalidParamName = 0xFFFF;
|
||||
retVal = clGetExecutionInfoINTEL(pCommandQueue, pKernel, 0, nullptr, nullptr, invalidParamName, 0, nullptr, nullptr);
|
||||
EXPECT_NE(CL_SUCCESS, retVal);
|
||||
|
||||
uint32_t queryResult;
|
||||
retVal = clGetExecutionInfoINTEL(pCommandQueue, pKernel, 0, nullptr, nullptr, CL_EXECUTION_INFO_MAX_WORKGROUP_COUNT_INTEL,
|
||||
sizeof(queryResult), nullptr, nullptr);
|
||||
EXPECT_NE(CL_SUCCESS, retVal);
|
||||
|
||||
retVal = clGetExecutionInfoINTEL(pCommandQueue, pKernel, 0, nullptr, nullptr, CL_EXECUTION_INFO_MAX_WORKGROUP_COUNT_INTEL,
|
||||
0, &queryResult, nullptr);
|
||||
EXPECT_NE(CL_SUCCESS, retVal);
|
||||
}
|
||||
|
||||
TEST_F(clGetExecutionInfoTests, GivenVariousInputWhenGettingMaxWorkGroupCountThenCorrectValuesAreReturned) {
|
||||
uint32_t queryResult;
|
||||
retVal = clGetExecutionInfoINTEL(pCommandQueue, pKernel, 0, nullptr, nullptr, CL_EXECUTION_INFO_MAX_WORKGROUP_COUNT_INTEL,
|
||||
sizeof(queryResult), &queryResult, nullptr);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
EXPECT_NE(0u, queryResult);
|
||||
|
||||
uint64_t queryResult64 = 0;
|
||||
size_t queryResultSize;
|
||||
retVal = clGetExecutionInfoINTEL(pCommandQueue, pKernel, 0, nullptr, nullptr, CL_EXECUTION_INFO_MAX_WORKGROUP_COUNT_INTEL,
|
||||
sizeof(queryResult64), &queryResult64, &queryResultSize);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
EXPECT_EQ(queryResult, queryResult64);
|
||||
EXPECT_EQ(sizeof(queryResult), queryResultSize);
|
||||
|
||||
std::unique_ptr<MockKernel> pKernelWithExecutionEnvironmentPatch(MockKernel::create(pCommandQueue->getDevice(), pProgram));
|
||||
uint32_t queryResultWithExecutionEnvironment;
|
||||
retVal = clGetExecutionInfoINTEL(pCommandQueue, pKernelWithExecutionEnvironmentPatch.get(), 0, nullptr, nullptr,
|
||||
CL_EXECUTION_INFO_MAX_WORKGROUP_COUNT_INTEL,
|
||||
sizeof(queryResultWithExecutionEnvironment), &queryResultWithExecutionEnvironment, nullptr);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
EXPECT_EQ(queryResult, queryResultWithExecutionEnvironment);
|
||||
}
|
||||
|
||||
} // namespace ULT
|
||||
@@ -83,9 +83,9 @@ TEST_F(clGetExtensionFunctionAddressForPlatformTests, GivenClGetKernelSuggestedL
|
||||
EXPECT_EQ(retVal, reinterpret_cast<void *>(clGetKernelSuggestedLocalWorkSizeINTEL));
|
||||
}
|
||||
|
||||
TEST_F(clGetExtensionFunctionAddressForPlatformTests, GivenClGetExecutionInfoINTELWhenGettingExtensionFunctionThenCorrectAddressIsReturned) {
|
||||
auto retVal = clGetExtensionFunctionAddressForPlatform(pPlatform, "clGetExecutionInfoINTEL");
|
||||
EXPECT_EQ(retVal, reinterpret_cast<void *>(clGetExecutionInfoINTEL));
|
||||
TEST_F(clGetExtensionFunctionAddressForPlatformTests, GivenClGetKernelMaxConcurrentWorkGroupCountINTELWhenGettingExtensionFunctionThenCorrectAddressIsReturned) {
|
||||
auto retVal = clGetExtensionFunctionAddressForPlatform(pPlatform, "clGetKernelMaxConcurrentWorkGroupCountINTEL");
|
||||
EXPECT_EQ(retVal, reinterpret_cast<void *>(clGetKernelMaxConcurrentWorkGroupCountINTEL));
|
||||
}
|
||||
|
||||
TEST_F(clGetExtensionFunctionAddressForPlatformTests, GivenClEnqueueNDCountKernelINTELWhenGettingExtensionFunctionThenCorrectAddressIsReturned) {
|
||||
|
||||
@@ -168,9 +168,9 @@ TEST_F(clGetExtensionFunctionAddressTests, GivenClGetKernelSuggestedLocalWorkSiz
|
||||
EXPECT_EQ(retVal, reinterpret_cast<void *>(clGetKernelSuggestedLocalWorkSizeINTEL));
|
||||
}
|
||||
|
||||
TEST_F(clGetExtensionFunctionAddressTests, GivenClGetExecutionInfoINTELWhenGettingExtensionFunctionThenCorrectAddressIsReturned) {
|
||||
auto retVal = clGetExtensionFunctionAddress("clGetExecutionInfoINTEL");
|
||||
EXPECT_EQ(retVal, reinterpret_cast<void *>(clGetExecutionInfoINTEL));
|
||||
TEST_F(clGetExtensionFunctionAddressTests, GivenClGetKernelMaxConcurrentWorkGroupCountINTELWhenGettingExtensionFunctionThenCorrectAddressIsReturned) {
|
||||
auto retVal = clGetExtensionFunctionAddress("clGetKernelMaxConcurrentWorkGroupCountINTEL");
|
||||
EXPECT_EQ(retVal, reinterpret_cast<void *>(clGetKernelMaxConcurrentWorkGroupCountINTEL));
|
||||
}
|
||||
|
||||
TEST_F(clGetExtensionFunctionAddressTests, GivenClEnqueueNDCountKernelINTELWhenGettingExtensionFunctionThenCorrectAddressIsReturned) {
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
/*
|
||||
* Copyright (C) 2020 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include "runtime/command_queue/command_queue.h"
|
||||
#include "unit_tests/mocks/mock_kernel.h"
|
||||
|
||||
#include "cl_api_tests.h"
|
||||
|
||||
using namespace NEO;
|
||||
|
||||
using clGetKernelMaxConcurrentWorkGroupCountTests = api_tests;
|
||||
|
||||
namespace ULT {
|
||||
|
||||
TEST_F(clGetKernelMaxConcurrentWorkGroupCountTests, GivenInvalidInputWhenCallingGetKernelMaxConcurrentWorkGroupCountThenErrorIsReturned) {
|
||||
size_t globalWorkOffset[3];
|
||||
size_t localWorkSize[3];
|
||||
size_t suggestedWorkGroupCount;
|
||||
cl_uint workDim = 1;
|
||||
retVal = clGetKernelMaxConcurrentWorkGroupCountINTEL(nullptr, pKernel, workDim,
|
||||
globalWorkOffset, localWorkSize, &suggestedWorkGroupCount);
|
||||
EXPECT_EQ(CL_INVALID_COMMAND_QUEUE, retVal);
|
||||
|
||||
retVal = clGetKernelMaxConcurrentWorkGroupCountINTEL(pCommandQueue, nullptr, workDim,
|
||||
globalWorkOffset, localWorkSize, &suggestedWorkGroupCount);
|
||||
EXPECT_EQ(CL_INVALID_KERNEL, retVal);
|
||||
|
||||
pKernel->isPatchedOverride = false;
|
||||
retVal = clGetKernelMaxConcurrentWorkGroupCountINTEL(pCommandQueue, pKernel, workDim,
|
||||
globalWorkOffset, localWorkSize, &suggestedWorkGroupCount);
|
||||
EXPECT_EQ(CL_INVALID_KERNEL, retVal);
|
||||
pKernel->isPatchedOverride = true;
|
||||
|
||||
retVal = clGetKernelMaxConcurrentWorkGroupCountINTEL(pCommandQueue, pKernel, workDim,
|
||||
globalWorkOffset, localWorkSize, nullptr);
|
||||
EXPECT_EQ(CL_INVALID_VALUE, retVal);
|
||||
|
||||
retVal = clGetKernelMaxConcurrentWorkGroupCountINTEL(pCommandQueue, pKernel, 0,
|
||||
globalWorkOffset, localWorkSize, &suggestedWorkGroupCount);
|
||||
EXPECT_EQ(CL_INVALID_WORK_DIMENSION, retVal);
|
||||
|
||||
retVal = clGetKernelMaxConcurrentWorkGroupCountINTEL(pCommandQueue, pKernel, 4,
|
||||
globalWorkOffset, localWorkSize, &suggestedWorkGroupCount);
|
||||
EXPECT_EQ(CL_INVALID_WORK_DIMENSION, retVal);
|
||||
|
||||
retVal = clGetKernelMaxConcurrentWorkGroupCountINTEL(pCommandQueue, pKernel, workDim,
|
||||
nullptr, localWorkSize, &suggestedWorkGroupCount);
|
||||
EXPECT_EQ(CL_INVALID_GLOBAL_OFFSET, retVal);
|
||||
|
||||
retVal = clGetKernelMaxConcurrentWorkGroupCountINTEL(pCommandQueue, pKernel, workDim,
|
||||
globalWorkOffset, nullptr, &suggestedWorkGroupCount);
|
||||
EXPECT_EQ(CL_INVALID_WORK_GROUP_SIZE, retVal);
|
||||
}
|
||||
|
||||
TEST_F(clGetKernelMaxConcurrentWorkGroupCountTests, GivenVariousInputWhenGettingMaxConcurrentWorkGroupCountThenCorrectValuesAreReturned) {
|
||||
cl_uint workDim = 3;
|
||||
size_t globalWorkOffset[] = {0, 0, 0};
|
||||
size_t localWorkSize[] = {8, 8, 8};
|
||||
size_t maxConcurrentWorkGroupCount = 0;
|
||||
retVal = clGetKernelMaxConcurrentWorkGroupCountINTEL(pCommandQueue, pKernel, workDim, globalWorkOffset, localWorkSize,
|
||||
&maxConcurrentWorkGroupCount);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
size_t expectedMaxConcurrentWorkGroupCount = pKernel->getMaxWorkGroupCount(workDim, localWorkSize);
|
||||
EXPECT_EQ(expectedMaxConcurrentWorkGroupCount, maxConcurrentWorkGroupCount);
|
||||
|
||||
std::unique_ptr<MockKernel> pKernelWithExecutionEnvironmentPatch(MockKernel::create(pCommandQueue->getDevice(), pProgram));
|
||||
retVal = clGetKernelMaxConcurrentWorkGroupCountINTEL(pCommandQueue, pKernelWithExecutionEnvironmentPatch.get(), workDim,
|
||||
globalWorkOffset, localWorkSize,
|
||||
&maxConcurrentWorkGroupCount);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
expectedMaxConcurrentWorkGroupCount = pKernelWithExecutionEnvironmentPatch->getMaxWorkGroupCount(workDim, localWorkSize);
|
||||
EXPECT_EQ(expectedMaxConcurrentWorkGroupCount, maxConcurrentWorkGroupCount);
|
||||
}
|
||||
|
||||
} // namespace ULT
|
||||
Reference in New Issue
Block a user