Skip to content

Commit 6399767

Browse files
authored
Fix kernel tests to respect build configuration options (pytorch#17124)
The kernel tests in kernels/test/CMakeLists.txt unconditionally depended on targets that only exist when certain build options are enabled: - optimized_native_cpu_ops_lib requires EXECUTORCH_BUILD_KERNELS_OPTIMIZED - optimized_portable_kernels requires EXECUTORCH_BUILD_PTHREADPOOL and EXECUTORCH_BUILD_KERNELS_OPTIMIZED - quantized_kernels requires EXECUTORCH_BUILD_KERNELS_QUANTIZED The fix makes the kernel list and test targets conditional on the corresponding build options being enabled.
1 parent e573985 commit 6399767

1 file changed

Lines changed: 85 additions & 51 deletions

File tree

kernels/test/CMakeLists.txt

Lines changed: 85 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,18 @@ set(EXECUTORCH_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/../..)
1717

1818
include(${EXECUTORCH_ROOT}/tools/cmake/Test.cmake)
1919

20-
set(_kernels portable optimized_portable optimized quantized)
20+
# Build kernel list conditionally based on what's enabled
21+
set(_kernels portable)
22+
if(EXECUTORCH_BUILD_PTHREADPOOL AND EXECUTORCH_BUILD_KERNELS_OPTIMIZED)
23+
list(APPEND _kernels optimized_portable)
24+
endif()
25+
if(EXECUTORCH_BUILD_KERNELS_OPTIMIZED)
26+
list(APPEND _kernels optimized)
27+
endif()
28+
if(EXECUTORCH_BUILD_KERNELS_QUANTIZED)
29+
list(APPEND _kernels quantized)
30+
endif()
31+
2132
foreach(kernel ${_kernels})
2233
set(_wrapper_dir
2334
"${CMAKE_CURRENT_BINARY_DIR}/include/${kernel}/executorch/kernels/test"
@@ -106,22 +117,41 @@ foreach(kernel ${_kernels})
106117
)
107118
endforeach()
108119

109-
add_custom_target(
110-
generate_wrapper
111-
DEPENDS
120+
# Build the list of wrapper dependencies based on which kernels are enabled
121+
set(_generate_wrapper_deps
112122
"${CMAKE_CURRENT_BINARY_DIR}/include/portable/executorch/kernels/test/FunctionHeaderWrapper.h"
113123
"${CMAKE_CURRENT_BINARY_DIR}/include/portable/executorch/kernels/test/supported_features.h"
114124
"${CMAKE_CURRENT_BINARY_DIR}/include/portable/executorch/kernels/test/supported_features.cpp"
115-
"${CMAKE_CURRENT_BINARY_DIR}/include/optimized/executorch/kernels/test/FunctionHeaderWrapper.h"
116-
"${CMAKE_CURRENT_BINARY_DIR}/include/optimized/executorch/kernels/test/supported_features.h"
117-
"${CMAKE_CURRENT_BINARY_DIR}/include/optimized/executorch/kernels/test/supported_features.cpp"
125+
)
126+
if(EXECUTORCH_BUILD_PTHREADPOOL AND EXECUTORCH_BUILD_KERNELS_OPTIMIZED)
127+
list(
128+
APPEND
129+
_generate_wrapper_deps
118130
"${CMAKE_CURRENT_BINARY_DIR}/include/optimized_portable/executorch/kernels/test/FunctionHeaderWrapper.h"
119131
"${CMAKE_CURRENT_BINARY_DIR}/include/optimized_portable/executorch/kernels/test/supported_features.h"
120132
"${CMAKE_CURRENT_BINARY_DIR}/include/optimized_portable/executorch/kernels/test/supported_features.cpp"
133+
)
134+
endif()
135+
if(EXECUTORCH_BUILD_KERNELS_OPTIMIZED)
136+
list(
137+
APPEND
138+
_generate_wrapper_deps
139+
"${CMAKE_CURRENT_BINARY_DIR}/include/optimized/executorch/kernels/test/FunctionHeaderWrapper.h"
140+
"${CMAKE_CURRENT_BINARY_DIR}/include/optimized/executorch/kernels/test/supported_features.h"
141+
"${CMAKE_CURRENT_BINARY_DIR}/include/optimized/executorch/kernels/test/supported_features.cpp"
142+
)
143+
endif()
144+
if(EXECUTORCH_BUILD_KERNELS_QUANTIZED)
145+
list(
146+
APPEND
147+
_generate_wrapper_deps
121148
"${CMAKE_CURRENT_BINARY_DIR}/include/quantized/executorch/kernels/test/FunctionHeaderWrapper.h"
122149
"${CMAKE_CURRENT_BINARY_DIR}/include/quantized/executorch/kernels/test/supported_features.h"
123150
"${CMAKE_CURRENT_BINARY_DIR}/include/quantized/executorch/kernels/test/supported_features.cpp"
124-
)
151+
)
152+
endif()
153+
154+
add_custom_target(generate_wrapper DEPENDS ${_generate_wrapper_deps})
125155

126156
set(all_test_sources
127157
"BinaryLogicalOpTest.cpp"
@@ -309,32 +339,55 @@ target_include_directories(
309339
portable_kernels_test PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/include/portable"
310340
)
311341

312-
set(_optimized_kernels_test_sources
313-
"op_add_test.cpp"
314-
"op_bmm_test.cpp"
315-
"op_div_test.cpp"
316-
"op_elu_test.cpp"
317-
"op_exp_test.cpp"
318-
"op_fft_c2r_test.cpp"
319-
"op_fft_r2c_test.cpp"
320-
"op_gelu_test.cpp"
321-
"op_le_test.cpp"
322-
"op_linear_test.cpp"
323-
"op_log_softmax_test.cpp"
324-
"op_mm_test.cpp"
325-
"op_mul_test.cpp"
326-
"op_native_layer_norm_test.cpp"
327-
"op_neg_test.cpp"
328-
"op_sub_test.cpp"
329-
"op_where_test.cpp"
330-
"UnaryUfuncRealHBBF16ToFloatHBF16Test.cpp"
331-
${CMAKE_CURRENT_BINARY_DIR}/include/optimized/executorch/kernels/test/supported_features.cpp
332-
)
342+
if(EXECUTORCH_BUILD_KERNELS_OPTIMIZED)
343+
set(_optimized_kernels_test_sources
344+
"op_add_test.cpp"
345+
"op_bmm_test.cpp"
346+
"op_div_test.cpp"
347+
"op_elu_test.cpp"
348+
"op_exp_test.cpp"
349+
"op_fft_c2r_test.cpp"
350+
"op_fft_r2c_test.cpp"
351+
"op_gelu_test.cpp"
352+
"op_le_test.cpp"
353+
"op_linear_test.cpp"
354+
"op_log_softmax_test.cpp"
355+
"op_mm_test.cpp"
356+
"op_mul_test.cpp"
357+
"op_native_layer_norm_test.cpp"
358+
"op_neg_test.cpp"
359+
"op_sub_test.cpp"
360+
"op_where_test.cpp"
361+
"UnaryUfuncRealHBBF16ToFloatHBF16Test.cpp"
362+
${CMAKE_CURRENT_BINARY_DIR}/include/optimized/executorch/kernels/test/supported_features.cpp
363+
)
333364

334-
if(TARGET optimized_portable_kernels)
335-
list(APPEND _optimized_kernels_test_sources ${all_test_sources})
336-
list(REMOVE_DUPLICATES _optimized_kernels_test_sources)
365+
if(TARGET optimized_portable_kernels)
366+
list(APPEND _optimized_kernels_test_sources ${all_test_sources})
367+
list(REMOVE_DUPLICATES _optimized_kernels_test_sources)
368+
endif()
369+
370+
et_cxx_test(
371+
optimized_kernels_test
372+
SOURCES
373+
${_optimized_kernels_test_sources}
374+
EXTRA_LIBS
375+
cpuinfo
376+
extension_threadpool
377+
optimized_native_cpu_ops_lib
378+
pthreadpool
379+
eigen_blas
380+
)
381+
add_dependencies(optimized_kernels_test generate_wrapper)
382+
target_include_directories(
383+
optimized_kernels_test
384+
PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/include/optimized"
385+
"${CMAKE_CURRENT_BINARY_DIR}/include/portable"
386+
"${CMAKE_INSTALL_PREFIX}/include"
387+
)
388+
endif()
337389

390+
if(TARGET optimized_portable_kernels)
338391
# Make sure that we still test optimized versions of portable kernels even if
339392
# they would currently be shadowed by specific optimized implementations.
340393
et_cxx_test(
@@ -352,25 +405,6 @@ if(TARGET optimized_portable_kernels)
352405
)
353406
endif()
354407

355-
et_cxx_test(
356-
optimized_kernels_test
357-
SOURCES
358-
${_optimized_kernels_test_sources}
359-
EXTRA_LIBS
360-
cpuinfo
361-
extension_threadpool
362-
optimized_native_cpu_ops_lib
363-
pthreadpool
364-
eigen_blas
365-
)
366-
add_dependencies(optimized_kernels_test generate_wrapper)
367-
target_include_directories(
368-
optimized_kernels_test
369-
PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/include/optimized"
370-
"${CMAKE_CURRENT_BINARY_DIR}/include/portable"
371-
"${CMAKE_INSTALL_PREFIX}/include"
372-
)
373-
374408
if(TARGET quantized_kernels)
375409
set(_quantized_kernels_test_sources
376410
"${EXECUTORCH_ROOT}/kernels/quantized/test/op_add_test.cpp"

0 commit comments

Comments
 (0)