@@ -9,165 +9,3 @@ include(GoogleTest)
99find_package (Threads REQUIRED)
1010
1111# cmake-format: off
12- # === Core Tests Configuration ===
13-
14- # Single and batch decode tests
15- configure_flashinfer_target(
16- TARGET_NAME test_single_decode
17- SOURCES "test_single_decode.cu"
18- LINK_LIBS "decode_kernels"
19- IS_GTEST ON
20- )
21-
22- configure_flashinfer_target(
23- TARGET_NAME test_batch_decode
24- SOURCES "test_batch_decode.cu"
25- LINK_LIBS "decode_kernels"
26- IS_GTEST ON
27- )
28-
29- # Single and batch prefill tests
30- configure_flashinfer_target(
31- TARGET_NAME test_single_prefill
32- SOURCES "test_single_prefill.cu"
33- LINK_LIBS "prefill_kernels"
34- IS_GTEST ON
35- )
36-
37- configure_flashinfer_target(
38- TARGET_NAME test_batch_prefill
39- SOURCES "test_batch_prefill.cu"
40- LINK_LIBS "prefill_kernels"
41- IS_GTEST ON
42- )
43-
44- # Other core tests
45- configure_flashinfer_target(
46- TARGET_NAME test_page
47- SOURCES "test_page.cu"
48- IS_GTEST ON
49- )
50-
51- configure_flashinfer_target(
52- TARGET_NAME test_cascade
53- SOURCES "test_cascade.cu"
54- LINK_LIBS "decode_kernels;prefill_kernels"
55- IS_GTEST ON
56- )
57-
58- configure_flashinfer_target(
59- TARGET_NAME test_sampling
60- SOURCES "test_sampling.cu"
61- IS_GTEST ON
62- )
63-
64- configure_flashinfer_target(
65- TARGET_NAME test_norm
66- SOURCES "test_norm.cu"
67- IS_GTEST ON
68- )
69-
70- configure_flashinfer_target(
71- TARGET_NAME test_fastdiv
72- SOURCES "test_fastdiv.cu"
73- IS_GTEST ON
74- )
75-
76- configure_flashinfer_target(
77- TARGET_NAME test_fast_dequant
78- SOURCES "test_fast_dequant.cu"
79- IS_GTEST ON
80- )
81-
82- # === Distributed Test Configuration ===
83- if (FLASHINFER_DIST_UNITTESTS)
84- set (DIST_INCLUDE_DIRS
85- "${FLASHINFER_INCLUDE_DIR} "
86- "${mscclpp_SOURCE_DIR} /include"
87- )
88-
89- # Add spdlog include directory if available
90- if (DEFINED SPDLOG_INCLUDE_DIR)
91- list (APPEND DIST_INCLUDE_DIRS "${SPDLOG_INCLUDE_DIR} " )
92- elseif (TARGET spdlog::spdlog)
93- # If found via find_package
94- get_target_property (SPDLOG_INCLUDE_DIRS spdlog::spdlog INTERFACE_INCLUDE_DIRECTORIES )
95- list (APPEND DIST_INCLUDE_DIRS "${SPDLOG_INCLUDE_DIRS} " )
96- endif ()
97-
98- configure_flashinfer_target(
99- TARGET_NAME test_sum_all_reduce
100- SOURCES "test_sum_all_reduce.cu"
101- LINK_LIBS "MPI::MPI_CXX;flashinfer::mscclpp"
102- COMPILE_FLAGS "-DENABLE_MPI"
103- INCLUDE_DIRS "${DIST_INCLUDE_DIRS} "
104- IS_GTEST OFF
105- )
106-
107- configure_flashinfer_target(
108- TARGET_NAME test_attn_all_reduce
109- SOURCES "test_attn_all_reduce.cu"
110- LINK_LIBS "MPI::MPI_CXX;flashinfer::mscclpp"
111- COMPILE_FLAGS "-DENABLE_MPI"
112- IS_GTEST OFF
113- )
114- endif ()
115-
116- # === FP8 Test Configuration ===
117- if (FLASHINFER_FP8_TESTS)
118- # Set path to FP8 utilities
119- set (FP8_UTILS_DIR ${CMAKE_CURRENT_SOURCE_DIR} /../utils/fp8)
120-
121- # Define FP8-specific CUDA compile flags - one per line for readability
122- set (FP8_CUDA_FLAGS_LIST
123- --expt-extended-lambda
124- --use_fast_math
125- --generate-code=arch=compute_90a,code=sm_90a
126- )
127-
128- # Combine the list into a generator expression for CUDA language only
129- string (JOIN ";" FP8_CUDA_FLAGS_JOINED "${FP8_CUDA_FLAGS_LIST} " )
130- set (FP8_CUDA_FLAGS "$<$<COMPILE_LANGUAGE:CUDA>:${FP8_CUDA_FLAGS_JOINED} >" )
131-
132- # Define FP8-specific include directories
133- set (FP8_INCLUDE_DIRS
134- "${TORCH_INCLUDE_DIRS} "
135- "${CUDA_INCLUDE_DIRS} "
136- "${Python3_INCLUDE_DIRS} "
137- "${FA3_INCLUDE_DIR} "
138- "${CUTLASS_INCLUDE_DIRS} "
139- "${FP8_UTILS_DIR} "
140- )
141-
142- # Add the FP8 test with improved readability
143- configure_flashinfer_target(
144- TARGET_NAME test_single_prefill_fa3_sm90
145- SOURCES "fp8/test_single_prefill_fa3_sm90.cu"
146- LINK_LIBS "FA3_LIB;${TORCH_LIBRARIES} "
147- COMPILE_FLAGS "${FP8_CUDA_FLAGS} "
148- INCLUDE_DIRS "${FP8_INCLUDE_DIRS} "
149- )
150- endif ()
151-
152- # cmake-format: on
153-
154- # === Test Discovery and Targets ===
155- message (STATUS "All unit test targets: ${ALL_TEST_TARGETS} " )
156-
157- # Use GoogleTest's discover_tests to find all test cases
158- foreach (test_target IN LISTS ALL_TEST_TARGETS)
159- if (TARGET ${test_target} )
160- gtest_discover_tests(${test_target} )
161- endif ()
162- endforeach ()
163-
164- # Create target to build all tests
165- add_custom_target (build_tests)
166- add_dependencies (build_tests ${ALL_TEST_TARGETS} )
167-
168- # Setup "check" target similar to autotools
169- set (CMAKE_CTEST_COMMAND ctest --progress --output -on -failure)
170- add_custom_target (check COMMAND ${CMAKE_COMMAND} ${CMAKE_CTEST_COMMAND} )
171- add_dependencies (check build_tests)
172-
173- enable_testing ()
0 commit comments