Skip to content

Commit c80368b

Browse files
committed
resolved conflcits
2 parents b43aeef + 9c51eee commit c80368b

File tree

2,368 files changed

+52391
-28544
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

2,368 files changed

+52391
-28544
lines changed

.gitignore

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,17 @@ paddle/fluid/operators/distributed/send_recv.proto
22
paddle/fluid/API.spec
33
paddle/fluid/API_DEV.spec
44
paddle/fluid/API_PR.spec
5+
paddle/fluid/eager/api/generated/*
56
paddle/fluid/op_use_default_grad_maker_DEV.spec
67
paddle/fluid/op_use_default_grad_maker_PR.spec
7-
paddle/pten/api/include/api.h
8-
paddle/pten/api/lib/api.cc
9-
paddle/pten/api/backward/backward_api.h
10-
paddle/pten/api/lib/backward_api.cc
11-
paddle/pten/include/*
12-
paddle/pten/infermeta/generated.*
13-
paddle/pten/extension.h
14-
paddle/fluid/eager/api/generated/*
8+
paddle/phi/api/backward/backward_api.h
9+
paddle/phi/api/include/api.h
10+
paddle/phi/api/lib/api.cc
11+
paddle/phi/api/lib/dygraph_api.*
12+
paddle/phi/api/lib/backward_api.cc
13+
paddle/phi/extension.h
14+
paddle/phi/include/*
15+
paddle/phi/infermeta/generated.*
1516

1617
*.DS_Store
1718
*.vs
@@ -51,3 +52,6 @@ paddle/infrt/dialect/pd_ops_info.h
5152
.lit_test_times.txt
5253
paddle/infrt/tests/dialect/Output
5354
paddle/infrt/tests/lit.cfg.py
55+
paddle/infrt/kernel/phi/infershaped/infershaped_kernel_launchers.cc
56+
paddle/fluid/pybind/eager_final_state_op_function_impl.h
57+
paddle/fluid/pybind/tmp_eager_final_state_op_function_impl.h

CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,7 @@ option(NEW_RELEASE_JIT "PaddlePaddle next-level release strategy for backup ji
243243
option(WITH_ASCEND_INT64 "Compile with int64 kernel for ascend NPU" OFF)
244244
option(WITH_POCKETFFT "Compile with pocketfft support" ON)
245245
option(WITH_RECORD_BUILDTIME "Compile PaddlePaddle with record all targets build time" OFF)
246+
option(WITH_CUSTOM_DEVICE "Compile with custom device support" OFF)
246247

247248
if(WITH_RECORD_BUILDTIME)
248249
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CMAKE_CURRENT_SOURCE_DIR}/tools/get_build_time.sh")
@@ -265,6 +266,10 @@ if(SANITIZER_TYPE AND NOT "${SANITIZER_TYPE}" MATCHES "^(Address|Leak|Memory|Thr
265266
return()
266267
endif()
267268

269+
if (LINUX AND NOT WITH_CUSTOM_DEVICE AND NOT ON_INFER)
270+
set(WITH_CUSTOM_DEVICE ON)
271+
endif()
272+
268273
if(WIN32)
269274
if(WITH_DISTRIBUTE)
270275
MESSAGE(WARNING

cmake/configure.cmake

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,3 +219,7 @@ endif(ON_INFER)
219219
if(WITH_CRYPTO)
220220
add_definitions(-DPADDLE_WITH_CRYPTO)
221221
endif(WITH_CRYPTO)
222+
223+
if(WITH_CUSTOM_DEVICE AND NOT WIN32)
224+
add_definitions(-DPADDLE_WITH_CUSTOM_DEVICE)
225+
endif()

cmake/external/openblas.cmake

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ IF(NOT WIN32)
5555
INSTALL_COMMAND make install NO_SHARED=1 NO_LAPACK=1 PREFIX=<INSTALL_DIR>
5656
UPDATE_COMMAND ""
5757
CONFIGURE_COMMAND ""
58+
BUILD_BYPRODUCTS ${CBLAS_LIBRARIES}
5859
)
5960
ELSE(NOT WIN32)
6061
SET(CBLAS_LIBRARIES
@@ -83,6 +84,8 @@ ELSE(NOT WIN32)
8384
CMAKE_CACHE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=${CBLAS_INSTALL_DIR}
8485
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON
8586
-DCMAKE_BUILD_TYPE:STRING=${THIRD_PARTY_BUILD_TYPE}
87+
# ninja need to know where openblas.lib comes from
88+
BUILD_BYPRODUCTS ${CBLAS_LIBRARIES}
8689
)
8790
SET(OPENBLAS_SHARED_LIB ${CBLAS_INSTALL_DIR}/bin/openblas${CMAKE_SHARED_LIBRARY_SUFFIX})
8891
ENDIF(NOT WIN32)

cmake/external/poplar.cmake

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,31 +11,35 @@
1111
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
14+
1415
if(WITH_IPU)
1516
set(POPLAR_DIR CACHE PATH "Path to a Poplar install")
1617
set(POPART_DIR CACHE PATH "Path to a Popart install")
1718
set(POPLAR_SDK_DIR CACHE PATH "Path to an extracted SDK archive or to a Poplar & Popart install directory (Will populate POPLAR_DIR and POPART_DIR)")
1819

20+
# support setting SDK both from environment variable or command line arguments
21+
1922
if(DEFINED ENV{POPLAR_SDK_DIR})
2023
set(POPLAR_SDK_DIR $ENV{POPLAR_SDK_DIR})
24+
endif()
25+
if(EXISTS ${POPLAR_SDK_DIR})
2126
execute_process(COMMAND find ${POPLAR_SDK_DIR}/ -maxdepth 1 -type d -name "popart*"
2227
OUTPUT_VARIABLE POPART_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
2328
execute_process(COMMAND find ${POPLAR_SDK_DIR}/ -maxdepth 1 -type d -name "poplar-*" -o -name "poplar"
2429
OUTPUT_VARIABLE POPLAR_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
25-
if(NOT IS_DIRECTORY "${POPLAR_DIR}")
26-
message(FATAL_ERROR "Couldn't find a \"poplar\" or \"poplar-*\" folder in '${POPLAR_SDK_DIR}'")
27-
endif()
28-
if(NOT IS_DIRECTORY "${POPART_DIR}")
29-
message(FATAL_ERROR "Couldn't find a \"popart*\" folder in '${POPLAR_SDK_DIR}'")
30-
endif()
31-
else()
32-
message(FATAL_ERROR "You must provide a path to a Poplar install using export POPLAR_SDK_DIR=/path/to/poplar_sdk")
3330
endif()
34-
35-
message("POPLAR_DIR is ${POPLAR_DIR}")
36-
message("POPART_DIR is ${POPART_DIR}")
31+
if(DEFINED ENV{POPLAR_DIR})
32+
set(POPLAR_DIR $ENV{POPLAR_DIR})
33+
endif()
34+
if(DEFINED ENV{POPART_DIR})
35+
set(POPART_DIR $ENV{POPART_DIR})
36+
endif()
3737

3838
if(EXISTS ${POPLAR_DIR})
39+
message("POPLAR_DIR is ${POPLAR_DIR}")
40+
if(NOT IS_DIRECTORY "${POPLAR_DIR}")
41+
message(FATAL_ERROR "Couldn't find a \"poplar\" or \"poplar-*\" folder in '${POPLAR_SDK_DIR}'")
42+
endif()
3943
list(APPEND CMAKE_PREFIX_PATH ${POPLAR_DIR})
4044
set(ENABLE_POPLAR_CMD "source ${POPLAR_DIR}/enable.sh")
4145
find_package(poplar REQUIRED)
@@ -45,8 +49,11 @@ if(WITH_IPU)
4549
if(NOT poplar_FOUND)
4650
message(FATAL_ERROR "You must provide a path to a Poplar install using -DPOPLAR_DIR=/path/to/popart/build/install")
4751
endif()
48-
4952
if(EXISTS ${POPART_DIR})
53+
message("POPART_DIR is ${POPART_DIR}")
54+
if(NOT IS_DIRECTORY "${POPART_DIR}")
55+
message(FATAL_ERROR "Couldn't find a \"popart*\" folder in '${POPLAR_SDK_DIR}'")
56+
endif()
5057
list(APPEND CMAKE_PREFIX_PATH ${POPART_DIR})
5158
set(ENABLE_POPART_CMD "source ${POPART_DIR}/enable.sh")
5259
find_package(popart REQUIRED COMPONENTS popart-only)
@@ -56,6 +63,7 @@ if(WITH_IPU)
5663
if(NOT popart_FOUND)
5764
message(FATAL_ERROR "You must provide a path to a Popart build using -DPOPART_DIR=/path/to/popart/build")
5865
endif()
66+
5967
add_definitions(-DONNX_NAMESPACE=onnx)
6068
add_custom_target(extern_poplar DEPENDS poplar popart-only)
6169
endif()

cmake/external/xpu.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ ENDIF()
3636

3737
if(NOT DEFINED XPU_BASE_URL)
3838
SET(XPU_BASE_URL_WITHOUT_DATE "https://baidu-kunlun-product.cdn.bcebos.com/KL-SDK/klsdk-dev")
39-
SET(XPU_BASE_URL "${XPU_BASE_URL_WITHOUT_DATE}/20220116")
39+
SET(XPU_BASE_URL "${XPU_BASE_URL_WITHOUT_DATE}/20220215")
4040
else()
4141
SET(XPU_BASE_URL "${XPU_BASE_URL}")
4242
endif()

cmake/generic.cmake

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ set_property(GLOBAL PROPERTY PTEN_MODULES "")
122122
function(find_pten_modules TARGET_NAME)
123123
get_filename_component(__target_path ${TARGET_NAME} ABSOLUTE)
124124
string(REGEX REPLACE "^${PADDLE_SOURCE_DIR}/" "" __target_path ${__target_path})
125-
string(FIND "${__target_path}" "pten" pos)
125+
string(FIND "${__target_path}" "phi" pos)
126126
if(pos GREATER 1)
127127
get_property(pten_modules GLOBAL PROPERTY PTEN_MODULES)
128128
set(pten_modules ${pten_modules} ${TARGET_NAME})
@@ -1036,3 +1036,42 @@ function(generate_dummy_static_lib)
10361036
add_library(${dummy_LIB_NAME} STATIC ${dummy_FILE_PATH})
10371037
endfunction()
10381038

1039+
function(math_library TARGET)
1040+
# math_library is a function to create math library.
1041+
# The interface is the same as cc_library.
1042+
# But it handle split GPU/CPU code and link some common library.
1043+
set(cc_srcs)
1044+
set(cu_srcs)
1045+
set(hip_srcs)
1046+
set(math_common_deps device_context framework_proto enforce)
1047+
if (WITH_GPU)
1048+
if (${CMAKE_CUDA_COMPILER_VERSION} LESS 11.0)
1049+
list(APPEND math_common_deps cub)
1050+
else()
1051+
list(APPEND math_common_deps)
1052+
endif()
1053+
endif()
1054+
set(multiValueArgs DEPS)
1055+
cmake_parse_arguments(math_library "${options}" "${oneValueArgs}"
1056+
"${multiValueArgs}" ${ARGN})
1057+
1058+
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${TARGET}.cc)
1059+
list(APPEND cc_srcs ${TARGET}.cc)
1060+
endif()
1061+
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${TARGET}.cu)
1062+
list(APPEND cu_srcs ${TARGET}.cu)
1063+
endif()
1064+
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${TARGET}.cu.cc)
1065+
list(APPEND cu_srcs ${TARGET}.cu.cc)
1066+
endif()
1067+
1068+
list(LENGTH cc_srcs cc_srcs_len)
1069+
if (WITH_GPU)
1070+
nv_library(${TARGET} SRCS ${cc_srcs} ${cu_srcs} DEPS ${math_library_DEPS} ${math_common_deps})
1071+
elseif (WITH_ROCM)
1072+
hip_library(${TARGET} SRCS ${cc_srcs} ${cu_srcs} DEPS ${math_library_DEPS} ${math_common_deps})
1073+
elseif(${cc_srcs_len} GREATER 0)
1074+
cc_library(${TARGET} SRCS ${cc_srcs} DEPS ${math_library_DEPS} ${math_common_deps})
1075+
endif()
1076+
endfunction()
1077+

cmake/inference_lib.cmake

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -226,17 +226,17 @@ include_directories(${CMAKE_BINARY_DIR}/../paddle/fluid/framework/io)
226226

227227
# copy api headers for pten & custom op
228228
copy(inference_lib_dist
229-
SRCS ${PADDLE_SOURCE_DIR}/paddle/pten/api/ext/*.h
230-
DSTS ${PADDLE_INFERENCE_INSTALL_DIR}/paddle/include/experimental/pten/api/ext/)
229+
SRCS ${PADDLE_SOURCE_DIR}/paddle/phi/api/ext/*.h
230+
DSTS ${PADDLE_INFERENCE_INSTALL_DIR}/paddle/include/experimental/phi/api/ext/)
231231
copy(inference_lib_dist
232-
SRCS ${PADDLE_SOURCE_DIR}/paddle/pten/api/include/*.h
233-
DSTS ${PADDLE_INFERENCE_INSTALL_DIR}/paddle/include/experimental/pten/api/include/)
232+
SRCS ${PADDLE_SOURCE_DIR}/paddle/phi/api/include/*.h
233+
DSTS ${PADDLE_INFERENCE_INSTALL_DIR}/paddle/include/experimental/phi/api/include/)
234234
copy(inference_lib_dist
235-
SRCS ${PADDLE_SOURCE_DIR}/paddle/pten/api/all.h
236-
DSTS ${PADDLE_INFERENCE_INSTALL_DIR}/paddle/include/experimental/pten/api/)
235+
SRCS ${PADDLE_SOURCE_DIR}/paddle/phi/api/all.h
236+
DSTS ${PADDLE_INFERENCE_INSTALL_DIR}/paddle/include/experimental/phi/api/)
237237
copy(inference_lib_dist
238-
SRCS ${PADDLE_SOURCE_DIR}/paddle/pten/common/*.h
239-
DSTS ${PADDLE_INFERENCE_INSTALL_DIR}/paddle/include/experimental/pten/common/)
238+
SRCS ${PADDLE_SOURCE_DIR}/paddle/phi/common/*.h
239+
DSTS ${PADDLE_INFERENCE_INSTALL_DIR}/paddle/include/experimental/phi/common/)
240240
copy(inference_lib_dist
241241
SRCS ${PADDLE_SOURCE_DIR}/paddle/utils/any.h
242242
DSTS ${PADDLE_INFERENCE_INSTALL_DIR}/paddle/include/experimental/utils/)

cmake/pten.cmake

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ function(generate_unify_header DIR_NAME)
3333

3434
# generate target header file
3535
set(header_file ${CMAKE_CURRENT_SOURCE_DIR}/include/${header_name}.h)
36-
file(WRITE ${header_file} "// Header file generated by paddle/pten/CMakeLists.txt for external users,\n// DO NOT edit or include it within paddle.\n\n#pragma once\n\n")
36+
file(WRITE ${header_file} "// Header file generated by paddle/phi/CMakeLists.txt for external users,\n// DO NOT edit or include it within paddle.\n\n#pragma once\n\n")
3737

3838
# get all top-level headers and write into header file
3939
file(GLOB HEADERS "${CMAKE_CURRENT_SOURCE_DIR}\/${DIR_NAME}\/*.h")
@@ -114,6 +114,9 @@ function(kernel_library TARGET)
114114
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/gpu/${TARGET}.cu)
115115
list(APPEND gpu_srcs ${CMAKE_CURRENT_SOURCE_DIR}/gpu/${TARGET}.cu)
116116
endif()
117+
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/gpu/${TARGET}.cu.cc)
118+
list(APPEND gpu_srcs ${CMAKE_CURRENT_SOURCE_DIR}/gpu/${TARGET}.cu.cc)
119+
endif()
117120
endif()
118121
if (WITH_XPU)
119122
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/xpu/${TARGET}.cc)
@@ -134,17 +137,17 @@ function(kernel_library TARGET)
134137
list(APPEND all_srcs ${xpu_srcs})
135138
foreach(src ${all_srcs})
136139
file(READ ${src} target_content)
137-
string(REGEX MATCHALL "#include \"paddle\/pten\/kernels\/[a-z0-9_]+_kernel.h\"" include_kernels ${target_content})
140+
string(REGEX MATCHALL "#include \"paddle\/phi\/kernels\/[a-z0-9_]+_kernel.h\"" include_kernels ${target_content})
138141
if ("${kernel_library_SUB_DIR}" STREQUAL "")
139-
string(REGEX MATCHALL "#include \"paddle\/pten\/kernels\/[a-z0-9_]+_kernel.h\"" include_kernels ${target_content})
142+
string(REGEX MATCHALL "#include \"paddle\/phi\/kernels\/[a-z0-9_]+_kernel.h\"" include_kernels ${target_content})
140143
else()
141-
string(REGEX MATCHALL "#include \"paddle\/pten\/kernels\/${kernel_library_SUB_DIR}\/[a-z0-9_]+_kernel.h\"" include_kernels ${target_content})
144+
string(REGEX MATCHALL "#include \"paddle\/phi\/kernels\/${kernel_library_SUB_DIR}\/[a-z0-9_]+_kernel.h\"" include_kernels ${target_content})
142145
endif()
143146
foreach(include_kernel ${include_kernels})
144147
if ("${kernel_library_SUB_DIR}" STREQUAL "")
145-
string(REGEX REPLACE "#include \"paddle\/pten\/kernels\/" "" kernel_name ${include_kernel})
148+
string(REGEX REPLACE "#include \"paddle\/phi\/kernels\/" "" kernel_name ${include_kernel})
146149
else()
147-
string(REGEX REPLACE "#include \"paddle\/pten\/kernels\/${kernel_library_SUB_DIR}\/" "" kernel_name ${include_kernel})
150+
string(REGEX REPLACE "#include \"paddle\/phi\/kernels\/${kernel_library_SUB_DIR}\/" "" kernel_name ${include_kernel})
148151
endif()
149152
string(REGEX REPLACE ".h\"" "" kernel_name ${kernel_name})
150153
list(APPEND kernel_deps ${kernel_name})
@@ -161,7 +164,7 @@ function(kernel_library TARGET)
161164

162165
# Build Target according different src organization
163166
if((${cpu_srcs_len} GREATER 0 OR ${gpu_srcs_len} GREATER 0 OR
164-
${xpu_srcs_len} GREATER 0) AND (${common_srcs_len} GREATER 0 OR
167+
${xpu_srcs_len} GREATER 0) AND (${common_srcs_len} GREATER 0 OR
165168
${selected_rows_srcs_len} GREATER 0))
166169
# If the common_srcs/selected_rows_srcs depends on specific device srcs, build target using this rule.
167170
if (WITH_GPU)
@@ -225,11 +228,11 @@ function(kernel_library TARGET)
225228
cc_library(${TARGET} SRCS ${selected_rows_srcs} DEPS ${kernel_library_DEPS} ${kernel_deps})
226229
endif()
227230
else()
228-
message(FATAL_ERROR "Cannot find any implementation for ${TARGET}")
231+
message(FATAL_ERROR "Cannot find any implementation for ${TARGET}")
229232
endif()
230233

231234
if (${common_srcs_len} GREATER 0 OR ${cpu_srcs_len} GREATER 0 OR
232-
${gpu_srcs_len} GREATER 0 OR ${xpu_srcs_len} GREATER 0 OR
235+
${gpu_srcs_len} GREATER 0 OR ${xpu_srcs_len} GREATER 0 OR
233236
${selected_rows_srcs_len} GREATER 0)
234237
# append target into PTEN_KERNELS property
235238
get_property(pten_kernels GLOBAL PROPERTY PTEN_KERNELS)
@@ -285,7 +288,7 @@ function(append_op_util_declare TARGET)
285288
string(REGEX MATCH "(PT_REGISTER_BASE_KERNEL_NAME|PT_REGISTER_ARG_MAPPING_FN)\\([ \t\r\n]*[a-z0-9_]*" util_registrar "${target_content}")
286289
string(REPLACE "PT_REGISTER_ARG_MAPPING_FN" "PT_DECLARE_ARG_MAPPING_FN" util_declare "${util_registrar}")
287290
string(REPLACE "PT_REGISTER_BASE_KERNEL_NAME" "PT_DECLARE_BASE_KERNEL_NAME" util_declare "${util_declare}")
288-
string(APPEND util_declare ");")
291+
string(APPEND util_declare ");\n")
289292
file(APPEND ${op_utils_header} "${util_declare}")
290293
endfunction()
291294

cmake/pten_header.cmake

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ if (pos GREATER 1)
2222
foreach(header ${HEADERS})
2323
if (${header} MATCHES ".*.h$")
2424
file(READ ${header} HEADER_CONTENT)
25-
string(REPLACE "paddle/pten/" "paddle/include/experimental/pten/" HEADER_CONTENT "${HEADER_CONTENT}")
25+
string(REPLACE "paddle/phi/" "paddle/include/experimental/phi/" HEADER_CONTENT "${HEADER_CONTENT}")
2626
string(REPLACE "paddle/utils/" "paddle/include/experimental/utils/" HEADER_CONTENT "${HEADER_CONTENT}")
2727
file(WRITE ${header} "${HEADER_CONTENT}")
2828
message(STATUS "pten header path compat processing complete: ${header}")
@@ -32,10 +32,10 @@ endif()
3232
endfunction()
3333

3434
pten_header_path_compat(${PADDLE_INFERENCE_INSTALL_DIR}/paddle/include/experimental)
35-
pten_header_path_compat(${PADDLE_INFERENCE_INSTALL_DIR}/paddle/include/experimental/pten/api)
36-
pten_header_path_compat(${PADDLE_INFERENCE_INSTALL_DIR}/paddle/include/experimental/pten/api/ext)
37-
pten_header_path_compat(${PADDLE_INFERENCE_INSTALL_DIR}/paddle/include/experimental/pten/api/include)
38-
pten_header_path_compat(${PADDLE_INFERENCE_INSTALL_DIR}/paddle/include/experimental/pten/common)
35+
pten_header_path_compat(${PADDLE_INFERENCE_INSTALL_DIR}/paddle/include/experimental/phi/api)
36+
pten_header_path_compat(${PADDLE_INFERENCE_INSTALL_DIR}/paddle/include/experimental/phi/api/ext)
37+
pten_header_path_compat(${PADDLE_INFERENCE_INSTALL_DIR}/paddle/include/experimental/phi/api/include)
38+
pten_header_path_compat(${PADDLE_INFERENCE_INSTALL_DIR}/paddle/include/experimental/phi/common)
3939

4040
# In order to be compatible with the original behavior, the header file name needs to be changed
4141
file(RENAME ${PADDLE_INFERENCE_INSTALL_DIR}/paddle/include/experimental/extension.h

0 commit comments

Comments
 (0)