Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 23 additions & 17 deletions test/generator/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@ function(_add_halide_libraries TARGET)
endfunction()

function(_add_one_aot_test TARGET)
set(options "")
set(options LINK_TO_GPU)
set(oneValueArgs "")
set(multiValueArgs SRCS DEPS GROUPS INCLUDES DEFINES)
cmake_parse_arguments(args "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
Expand Down Expand Up @@ -235,19 +235,25 @@ function(_add_one_aot_test TARGET)
target_compile_definitions("${TARGET}" PRIVATE WITH_DAWN_NATIVE)
endif ()
endif ()
if ("NVPTX" IN_LIST Halide_LLVM_COMPONENTS)
if (args_LINK_TO_GPU)
if (Halide_TARGET MATCHES "cuda")
if (NOT TARGET CUDA::cuda_driver)
find_package(CUDAToolkit REQUIRED)
endif ()
target_link_libraries("${TARGET}" PRIVATE CUDA::cuda_driver CUDA::cudart)
endif ()
if (Halide_TARGET MATCHES "opencl")
if (NOT TARGET OpenCL::OpenCL)
find_package(OpenCL REQUIRED)
endif ()
target_link_libraries("${TARGET}" PRIVATE OpenCL::OpenCL)
endif ()
endif ()
add_halide_test("${TARGET}" GROUPS generator ${args_GROUPS})
endfunction()

function(_add_halide_aot_tests NAME)
set(options OMIT_C_BACKEND)
set(options OMIT_C_BACKEND LINK_TO_GPU)
set(oneValueArgs "")
set(multiValueArgs ENABLE_IF GROUPS INCLUDES HALIDE_LIBRARIES HALIDE_RUNTIME DEPS SRCS)
cmake_parse_arguments(args "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
Expand All @@ -256,6 +262,12 @@ function(_add_halide_aot_tests NAME)
return()
endif ()

if (args_LINK_TO_GPU)
set(_LINK_TO_GPU LINK_TO_GPU)
else ()
set(_LINK_TO_GPU "")
endif ()

# If HALIDE_LIBRARIES is omitted, assume we want just a single halide_library target
# with a matching name
if (NOT args_HALIDE_LIBRARIES)
Expand Down Expand Up @@ -297,7 +309,8 @@ function(_add_halide_aot_tests NAME)
SRCS "${args_SRCS}"
DEPS ${args_HALIDE_LIBRARIES} ${args_HALIDE_RUNTIME} ${args_DEPS}
INCLUDES ${args_INCLUDES}
GROUPS ${args_GROUPS})
GROUPS ${args_GROUPS}
${_LINK_TO_GPU})
if (NOT args_OMIT_C_BACKEND)
set(HALIDE_LIBRARIES_CPP "")
foreach (hl IN LISTS args_HALIDE_LIBRARIES)
Expand All @@ -307,28 +320,20 @@ function(_add_halide_aot_tests NAME)
SRCS "${args_SRCS}"
DEPS ${HALIDE_LIBRARIES_CPP} ${args_HALIDE_RUNTIME} ${args_DEPS}
INCLUDES ${args_INCLUDES}
GROUPS ${args_GROUPS})
GROUPS ${args_GROUPS}
${_LINK_TO_GPU})
endif ()
endif ()
endfunction()

if ("NVPTX" IN_LIST Halide_LLVM_COMPONENTS)
if (Halide_TARGET MATCHES "cuda")
find_package(CUDAToolkit REQUIRED)
endif ()
if (Halide_TARGET MATCHES "opencl")
find_package(OpenCL REQUIRED)
endif ()
endif ()

##
# Create targets for the AOT tests
##

# acquire_release_aottest.cpp
# acquire_release_generator.cpp
_add_halide_libraries(acquire_release)
_add_halide_aot_tests(acquire_release)
_add_halide_aot_tests(acquire_release LINK_TO_GPU)

# TODO: what are these?
# configure_jittest.cpp
Expand Down Expand Up @@ -464,7 +469,7 @@ endif () # (NOT ${_USING_WASM})
# define_extern_opencl_aottest.cpp
# define_extern_opencl_generator.cpp
_add_halide_libraries(define_extern_opencl)
_add_halide_aot_tests(define_extern_opencl)
_add_halide_aot_tests(define_extern_opencl LINK_TO_GPU)

# embed_image_aottest.cpp
# embed_image_generator.cpp
Expand Down Expand Up @@ -505,7 +510,8 @@ if ((NOT ${_USING_WASM}) AND (NOT Halide_TARGET MATCHES "vulkan"))
FROM gpu_multi_context_threaded.generator
FEATURES user_context)
_add_halide_aot_tests(gpu_multi_context_threaded
HALIDE_LIBRARIES gpu_multi_context_threaded_add gpu_multi_context_threaded_mul)
HALIDE_LIBRARIES gpu_multi_context_threaded_add gpu_multi_context_threaded_mul
LINK_TO_GPU)
endif ()

# gpu_object_lifetime_aottest.cpp
Expand Down
Loading