mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-03 23:03:02 +08:00
Support for bindless mode in L0 - improvements
Related-To: NEO-6448 - add new IGC compilation flag when bindless mode used - fix SBA programming of BindlessSurfaceStateSize - always set maximum surface state count - fix residency of global DSH heap on gen9 - gen12lp in bindless mode - add L0 aub test with bindless kernel - disabled - partial fixes in OCL aub tests Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
55959d4d1d
commit
8b233f7f45
@@ -13,6 +13,14 @@ set(TEST_MODULES
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/test_modules/test_kernel.cl
|
||||
)
|
||||
|
||||
set(TEST_KERNEL_BINDLESS_internal_options
|
||||
"-cl-intel-use-bindless-mode -cl-intel-use-bindless-advanced-mode"
|
||||
)
|
||||
|
||||
set(TEST_KERNEL_BINDLESS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/test_modules/stateful_copy_buffer.cl
|
||||
)
|
||||
|
||||
set(l0_test_kernels_outputs)
|
||||
macro(macro_for_each_core_type)
|
||||
foreach(PLATFORM_TYPE ${PLATFORM_TYPES})
|
||||
@@ -20,12 +28,18 @@ macro(macro_for_each_core_type)
|
||||
get_family_name_with_type(${CORE_TYPE} ${PLATFORM_TYPE})
|
||||
string(TOLOWER ${PLATFORM_TYPE} PLATFORM_TYPE_LOWER)
|
||||
set(PLATFORM_LOWER ${DEFAULT_SUPPORTED_${CORE_TYPE}_${PLATFORM_TYPE}_PLATFORM})
|
||||
string(TOLOWER ${CORE_TYPE} CORE_TYPE_LOWER)
|
||||
level_zero_generate_kernels(l0_test_kernel_outputs ${PLATFORM_LOWER} ${family_name_with_type} "-g" ${TEST_MODULES})
|
||||
|
||||
#skip Gen8 bindless kernel generation
|
||||
if(NOT ("${CORE_TYPE_LOWER}" STREQUAL "gen8"))
|
||||
level_zero_generate_kernels_with_internal_options(l0_bindless_test_kernel_outputs ${PLATFORM_LOWER} ${family_name_with_type} "bindless" "-g" ${TEST_KERNEL_BINDLESS_internal_options} ${TEST_KERNEL_BINDLESS})
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
endmacro()
|
||||
apply_macro_for_each_core_type("TESTED")
|
||||
add_custom_target(l0_common_test_kernels DEPENDS ${l0_test_kernel_outputs} copy_compiler_files)
|
||||
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})
|
||||
add_dependencies(prepare_test_kernels_for_l0 l0_common_test_kernels)
|
||||
|
||||
|
||||
@@ -49,3 +49,54 @@ function(level_zero_generate_kernels target_list platform_name suffix options)
|
||||
|
||||
set(${target_list} ${${target_list}} PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(level_zero_generate_kernels_with_internal_options target_list platform_name suffix prefix options internal_options)
|
||||
|
||||
list(APPEND results copy_compiler_files)
|
||||
|
||||
set(outputdir "${TargetDir}/level_zero/${suffix}/test_files/${NEO_ARCH}/")
|
||||
|
||||
foreach(filepath ${ARGN})
|
||||
get_filename_component(filename ${filepath} NAME)
|
||||
get_filename_component(basename ${filepath} NAME_WE)
|
||||
get_filename_component(workdir ${filepath} DIRECTORY)
|
||||
|
||||
set(outputpath_base "${outputdir}${prefix}_${basename}_${suffix}")
|
||||
|
||||
if(NOT NEO_DISABLE_BUILTINS_COMPILATION)
|
||||
set(output_files
|
||||
${outputpath_base}.bin
|
||||
${outputpath_base}.gen
|
||||
${outputpath_base}.spv
|
||||
${outputpath_base}.dbg
|
||||
)
|
||||
|
||||
set(output_name "-output" "${prefix}_${basename}")
|
||||
string(CONCAT options \" ${options} \" )
|
||||
string(CONCAT internal_options \" ${internal_options} \" )
|
||||
|
||||
add_custom_command(
|
||||
COMMAND echo generate ${ocloc_cmd_prefix} -q -file ${filename} -device ${platform_name} -out_dir ${outputdir} ${output_name} -options ${options} -internal_options ${internal_options} , workdir is ${workdir}
|
||||
OUTPUT ${output_files}
|
||||
COMMAND ${ocloc_cmd_prefix} -q -file ${filename} -device ${platform_name} -out_dir ${outputdir} ${output_name} -options ${options} -internal_options ${internal_options}
|
||||
WORKING_DIRECTORY ${workdir}
|
||||
DEPENDS ${filepath} ocloc
|
||||
)
|
||||
|
||||
list(APPEND ${target_list} ${output_files})
|
||||
else()
|
||||
foreach(_file_name "bin" "gen" "spv" "dbg")
|
||||
set(_file_prebuilt "${NEO_SOURCE_DIR}/../neo_test_kernels/level_zero/${suffix}/test_files/${NEO_ARCH}/${prefix}_${basename}_${suffix}.${_file_name}")
|
||||
add_custom_command(
|
||||
OUTPUT ${outputpath_base}.${_file_name}
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${outputdir}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${_file_prebuilt} ${outputdir}
|
||||
)
|
||||
|
||||
list(APPEND ${target_list} ${outputpath_base}.${_file_name})
|
||||
endforeach()
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
set(${target_list} ${${target_list}} PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
/*
|
||||
* Copyright (C) 2021 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
__kernel void StatefulCopyBuffer(
|
||||
const __global uchar* src,
|
||||
__global uchar* dst)
|
||||
{
|
||||
uint id = get_global_id(0);
|
||||
dst[id] = src[id];
|
||||
}
|
||||
Reference in New Issue
Block a user