forked from pytorch/pytorch
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CMakeLists.txt
159 lines (139 loc) · 5.35 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
set(JIT_TEST_ROOT ${TORCH_ROOT}/test/cpp/jit)
# Build separate libraries the define custom classes/operators used from our Python tests.
# These are intended to be used with torch.ops.load_library() in our Python test suite.
add_library(torchbind_test SHARED
${JIT_TEST_ROOT}/test_custom_class_registrations.h
${JIT_TEST_ROOT}/test_custom_class_registrations.cpp
)
target_link_libraries(torchbind_test torch)
add_library(jitbackend_test SHARED ${JIT_TEST_ROOT}/test_backend_lib.cpp)
target_link_libraries(jitbackend_test torch)
set(BACKEND_WITH_COMPILER_SRCS
${JIT_TEST_ROOT}/test_backend_compiler_lib.cpp
${JIT_TEST_ROOT}/test_backend_compiler_preprocess.cpp
)
if(USE_KINETO)
# Testing edge profiler for backend use
# profiler_edge should only be aded when USE_KINETO flag is on
list(APPEND BACKEND_WITH_COMPILER_SRCS
${TORCH_SRC_DIR}/csrc/jit/mobile/profiler_edge.cpp)
endif()
add_library(backend_with_compiler SHARED
${BACKEND_WITH_COMPILER_SRCS}
)
if(USE_KINETO)
set_target_properties(backend_with_compiler PROPERTIES COMPILE_FLAGS
"-DUSE_KINETO")
endif()
target_link_libraries(backend_with_compiler torch)
if(INSTALL_TEST)
install(TARGETS torchbind_test DESTINATION lib)
install(TARGETS jitbackend_test DESTINATION lib)
install(TARGETS backend_with_compiler DESTINATION lib)
endif()
# Build the cpp gtest binary containing the cpp-only tests.
set(JIT_TEST_SRCS
${JIT_TEST_ROOT}/test_add_if_then_else.cpp
${JIT_TEST_ROOT}/test_alias_analysis.cpp
${JIT_TEST_ROOT}/test_argument_spec.cpp
${JIT_TEST_ROOT}/test_autodiff.cpp
${JIT_TEST_ROOT}/test_load_upgraders.cpp
${JIT_TEST_ROOT}/test_op_replacement.cpp
${JIT_TEST_ROOT}/test_upgrader_utils.cpp
${JIT_TEST_ROOT}/test_backend.cpp
${JIT_TEST_ROOT}/test_class_import.cpp
${JIT_TEST_ROOT}/test_class_parser.cpp
${JIT_TEST_ROOT}/test_class_type.cpp
${JIT_TEST_ROOT}/test_code_template.cpp
${JIT_TEST_ROOT}/test_concat_opt.cpp
${JIT_TEST_ROOT}/test_constant_pooling.cpp
${JIT_TEST_ROOT}/test_cleanup_passes.cpp
${JIT_TEST_ROOT}/test_create_autodiff_subgraphs.cpp
${JIT_TEST_ROOT}/test_custom_class.cpp
${JIT_TEST_ROOT}/test_custom_class_registrations.h
${JIT_TEST_ROOT}/test_custom_class_registrations.cpp
${JIT_TEST_ROOT}/test_custom_operators.cpp
${JIT_TEST_ROOT}/test_dce.cpp
${JIT_TEST_ROOT}/test_fuser.cpp
${JIT_TEST_ROOT}/test_graph_executor.cpp
${JIT_TEST_ROOT}/test_graph_iterator.cpp
${JIT_TEST_ROOT}/test_cs_debug_info_serialization.cpp
${JIT_TEST_ROOT}/test_inliner.cpp
${JIT_TEST_ROOT}/test_interface.cpp
${JIT_TEST_ROOT}/test_interpreter.cpp
${JIT_TEST_ROOT}/test_ir.cpp
${JIT_TEST_ROOT}/test_irparser.cpp
${JIT_TEST_ROOT}/test_jit_type.cpp
${JIT_TEST_ROOT}/test_lite_interpreter.cpp
${JIT_TEST_ROOT}/test_lite_interpreter_direct.cpp
${JIT_TEST_ROOT}/test_lite_trainer.cpp
${JIT_TEST_ROOT}/test_memory_dag.cpp
${JIT_TEST_ROOT}/test_misc.cpp
${JIT_TEST_ROOT}/test_mobile_type_parser.cpp
${JIT_TEST_ROOT}/test_module_api.cpp
${JIT_TEST_ROOT}/test_peephole_optimize.cpp
${JIT_TEST_ROOT}/test_qualified_name.cpp
${JIT_TEST_ROOT}/test_save_load.cpp
${JIT_TEST_ROOT}/test_schema_info.cpp
${JIT_TEST_ROOT}/test_schema_matching.cpp
${JIT_TEST_ROOT}/test_stack_opt.cpp
${JIT_TEST_ROOT}/test_subgraph_matcher.cpp
${JIT_TEST_ROOT}/test_subgraph_rewriter.cpp
${JIT_TEST_ROOT}/test_subgraph_utils.cpp
${JIT_TEST_ROOT}/test_union.cpp
${JIT_TEST_ROOT}/test_utils.cpp
${JIT_TEST_ROOT}/test_script_profile.cpp
${JIT_TEST_ROOT}/test_shape_analysis.cpp
${JIT_TEST_ROOT}/test_jit_logging_levels.cpp
${JIT_TEST_ROOT}/test_file_format.cpp
${JIT_TEST_ROOT}/test_flatbuffer.cpp
)
add_executable(test_jit
${TORCH_ROOT}/test/cpp/common/main.cpp
${JIT_TEST_SRCS}
)
# We also build with UBSAN flag in build_asan.h
if(USE_ASAN)
target_compile_options(test_jit PRIVATE "-fsanitize=undefined")
target_link_libraries(test_jit PRIVATE "-fsanitize=undefined")
endif()
target_link_libraries(
test_jit PRIVATE flatbuffers)
# TODO temporary until we can delete the old gtest polyfills.
target_compile_definitions(test_jit PRIVATE USE_GTEST)
if(USE_SYSTEM_ONNX)
target_link_libraries(test_jit PRIVATE onnx_proto onnx)
endif()
if(USE_MKLDNN)
target_link_libraries(test_jit PRIVATE caffe2::mkldnn)
endif()
set(JIT_TEST_DEPENDENCIES torch gtest jitbackend_test backend_with_compiler)
if(MSVC)
list(APPEND JIT_TEST_DEPENDENCIES onnx_library)
endif(MSVC)
target_link_libraries(test_jit PRIVATE ${JIT_TEST_DEPENDENCIES})
target_include_directories(test_jit PRIVATE ${ATen_CPU_INCLUDE})
if(LINUX)
#Update to target_link_options when CMake version can be upgraded
target_link_libraries(test_jit PRIVATE "-Wl,--no-as-needed,$<TARGET_FILE:jitbackend_test>,$<TARGET_FILE:backend_with_compiler>,--as-needed")
endif()
if(USE_CUDA)
target_compile_definitions(test_jit PRIVATE USE_CUDA)
# Suppress sign compare checks for NVFUSER JIT tests
if(NOT MSVC)
target_compile_options(test_jit PRIVATE $<$<COMPILE_LANGUAGE:CXX>:-Wno-sign-compare>)
endif()
elseif(USE_ROCM)
target_link_libraries(test_jit PRIVATE
${ROCM_HIPRTC_LIB}
${PYTORCH_HIP_LIBRARIES}
${TORCH_CUDA_LIBRARIES})
target_compile_definitions(test_jit PRIVATE USE_ROCM)
endif()
if(INSTALL_TEST)
install(TARGETS test_jit DESTINATION bin)
# Install PDB files for MSVC builds
if(MSVC AND BUILD_SHARED_LIBS)
install(FILES $<TARGET_PDB_FILE:test_jit> DESTINATION bin OPTIONAL)
endif()
endif()