Skip to content

Commit adbf97b

Browse files
author
Yibing Liu
committed
Merge branch 'develop' of upstream into deconv_group
2 parents 7a55704 + 01c0a81 commit adbf97b

File tree

104 files changed

+2228
-4986
lines changed

Some content is hidden

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

104 files changed

+2228
-4986
lines changed

CMakeLists.txt

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,9 @@ endif()
100100
set(THIRD_PARTY_PATH "${CMAKE_BINARY_DIR}/third_party" CACHE STRING
101101
"A path setting third party libraries download & build directories.")
102102

103+
set(FLUID_INSTALL_DIR "${CMAKE_BINARY_DIR}/fluid_install_dir" CACHE STRING
104+
"A path setting fluid shared and static libraries")
105+
103106
if (WITH_C_API AND WITH_PYTHON)
104107
message(WARNING "It is suggest not embedded a python interpreter in Paddle "
105108
"when using C-API. It will give an unpredictable behavior when using a "
@@ -117,13 +120,14 @@ else()
117120
endif()
118121

119122
set(WITH_MKLML ${WITH_MKL})
120-
if (WITH_MKL AND AVX2_FOUND)
121-
set(WITH_MKLDNN ON)
122-
else()
123-
message(STATUS "Do not have AVX2 intrinsics and disabled MKL-DNN")
124-
set(WITH_MKLDNN OFF)
123+
if (NOT DEFINED WITH_MKLDNN)
124+
if (WITH_MKL AND AVX2_FOUND)
125+
set(WITH_MKLDNN ON)
126+
else()
127+
message(STATUS "Do not have AVX2 intrinsics and disabled MKL-DNN")
128+
set(WITH_MKLDNN OFF)
129+
endif()
125130
endif()
126-
127131
########################################################################################
128132

129133
include(external/mklml) # download mklml package

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ RUN localedef -i en_US -f UTF-8 en_US.UTF-8
7070
# specify sphinx version as 1.5.6 and remove -U option for [pip install -U
7171
# sphinx-rtd-theme] since -U option will cause sphinx being updated to newest
7272
# version(1.7.1 for now), which causes building documentation failed.
73-
RUN pip install --upgrade pip==9.0.3 && \
73+
RUN easy_install -U pip && \
7474
pip install -U wheel && \
7575
pip install -U docopt PyYAML sphinx==1.5.6 && \
7676
pip install sphinx-rtd-theme==0.1.9 recommonmark

benchmark/fluid/mnist.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,7 @@ def run_benchmark(model, args):
159159
paddle.dataset.mnist.train(), batch_size=args.batch_size)
160160

161161
accuracy = fluid.metrics.Accuracy()
162+
train_exe = fluid.ParallelExecutor(use_cuda=True, loss_name=avg_cost.name)
162163
iters, num_samples, start_time = 0, 0, time.time()
163164
for pass_id in range(args.pass_num):
164165
accuracy.reset()
@@ -175,17 +176,20 @@ def run_benchmark(model, args):
175176
y_data = np.array(map(lambda x: x[1], data)).astype("int64")
176177
y_data = y_data.reshape([len(y_data), 1])
177178

178-
outs = exe.run(
179-
fluid.default_main_program(),
179+
outs = train_exe.run(
180180
feed={"pixel": img_data,
181181
"label": y_data},
182-
fetch_list=[avg_cost, batch_acc, batch_size_tensor]
182+
fetch_list=[
183+
avg_cost.name, batch_acc.name, batch_size_tensor.name
184+
]
183185
) # The accuracy is the accumulation of batches, but not the current batch.
184-
accuracy.update(value=outs[1], weight=outs[2])
186+
accuracy.update(
187+
value=np.array(np.mean(outs[1])),
188+
weight=np.mean(np.array(outs[2])))
185189
iters += 1
186190
num_samples += len(y_data)
187-
loss = np.array(outs[0])
188-
acc = np.array(outs[1])
191+
loss = np.mean(np.array(outs[0]))
192+
acc = np.mean(np.array(outs[1]))
189193
train_losses.append(loss)
190194
train_accs.append(acc)
191195
print("Pass: %d, Iter: %d, Loss: %f, Accuracy: %f" %

benchmark/fluid/resnet.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,7 @@ def test(exe):
241241
exe = fluid.Executor(place)
242242
exe.run(fluid.default_startup_program())
243243
accuracy = fluid.average.WeightedAverage()
244+
train_exe = fluid.ParallelExecutor(use_cuda=True, loss_name=avg_cost.name)
244245
if args.use_fake_data:
245246
data = train_reader().next()
246247
image = np.array(map(lambda x: x[0].reshape(dshape), data)).astype(
@@ -264,14 +265,17 @@ def test(exe):
264265
data)).astype('float32')
265266
label = np.array(map(lambda x: x[1], data)).astype('int64')
266267
label = label.reshape([-1, 1])
267-
loss, acc, weight = exe.run(
268-
fluid.default_main_program(),
268+
loss, acc, weight = train_exe.run(
269269
feed={'data': image,
270270
'label': label},
271-
fetch_list=[avg_cost, batch_acc, batch_size_tensor])
271+
fetch_list=[
272+
avg_cost.name, batch_acc.name, batch_size_tensor.name
273+
])
272274
iters += 1
273275
num_samples += len(label)
274-
accuracy.add(value=acc, weight=weight)
276+
accuracy.add(value=np.array(np.mean(acc)), weight=np.mean(weight))
277+
loss = np.mean(np.array(loss))
278+
acc = np.mean(np.array(acc))
275279
train_losses.append(loss)
276280
train_accs.append(acc)
277281
print("Pass: %d, Iter: %d, Loss: %f, Accuracy: %f" %

benchmark/fluid/vgg.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,7 @@ def test(exe):
169169

170170
iters, num_samples, start_time = 0, 0, time.time()
171171
accuracy = fluid.average.WeightedAverage()
172+
train_exe = fluid.ParallelExecutor(use_cuda=True, loss_name=avg_cost.name)
172173
for pass_id in range(args.pass_num):
173174
accuracy.reset()
174175
train_accs = []
@@ -184,14 +185,17 @@ def test(exe):
184185
y_data = np.array(map(lambda x: x[1], data)).astype("int64")
185186
y_data = y_data.reshape([-1, 1])
186187

187-
loss, acc, weight = exe.run(
188-
fluid.default_main_program(),
188+
loss, acc, weight = train_exe.run(
189189
feed={"pixel": img_data,
190190
"label": y_data},
191-
fetch_list=[avg_cost, batch_acc, batch_size_tensor])
192-
accuracy.add(value=acc, weight=weight)
191+
fetch_list=[
192+
avg_cost.name, batch_acc.name, batch_size_tensor.name
193+
])
194+
accuracy.add(value=np.array(np.mean(acc)), weight=np.mean(weight))
193195
iters += 1
194196
num_samples += len(y_data)
197+
loss = np.mean(np.array(loss))
198+
acc = np.mean(np.array(acc))
195199
print(
196200
"Pass = %d, Iter = %d, Loss = %f, Accuracy = %f" %
197201
(pass_id, iters, loss, acc)

cmake/external/boost.cmake

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,12 @@ set(BOOST_PROJECT "extern_boost")
2323
# checked that the devtools package of CentOS 6 installs boost 1.41.0.
2424
# So we use 1.41.0 here.
2525
set(BOOST_VER "1.41.0")
26-
set(BOOST_TAR "boost_1_41_0")
27-
set(BOOST_URL "http://paddlepaddledeps.bj.bcebos.com/${BOOST_TAR}.tar.gz")
26+
if((NOT DEFINED BOOST_TAR) OR (NOT DEFINED BOOST_URL))
27+
message(STATUS "use pre defined download url")
28+
set(BOOST_TAR "boost_1_41_0" CACHE STRING "" FORCE)
29+
set(BOOST_URL "http://paddlepaddledeps.bj.bcebos.com/${BOOST_TAR}.tar.gz" CACHE STRING "" FORCE)
30+
endif()
31+
MESSAGE(STATUS "BOOST_TAR: ${BOOST_TAR}, BOOST_URL: ${BOOST_URL}")
2832
set(BOOST_SOURCES_DIR ${THIRD_PARTY_PATH}/boost)
2933
set(BOOST_DOWNLOAD_DIR "${BOOST_SOURCES_DIR}/src/${BOOST_PROJECT}")
3034
set(BOOST_INCLUDE_DIR "${BOOST_DOWNLOAD_DIR}/${BOOST_TAR}" CACHE PATH "boost include directory." FORCE)

cmake/external/eigen.cmake

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,12 @@ else()
2121
ExternalProject_Add(
2222
extern_eigen3
2323
${EXTERNAL_PROJECT_LOG_ARGS}
24-
GIT_REPOSITORY "https://github.com/RLovelett/eigen.git"
24+
GIT_REPOSITORY "https://github.com/eigenteam/eigen-git-mirror"
2525
# eigen on cuda9.1 missing header of math_funtions.hpp
2626
# https://stackoverflow.com/questions/43113508/math-functions-hpp-not-found-when-using-cuda-with-eigen
2727
GIT_TAG 917060c364181f33a735dc023818d5a54f60e54c
2828
PREFIX ${EIGEN_SOURCE_DIR}
29+
DOWNLOAD_NAME "eigen"
2930
UPDATE_COMMAND ""
3031
CONFIGURE_COMMAND ""
3132
BUILD_COMMAND ""

cmake/external/mkldnn.cmake

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,9 @@ ExternalProject_Add(
5353
${EXTERNAL_PROJECT_LOG_ARGS}
5454
DEPENDS ${MKLDNN_DEPENDS}
5555
GIT_REPOSITORY "https://github.com/01org/mkl-dnn.git"
56-
GIT_TAG "v0.14"
56+
GIT_TAG "db3424ad44901513c03a1ea31ccaacdf633fbe9f"
5757
PREFIX ${MKLDNN_SOURCES_DIR}
5858
UPDATE_COMMAND ""
59-
# Patch MKLDNN to compile with gcc 4.8, the related issue is in intel/mkl-dnn#237.
60-
PATCH_COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/patches/mkldnn.hpp ${MKLDNN_SOURCES_DIR}/src/extern_mkldnn/include/mkldnn.hpp
6159
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${MKLDNN_INSTALL_DIR}
6260
CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
6361
CMAKE_ARGS -DMKLROOT=${MKLML_ROOT}

cmake/external/mklml.cmake

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,12 @@ ENDIF()
2727
INCLUDE(ExternalProject)
2828

2929
SET(MKLML_PROJECT "extern_mklml")
30-
SET(MKLML_VER "mklml_lnx_2018.0.3.20180406")
31-
SET(MKLML_URL "http://paddlepaddledeps.bj.bcebos.com/${MKLML_VER}.tgz")
30+
IF((NOT DEFINED MKLML_VER) OR (NOT DEFINED MKLML_URL))
31+
MESSAGE(STATUS "use pre defined download url")
32+
SET(MKLML_VER "mklml_lnx_2018.0.3.20180406" CACHE STRING "" FORCE)
33+
SET(MKLML_URL "http://paddlepaddledeps.bj.bcebos.com/${MKLML_VER}.tgz" CACHE STRING "" FORCE)
34+
ENDIF()
35+
MESSAGE(STATUS "MKLML_VER: ${MKLML_VER}, MKLML_URL: ${MKLML_URL}")
3236
SET(MKLML_SOURCE_DIR "${THIRD_PARTY_PATH}/mklml")
3337
SET(MKLML_DOWNLOAD_DIR "${MKLML_SOURCE_DIR}/src/${MKLML_PROJECT}")
3438
SET(MKLML_DST_DIR "mklml")

cmake/generic.cmake

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ endfunction(cc_binary)
231231

232232
function(cc_test TARGET_NAME)
233233
if(WITH_TESTING)
234-
set(options "")
234+
set(options SERIAL)
235235
set(oneValueArgs "")
236236
set(multiValueArgs SRCS DEPS ARGS)
237237
cmake_parse_arguments(cc_test "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
@@ -241,6 +241,9 @@ function(cc_test TARGET_NAME)
241241
add_test(NAME ${TARGET_NAME}
242242
COMMAND ${TARGET_NAME} ${cc_test_ARGS}
243243
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
244+
if (${cc_test_SERIAL})
245+
set_property(TEST ${TARGET_NAME} PROPERTY SERIAL 1)
246+
endif()
244247
endif()
245248
endfunction(cc_test)
246249

@@ -295,14 +298,17 @@ endfunction(nv_binary)
295298

296299
function(nv_test TARGET_NAME)
297300
if (WITH_GPU AND WITH_TESTING)
298-
set(options "")
301+
set(options SERIAL)
299302
set(oneValueArgs "")
300303
set(multiValueArgs SRCS DEPS)
301304
cmake_parse_arguments(nv_test "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
302305
cuda_add_executable(${TARGET_NAME} ${nv_test_SRCS})
303306
target_link_libraries(${TARGET_NAME} ${nv_test_DEPS} paddle_gtest_main memory gtest gflags glog)
304307
add_dependencies(${TARGET_NAME} ${nv_test_DEPS} paddle_gtest_main memory gtest gflags glog)
305308
add_test(${TARGET_NAME} ${TARGET_NAME})
309+
if (nv_test_SERIAL)
310+
set_property(TEST ${TARGET_NAME} PROPERTY SERIAL 1)
311+
endif()
306312
endif()
307313
endfunction(nv_test)
308314

0 commit comments

Comments
 (0)