4
4
set (Codegen_XPU_cmake_included true )
5
5
6
6
set (BUILD_TORCH_XPU_ATEN_GENERATED "${CMAKE_BINARY_DIR} /xpu/ATen" )
7
+ set (BUILD_TORCH_ATEN_GENERATED "${CMAKE_BINARY_DIR} /aten/src/ATen" )
7
8
file (MAKE_DIRECTORY ${BUILD_TORCH_XPU_ATEN_GENERATED} )
8
9
9
10
set (RegisterXPU_GENERATED ${BUILD_TORCH_XPU_ATEN_GENERATED} /RegisterXPU_0.cpp)
@@ -49,6 +50,38 @@ function(GEN_XPU file_yaml)
49
50
--xpu
50
51
)
51
52
53
+ set (XPU_INSTALL_HEADER_COMMAND
54
+ "${PYTHON_EXECUTABLE} " ${TORCH_XPU_OPS_ROOT} /tools/codegen/install_xpu_headers.py
55
+ --src-header-dir ${BUILD_TORCH_XPU_ATEN_GENERATED}
56
+ --dst-header-dir ${BUILD_TORCH_ATEN_GENERATED}
57
+ )
58
+
59
+ execute_process (
60
+ COMMAND
61
+ ${XPU_CODEGEN_COMMAND}
62
+ --generate headers
63
+ --dry-run
64
+ --output -dependencies ${BUILD_TORCH_XPU_ATEN_GENERATED} /generated_headers.cmake
65
+ RESULT_VARIABLE RETURN_VALUE
66
+ WORKING_DIRECTORY ${TORCH_ROOT}
67
+ )
68
+
69
+ if (NOT RETURN_VALUE EQUAL 0)
70
+ message (FATAL_ERROR "Failed to get generated_headers list" )
71
+ endif ()
72
+
73
+ execute_process (
74
+ COMMAND
75
+ ${XPU_INSTALL_HEADER_COMMAND}
76
+ --dry-run
77
+ RESULT_VARIABLE RETURN_VALUE
78
+ WORKING_DIRECTORY ${TORCH_ROOT}
79
+ )
80
+
81
+ if (NOT RETURN_VALUE EQUAL 0)
82
+ message (FATAL_ERROR "Failed to get XPU header list to install" )
83
+ endif ()
84
+
52
85
add_custom_command (
53
86
COMMENT "Generating XPU ATen Codegen..."
54
87
OUTPUT ${generated_files}
@@ -66,14 +99,13 @@ function(GEN_XPU file_yaml)
66
99
COMMAND
67
100
${REGISTER_FALLBACK_CMD}
68
101
# Codegen post-process
69
- COMMAND "${PYTHON_EXECUTABLE} " ${TORCH_XPU_OPS_ROOT} /tools/codegen/remove_headers.py --register_xpu_path ${RegisterXPU_GENERATED}
70
- COMMAND "${PYTHON_EXECUTABLE} " ${TORCH_XPU_OPS_ROOT} /tools/codegen/remove_headers.py --register_xpu_path ${RegisterSparseXPU_GENERATED}
71
- COMMAND "${PYTHON_EXECUTABLE} " ${TORCH_XPU_OPS_ROOT} /tools/codegen/remove_headers.py --register_xpu_path ${RegisterSparseCsrXPU_GENERATED}
72
- COMMAND "${PYTHON_EXECUTABLE} " ${TORCH_XPU_OPS_ROOT} /tools/codegen/remove_headers.py --register_xpu_path ${RegisterNestedTensorXPU_GENERATED}
102
+ COMMAND
103
+ ${XPU_INSTALL_HEADER_COMMAND}
73
104
WORKING_DIRECTORY ${TORCH_ROOT}
74
105
DEPENDS
75
106
${CODEGEN_XPU_YAML_DIR} /native/${file_yaml}
76
107
${XPUFallback_TEMPLATE}
108
+ ${TORCH_XPU_OPS_ROOT} /tools/codegen/install_xpu_headers.py
77
109
)
78
110
79
111
# Post codegen delete the copied templates folder only on Windows.
@@ -99,11 +131,7 @@ GEN_XPU(
99
131
${XPU_AOTI_SHIM_SOURCE}
100
132
)
101
133
102
- # The c_shim_xpu.cpp needs include files in ${CMAKE_BINARY_DIR}/xpu/ATen/ops/*.h)
103
- # The include path is auto generated as "#include <ATen/ops/*.h">
104
- # To follow the design of aoti codegen, here ${CMAKE_BINARY_DIR}/xpu is added to
105
- # $TORCH_XPU_OPS_INCLUDE_DIRS, so that "#include <ATen/ops/*.h>" works.
106
- list (APPEND TORCH_XPU_OPS_INCLUDE_DIRS ${CMAKE_BINARY_DIR} /xpu)
134
+ include (${BUILD_TORCH_XPU_ATEN_GENERATED} /xpu_ops_generated_headers.cmake)
107
135
108
136
list (APPEND xpu_generated_src
109
137
${RegisterXPU_GENERATED}
0 commit comments