mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-18 13:54:58 +08:00
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:
committed by
Compute-Runtime-Automation
parent
de6d164275
commit
f8f1557ec7
@@ -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})
|
||||
|
||||
@@ -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})
|
||||
|
||||
@@ -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})
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user