build: Update logic around serialized builtins compilation

Add log to explicitly state when serialized builtins compilation is enabled.
Correct logic to properly serialize kernel builds for single product.
Add chained per product dependencies.
Remove unused function.

Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
This commit is contained in:
Filip Hazubski
2024-10-31 14:59:17 +00:00
committed by Compute-Runtime-Automation
parent de6d164275
commit f8f1557ec7
5 changed files with 30 additions and 76 deletions

View File

@@ -109,6 +109,10 @@ if(ENABLE_DYNAMIC_MEMORY_TRACKING)
add_definitions(-DENABLE_DYNAMIC_MEMORY_TRACKING)
endif()
if(NEO_SERIALIZED_BUILTINS_COMPILATION)
message(STATUS "Enabling serialized builtins compilation")
endif()
if(DEFINED NEO_EXTRA_DEFINES)
string(REPLACE "," ";" NEO_EXTRA_DEFINES "${NEO_EXTRA_DEFINES}")
foreach(_tmp ${NEO_EXTRA_DEFINES})

View File

@@ -37,6 +37,7 @@ macro(macro_for_each_core_type)
apply_macro_for_each_platform("TESTED")
endmacro()
set(PREVIOUS_KERNELS)
apply_macro_for_each_core_type("TESTED")
add_custom_target(l0_common_test_kernels DEPENDS ${l0_test_kernel_outputs} ${l0_bindless_test_kernel_outputs} copy_compiler_files)
set_target_properties(l0_common_test_kernels PROPERTIES FOLDER ${TARGET_NAME_L0})

View File

@@ -12,8 +12,6 @@ function(level_zero_generate_kernels target_list platform_name device revision_i
set(outputdir "${TargetDir}/${relativeDir}/")
set(previous_target)
foreach(filepath ${ARGN})
get_filename_component(filename ${filepath} NAME)
get_filename_component(basename ${filepath} NAME_WE)
@@ -33,11 +31,11 @@ function(level_zero_generate_kernels target_list platform_name device revision_i
OUTPUT ${output_files}
COMMAND ${ocloc_cmd_prefix} -q -file ${absolute_filepath} -device ${device} -out_dir ${outputdir} -output_no_suffix -output ${outputname_base} -revision_id ${revision_id} -options "${options}"
WORKING_DIRECTORY ${workdir}
DEPENDS ${filepath} ocloc ${previous_target}
DEPENDS ${filepath} ocloc ${PREVIOUS_KERNELS}
)
if(NEO_SERIALIZED_BUILTINS_COMPILATION)
set(previous_target ${output_files})
set(PREVIOUS_KERNELS ${output_files})
endif()
list(APPEND ${target_list} ${output_files})
@@ -66,8 +64,6 @@ function(level_zero_generate_kernels_with_internal_options target_list platform_
set(outputdir "${TargetDir}/${relativeDir}/")
set(previous_target)
foreach(filepath ${ARGN})
get_filename_component(filename ${filepath} NAME)
get_filename_component(basename ${filepath} NAME_WE)
@@ -88,12 +84,12 @@ function(level_zero_generate_kernels_with_internal_options target_list platform_
OUTPUT ${output_files}
COMMAND ${ocloc_cmd_prefix} -q -file ${absolute_filepath} -device ${device} -out_dir ${outputdir} -output_no_suffix -output ${outputname_base} -revision_id ${revision_id} -options ${options} -internal_options "$<JOIN:${internal_options}, >"
WORKING_DIRECTORY ${workdir}
DEPENDS ${filepath} ocloc ${previous_target}
DEPENDS ${filepath} ocloc ${PREVIOUS_KERNELS}
VERBATIM
)
if(NEO_SERIALIZED_BUILTINS_COMPILATION)
set(previous_target ${output_files})
set(PREVIOUS_KERNELS ${output_files})
endif()
list(APPEND ${target_list} ${output_files})

View File

@@ -156,9 +156,13 @@ function(neo_gen_kernels platform_it_lower device revision_id forcePatchtokenFor
OUTPUT ${output_files}
COMMAND ${ocloc_cmd_prefix} -q -file ${absolute_filepath} -device ${device} -${NEO_BITS} -stateful_address_mode ${addrmode} -revision_id ${revision_id} -out_dir ${outputdir} ${formatArgument} -output_no_suffix -output ${outputname_base}
WORKING_DIRECTORY ${workdir}
DEPENDS ${filepath} ocloc
DEPENDS ${filepath} ocloc ${PREVIOUS_KERNELS}
)
if(NEO_SERIALIZED_BUILTINS_COMPILATION)
set(PREVIOUS_KERNELS ${output_files})
endif()
list(APPEND kernels_to_compile ${output_files})
else()
foreach(extension "spv" "bin")
@@ -204,8 +208,12 @@ function(neo_gen_kernels_with_options platform_it_lower device revision_id filep
OUTPUT ${output_files}
COMMAND ${ocloc_cmd_prefix} -file ${absolute_filepath} -device ${device} -${NEO_BITS} -stateful_address_mode ${addrmode} -out_dir ${outputdir} -output_no_suffix -output ${outputname_base} -revision_id ${revision_id} -options ${arg}
WORKING_DIRECTORY ${workdir}
DEPENDS ${filearg} ocloc
DEPENDS ${filearg} ocloc ${PREVIOUS_KERNELS}
)
if(NEO_SERIALIZED_BUILTINS_COMPILATION)
set(PREVIOUS_KERNELS ${output_files})
endif()
list(APPEND kernels_to_compile ${output_files})
else()
foreach(extension "spv" "bin")
@@ -225,62 +233,6 @@ function(neo_gen_kernels_with_options platform_it_lower device revision_id filep
set(kernels_to_compile_${platform_it_lower}_${revision_id} ${kernels_to_compile_${platform_it_lower}_${revision_id}} PARENT_SCOPE)
endfunction()
function(neo_gen_kernels_with_internal_options platform_it_lower device revision_id filepath output_name_prefix)
set(kernels_to_compile)
set(filearg ${filepath})
get_filename_component(filename ${filearg} NAME)
get_filename_component(basename ${filearg} NAME_WE)
get_filename_component(base_workdir ${filearg} DIRECTORY)
get_filename_component(absolute_filepath ${filearg} ABSOLUTE)
set(outputdir "${TargetDir}/${platform_it_lower}/${revision_id}/test_files/${NEO_ARCH}/")
set(workdir "${CMAKE_CURRENT_SOURCE_DIR}/${base_workdir}/")
set(addrmode "bindful")
if(NOT "${output_name_prefix}" STREQUAL "")
set(basename ${output_name_prefix}_${basename})
endif()
if("${ARGN}" STREQUAL "-cl-intel-use-bindless-mode -cl-intel-use-bindless-advanced-mode")
set(addrmode "bindless")
endif()
if("${ARGN}" STREQUAL "-cl-intel-greater-than-4GB-buffer-required")
set(addrmode "default")
endif()
set(outputname_base "${basename}_${platform_it_lower}")
set(outputpath_base "${outputdir}/${outputname_base}")
if(NOT NEO_DISABLE_BUILTINS_COMPILATION)
set(output_files
${outputpath_base}.spv
${outputpath_base}.bin
)
add_custom_command(
OUTPUT ${output_files}
COMMAND ${ocloc_cmd_prefix} -file ${absolute_filepath} -device ${device} -revision_id ${revision_id} -${NEO_BITS} -stateful_address_mode ${addrmode} -out_dir ${outputdir} -output_no_suffix -output ${outputname_base} -internal_options ${ARGN}
WORKING_DIRECTORY ${workdir}
DEPENDS ${filearg} ocloc
)
list(APPEND kernels_to_compile_${platform_it_lower}_${revision_id} ${output_files})
else()
foreach(extension "spv" "bin")
set(_file_prebuilt "${NEO_KERNELS_BIN_DIR}/${platform_it_lower}/${revision_id}/test_files/${NEO_ARCH}/${basename}_${platform_it_lower}.${extension}")
add_custom_command(
OUTPUT ${outputpath_base}.${extension}
COMMAND ${CMAKE_COMMAND} -E make_directory ${outputdir}
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${_file_prebuilt} ${outputdir}
)
list(APPEND kernels_to_compile_${platform_it_lower}_${revision_id} ${outputpath_base}.${extension})
endforeach()
endif()
set(kernels_to_compile_${platform_it_lower}_${revision_id} ${kernels_to_compile_${platform_it_lower}_${revision_id}} PARENT_SCOPE)
endfunction()
set(TEST_KERNEL test_files/CopyBuffer_simd16.cl)
set(TEST_KERNEL_options
@@ -302,6 +254,8 @@ macro(macro_for_each_platform)
list(REMOVE_ITEM PLATFORM_TEST_KERNELS ${KERNEL_TO_REMOVE_PATH})
endforeach()
set(PREVIOUS_KERNELS)
if(WIN32 OR CMAKE_SIZEOF_VOID_P EQUAL 8)
foreach(REVISION_CONFIG ${${PLATFORM_IT}_${CORE_TYPE}_REVISIONS})
parse_revision_config(${REVISION_CONFIG} ${PLATFORM_IT_LOWER} DEVICE_ID REVISION_ID)
@@ -329,16 +283,14 @@ macro(macro_for_each_platform)
endif()
set(PREVIOUS_TARGET)
foreach(REVISION_CONFIG ${${PLATFORM_IT}_${CORE_TYPE}_REVISIONS})
parse_revision_config(${REVISION_CONFIG} ${PLATFORM_IT_LOWER} DEVICE_ID REVISION_ID)
add_custom_target(prepare_test_kernels_${PLATFORM_IT_LOWER}_${REVISION_ID} DEPENDS ${kernels_to_compile_${PLATFORM_IT_LOWER}_${REVISION_ID}} copy_compiler_files)
add_dependencies(prepare_test_kernels_for_ocl prepare_test_kernels_${PLATFORM_IT_LOWER}_${REVISION_ID} ${PREVIOUS_TARGET})
add_custom_target(prepare_test_kernels_${PLATFORM_IT_LOWER}_${REVISION_ID} DEPENDS ${kernels_to_compile_${PLATFORM_IT_LOWER}_${REVISION_ID}} copy_compiler_files ${PREVIOUS_TARGET})
add_dependencies(prepare_test_kernels_for_ocl prepare_test_kernels_${PLATFORM_IT_LOWER}_${REVISION_ID})
set_target_properties(prepare_test_kernels_${PLATFORM_IT_LOWER}_${REVISION_ID} PROPERTIES FOLDER "${PLATFORM_SPECIFIC_TEST_TARGETS_FOLDER}/${PLATFORM_IT_LOWER}/${REVISION_ID}")
if(NEO_SERIALIZED_BUILTINS_COMPILATION)
set(PREVIOUS_TARGET ${prepare_test_kernels_${PLATFORM_IT_LOWER}_${REVISION_ID}})
set(PREVIOUS_TARGET "prepare_test_kernels_${PLATFORM_IT_LOWER}_${REVISION_ID}")
endif()
endforeach()
@@ -347,6 +299,8 @@ endmacro()
macro(macro_for_each_core_type)
apply_macro_for_each_platform("TESTED")
endmacro()
set(PREVIOUS_TARGET "")
apply_macro_for_each_core_type("TESTED")
add_subdirectories()
create_project_source_tree(igdrcl_tests)

View File

@@ -77,8 +77,6 @@ macro(macro_for_each_platform)
set(STATELESS_SUPPORT FALSE)
CORE_CONTAINS_PLATFORM("SUPPORTED_STATELESS" ${CORE_TYPE} ${PLATFORM_IT} STATELESS_SUPPORT)
set(PREVIOUS_TARGET)
foreach(REVISION_CONFIG ${${PLATFORM_IT}_${CORE_TYPE}_REVISIONS})
parse_revision_config(${REVISION_CONFIG} ${PLATFORM_IT_LOWER} DEVICE_ID REVISION_ID)
compile_kernels_gen(${DEVICE_ID} ${REVISION_ID} ${PLATFORM_IT_LOWER} FALSE ${KERNELS_TO_COMPILE})
@@ -87,12 +85,12 @@ macro(macro_for_each_platform)
compile_kernels_gen(${DEVICE_ID} ${REVISION_ID} ${PLATFORM_IT_LOWER} TRUE ${KERNELS_TO_COMPILE})
endif()
add_custom_target(prepare_test_kernels_for_shared_${PLATFORM_IT_LOWER}_${REVISION_ID} DEPENDS ${compiled_kernels_${PLATFORM_IT_LOWER}_${REVISION_ID}})
add_custom_target(prepare_test_kernels_for_shared_${PLATFORM_IT_LOWER}_${REVISION_ID} DEPENDS ${compiled_kernels_${PLATFORM_IT_LOWER}_${REVISION_ID}} ${PREVIOUS_TARGET})
set_target_properties(prepare_test_kernels_for_shared_${PLATFORM_IT_LOWER}_${REVISION_ID} PROPERTIES FOLDER "${SHARED_TEST_PROJECTS_FOLDER}/${SHARED_TEST_PROJECTS_SUB_FOLDER}/${PLATFORM_SPECIFIC_TEST_TARGETS_FOLDER}/${PLATFORM_IT_LOWER}/${REVISION_ID}")
add_dependencies(prepare_test_kernels_for_shared prepare_test_kernels_for_shared_${PLATFORM_IT_LOWER}_${REVISION_ID} ${PREVIOUS_TARGET})
add_dependencies(prepare_test_kernels_for_shared prepare_test_kernels_for_shared_${PLATFORM_IT_LOWER}_${REVISION_ID})
if(NEO_SERIALIZED_BUILTINS_COMPILATION)
set(PREVIOUS_TARGET ${prepare_test_kernels_for_shared_${PLATFORM_IT_LOWER}_${REVISION_ID}})
set(PREVIOUS_TARGET "prepare_test_kernels_for_shared_${PLATFORM_IT_LOWER}_${REVISION_ID}")
endif()
endforeach()
endmacro()
@@ -101,4 +99,5 @@ macro(macro_for_each_core_type)
apply_macro_for_each_platform("TESTED")
endmacro()
set(PREVIOUS_TARGET "")
apply_macro_for_each_core_type("TESTED")