Skip to content

Commit 0f25446

Browse files
committed
Merge remote-tracking branch 'ups/develop' into fea/jit/rnn
2 parents 3562051 + d93349a commit 0f25446

Some content is hidden

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

68 files changed

+1900
-743
lines changed

AUTHORS.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
| kexinzhao | Ke-Xin Zhao |
2626
| kuke | Yi-Bing Liu |
2727
| lcy-seso | Ying Cao |
28+
| cjld | Dun Liang |
2829
| lipeng-unisound | Peng Li |
2930
| liuyuan | Yuan Liu |
3031
| livc | Zhao Li |

CMakeLists.txt

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,21 @@ if (APPLE OR WIN32)
130130
"Disable MKL for building on mac and windows" FORCE)
131131
endif()
132132

133+
if (WIN32)
134+
set(WITH_AVX OFF CACHE STRING
135+
"Disable AVX when compiling for Windows" FORCE)
136+
set(WITH_DSO OFF CACHE STRING
137+
"Disable DSO when compiling for Windows" FORCE)
138+
set(WITH_MKL OFF CACHE STRING
139+
"Disable MKL when compiling for Windows" FORCE)
140+
set(WITH_DISTRIBUTE OFF CACHE STRING
141+
"Disable DISTRIBUTE when compiling for Windows" FORCE)
142+
set(WITH_C_API OFF CACHE STRING
143+
"Disable C_API when compiling for Windows" FORCE)
144+
set(WITH_FLUID_ONLY ON CACHE STRING
145+
"Enable FLUID_ONLY when compiling for Windows" FORCE)
146+
endif()
147+
133148
set(THIRD_PARTY_PATH "${CMAKE_BINARY_DIR}/third_party" CACHE STRING
134149
"A path setting third party libraries download & build directories.")
135150

@@ -190,11 +205,11 @@ include(external/pybind11) # download pybind11
190205
include(external/cares)
191206
include(external/cub)
192207
include(external/xxhash) # download xxhash
193-
194-
if (NOT WIN32)
195-
# there is no official support of snappystream, warpctc, nccl, cupti in windows
196208
include(external/snappy) # download snappy
197209
include(external/snappystream) # download snappystream
210+
211+
if (NOT WIN32)
212+
# there is no official support of warpctc, nccl, cupti in windows
198213
include(external/warpctc) # download, build, install warpctc
199214
include(cupti)
200215
endif (NOT WIN32)

cmake/external/gtest.cmake

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,11 @@ IF(WITH_TESTING)
5050
CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
5151
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
5252
-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
53+
-DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}
54+
-DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG}
5355
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
56+
-DCMAKE_C_FLAGS_DEBUG=${CMAKE_C_FLAGS_DEBUG}
57+
-DCMAKE_C_FLAGS_RELEASE=${CMAKE_C_FLAGS_RELEASE}
5458
-DCMAKE_INSTALL_PREFIX=${GTEST_INSTALL_DIR}
5559
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
5660
-DBUILD_GMOCK=ON

cmake/external/snappy.cmake

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,11 @@ set(SNAPPY_SOURCES_DIR ${THIRD_PARTY_PATH}/snappy)
2424
set(SNAPPY_INSTALL_DIR ${THIRD_PARTY_PATH}/install/snappy)
2525
set(SNAPPY_INCLUDE_DIR "${SNAPPY_INSTALL_DIR}/include" CACHE PATH "snappy include directory." FORCE)
2626

27-
set(SNAPPY_LIBRARIES "${SNAPPY_INSTALL_DIR}/lib/libsnappy.a")
27+
if (WIN32)
28+
set(SNAPPY_LIBRARIES "${SNAPPY_INSTALL_DIR}/lib/snappy.lib")
29+
else(WIN32)
30+
set(SNAPPY_LIBRARIES "${SNAPPY_INSTALL_DIR}/lib/libsnappy.a")
31+
endif (WIN32)
2832

2933
ExternalProject_Add(
3034
extern_snappy
@@ -34,8 +38,12 @@ ExternalProject_Add(
3438
UPDATE_COMMAND ""
3539
CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
3640
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
37-
-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
3841
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
42+
-DCMAKE_C_FLAGS_DEBUG=${CMAKE_C_FLAGS_DEBUG}
43+
-DCMAKE_C_FLAGS_RELEASE=${CMAKE_C_FLAGS_RELEASE}
44+
-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
45+
-DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}
46+
-DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG}
3947
-DCMAKE_INSTALL_PREFIX=${SNAPPY_INSTALL_DIR}
4048
-DCMAKE_INSTALL_LIBDIR=${SNAPPY_INSTALL_DIR}/lib
4149
-DCMAKE_POSITION_INDEPENDENT_CODE=ON

cmake/external/snappystream.cmake

Lines changed: 35 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -18,36 +18,45 @@ ENDIF()
1818

1919
include (ExternalProject)
2020

21-
# NOTE: snappy is needed when linking with recordio
22-
2321
set(SNAPPYSTREAM_SOURCES_DIR ${THIRD_PARTY_PATH}/snappy_stream)
2422
set(SNAPPYSTREAM_INSTALL_DIR ${THIRD_PARTY_PATH}/install/snappy_stream)
2523
set(SNAPPYSTREAM_INCLUDE_DIR "${SNAPPYSTREAM_INSTALL_DIR}/include" CACHE PATH "snappy stream include directory." FORCE)
2624

27-
set(SNAPPYSTREAM_LIBRARIES "${SNAPPYSTREAM_INSTALL_DIR}/lib/libsnappystream.a")
28-
29-
ExternalProject_Add(
30-
extern_snappystream
31-
GIT_REPOSITORY "https://github.com/hoxnox/snappystream.git"
32-
GIT_TAG "0.2.8"
33-
PREFIX ${SNAPPYSTREAM_SOURCES_DIR}
34-
UPDATE_COMMAND ""
35-
CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
36-
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
37-
-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
38-
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
39-
-DCMAKE_INSTALL_PREFIX=${SNAPPY_INSTALL_DIR}
40-
-DCMAKE_INSTALL_LIBDIR=${SNAPPY_INSTALL_DIR}/lib
41-
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
42-
-DCMAKE_BUILD_TYPE=${THIRD_PARTY_BUILD_TYPE}
43-
-DSNAPPY_ROOT=${SNAPPY_INSTALL_DIR}
44-
${EXTERNAL_OPTIONAL_ARGS}
45-
CMAKE_CACHE_ARGS
46-
-DCMAKE_INSTALL_PREFIX:PATH=${SNAPPYSTREAM_INSTALL_DIR}
47-
-DCMAKE_INSTALL_LIBDIR:PATH=${SNAPPYSTREAM_INSTALL_DIR}/lib
48-
-DCMAKE_BUILD_TYPE:STRING=${THIRD_PARTY_BUILD_TYPE}
49-
DEPENDS snappy
50-
)
25+
if(WIN32)
26+
# Fix me, VS2015 come without VLA support
27+
set(SNAPPYSTREAM_LIBRARIES "${SNAPPYSTREAM_INSTALL_DIR}/lib/snappystream.lib")
28+
MESSAGE(WARNING, "In windows, snappystream has no compile support for windows,
29+
please build it manually and put it at " ${SNAPPYSTREAM_INSTALL_DIR})
30+
else(WIN32)
31+
set(SNAPPYSTREAM_LIBRARIES "${SNAPPYSTREAM_INSTALL_DIR}/lib/libsnappystream.a")
32+
33+
ExternalProject_Add(
34+
extern_snappystream
35+
GIT_REPOSITORY "https://github.com/hoxnox/snappystream.git"
36+
GIT_TAG "0.2.8"
37+
PREFIX ${SNAPPYSTREAM_SOURCES_DIR}
38+
UPDATE_COMMAND ""
39+
CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
40+
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
41+
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
42+
-DCMAKE_C_FLAGS_DEBUG=${CMAKE_C_FLAGS_DEBUG}
43+
-DCMAKE_C_FLAGS_RELEASE=${CMAKE_C_FLAGS_RELEASE}
44+
-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
45+
-DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}
46+
-DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG}
47+
-DCMAKE_INSTALL_PREFIX=${SNAPPY_INSTALL_DIR}
48+
-DCMAKE_INSTALL_LIBDIR=${SNAPPY_INSTALL_DIR}/lib
49+
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
50+
-DCMAKE_BUILD_TYPE=${THIRD_PARTY_BUILD_TYPE}
51+
-DSNAPPY_ROOT=${SNAPPY_INSTALL_DIR}
52+
${EXTERNAL_OPTIONAL_ARGS}
53+
CMAKE_CACHE_ARGS
54+
-DCMAKE_INSTALL_PREFIX:PATH=${SNAPPYSTREAM_INSTALL_DIR}
55+
-DCMAKE_INSTALL_LIBDIR:PATH=${SNAPPYSTREAM_INSTALL_DIR}/lib
56+
-DCMAKE_BUILD_TYPE:STRING=${THIRD_PARTY_BUILD_TYPE}
57+
DEPENDS snappy
58+
)
59+
endif(WIN32)
5160

5261
add_library(snappystream STATIC IMPORTED GLOBAL)
5362
set_property(TARGET snappystream PROPERTY IMPORTED_LOCATION ${SNAPPYSTREAM_LIBRARIES})

cmake/generic.cmake

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -351,6 +351,9 @@ function(cc_test TARGET_NAME)
351351
cmake_parse_arguments(cc_test "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
352352
add_executable(${TARGET_NAME} ${cc_test_SRCS})
353353
target_link_libraries(${TARGET_NAME} ${cc_test_DEPS} paddle_gtest_main lod_tensor memory gtest gflags glog)
354+
if(WIN32)
355+
target_link_libraries(${TARGET_NAME} shlwapi)
356+
endif(WIN32)
354357
add_dependencies(${TARGET_NAME} ${cc_test_DEPS} paddle_gtest_main lod_tensor memory gtest gflags glog)
355358
add_test(NAME ${TARGET_NAME}
356359
COMMAND ${TARGET_NAME} ${cc_test_ARGS}

cmake/operators.cmake

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,7 @@ function(op_library TARGET)
8484
endif()
8585
if (WIN32)
8686
# remove windows unsupported op, because windows has no nccl, no warpctc such ops.
87-
foreach(windows_unsupport_op "nccl_op" "gen_nccl_id_op" "warpctc_op" "hierarchical_sigmoid_op"
88-
"crf_decoding_op" "select_op" "lstmp_op" "gru_op" "fusion_gru_op" "lstm_op" "fusion_lstm_op" "cumsum_op"
89-
"fusion_seqconv_eltadd_relu_op" "channel_send_op" "channel_create_op" "channel_close_op" "channel_recv_op")
87+
foreach(windows_unsupport_op "nccl_op" "gen_nccl_id_op" "warpctc_op")
9088
if ("${TARGET}" STREQUAL "${windows_unsupport_op}")
9189
return()
9290
endif()

cmake/simd.cmake

Lines changed: 38 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -57,43 +57,46 @@ int main()
5757
return 0;
5858
}" SSE3_FOUND)
5959

60-
# Check AVX
61-
set(CMAKE_REQUIRED_FLAGS ${AVX_FLAG})
62-
set(AVX_FOUND_EXITCODE 1 CACHE STRING "Result from TRY_RUN" FORCE)
63-
CHECK_CXX_SOURCE_RUNS("
64-
#include <immintrin.h>
65-
int main()
66-
{
67-
__m256 a = _mm256_set_ps (-1.0f, 2.0f, -3.0f, 4.0f, -1.0f, 2.0f, -3.0f, 4.0f);
68-
__m256 b = _mm256_set_ps (1.0f, 2.0f, 3.0f, 4.0f, 1.0f, 2.0f, 3.0f, 4.0f);
69-
__m256 result = _mm256_add_ps (a, b);
70-
return 0;
71-
}" AVX_FOUND)
60+
# disable AVX by default on windows
61+
if(NOT WIN32)
62+
# Check AVX
63+
set(CMAKE_REQUIRED_FLAGS ${AVX_FLAG})
64+
set(AVX_FOUND_EXITCODE 1 CACHE STRING "Result from TRY_RUN" FORCE)
65+
CHECK_CXX_SOURCE_RUNS("
66+
#include <immintrin.h>
67+
int main()
68+
{
69+
__m256 a = _mm256_set_ps (-1.0f, 2.0f, -3.0f, 4.0f, -1.0f, 2.0f, -3.0f, 4.0f);
70+
__m256 b = _mm256_set_ps (1.0f, 2.0f, 3.0f, 4.0f, 1.0f, 2.0f, 3.0f, 4.0f);
71+
__m256 result = _mm256_add_ps (a, b);
72+
return 0;
73+
}" AVX_FOUND)
7274

73-
# Check AVX 2
74-
set(CMAKE_REQUIRED_FLAGS ${AVX2_FLAG})
75-
set(AVX2_FOUND_EXITCODE 1 CACHE STRING "Result from TRY_RUN" FORCE)
76-
CHECK_CXX_SOURCE_RUNS("
77-
#include <immintrin.h>
78-
int main()
79-
{
80-
__m256i a = _mm256_set_epi32 (-1, 2, -3, 4, -1, 2, -3, 4);
81-
__m256i result = _mm256_abs_epi32 (a);
82-
return 0;
83-
}" AVX2_FOUND)
75+
# Check AVX 2
76+
set(CMAKE_REQUIRED_FLAGS ${AVX2_FLAG})
77+
set(AVX2_FOUND_EXITCODE 1 CACHE STRING "Result from TRY_RUN" FORCE)
78+
CHECK_CXX_SOURCE_RUNS("
79+
#include <immintrin.h>
80+
int main()
81+
{
82+
__m256i a = _mm256_set_epi32 (-1, 2, -3, 4, -1, 2, -3, 4);
83+
__m256i result = _mm256_abs_epi32 (a);
84+
return 0;
85+
}" AVX2_FOUND)
8486

85-
# Check AVX512F
86-
set(CMAKE_REQUIRED_FLAGS ${AVX512F_FLAG})
87-
set(AVX512F_FOUND_EXITCODE 1 CACHE STRING "Result from TRY_RUN" FORCE)
88-
CHECK_CXX_SOURCE_RUNS("
89-
#include <immintrin.h>
90-
int main()
91-
{
92-
__m512i a = _mm512_set_epi32 (-1, 2, -3, 4, -1, 2, -3, 4,
93-
13, -5, 6, -7, 9, 2, -6, 3);
94-
__m512i result = _mm512_abs_epi32 (a);
95-
return 0;
96-
}" AVX512F_FOUND)
87+
# Check AVX512F
88+
set(CMAKE_REQUIRED_FLAGS ${AVX512F_FLAG})
89+
set(AVX512F_FOUND_EXITCODE 1 CACHE STRING "Result from TRY_RUN" FORCE)
90+
CHECK_CXX_SOURCE_RUNS("
91+
#include <immintrin.h>
92+
int main()
93+
{
94+
__m512i a = _mm512_set_epi32 (-1, 2, -3, 4, -1, 2, -3, 4,
95+
13, -5, 6, -7, 9, 2, -6, 3);
96+
__m512i result = _mm512_abs_epi32 (a);
97+
return 0;
98+
}" AVX512F_FOUND)
99+
endif(NOT WIN32)
97100

98101
set(CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS_RETAINED})
99102
mark_as_advanced(MMX_FOUND SSE2_FOUND SSE3_FOUND AVX_FOUND AVX2_FOUND AVX512F_FOUND)

paddle/fluid/API.spec

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ paddle.fluid.layers.beam_search ArgSpec(args=['pre_ids', 'pre_scores', 'ids', 's
103103
paddle.fluid.layers.row_conv ArgSpec(args=['input', 'future_context_size', 'param_attr', 'act'], varargs=None, keywords=None, defaults=(None, None))
104104
paddle.fluid.layers.multiplex ArgSpec(args=['inputs', 'index'], varargs=None, keywords=None, defaults=None)
105105
paddle.fluid.layers.layer_norm ArgSpec(args=['input', 'scale', 'shift', 'begin_norm_axis', 'epsilon', 'param_attr', 'bias_attr', 'act', 'name'], varargs=None, keywords=None, defaults=(True, True, 1, 1e-05, None, None, None, None))
106+
paddle.fluid.layers.group_norm ArgSpec(args=['input', 'groups', 'epsilon', 'param_attr', 'bias_attr', 'act', 'data_layout', 'name'], varargs=None, keywords=None, defaults=(1e-05, None, None, None, 'NCHW', None))
106107
paddle.fluid.layers.softmax_with_cross_entropy ArgSpec(args=['logits', 'label', 'soft_label', 'ignore_index', 'numeric_stable_mode', 'return_softmax'], varargs=None, keywords=None, defaults=(False, -100, False, False))
107108
paddle.fluid.layers.smooth_l1 ArgSpec(args=['x', 'y', 'inside_weight', 'outside_weight', 'sigma'], varargs=None, keywords=None, defaults=(None, None, None))
108109
paddle.fluid.layers.one_hot ArgSpec(args=['input', 'depth'], varargs=None, keywords=None, defaults=None)

paddle/fluid/CMakeLists.txt

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,9 @@ add_subdirectory(platform)
33
add_subdirectory(framework)
44
add_subdirectory(operators)
55
add_subdirectory(string)
6-
7-
add_subdirectory(pybind)
8-
if (NOT WIN32)
96
add_subdirectory(recordio)
10-
endif(NOT WIN32)
7+
add_subdirectory(pybind)
118

129
# NOTE: please add subdirectory inference at last.
1310
add_subdirectory(inference)
14-
1511
add_subdirectory(train)

0 commit comments

Comments
 (0)