mirror of
https://github.com/KhronosGroup/OpenCL-CTS.git
synced 2026-03-20 06:29:02 +00:00
Add basic support to the harness for parallel test execution (#1687)
This change introduces a new command-line parameter to enable parallel execution by a specified number of worker threads. When parallel execution is requested, tests are distributed across the worker threads. This behaviour is disabled by default. This does not currently work for all suites as some of them are using global variables to configure tests. For the suites that do not use global state, this change reduced the execution time by up to 5x on an 8-core machine. Signed-off-by: Kévin Petit <kpet@free.fr>
This commit is contained in:
@@ -36,6 +36,7 @@ std::string gCompilationCachePath = ".";
|
||||
std::string gCompilationProgram = DEFAULT_COMPILATION_PROGRAM;
|
||||
bool gDisableSPIRVValidation = false;
|
||||
std::string gSPIRVValidator = DEFAULT_SPIRV_VALIDATOR;
|
||||
unsigned gNumWorkerThreads;
|
||||
|
||||
void helpInfo()
|
||||
{
|
||||
@@ -48,6 +49,8 @@ void helpInfo()
|
||||
online Use online compilation (default)
|
||||
binary Use binary offline compilation
|
||||
spir-v Use SPIR-V offline compilation
|
||||
--num-worker-threads <num>
|
||||
Select parallel execution with the specified number of worker threads.
|
||||
|
||||
For offline compilation (binary and spir-v modes) only:
|
||||
--compilation-cache-mode <cache-mode>
|
||||
@@ -137,6 +140,23 @@ int parseCustomParam(int argc, const char *argv[], const char *ignore)
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
else if (!strcmp(argv[i], "--num-worker-threads"))
|
||||
{
|
||||
delArg++;
|
||||
if ((i + 1) < argc)
|
||||
{
|
||||
delArg++;
|
||||
const char *numthstr = argv[i + 1];
|
||||
|
||||
gNumWorkerThreads = atoi(numthstr);
|
||||
}
|
||||
else
|
||||
{
|
||||
log_error(
|
||||
"A parameter to --num-worker-threads must be provided!\n");
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
else if (!strcmp(argv[i], "--compilation-cache-mode"))
|
||||
{
|
||||
delArg++;
|
||||
|
||||
Reference in New Issue
Block a user