Skip to content

Commit 025b425

Browse files
authored
windows phi dynamic (#74950)
* phi dynamic * fix * fix * 2 * fix * 829 * test * test * test * test * disable ut * disable ut * disable ut * fluid test
1 parent 90d9f87 commit 025b425

File tree

308 files changed

+8231
-7051
lines changed

Some content is hidden

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

308 files changed

+8231
-7051
lines changed

.github/workflows/_Windows-GPU.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ jobs:
3939
WITH_UNITY_BUILD: "ON"
4040
WITH_TPCACHE: "ON"
4141
WITH_SCCACHE: "ON"
42-
WITH_SHARED_PHI: "OFF"
42+
WITH_SHARED_PHI: "ON"
4343
GIT_PR_ID: ${{ github.event.pull_request.number }}
4444
WITH_TESTING: "ON"
4545
PRECISION_TEST: "OFF"

.github/workflows/_Windows-Inference.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ jobs:
3939
WITH_UNITY_BUILD: "ON"
4040
WITH_TPCACHE: "ON"
4141
WITH_SCCACHE: "ON"
42-
WITH_SHARED_PHI: "OFF"
42+
WITH_SHARED_PHI: "ON"
4343
GIT_PR_ID: ${{ github.event.pull_request.number }}
4444
WITH_TESTING: "ON"
4545
PRECISION_TEST: "OFF"

.github/workflows/_Windows-OPENBLAS.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ jobs:
4141
WITH_CACHE: "OFF"
4242
WITH_TPCACHE: "ON"
4343
WITH_SCCACHE: "ON"
44-
WITH_SHARED_PHI: "OFF"
44+
WITH_SHARED_PHI: "ON"
4545
FLAGS_enable_eager_mode: 1
4646
GIT_PR_ID: ${{ github.event.pull_request.number }}
4747
WITH_TESTING: "ON"

CMakeLists.txt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -156,9 +156,12 @@ if(WIN32)
156156
# re-runs CMake to regenerate the build system when the target specification source changes.
157157
set(CMAKE_SUPPRESS_REGENERATION OFF)
158158
set(CMAKE_STATIC_LIBRARY_PREFIX lib)
159-
set(WITH_SHARED_PHI
160-
OFF
161-
CACHE BOOL "Disable WITH_SHARED_PHI when compiling PADDLE ON WIN32" FORCE)
159+
# set(WITH_SHARED_PHI
160+
# ON
161+
# CACHE
162+
# BOOL
163+
# "Disable WITH_SHARED_PHI when compiling PADDLE ON WIN32 with static library"
164+
# FORCE)
162165

163166
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /bigobj")
164167
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /bigobj")

ci/windows/build.bat

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ if "%WITH_TESTING%"=="ON" (
208208
)
209209

210210
cd /d %work_dir%\%BUILD_DIR%
211-
echo cmake .. -G %GENERATOR% --trace-expand -DCMAKE_BUILD_TYPE=Release -DWITH_AVX=%WITH_AVX% -DWITH_GPU=%WITH_GPU% -DWITH_MKL=%WITH_MKL% ^
211+
echo cmake .. -G %GENERATOR% -DCMAKE_BUILD_TYPE=Release -DWITH_AVX=%WITH_AVX% -DWITH_GPU=%WITH_GPU% -DWITH_MKL=%WITH_MKL% ^
212212
-DWITH_TESTING=%WITH_TESTING% -DWITH_PYTHON=%WITH_PYTHON% -DPYTHON_EXECUTABLE=%PYTHON_EXECUTABLE% -DON_INFER=%ON_INFER% ^
213213
-DWITH_INFERENCE_API_TEST=%WITH_INFERENCE_API_TEST% -DTHIRD_PARTY_PATH=%THIRD_PARTY_PATH% ^
214214
-DINFERENCE_DEMO_INSTALL_DIR=%INFERENCE_DEMO_INSTALL_DIR% -DWITH_STATIC_LIB=%WITH_STATIC_LIB% ^
@@ -217,7 +217,18 @@ echo cmake .. -G %GENERATOR% --trace-expand -DCMAKE_BUILD_TYPE=Release -DWITH_AV
217217
-DCUDA_TOOLKIT_ROOT_DIR="%CUDA_TOOLKIT_ROOT_DIR%" -DNEW_RELEASE_ALL=%NEW_RELEASE_ALL% -DNEW_RELEASE_PYPI=%NEW_RELEASE_PYPI% ^
218218
-DNEW_RELEASE_JIT=%NEW_RELEASE_JIT% -DWITH_ONNXRUNTIME=%WITH_ONNXRUNTIME% -DWITH_CPP_TEST=%WITH_CPP_TEST% ^
219219
-DWIN_UNITTEST_LEVEL=%WIN_UNITTEST_LEVEL% -DWITH_NIGHTLY_BUILD=%WITH_NIGHTLY_BUILD% -DWITH_PIP_CUDA_LIBRARIES=%WITH_PIP_CUDA_LIBRARIES% ^
220-
-DWITH_SCCACHE=%WITH_SCCACHE% >> %work_dir%\win_cmake.sh
220+
-DWITH_SCCACHE=%WITH_SCCACHE% -DWITH_SHARED_PHI=%WITH_SHARED_PHI% >> %work_dir%\win_cmake.sh
221+
222+
echo cmake .. -G %GENERATOR% -DCMAKE_BUILD_TYPE=Release -DWITH_AVX=%WITH_AVX% -DWITH_GPU=%WITH_GPU% -DWITH_MKL=%WITH_MKL% ^
223+
-DWITH_TESTING=%WITH_TESTING% -DWITH_PYTHON=%WITH_PYTHON% -DPYTHON_EXECUTABLE=%PYTHON_EXECUTABLE% -DON_INFER=%ON_INFER% ^
224+
-DWITH_INFERENCE_API_TEST=%WITH_INFERENCE_API_TEST% -DTHIRD_PARTY_PATH=%THIRD_PARTY_PATH% ^
225+
-DINFERENCE_DEMO_INSTALL_DIR=%INFERENCE_DEMO_INSTALL_DIR% -DWITH_STATIC_LIB=%WITH_STATIC_LIB% ^
226+
-DWITH_TENSORRT=%WITH_TENSORRT% -DTENSORRT_ROOT="%TENSORRT_ROOT%" -DMSVC_STATIC_CRT=%MSVC_STATIC_CRT% ^
227+
-DWITH_UNITY_BUILD=%WITH_UNITY_BUILD% -DCUDA_ARCH_NAME=%CUDA_ARCH_NAME% -DCUDA_ARCH_BIN=%CUDA_ARCH_BIN% -DCUB_PATH=%THIRD_PARTY_HOME%/cub ^
228+
-DCUDA_TOOLKIT_ROOT_DIR="%CUDA_TOOLKIT_ROOT_DIR%" -DNEW_RELEASE_ALL=%NEW_RELEASE_ALL% -DNEW_RELEASE_PYPI=%NEW_RELEASE_PYPI% ^
229+
-DNEW_RELEASE_JIT=%NEW_RELEASE_JIT% -DWITH_ONNXRUNTIME=%WITH_ONNXRUNTIME% -DWITH_CPP_TEST=%WITH_CPP_TEST% ^
230+
-DWIN_UNITTEST_LEVEL=%WIN_UNITTEST_LEVEL% -DWITH_NIGHTLY_BUILD=%WITH_NIGHTLY_BUILD% -DWITH_PIP_CUDA_LIBRARIES=%WITH_PIP_CUDA_LIBRARIES% ^
231+
-DWITH_SCCACHE=%WITH_SCCACHE% -DWITH_SHARED_PHI=%WITH_SHARED_PHI%
221232

222233
cmake .. -G %GENERATOR% -DCMAKE_BUILD_TYPE=Release -DWITH_AVX=%WITH_AVX% -DWITH_GPU=%WITH_GPU% -DWITH_MKL=%WITH_MKL% ^
223234
-DWITH_TESTING=%WITH_TESTING% -DWITH_PYTHON=%WITH_PYTHON% -DPYTHON_EXECUTABLE=%PYTHON_EXECUTABLE% -DON_INFER=%ON_INFER% ^
@@ -228,7 +239,7 @@ cmake .. -G %GENERATOR% -DCMAKE_BUILD_TYPE=Release -DWITH_AVX=%WITH_AVX% -DWITH_
228239
-DCUDA_TOOLKIT_ROOT_DIR="%CUDA_TOOLKIT_ROOT_DIR%" -DNEW_RELEASE_ALL=%NEW_RELEASE_ALL% -DNEW_RELEASE_PYPI=%NEW_RELEASE_PYPI% ^
229240
-DNEW_RELEASE_JIT=%NEW_RELEASE_JIT% -DWITH_ONNXRUNTIME=%WITH_ONNXRUNTIME% -DWITH_CPP_TEST=%WITH_CPP_TEST% ^
230241
-DWIN_UNITTEST_LEVEL=%WIN_UNITTEST_LEVEL% -DWITH_NIGHTLY_BUILD=%WITH_NIGHTLY_BUILD% -DWITH_PIP_CUDA_LIBRARIES=%WITH_PIP_CUDA_LIBRARIES% ^
231-
-DWITH_SCCACHE=%WITH_SCCACHE%
242+
-DWITH_SCCACHE=%WITH_SCCACHE% -DWITH_SHARED_PHI=%WITH_SHARED_PHI%
232243
goto:eof
233244

234245
:cmake_error

cmake/external/cccl.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ include_directories(${CCCL_INCLUDE_DIR})
1717

1818
file(TO_NATIVE_PATH ${PADDLE_SOURCE_DIR}/patches/cccl/util_device.cuh.patch
1919
native_src)
20-
set(CCCL_PATCH_COMMAND git checkout -- . && git checkout ${CCCL_TAG} && patch
21-
-p1 -Nd ${CCCL_SOURCE_DIR} < ${native_src})
20+
set(CCCL_PATCH_COMMAND git checkout -- . && git checkout ${CCCL_TAG} && git
21+
apply ${native_src})
2222

2323
ExternalProject_Add(
2424
extern_cccl

cmake/generic.cmake

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -513,45 +513,45 @@ function(cc_test TARGET_NAME)
513513
set(multiValueArgs SRCS DEPS ARGS)
514514
cmake_parse_arguments(cc_test "${options}" "${oneValueArgs}"
515515
"${multiValueArgs}" ${ARGN})
516-
if(WIN32)
517-
# NOTE(zhiqiu): on windows platform, the symbols should be exported
518-
# explicitly by __declspec(dllexport), however, there are several
519-
# symbols not exported, and link error occurs.
520-
# so, the tests are not built against dynamic libraries now.
521-
cc_test_old(
522-
${TARGET_NAME}
523-
SRCS
524-
${cc_test_SRCS}
525-
DEPS
526-
${cc_test_DEPS}
527-
ARGS
528-
${cc_test_ARGS})
529-
else()
530-
list(LENGTH cc_test_SRCS len)
531-
# message("cc_test_SRCS ${cc_test_SRCS}")
532-
# message("cc_test_ARGS ${cc_test_ARGS}")
533-
534-
if(${len} GREATER 1)
535-
message(
536-
SEND_ERROR
537-
"The number source file of cc_test should be 1, but got ${len}, the source files are: ${cc_test_SRCS}"
538-
)
539-
endif()
516+
# if(WIN32)
517+
# # NOTE(zhiqiu): on windows platform, the symbols should be exported
518+
# # explicitly by __declspec(dllexport), however, there are several
519+
# # symbols not exported, and link error occurs.
520+
# # so, the tests are not built against dynamic libraries now.
521+
# cc_test_old(
522+
# ${TARGET_NAME}
523+
# SRCS
524+
# ${cc_test_SRCS}
525+
# DEPS
526+
# ${cc_test_DEPS}
527+
# ARGS
528+
# ${cc_test_ARGS})
529+
# else()
530+
list(LENGTH cc_test_SRCS len)
531+
# message("cc_test_SRCS ${cc_test_SRCS}")
532+
# message("cc_test_ARGS ${cc_test_ARGS}")
533+
534+
if(${len} GREATER 1)
535+
message(
536+
SEND_ERROR
537+
"The number source file of cc_test should be 1, but got ${len}, the source files are: ${cc_test_SRCS}"
538+
)
539+
endif()
540540

541-
list(LENGTH cc_test_ARGS len_arg)
542-
if(len_arg GREATER_EQUAL 1)
543-
set_property(GLOBAL PROPERTY "${TARGET_NAME}_ARGS" "${cc_test_ARGS}")
544-
#message("${TARGET_NAME}_ARGS arg ${arg}")
545-
endif()
541+
list(LENGTH cc_test_ARGS len_arg)
542+
if(len_arg GREATER_EQUAL 1)
543+
set_property(GLOBAL PROPERTY "${TARGET_NAME}_ARGS" "${cc_test_ARGS}")
544+
#message("${TARGET_NAME}_ARGS arg ${arg}")
545+
endif()
546546

547-
get_property(test_srcs GLOBAL PROPERTY TEST_SRCS)
548-
set(test_srcs ${test_srcs} "${CMAKE_CURRENT_SOURCE_DIR}/${cc_test_SRCS}")
549-
set_property(GLOBAL PROPERTY TEST_SRCS "${test_srcs}")
547+
get_property(test_srcs GLOBAL PROPERTY TEST_SRCS)
548+
set(test_srcs ${test_srcs} "${CMAKE_CURRENT_SOURCE_DIR}/${cc_test_SRCS}")
549+
set_property(GLOBAL PROPERTY TEST_SRCS "${test_srcs}")
550550

551-
get_property(test_names GLOBAL PROPERTY TEST_NAMES)
552-
set(test_names ${test_names} ${TARGET_NAME})
553-
set_property(GLOBAL PROPERTY TEST_NAMES "${test_names}")
554-
endif()
551+
get_property(test_names GLOBAL PROPERTY TEST_NAMES)
552+
set(test_names ${test_names} ${TARGET_NAME})
553+
set_property(GLOBAL PROPERTY TEST_NAMES "${test_names}")
554+
# endif()
555555
endif()
556556
endfunction()
557557

cmake/inference_lib.cmake

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,11 @@ copy(
288288
DSTS ${PADDLE_INFERENCE_INSTALL_DIR}/paddle/lib)
289289

290290
if(WIN32)
291+
set(paddle_phi_libs ${PADDLE_BINARY_DIR}/paddle/phi/phi*)
292+
copy(
293+
inference_lib_dist
294+
SRCS ${paddle_phi_libs}
295+
DSTS ${PADDLE_INFERENCE_INSTALL_DIR}/paddle/lib)
291296
if(WITH_STATIC_LIB)
292297
set(paddle_inference_lib
293298
$<TARGET_FILE_DIR:paddle_inference>/libpaddle_inference.lib

paddle/common/flags.cc

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1799,6 +1799,15 @@ PHI_DEFINE_EXPORTED_string(
17991799
"",
18001800
"Remove some redundant information when printing the pir program");
18011801

1802+
#ifdef _WIN32
1803+
PHI_DEFINE_EXPORTED_string(
1804+
flagcx_dir, // NOLINT
1805+
"",
1806+
"Specify path for loading libflagcx.so. For instance, "
1807+
"For instance, /usr/local/flagcx/lib. If default, "
1808+
"dlopen will search flagcx from LD_LIBRARY_PATH");
1809+
#endif
1810+
18021811
/**
18031812
* ProcessGroupNCCL related FLAG
18041813
* Name: enable_async_trace

paddle/common/flags.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,10 @@
5252
#define PD_DECLARE_string(name) DECLARE_string(name)
5353
#endif
5454

55-
#define PD_DECLARE_VARIABLE(type, name) \
56-
namespace paddle_flags { \
57-
extern PHI_IMPORT_FLAG type FLAGS_##name; \
58-
} \
55+
#define PD_DECLARE_VARIABLE(type, name) \
56+
namespace paddle_flags { \
57+
extern COMMON_IMPORT_FLAG type FLAGS_##name; \
58+
} \
5959
using paddle_flags::FLAGS_##name
6060

6161
#define COMMON_DECLARE_VARIABLE(type, name) \
@@ -358,16 +358,16 @@ PADDLE_API ExportedFlagInfoMap* GetMutableExportedFlagInfoMap();
358358
int Touch() const { return 0; } \
359359
}; \
360360
static __PaddleRegisterFlag_##__name __PaddleRegisterFlag_instance##__name; \
361-
int TouchPaddleFlagRegister_##__name() { \
361+
PADDLE_API int TouchPaddleFlagRegister_##__name() { \
362362
return __PaddleRegisterFlag_instance##__name.Touch(); \
363363
} \
364364
static_assert(std::is_same<__PaddleRegisterFlag_##__name, \
365365
::__PaddleRegisterFlag_##__name>::value, \
366366
"FLAGS should define in global namespace")
367367

368-
#define PADDLE_FORCE_LINK_FLAG(__name) \
369-
extern int TouchPaddleFlagRegister_##__name(); \
370-
UNUSED static int __paddle_use_flag_##__name = \
368+
#define PADDLE_FORCE_LINK_FLAG(__name) \
369+
PADDLE_API extern int TouchPaddleFlagRegister_##__name(); \
370+
UNUSED static int __paddle_use_flag_##__name = \
371371
TouchPaddleFlagRegister_##__name()
372372

373373
#define PHI_DEFINE_EXPORTED_bool(name, default_value, doc) \

0 commit comments

Comments
 (0)