Skip to content

Commit 92e7d4c

Browse files
committed
cmake - add_custom_command for unit test kernel precompile
1 parent 109e7fe commit 92e7d4c

File tree

1 file changed

+29
-4
lines changed

1 file changed

+29
-4
lines changed

CMakeLists.txt

+29-4
Original file line numberDiff line numberDiff line change
@@ -378,10 +378,17 @@ endif()
378378

379379

380380

381-
# files generated by compile.py
382-
set(KERNEL_HIPRT_COMP "${BASE_OUTPUT_DIR}/${CMAKE_BUILD_TYPE}/hiprt${version_str_}_${HIP_VERSION_STR}_amd.hipfb")
381+
# files generated by compile.py and precompile_bitcode.py
382+
if(WIN32)
383+
set(KERNEL_OS_POSTFIX "win")
384+
else()
385+
set(KERNEL_OS_POSTFIX "linux")
386+
endif()
387+
set(KERNEL_HIPRT_COMP "${BASE_OUTPUT_DIR}/${CMAKE_BUILD_TYPE}/hiprt${version_str_}_${HIP_VERSION_STR}_amd.hipfb") # example: hiprt02005_6.2_amd.hipfb
388+
set(KERNEL_UNITTEST_COMP "${BASE_OUTPUT_DIR}/${CMAKE_BUILD_TYPE}/hiprt${version_str_}_${HIP_VERSION_STR}_precompiled_bitcode_${KERNEL_OS_POSTFIX}.hipfb") # example: hiprt02005_6.2_precompiled_bitcode_win.hipfb
383389
set(KERNEL_OROCHI_COMP "${BASE_OUTPUT_DIR}/${CMAKE_BUILD_TYPE}/oro_compiled_kernels.hipfb")
384390

391+
385392
# precompile kernels:
386393
if(PRECOMPILE)
387394

@@ -434,11 +441,29 @@ if(PRECOMPILE)
434441
)
435442

436443
if(NOT NO_UNITTEST)
437-
message(">> Execute: ${PYTHON_EXECUTABLE} precompile_bitcode.py ${CUDA_OPTION} --hipSdkPath \"${HIP_FINAL_PATH}\"")
438-
execute_process(
444+
445+
set(unittest_kernel_source
446+
${CMAKE_SOURCE_DIR}/test/bitcodes/custom_func_table.cpp
447+
${CMAKE_SOURCE_DIR}/test/bitcodes/unit_test.cpp
448+
)
449+
450+
message(">> add_custom_command: ${PYTHON_EXECUTABLE} precompile_bitcode.py ${CUDA_OPTION} --hipSdkPath \"${HIP_FINAL_PATH}\"")
451+
add_custom_command(
452+
OUTPUT ${KERNEL_UNITTEST_COMP}
439453
COMMAND ${PYTHON_EXECUTABLE} precompile_bitcode.py ${CUDA_OPTION} --hipSdkPath ${HIP_FINAL_PATH}
454+
DEPENDS ${KERNEL_HIPRT_COMP} # Ensure compile.py has already run.
440455
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/scripts/bitcodes
456+
COMMENT "Precompiling unit tests kernels via precompile_bitcode.py"
457+
VERBATIM
458+
DEPENDS ${unittest_kernel_source}
441459
)
460+
461+
# create the 'precompile_unittest_kernels' project
462+
add_custom_target(precompile_unittest_kernels ALL
463+
DEPENDS ${KERNEL_UNITTEST_COMP}
464+
)
465+
466+
add_dependencies(${HIPRT_NAME} precompile_unittest_kernels)
442467
endif()
443468

444469

0 commit comments

Comments
 (0)