From 7da0953903a10ba204f4ccbc82191a698ba65693 Mon Sep 17 00:00:00 2001 From: Wang Guibao Date: Mon, 20 May 2019 14:40:20 +0800 Subject: [PATCH] GPU inference support (#4) * GPU inference Change-Id: I90dc187bf5e523422cecf618ec5fea2cd0e5bf7a * GPU inference Change-Id: I7a4b418d42911ee2e74437a9e20d817aaf0fb878 * GPU prediction Change-Id: I60d8dfdb04326cfdc41686f1e1595a6292e34488 * GPU inference Change-Id: I43a6c20abc4d4ac4dd5bef59b60e467bc77c4e63 * GPU inference: 1) Fix image classification batch prediction 2) Fix documentation 3) Add image classification press test case Change-Id: I28f55ced27eea48be75d41d616bd50291d9cc506 * GPU inference: Fix press test case Change-Id: I308e3347737170c81e213f012b29419202e63dce --- CMakeLists.txt | 12 +- cmake/cuda.cmake | 231 ++++++++ cmake/paddlepaddle.cmake | 4 +- demo-client/CMakeLists.txt | 8 + .../data/images/ILSVRC2012_val_00000001.jpeg | Bin 0 -> 30696 bytes .../data/images/ILSVRC2012_val_00000002.jpeg | Bin 0 -> 39472 bytes .../data/images/ILSVRC2012_val_00000003.jpeg | Bin 0 -> 31746 bytes .../data/images/ILSVRC2012_val_00000004.jpeg | Bin 0 -> 20623 bytes .../data/images/ILSVRC2012_val_00000005.jpeg | Bin 0 -> 34624 bytes .../data/images/ILSVRC2012_val_00000006.jpeg | Bin 0 -> 64566 bytes .../data/images/ILSVRC2012_val_00000007.jpeg | Bin 0 -> 44838 bytes .../data/images/ILSVRC2012_val_00000008.jpeg | Bin 0 -> 27333 bytes .../data/images/ILSVRC2012_val_00000009.jpeg | Bin 0 -> 30459 bytes .../data/images/ILSVRC2012_val_00000010.jpeg | Bin 0 -> 18861 bytes demo-client/data/images/val.txt | 10 + demo-client/src/ximage_press.cpp | 300 ++++++++++ demo-serving/CMakeLists.txt | 8 + demo-serving/op/classify_op.cpp | 47 +- demo-serving/op/reader_op.cpp | 61 ++- demo-serving/op/write_json_op.cpp | 4 +- doc/FAQ.md | 19 + doc/INDEX.md | 17 +- doc/INSTALL.md | 7 +- doc/MULTI_SERVING_OVER_SINGLE_GPU_CARD.md | 32 ++ doc/SERVING_CONFIGURE.md | 12 +- .../include/fluid_cpu_engine.h | 4 + inferencer-fluid-gpu/CMakeLists.txt | 10 + .../include/fluid_gpu_engine.h | 517 ++++++++++++++++++ inferencer-fluid-gpu/src/fluid_gpu_engine.cpp | 59 ++ predictor/framework/infer.h | 2 +- predictor/src/pdserving.cpp | 29 +- 31 files changed, 1320 insertions(+), 73 deletions(-) create mode 100644 cmake/cuda.cmake create mode 100644 demo-client/data/images/ILSVRC2012_val_00000001.jpeg create mode 100644 demo-client/data/images/ILSVRC2012_val_00000002.jpeg create mode 100644 demo-client/data/images/ILSVRC2012_val_00000003.jpeg create mode 100644 demo-client/data/images/ILSVRC2012_val_00000004.jpeg create mode 100644 demo-client/data/images/ILSVRC2012_val_00000005.jpeg create mode 100644 demo-client/data/images/ILSVRC2012_val_00000006.jpeg create mode 100644 demo-client/data/images/ILSVRC2012_val_00000007.jpeg create mode 100644 demo-client/data/images/ILSVRC2012_val_00000008.jpeg create mode 100644 demo-client/data/images/ILSVRC2012_val_00000009.jpeg create mode 100644 demo-client/data/images/ILSVRC2012_val_00000010.jpeg create mode 100644 demo-client/data/images/val.txt create mode 100644 demo-client/src/ximage_press.cpp create mode 100644 doc/MULTI_SERVING_OVER_SINGLE_GPU_CARD.md create mode 100644 inferencer-fluid-gpu/CMakeLists.txt create mode 100644 inferencer-fluid-gpu/include/fluid_gpu_engine.h create mode 100644 inferencer-fluid-gpu/src/fluid_gpu_engine.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 33465d55..d01be6d7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,6 +28,7 @@ message(STATUS "C compiler: ${CMAKE_C_COMPILER}, version: " find_package(Git REQUIRED) find_package(Threads REQUIRED) +find_package(CUDA QUIET) include(simd) @@ -43,10 +44,10 @@ set(THIRD_PARTY_PATH "${CMAKE_BINARY_DIR}/third_party" CACHE STRING set(THIRD_PARTY_BUILD_TYPE Release) -option(WITH_AVX "Compile Paddle Serving with AVX intrinsics" ${AVX_FOUND}) -option(WITH_MKL "Compile Paddle Serving with MKL support." ${AVX_FOUND}) -option(CLIENT_ONLY "Compile client libraries and demos only" - FALSE) +option(WITH_AVX "Compile Paddle Serving with AVX intrinsics" ${AVX_FOUND}) +option(WITH_MKL "Compile Paddle Serving with MKL support." ${AVX_FOUND}) +option(WITH_GPU "Compile Paddle Serving with NVIDIA GPU" ${CUDA_FOUND}) +option(CLIENT_ONLY "Compile client libraries and demos only" FALSE) set(WITH_MKLML ${WITH_MKL}) if (NOT DEFINED WITH_MKLDNN) @@ -108,5 +109,8 @@ add_subdirectory(demo-client) if (NOT CLIENT_ONLY) add_subdirectory(predictor) add_subdirectory(inferencer-fluid-cpu) +if (WITH_GPU) +add_subdirectory(inferencer-fluid-gpu) +endif() add_subdirectory(demo-serving) endif() diff --git a/cmake/cuda.cmake b/cmake/cuda.cmake new file mode 100644 index 00000000..ef4192ec --- /dev/null +++ b/cmake/cuda.cmake @@ -0,0 +1,231 @@ +if(NOT WITH_GPU) + return() +endif() + +set(paddle_known_gpu_archs "30 35 50 52 60 61 70") +set(paddle_known_gpu_archs7 "30 35 50 52") +set(paddle_known_gpu_archs8 "30 35 50 52 60 61") +set(paddle_known_gpu_archs9 "30 35 50 52 60 61 70") +set(paddle_known_gpu_archs10 "30 35 50 52 60 61 70 75") + +###################################################################################### +# A function for automatic detection of GPUs installed (if autodetection is enabled) +# Usage: +# detect_installed_gpus(out_variable) +function(detect_installed_gpus out_variable) + if(NOT CUDA_gpu_detect_output) + set(cufile ${PROJECT_BINARY_DIR}/detect_cuda_archs.cu) + + file(WRITE ${cufile} "" + "#include \n" + "int main() {\n" + " int count = 0;\n" + " if (cudaSuccess != cudaGetDeviceCount(&count)) return -1;\n" + " if (count == 0) return -1;\n" + " for (int device = 0; device < count; ++device) {\n" + " cudaDeviceProp prop;\n" + " if (cudaSuccess == cudaGetDeviceProperties(&prop, device))\n" + " std::printf(\"%d.%d \", prop.major, prop.minor);\n" + " }\n" + " return 0;\n" + "}\n") + + execute_process(COMMAND "${CUDA_NVCC_EXECUTABLE}" "-ccbin=${CUDA_HOST_COMPILER}" + "--run" "${cufile}" + WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/CMakeFiles/" + RESULT_VARIABLE nvcc_res OUTPUT_VARIABLE nvcc_out + ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) + + if(nvcc_res EQUAL 0) + # only keep the last line of nvcc_out + STRING(REGEX REPLACE ";" "\\\\;" nvcc_out "${nvcc_out}") + STRING(REGEX REPLACE "\n" ";" nvcc_out "${nvcc_out}") + list(GET nvcc_out -1 nvcc_out) + string(REPLACE "2.1" "2.1(2.0)" nvcc_out "${nvcc_out}") + set(CUDA_gpu_detect_output ${nvcc_out} CACHE INTERNAL "Returned GPU architetures from detect_installed_gpus tool" FORCE) + endif() + endif() + + if(NOT CUDA_gpu_detect_output) + message(STATUS "Automatic GPU detection failed. Building for all known architectures.") + set(${out_variable} ${paddle_known_gpu_archs} PARENT_SCOPE) + else() + set(${out_variable} ${CUDA_gpu_detect_output} PARENT_SCOPE) + endif() +endfunction() + + +######################################################################## +# Function for selecting GPU arch flags for nvcc based on CUDA_ARCH_NAME +# Usage: +# select_nvcc_arch_flags(out_variable) +function(select_nvcc_arch_flags out_variable) + # List of arch names + set(archs_names "Kepler" "Maxwell" "Pascal" "Volta" "Turing" "All" "Manual") + set(archs_name_default "All") + list(APPEND archs_names "Auto") + + # set CUDA_ARCH_NAME strings (so it will be seen as dropbox in CMake-Gui) + set(CUDA_ARCH_NAME ${archs_name_default} CACHE STRING "Select target NVIDIA GPU achitecture.") + set_property( CACHE CUDA_ARCH_NAME PROPERTY STRINGS "" ${archs_names} ) + mark_as_advanced(CUDA_ARCH_NAME) + + # verify CUDA_ARCH_NAME value + if(NOT ";${archs_names};" MATCHES ";${CUDA_ARCH_NAME};") + string(REPLACE ";" ", " archs_names "${archs_names}") + message(FATAL_ERROR "Only ${archs_names} architeture names are supported.") + endif() + + if(${CUDA_ARCH_NAME} STREQUAL "Manual") + set(CUDA_ARCH_BIN ${paddle_known_gpu_archs} CACHE STRING "Specify 'real' GPU architectures to build binaries for, BIN(PTX) format is supported") + set(CUDA_ARCH_PTX "50" CACHE STRING "Specify 'virtual' PTX architectures to build PTX intermediate code for") + mark_as_advanced(CUDA_ARCH_BIN CUDA_ARCH_PTX) + else() + unset(CUDA_ARCH_BIN CACHE) + unset(CUDA_ARCH_PTX CACHE) + endif() + + if(${CUDA_ARCH_NAME} STREQUAL "Kepler") + set(cuda_arch_bin "30 35") + elseif(${CUDA_ARCH_NAME} STREQUAL "Maxwell") + set(cuda_arch_bin "50") + elseif(${CUDA_ARCH_NAME} STREQUAL "Pascal") + set(cuda_arch_bin "60 61") + elseif(${CUDA_ARCH_NAME} STREQUAL "Volta") + set(cuda_arch_bin "70") + elseif(${CUDA_ARCH_NAME} STREQUAL "Turing") + set(cuda_arch_bin "75") + elseif(${CUDA_ARCH_NAME} STREQUAL "All") + set(cuda_arch_bin ${paddle_known_gpu_archs}) + elseif(${CUDA_ARCH_NAME} STREQUAL "Auto") + detect_installed_gpus(cuda_arch_bin) + else() # (${CUDA_ARCH_NAME} STREQUAL "Manual") + set(cuda_arch_bin ${CUDA_ARCH_BIN}) + endif() + + # remove dots and convert to lists + string(REGEX REPLACE "\\." "" cuda_arch_bin "${cuda_arch_bin}") + string(REGEX REPLACE "\\." "" cuda_arch_ptx "${CUDA_ARCH_PTX}") + string(REGEX MATCHALL "[0-9()]+" cuda_arch_bin "${cuda_arch_bin}") + string(REGEX MATCHALL "[0-9]+" cuda_arch_ptx "${cuda_arch_ptx}") + list(REMOVE_DUPLICATES cuda_arch_bin) + list(REMOVE_DUPLICATES cuda_arch_ptx) + + set(nvcc_flags "") + set(nvcc_archs_readable "") + + # Tell NVCC to add binaries for the specified GPUs + foreach(arch ${cuda_arch_bin}) + if(arch MATCHES "([0-9]+)\\(([0-9]+)\\)") + # User explicitly specified PTX for the concrete BIN + list(APPEND nvcc_flags -gencode arch=compute_${CMAKE_MATCH_2},code=sm_${CMAKE_MATCH_1}) + list(APPEND nvcc_archs_readable sm_${CMAKE_MATCH_1}) + else() + # User didn't explicitly specify PTX for the concrete BIN, we assume PTX=BIN + list(APPEND nvcc_flags -gencode arch=compute_${arch},code=sm_${arch}) + list(APPEND nvcc_archs_readable sm_${arch}) + endif() + endforeach() + + # Tell NVCC to add PTX intermediate code for the specified architectures + foreach(arch ${cuda_arch_ptx}) + list(APPEND nvcc_flags -gencode arch=compute_${arch},code=compute_${arch}) + list(APPEND nvcc_archs_readable compute_${arch}) + endforeach() + + string(REPLACE ";" " " nvcc_archs_readable "${nvcc_archs_readable}") + set(${out_variable} ${nvcc_flags} PARENT_SCOPE) + set(${out_variable}_readable ${nvcc_archs_readable} PARENT_SCOPE) +endfunction() + +message(STATUS "CUDA detected: " ${CUDA_VERSION}) +if (${CUDA_VERSION} LESS 7.0) + set(paddle_known_gpu_archs ${paddle_known_gpu_archs}) + add_definitions("-DPADDLE_CUDA_BINVER=\"60\"") +elseif (${CUDA_VERSION} LESS 8.0) # CUDA 7.x + set(paddle_known_gpu_archs ${paddle_known_gpu_archs7}) + list(APPEND CUDA_NVCC_FLAGS "-D_MWAITXINTRIN_H_INCLUDED") + list(APPEND CUDA_NVCC_FLAGS "-D__STRICT_ANSI__") + add_definitions("-DPADDLE_CUDA_BINVER=\"70\"") +elseif (${CUDA_VERSION} LESS 9.0) # CUDA 8.x + set(paddle_known_gpu_archs ${paddle_known_gpu_archs8}) + list(APPEND CUDA_NVCC_FLAGS "-D_MWAITXINTRIN_H_INCLUDED") + list(APPEND CUDA_NVCC_FLAGS "-D__STRICT_ANSI__") + # CUDA 8 may complain that sm_20 is no longer supported. Suppress the + # warning for now. + list(APPEND CUDA_NVCC_FLAGS "-Wno-deprecated-gpu-targets") + add_definitions("-DPADDLE_CUDA_BINVER=\"80\"") +elseif (${CUDA_VERSION} LESS 10.0) # CUDA 9.x + set(paddle_known_gpu_archs ${paddle_known_gpu_archs9}) + list(APPEND CUDA_NVCC_FLAGS "-D_MWAITXINTRIN_H_INCLUDED") + list(APPEND CUDA_NVCC_FLAGS "-D__STRICT_ANSI__") + add_definitions("-DPADDLE_CUDA_BINVER=\"90\"") +elseif (${CUDA_VERSION} LESS 11.0) # CUDA 10.x + set(paddle_known_gpu_archs ${paddle_known_gpu_archs10}) + list(APPEND CUDA_NVCC_FLAGS "-D_MWAITXINTRIN_H_INCLUDED") + list(APPEND CUDA_NVCC_FLAGS "-D__STRICT_ANSI__") + add_definitions("-DPADDLE_CUDA_BINVER=\"100\"") +endif() + +include_directories(${CUDA_INCLUDE_DIRS}) +list(APPEND EXTERNAL_LIBS ${CUDA_LIBRARIES} ${CUDA_rt_LIBRARY}) +if(NOT WITH_DSO) + # TODO(panyx0718): CUPTI only allows DSO? + list(APPEND EXTERNAL_LIBS ${CUDNN_LIBRARY} ${CUPTI_LIBRARY} ${CUDA_CUBLAS_LIBRARIES} ${CUDA_curand_LIBRARY} ${NCCL_LIBRARY}) + if(WIN32) + set_property(GLOBAL PROPERTY CUDA_MODULES ${CUDNN_LIBRARY} ${CUDA_CUBLAS_LIBRARIES} ${CUDA_curand_LIBRARY}) + endif(WIN32) +endif(NOT WITH_DSO) + +# setting nvcc arch flags +select_nvcc_arch_flags(NVCC_FLAGS_EXTRA) +list(APPEND CUDA_NVCC_FLAGS ${NVCC_FLAGS_EXTRA}) +message(STATUS "Added CUDA NVCC flags for: ${NVCC_FLAGS_EXTRA_readable}") + +# Set C++11 support +set(CUDA_PROPAGATE_HOST_FLAGS OFF) + +# Release/Debug flags set by cmake. Such as -O3 -g -DNDEBUG etc. +# So, don't set these flags here. +if (NOT WIN32) # windows msvc2015 support c++11 natively. +# -std=c++11 -fPIC not recoginize by msvc, -Xcompiler will be added by cmake. +list(APPEND CUDA_NVCC_FLAGS "-std=c++11") +list(APPEND CUDA_NVCC_FLAGS "-Xcompiler -fPIC") +endif(NOT WIN32) + +if(WITH_FAST_MATH) + # Make use of fast math library. https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html + list(APPEND CUDA_NVCC_FLAGS "--use_fast_math") +endif() +# in cuda9, suppress cuda warning on eigen +list(APPEND CUDA_NVCC_FLAGS "-w") +# Set :expt-relaxed-constexpr to suppress Eigen warnings +list(APPEND CUDA_NVCC_FLAGS "--expt-relaxed-constexpr") + +if (NOT WIN32) + if(CMAKE_BUILD_TYPE STREQUAL "Debug") + list(APPEND CUDA_NVCC_FLAGS ${CMAKE_CXX_FLAGS_DEBUG}) + elseif(CMAKE_BUILD_TYPE STREQUAL "Release") + list(APPEND CUDA_NVCC_FLAGS ${CMAKE_CXX_FLAGS_RELEASE}) + elseif(CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") + list(APPEND CUDA_NVCC_FLAGS ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}) + elseif(CMAKE_BUILD_TYPE STREQUAL "MinSizeRel") + # nvcc 9 does not support -Os. Use Release flags instead + list(APPEND CUDA_NVCC_FLAGS ${CMAKE_CXX_FLAGS_RELEASE}) + endif() +else(NOT WIN32) + list(APPEND CUDA_NVCC_FLAGS "-Xcompiler \"/wd 4244 /wd 4267 /wd 4819\"") + list(APPEND CUDA_NVCC_FLAGS "--compiler-options;/bigobj") + if(CMAKE_BUILD_TYPE STREQUAL "Debug") + list(APPEND CUDA_NVCC_FLAGS "-g -G") + # match the cl's _ITERATOR_DEBUG_LEVEL + list(APPEND CUDA_NVCC_FLAGS "-D_DEBUG") + elseif(CMAKE_BUILD_TYPE STREQUAL "Release") + list(APPEND CUDA_NVCC_FLAGS "-O3 -DNDEBUG") + else() + message(FATAL "Windows only support Release or Debug build now. Please set visual studio build type to Release/Debug, x64 build.") +endif() +endif(NOT WIN32) + +mark_as_advanced(CUDA_BUILD_CUBIN CUDA_BUILD_EMULATION CUDA_VERBOSE_BUILD) +mark_as_advanced(CUDA_SDK_ROOT_DIR CUDA_SEPARABLE_COMPILATION) diff --git a/cmake/paddlepaddle.cmake b/cmake/paddlepaddle.cmake index 72db4f23..4caed8c2 100644 --- a/cmake/paddlepaddle.cmake +++ b/cmake/paddlepaddle.cmake @@ -24,6 +24,8 @@ INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR}/Paddle/fluid_install_dir) # Reference https://stackoverflow.com/questions/45414507/pass-a-list-of-prefix-paths-to-externalproject-add-in-cmake-args set(prefix_path "${THIRD_PARTY_PATH}/install/gflags|${THIRD_PARTY_PATH}/install/leveldb|${THIRD_PARTY_PATH}/install/snappy|${THIRD_PARTY_PATH}/install/gtest|${THIRD_PARTY_PATH}/install/protobuf|${THIRD_PARTY_PATH}/install/zlib|${THIRD_PARTY_PATH}/install/glog") +message( "WITH_GPU = ${WITH_GPU}") + # If minimal .a is need, you can set WITH_DEBUG_SYMBOLS=OFF ExternalProject_Add( extern_paddle @@ -47,7 +49,7 @@ ExternalProject_Add( -DWITH_MKL=${WITH_MKL} -DWITH_AVX=${WITH_AVX} -DWITH_MKLDNN=OFF - -DWITH_GPU=OFF + -DWITH_GPU=${WITH_GPU} -DWITH_FLUID_ONLY=ON -DWITH_TESTING=OFF -DWITH_DISTRIBUTE=OFF diff --git a/demo-client/CMakeLists.txt b/demo-client/CMakeLists.txt index e30ca0ea..5e720809 100644 --- a/demo-client/CMakeLists.txt +++ b/demo-client/CMakeLists.txt @@ -20,6 +20,11 @@ target_link_libraries(ximage -Wl,--whole-archive sdk-cpp -Wl,--no-whole-archive -lpthread -lcrypto -lm -lrt -lssl -ldl -lz) +add_executable(ximage_press ${CMAKE_CURRENT_LIST_DIR}/src/ximage_press.cpp) +target_link_libraries(ximage_press -Wl,--whole-archive sdk-cpp + -Wl,--no-whole-archive -lpthread -lcrypto -lm -lrt -lssl -ldl + -lz) + add_executable(echo ${CMAKE_CURRENT_LIST_DIR}/src/echo.cpp) target_link_libraries(echo -Wl,--whole-archive sdk-cpp -Wl,--no-whole-archive -lpthread -lcrypto -lm -lrt -lssl -ldl @@ -51,6 +56,9 @@ target_link_libraries(text_classification_press -Wl,--whole-archive sdk-cpp -Wl, install(TARGETS ximage RUNTIME DESTINATION ${PADDLE_SERVING_INSTALL_DIR}/demo/client/image_classification/bin) +install(TARGETS ximage_press + RUNTIME DESTINATION + ${PADDLE_SERVING_INSTALL_DIR}/demo/client/image_classification/bin) install(DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/conf DESTINATION ${PADDLE_SERVING_INSTALL_DIR}/demo/client/image_classification/) install(DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/data/images DESTINATION diff --git a/demo-client/data/images/ILSVRC2012_val_00000001.jpeg b/demo-client/data/images/ILSVRC2012_val_00000001.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..fcd0de8866f404b87c2881435efe8aa2372f7b36 GIT binary patch literal 30696 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 literal 0 HcmV?d00001 diff --git a/demo-client/data/images/ILSVRC2012_val_00000002.jpeg b/demo-client/data/images/ILSVRC2012_val_00000002.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..34476b6e5b2a1ef892f4957e8a5d7b54449aceb1 GIT binary patch literal 39472 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 L9aqW$e*gD>MV9q_ literal 0 HcmV?d00001 diff --git a/demo-client/data/images/ILSVRC2012_val_00000003.jpeg b/demo-client/data/images/ILSVRC2012_val_00000003.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..95438c5f18dace758c6a62cd0955c4212cfb1c1e GIT binary patch literal 31746 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%0A>~jz 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 E*?*#d?EnA( literal 0 HcmV?d00001 diff --git a/demo-client/data/images/ILSVRC2012_val_00000004.jpeg b/demo-client/data/images/ILSVRC2012_val_00000004.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..d6c3df86e0a15baba0833b4b7a9c996526e5ac79 GIT binary patch literal 20623 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 BJCgta literal 0 HcmV?d00001 diff --git a/demo-client/data/images/ILSVRC2012_val_00000005.jpeg b/demo-client/data/images/ILSVRC2012_val_00000005.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..166f2897e3965f86a0711bce1f929e63c6dd900e GIT binary patch literal 34624 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 literal 0 HcmV?d00001 diff --git a/demo-client/data/images/ILSVRC2012_val_00000007.jpeg b/demo-client/data/images/ILSVRC2012_val_00000007.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..a043ebf28db967c6e1aefb0913fb1540762e3ad0 GIT binary patch literal 44838 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

4$7&p`hGg@@T8~;Vp>nppEU_hq?p$X0UZT9XnN! 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

Hs4>^Fn5WY(@C8Y~ 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 z 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

i}(qYWFhl@BUX1k^Y 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 NMHE)52!`y>|Jf|0)foT) literal 0 HcmV?d00001 diff --git a/demo-client/data/images/val.txt b/demo-client/data/images/val.txt new file mode 100644 index 00000000..da362d61 --- /dev/null +++ b/demo-client/data/images/val.txt @@ -0,0 +1,10 @@ +ILSVRC2012_val_00000001.JPEG 65 +ILSVRC2012_val_00000002.JPEG 970 +ILSVRC2012_val_00000003.JPEG 230 +ILSVRC2012_val_00000004.JPEG 809 +ILSVRC2012_val_00000005.JPEG 516 +ILSVRC2012_val_00000006.JPEG 57 +ILSVRC2012_val_00000007.JPEG 334 +ILSVRC2012_val_00000008.JPEG 415 +ILSVRC2012_val_00000009.JPEG 674 +ILSVRC2012_val_00000010.JPEG 332 diff --git a/demo-client/src/ximage_press.cpp b/demo-client/src/ximage_press.cpp new file mode 100644 index 00000000..5a71508e --- /dev/null +++ b/demo-client/src/ximage_press.cpp @@ -0,0 +1,300 @@ +// Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include +#include +#include + +#include +#include // NOLINT +#include "sdk-cpp/builtin_format.pb.h" +#include "sdk-cpp/image_class.pb.h" +#include "sdk-cpp/include/common.h" +#include "sdk-cpp/include/predictor_sdk.h" + +#ifndef BCLOUD +using json2pb::JsonToProtoMessage; +#endif + +using baidu::paddle_serving::sdk_cpp::Predictor; +using baidu::paddle_serving::sdk_cpp::PredictorApi; +using baidu::paddle_serving::predictor::format::XImageReqInstance; +using baidu::paddle_serving::predictor::format::DensePrediction; +using baidu::paddle_serving::predictor::image_classification::Request; +using baidu::paddle_serving::predictor::image_classification::Response; + +DEFINE_int32(concurrency, 1, "Set the max concurrent number of requests"); +DEFINE_int32(requests, 100, "Number of requests to send per thread"); +DEFINE_int32(batch_size, 1, "Batch size"); + +std::atomic g_concurrency(0); + +std::vector> g_round_time; +std::vector g_image_data; +std::vector g_image_lengths; + +const std::vector g_image_paths{ + "./data/images/ILSVRC2012_val_00000001.jpeg", + "./data/images/ILSVRC2012_val_00000002.jpeg", + "./data/images/ILSVRC2012_val_00000003.jpeg", + "./data/images/ILSVRC2012_val_00000004.jpeg", + "./data/images/ILSVRC2012_val_00000005.jpeg", + "./data/images/ILSVRC2012_val_00000006.jpeg", + "./data/images/ILSVRC2012_val_00000007.jpeg", + "./data/images/ILSVRC2012_val_00000008.jpeg", + "./data/images/ILSVRC2012_val_00000009.jpeg", + "./data/images/ILSVRC2012_val_00000010.jpeg"}; + +int prepare_data() { + for (auto x : g_image_paths) { + FILE* fp = fopen(x.c_str(), "rb"); + if (!fp) { + LOG(ERROR) << "Failed open image: " << x.c_str(); + continue; + } + + fseek(fp, 0L, SEEK_END); + size_t isize = ftell(fp); + char* ibuf = new (std::nothrow) char[isize]; + if (!ibuf) { + LOG(ERROR) << "Failed malloc image buffer"; + fclose(fp); + return -1; + } + + fseek(fp, 0, SEEK_SET); + fread(ibuf, sizeof(ibuf[0]), isize, fp); + g_image_data.push_back(ibuf); + g_image_lengths.push_back(isize); + + fclose(fp); + } + + return 0; +} + +int create_req(Request& req) { // NOLINT + for (int i = 0; i < FLAGS_batch_size; ++i) { + XImageReqInstance* ins = req.add_instances(); + if (!ins) { + LOG(ERROR) << "Failed create req instance"; + return -1; + } + + int id = i % g_image_data.size(); + ins->set_image_binary(g_image_data[id], g_image_lengths[id]); + ins->set_image_length(g_image_lengths[id]); + } + + return 0; +} + +void extract_res(const Request& req, const Response& res) { + uint32_t sample_size = res.predictions_size(); + std::string err_string; + for (uint32_t si = 0; si < sample_size; ++si) { + DensePrediction json_msg; + std::string json = res.predictions(si).response_json(); + butil::IOBuf buf; + buf.clear(); + buf.append(json); + butil::IOBufAsZeroCopyInputStream wrapper(buf); + if (!JsonToProtoMessage(&wrapper, &json_msg, &err_string)) { + LOG(ERROR) << "Failed parse json from str:" << json; + return; + } + + uint32_t csize = json_msg.categories_size(); + if (csize <= 0) { + LOG(ERROR) << "sample-" << si << "has no" + << "categories props"; + continue; + } + float max_prop = json_msg.categories(0); + uint32_t max_idx = 0; + for (uint32_t ci = 1; ci < csize; ++ci) { + if (json_msg.categories(ci) > max_prop) { + max_prop = json_msg.categories(ci); + max_idx = ci; + } + } + + LOG(INFO) << "instance " << si << "has class " << max_idx; + } // end for +} + +void thread_worker(PredictorApi* api, int thread_id) { + Request req; + Response res; + + api->thrd_initialize(); + + for (int i = 0; i < FLAGS_requests; ++i) { + api->thrd_clear(); + + Predictor* predictor = api->fetch_predictor("ximage"); + if (!predictor) { + LOG(ERROR) << "Failed fetch predictor: ximage"; + return; + } + + req.Clear(); + res.Clear(); + + if (create_req(req) != 0) { + return; + } + + while (g_concurrency.load() >= FLAGS_concurrency) { + } + g_concurrency++; +#if 1 + LOG(INFO) << "Current concurrency " << g_concurrency.load(); +#endif + + timeval start; + timeval end; + + gettimeofday(&start, NULL); + if (predictor->inference(&req, &res) != 0) { + LOG(ERROR) << "failed call predictor with req:" << req.ShortDebugString(); + return; + } + gettimeofday(&end, NULL); + + g_round_time[thread_id].push_back(end.tv_sec * 1000 + end.tv_usec / 1000 - + start.tv_sec * 1000 - + start.tv_usec / 1000); + + extract_res(req, res); + res.Clear(); + + g_concurrency--; +#if 1 + LOG(INFO) << "Done. Currenct concurrency " << g_concurrency.load(); +#endif + } // for (int i = 0; i < FLAGS_requests; ++i) + + api->thrd_finalize(); +} + +int main(int argc, char** argv) { + google::ParseCommandLineFlags(&argc, &argv, true); + + PredictorApi api; + +// initialize logger instance +#ifdef BCLOUD + logging::LoggingSettings settings; + settings.logging_dest = logging::LOG_TO_FILE; + + std::string filename(argv[0]); + filename = filename.substr(filename.find_last_of('/') + 1); + settings.log_file = (std::string("./log/") + filename + ".log").c_str(); + settings.delete_old = logging::DELETE_OLD_LOG_FILE; + logging::InitLogging(settings); + + logging::ComlogSinkOptions cso; + cso.process_name = filename; + cso.enable_wf_device = true; + logging::ComlogSink::GetInstance()->Setup(&cso); +#else + struct stat st_buf; + int ret = 0; + if ((ret = stat("./log", &st_buf)) != 0) { + mkdir("./log", 0777); + ret = stat("./log", &st_buf); + if (ret != 0) { + LOG(WARNING) << "Log path ./log not exist, and create fail"; + return -1; + } + } + FLAGS_log_dir = "./log"; + google::InitGoogleLogging(strdup(argv[0])); +#endif + + g_round_time.resize(FLAGS_concurrency); + + if (api.create("./conf", "predictors.prototxt") != 0) { + LOG(ERROR) << "Failed create predictors api!"; + return -1; + } + + if (prepare_data() != 0) { + LOG(ERROR) << "Prepare data fail"; + return -1; + } + + std::vector worker_threads; + int i = 0; + for (; i < FLAGS_concurrency; ++i) { + worker_threads.push_back(new std::thread(thread_worker, &api, i)); + } + + for (i = 0; i < FLAGS_concurrency; ++i) { + worker_threads[i]->join(); + delete worker_threads[i]; + } + + api.destroy(); + + std::vector round_times; + for (auto x : g_round_time) { + round_times.insert(round_times.end(), x.begin(), x.end()); + } + + std::sort(round_times.begin(), round_times.end()); + + int percent_pos_50 = round_times.size() * 0.5; + int percent_pos_80 = round_times.size() * 0.8; + int percent_pos_90 = round_times.size() * 0.9; + int percent_pos_99 = round_times.size() * 0.99; + int percent_pos_999 = round_times.size() * 0.999; + + uint64_t total_ms = 0; + for (auto x : round_times) { + total_ms += x; + } + + LOG(INFO) << "Batch size: " << FLAGS_batch_size; + LOG(INFO) << "Total requests: " << round_times.size(); + LOG(INFO) << "Max concurrency: " << FLAGS_concurrency; + LOG(INFO) << "Total ms (absolute time): " << total_ms / FLAGS_concurrency; + + double qps = 0.0; + if (total_ms != 0) { + qps = (static_cast(FLAGS_concurrency * FLAGS_requests) / + (total_ms / FLAGS_concurrency)) * + 1000; + } + + LOG(INFO) << "QPS: " << qps << "/s"; + + LOG(INFO) << "Latency statistics: "; + if (round_times.size() != 0) { + LOG(INFO) << "Average ms: " + << static_cast(total_ms) / round_times.size(); + LOG(INFO) << "50 percent ms: " << round_times[percent_pos_50]; + LOG(INFO) << "80 percent ms: " << round_times[percent_pos_80]; + LOG(INFO) << "90 percent ms: " << round_times[percent_pos_90]; + LOG(INFO) << "99 percent ms: " << round_times[percent_pos_99]; + LOG(INFO) << "99.9 percent ms: " << round_times[percent_pos_999]; + } else { + LOG(INFO) << "N/A"; + } + + return 0; +} + +/* vim: set expandtab ts=4 sw=4 sts=4 tw=100: */ diff --git a/demo-serving/CMakeLists.txt b/demo-serving/CMakeLists.txt index f9c6cab6..238fadf8 100644 --- a/demo-serving/CMakeLists.txt +++ b/demo-serving/CMakeLists.txt @@ -18,9 +18,17 @@ include(proto/CMakeLists.txt) add_executable(serving ${serving_srcs}) add_dependencies(serving pdcodegen fluid_cpu_engine pdserving paddle_fluid opencv_imgcodecs) +if (WITH_GPU) + add_dependencies(serving fluid_gpu_engine) +endif() target_include_directories(serving PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/../predictor ) + +if(WITH_GPU) + target_link_libraries(serving ${CUDA_LIBRARIES} -Wl,--whole-archive fluid_gpu_engine + -Wl,--no-whole-archive) +endif() target_link_libraries(serving opencv_imgcodecs ${opencv_depend_libs} -Wl,--whole-archive fluid_cpu_engine -Wl,--no-whole-archive pdserving paddle_fluid ${paddle_depend_libs} diff --git a/demo-serving/op/classify_op.cpp b/demo-serving/op/classify_op.cpp index a714e7cd..22c33938 100644 --- a/demo-serving/op/classify_op.cpp +++ b/demo-serving/op/classify_op.cpp @@ -35,7 +35,6 @@ int ClassifyOp::inference() { } const TensorVector* in = &reader_out->tensors; - uint32_t sample_size = in->size(); TensorVector* out = butil::get_object(); if (!out) { @@ -43,20 +42,21 @@ int ClassifyOp::inference() { return -1; } - if (sample_size <= 0) { - LOG(INFO) << "No samples need to to predicted"; - return 0; + if (in->size() != 1) { + LOG(ERROR) << "Samples should have been packed into a single tensor"; + return -1; } + int batch_size = in->at(0).shape[0]; // call paddle fluid model for inferencing if (InferManager::instance().infer( - IMAGE_CLASSIFICATION_MODEL_NAME, in, out, sample_size)) { + IMAGE_CLASSIFICATION_MODEL_NAME, in, out, batch_size)) { LOG(ERROR) << "Failed do infer in fluid model: " << IMAGE_CLASSIFICATION_MODEL_NAME; return -1; } - if (out->size() != sample_size) { + if (out->size() != in->size()) { LOG(ERROR) << "Output size not eq input size: " << in->size() << out->size(); return -1; @@ -64,24 +64,35 @@ int ClassifyOp::inference() { // copy output tensor into response ClassifyResponse* res = mutable_data(); + const paddle::PaddleTensor& out_tensor = (*out)[0]; + +#if 0 + int out_shape_size = out_tensor.shape.size(); + LOG(ERROR) << "out_tensor.shpae"; + for (int i = 0; i < out_shape_size; ++i) { + LOG(ERROR) << out_tensor.shape[i] << ":"; + } + + if (out_shape_size != 2) { + return -1; + } +#endif + + int sample_size = out_tensor.shape[0]; +#if 0 + LOG(ERROR) << "Output sample size " << sample_size; +#endif for (uint32_t si = 0; si < sample_size; si++) { - const paddle::PaddleTensor& out_tensor = (*out)[si]; DensePrediction* ins = res->add_predictions(); if (!ins) { LOG(ERROR) << "Failed append new out tensor"; return -1; } - uint32_t shape_size = out_tensor.shape.size(); - if (out_tensor.shape.size() != 2 || out_tensor.shape[0] != 1) { - LOG(ERROR) << "Not valid classification out shape" - << ", shape size: " << out_tensor.shape.size(); - return -1; - } - // assign output data - uint32_t data_size = out_tensor.data.length() / sizeof(float); - float* data = reinterpret_cast(out_tensor.data.data()); + uint32_t data_size = out_tensor.shape[1]; + float* data = reinterpret_cast(out_tensor.data.data() + + si * sizeof(float) * data_size); for (uint32_t di = 0; di < data_size; ++di) { ins->add_categories(data[di]); } @@ -95,10 +106,6 @@ int ClassifyOp::inference() { out->clear(); butil::return_object(out); - LOG(INFO) << "Response in image classification:" - << "length:" << res->ByteSize() << "," - << "data:" << res->ShortDebugString(); - return 0; } diff --git a/demo-serving/op/reader_op.cpp b/demo-serving/op/reader_op.cpp index 8c97702d..d50c9ebd 100644 --- a/demo-serving/op/reader_op.cpp +++ b/demo-serving/op/reader_op.cpp @@ -51,6 +51,26 @@ int ReaderOp::inference() { resize.height = iresize[0]; resize.width = iresize[1]; + paddle::PaddleTensor in_tensor; + in_tensor.name = "tensor"; + in_tensor.dtype = paddle::FLOAT32; + // shape assignment + in_tensor.shape.push_back(sample_size); // batch_size + in_tensor.shape.push_back(3); + in_tensor.shape.push_back(resize.width); + in_tensor.shape.push_back(resize.height); + + // tls resource assignment + size_t dense_capacity = 3 * resize.width * resize.height; + size_t len = dense_capacity * sizeof(float) * sample_size; + float* data = + reinterpret_cast(MempoolWrapper::instance().malloc(len)); + if (data == NULL) { + LOG(ERROR) << "Failed create temp float array, " + << "size=" << dense_capacity * sample_size * sizeof(float); + return -1; + } + for (uint32_t si = 0; si < sample_size; si++) { // parse image object from x-image const XImageReqInstance& ins = req->instances(si); @@ -103,50 +123,31 @@ int ReaderOp::inference() { const int H = _image_8u_rgb.rows; const int W = _image_8u_rgb.cols; const int C = _image_8u_rgb.channels(); - size_t dense_capacity = H * W * C; - - paddle::PaddleTensor in_tensor; - in_tensor.name = "tensor"; - in_tensor.dtype = paddle::FLOAT32; - - // shape assignment - in_tensor.shape.push_back(1); // batch_size - - // accoreding to training stage, the instance shape should be - // in order of C-W-H. - in_tensor.shape.push_back(C); - in_tensor.shape.push_back(W); - in_tensor.shape.push_back(H); + if (H != resize.height || W != resize.width || C != 3) { + LOG(ERROR) << "Image " << si << " has incompitable size"; + return -1; + } LOG(INFO) << "Succ read one image, C: " << C << ", W: " << W << ", H: " << H; - // tls resource assignment - size_t len = dense_capacity * sizeof(float); - float* data = - reinterpret_cast(MempoolWrapper::instance().malloc(len)); - if (data == NULL) { - LOG(ERROR) << "Failed create temp float array, " - << "size=" << dense_capacity; - return -1; - } - + float* data_ptr = data + dense_capacity * si; for (int h = 0; h < H; h++) { // p points to a new line unsigned char* p = _image_8u_rgb.ptr(h); for (int w = 0; w < W; w++) { for (int c = 0; c < C; c++) { // HWC(row,column,channel) -> CWH - data[W * H * c + W * h + w] = (p[C * w + c] - pmean[c]) * scale[c]; + data_ptr[W * H * c + W * h + w] = + (p[C * w + c] - pmean[c]) * scale[c]; } } } - - paddle::PaddleBuf pbuf(data, len); - in_tensor.data = pbuf; - - in->push_back(in_tensor); } + paddle::PaddleBuf pbuf(data, len); + in_tensor.data = pbuf; + + in->push_back(in_tensor); return 0; } diff --git a/demo-serving/op/write_json_op.cpp b/demo-serving/op/write_json_op.cpp index 25aece0e..e0b372d7 100644 --- a/demo-serving/op/write_json_op.cpp +++ b/demo-serving/op/write_json_op.cpp @@ -16,7 +16,7 @@ #include #ifdef BCLOUD -#include "pb_to_json.h" +#include "pb_to_json.h" // NOLINT #else #include "json2pb/pb_to_json.h" #endif @@ -70,7 +70,7 @@ int WriteJsonOp::inference() { } } - LOG(INFO) << "Succ write json:" << classify_out->ShortDebugString(); + LOG(INFO) << "Succ write json"; return 0; } diff --git a/doc/FAQ.md b/doc/FAQ.md index a48e5c4d..2ba9ec9d 100644 --- a/doc/FAQ.md +++ b/doc/FAQ.md @@ -5,3 +5,22 @@ - 如果在inferservice_file里指定了port:xxx,那么就去申请该端口号; - 否则,如果在gflags.conf里指定了--port:xxx,那就去申请该端口号; - 否则,使用程序里指定的默认端口号:8010。 + +## 2. GPU预测中为何请求的响应时间波动会非常大? +PaddleServing依托PaddlePaddle预测库执行预测计算;在GPU设备上,由于同一个进程内目前共用1个GPU stream,进程内的多个请求的预测计算会被严格串行。所以如果有2个请求同时到达某个Serving实例,不管该实例启动时创建了多少个worker线程,都不能起到加速作用,后到的请求会被排队,直到前面请求计算完成。 + +## 3. 如何充分利用GPU卡的计算能力? +如问题2所说,由于预测库的限制,单个Serving进程只能绑定单张GPU卡,且进程内共用1个GPU stream,所有请求必须串行计算。 + +为提高GPU卡使用率,目前可以想到的方法是:在单张GPU卡上启动多个Serving进程,每个进程绑定一个GPU stream,多个stream并行计算。这种方法是否能起到加速作用,受限于多个因素,主要有: + +1. 单个stream占用GPU算力;假如单个stream已经将GPU算力占用超过50%,那么增加stream很可能会导致2个stream的job分别排队,拖慢各自的响应时间 +2. GPU显存:Serving进程需要将模型参数加载到显存中,并且计算时要在GPU显存池分配临时变量;假如单个Serving进程已经用掉超过50%的显存,则增加Serving进程会造成显存不足,导致进程报错退出 + +为此,可采用如下步骤,进行测试: + +1. 加载模型时,在model_toolkit.prototxt中,model type选择FLUID_GPU_ANALYSIS或FLUID_GPU_ANALYSIS_DIR;会对模型进行静态分析,进行一定程度显存优化 +2. 在步骤1完成后,启动单个Serving进程,启动参数:`--gpuid=N --bthread_concurrency=4 --bthread_min_concurrency=4`;启动一个client,进行并发度为1的压力测试,batch size从小到大,记下平响;由于算力的限制,当batch size增大到一定程度,应该会出现响应时间明显变大;或虽然没有明显变大,但已经不满足系统需求 +3. 再启动1个Serving进程,与步骤2启动时使用相同的参数略有不同: `--gpuid=N --bthread_concurrency=4 --bthread_min_concurrency=4 --port=8011` 其中--port=8011用来让新启动的进程使用一个新的服务端口;然后同时对这2个Serving进程进行压测,继续观察batch size从小到大时平均响应时间的变化,直到取得batch size和响应时间的折中 +4. 重复步骤2-3 +5. 以2-4步的测试,来决定:单张GPU卡可以由多少个Serving进程共用; 实际部署时,就在一张GPU卡上启动这么多个Serving进程同时提供服务 diff --git a/doc/INDEX.md b/doc/INDEX.md index c4e78be0..c9399b2f 100644 --- a/doc/INDEX.md +++ b/doc/INDEX.md @@ -1,16 +1,19 @@ +[Design](DESIGN.md) -[Client Configure](CLIENT_CONFIGURE.md) +[Installation](INSTALL.md) -[How to Configure a Clustered Service](CLUSTERING.md) +[Getting Started](GETTING_STARTED.md) [Creating a Prediction Service](CREATING.md) -[Design](DESIGN.md) +[Client Configure](CLIENT_CONFIGURE.md) -[FAQ](FAQ.md) +[Server Side Configuration](SERVING_CONFIGURE.md) -[Getting Started](GETTING_STARTED.md) +[How to Configure a Clustered Service](CLUSTERING.md) -[Installation](INSTALL.md) +[Multiple Serving Instances over Single GPU Card](MULTI_SERVING_OVER_SINGLE_GPU_CARD.md) -[Server Side Configuration](SERVING_CONFIGURE.md) +[Benchmarking](BENCHMARKING.md) + +[FAQ](FAQ.md) diff --git a/doc/INSTALL.md b/doc/INSTALL.md index 64e482d6..d3114e86 100644 --- a/doc/INSTALL.md +++ b/doc/INSTALL.md @@ -58,10 +58,9 @@ $ make install # CMake编译选项说明 -因Paddle Serving依托于PaddlePaddle项目进行构建,以下编译选项其实是传递给PaddlePaddle的编译选项: - | 编译选项 | 说明 | |----------|------| -| WITH_AVX | Compile PaddlePaddle with AVX intrinsics | -| WITH_MKL | Compile PaddlePaddle with MKLML library | +| WITH_AVX | For configuring PaddlePaddle. Compile PaddlePaddle with AVX intrinsics | +| WITH_MKL | For configuring PaddlePaddle. Compile PaddlePaddle with MKLML library | +| WITH_GPU | For configuring PaddlePaddle. Compile PaddlePaddle with NVIDIA GPU | | CLINET_ONLY | Compile client libraries and demos only | diff --git a/doc/MULTI_SERVING_OVER_SINGLE_GPU_CARD.md b/doc/MULTI_SERVING_OVER_SINGLE_GPU_CARD.md new file mode 100644 index 00000000..1bbcaf16 --- /dev/null +++ b/doc/MULTI_SERVING_OVER_SINGLE_GPU_CARD.md @@ -0,0 +1,32 @@ +# Multiple Serving Instances over Single GPU Card + +Paddle Serving依托PaddlePaddle预测库执行实际的预测计算。由于当前GPU预测库的限制,单个Serving实例只可以绑定1张GPU卡,且进程内所有worker线程共用1个GPU stream。也就是说,不管Serving启动多少个worker线程,所有的请求在GPU是严格串行计算的,起不到加速作用。这会带来一个问题,就是如果模型计算量不大,那么Serving进程实际上不会用满GPU的算力。 + +为了充分利用GPU卡的算力,考虑在单张卡上启动多个Serving实例,通过多个GPU stream,力争用满GPU的算力。启动命令可以如下所示: + +``` +bin/serving --gpuid=0 --bthread_concurrency=4 --bthread_min_concurrency=4 --port=8010& +bin/serving --gpuid=0 --bthread_concurrency=4 --bthread_min_concurrency=4 --port=8011& +``` + +上述2条命令,启动2个Serving实例,分别监听8010端口和8011端口。但他们都绑定同一张卡 (gpuid = 0)。 + +命令行参数含义: +``` +-gpuid=N:用于指定所绑定的GPU卡ID +-bthread_concurrency和bthread_min_concurrency共同限制该进程启动的worker数:由于在GPU预测模式下,增加worker线程数并不能提高并发能力,为了节省部分资源,干脆将他们限制掉;均设为4,是因为这是bthread允许的最小值。 +-port xxx:Serving实例监听的端口 +``` + +但是,上述方式究竟是否能在不影响响应时间等其他指标的前提下,起到提高GPU使用率作用,受到多个限制因素的制约,具体的: + +1. 单个stream占用GPU算力;假如单个stream已经将GPU算力占用超过50%,那么增加stream很可能会导致2个stream的job分别排队,拖慢各自的响应时间 +2. GPU显存:Serving进程需要将模型参数加载到显存中,并且计算时要在GPU显存池分配临时变量;假如单个Serving进程已经用掉超过50%的显存,则增加Serving进程会造成显存不足,导致进程报错退出 + +为此,可采用如下步骤,进行测试: + +1. 加载模型时,在model_toolkit.prototxt中,model type选择FLUID_GPU_ANALYSIS或FLUID_GPU_ANALYSIS_DIR;会对模型进行静态分析,进行一定程度显存优化 +2. 在步骤1完成后,启动单个Serving进程,启动参数:`--gpuid=N --bthread_concurrency=4 --bthread_min_concurrency=4`;启动一个client,进行并发度为1的压力测试,batch size从小到大,记下平响;由于算力的限制,当batch size增大到一定程度,应该会出现响应时间明显变大;或虽然没有明显变大,但已经不满足系统需求 +3. 再启动1个Serving进程,与步骤2启动时使用相同的参数略有不同: `--gpuid=N --bthread_concurrency=4 --bthread_min_concurrency=4 --port=8011` 其中--port=8011用来让新启动的进程使用一个新的服务端口;然后同时对这2个Serving进程进行压测,继续观察batch size从小到大时平均响应时间的变化,直到取得batch size和响应时间的折中 +4. 重复步骤2-3 +5. 以2-4步的测试,来决定:单张GPU卡可以由多少个Serving进程共用; 实际部署时,就在一张GPU卡上启动这么多个Serving进程同时提供服务 diff --git a/doc/SERVING_CONFIGURE.md b/doc/SERVING_CONFIGURE.md index 2b452532..f5887f5c 100644 --- a/doc/SERVING_CONFIGURE.md +++ b/doc/SERVING_CONFIGURE.md @@ -142,6 +142,11 @@ type: 预测引擎的类型。可在inferencer-fluid-cpu/src/fluid_cpu_engine.cp |FLUID_CPU_ANALYSIS_DIR|使用fluid Analysis API;模型所有参数分开保存为独立的文件,整个模型放到一个目录中| |FLUID_CPU_NATIVE|使用fluid Native API;模型所有参数保存在一个文件| |FLUID_CPU_NATIVE_DIR|使用fluid Native API;模型所有参数分开保存为独立的文件,整个模型放到一个目录中| +|FLUID_GPU_ANALYSIS|GPU预测,使用fluid Analysis API;模型所有参数保存在一个文件| +|FLUID_GPU_ANALYSIS_DIR|GPU预测,使用fluid Analysis API;模型所有参数分开保存为独立的文件,整个模型放到一个目录中| +|FLUID_GPU_NATIVE|GPU预测,使用fluid Native API;模型所有参数保存在一个文件| +|FLUID_GPU_NATIVE_DIR|GPU预测,使用fluid Native API;模型所有参数分开保存为独立的文件,整个模型放到一个目录中| + **fluid Analysis API和fluid Native API的区别** @@ -182,8 +187,11 @@ enable_batch_align: |enable_model_toolkit|true|模型管理| |enable_protocol_list|baidu_std|brpc 通信协议列表| |log_dir|./log|log dir| -|num_threads|brpc server使用的系统线程数,默认为CPU核数| -|max_concurrency|并发处理的请求数,设为<=0则为不予限制,若大于0则限定brpc server端同时处理的请求数上限| +|num_threads||brpc server使用的系统线程数,默认为CPU核数| +|port|8010|Serving进程接收请求监听端口| +|gpuid|0|GPU预测时指定Serving进程使用的GPU device id。只允许绑定1张GPU卡| +|bthread_concurrency|9|BRPC底层bthread的concurrency。在使用GPU预测引擎时,为了限制并发worker数,可使用此参数| +|bthread_min_concurrency|4|BRPC底层bthread的min concurrency。在使用GPU预测引擎时,为限制并发worker数,可使用此参数。与bthread_concurrency结合使用| 可以通过在serving/conf/gflags.conf覆盖默认值,例如 ``` diff --git a/inferencer-fluid-cpu/include/fluid_cpu_engine.h b/inferencer-fluid-cpu/include/fluid_cpu_engine.h index f01f7fce..82b924ac 100644 --- a/inferencer-fluid-cpu/include/fluid_cpu_engine.h +++ b/inferencer-fluid-cpu/include/fluid_cpu_engine.h @@ -155,6 +155,8 @@ class FluidCpuNativeCore : public FluidFamilyCore { native_config.prog_file = data_path + "/__model__"; native_config.use_gpu = false; native_config.device = 0; + native_config.fraction_of_gpu_memory = 0; + AutoLock lock(GlobalPaddleCreateMutex::instance()); _core = paddle::CreatePaddlePredictor( @@ -209,6 +211,7 @@ class FluidCpuNativeDirCore : public FluidFamilyCore { native_config.model_dir = data_path; native_config.use_gpu = false; native_config.device = 0; + native_config.fraction_of_gpu_memory = 0; AutoLock lock(GlobalPaddleCreateMutex::instance()); _core = paddle::CreatePaddlePredictor( @@ -458,6 +461,7 @@ class FluidCpuNativeDirWithSigmoidCore : public FluidCpuWithSigmoidCore { native_config.model_dir = data_path; native_config.use_gpu = false; native_config.device = 0; + native_config.fraction_of_gpu_memory = 0; AutoLock lock(GlobalPaddleCreateMutex::instance()); _core->_fluid_core = paddle::CreatePaddlePredictor +#include +#include +#include +#include +#include "configure/include/configure_parser.h" +#include "configure/inferencer_configure.pb.h" +#ifdef BCLOUD +#ifdef WITH_GPU +#include "paddle/paddle_inference_api.h" +#else +#include "paddle/fluid/inference/api/paddle_inference_api.h" +#endif +#else +#include "paddle/fluid/inference/paddle_inference_api.h" +#endif +#include "predictor/framework/infer.h" + +DECLARE_int32(gpuid); + +namespace baidu { +namespace paddle_serving { +namespace fluid_gpu { + +using configure::SigmoidConf; + +class AutoLock { + public: + explicit AutoLock(pthread_mutex_t& mutex) : _mut(mutex) { + pthread_mutex_lock(&mutex); + } + + ~AutoLock() { pthread_mutex_unlock(&_mut); } + + private: + pthread_mutex_t& _mut; +}; + +class GlobalPaddleCreateMutex { + public: + pthread_mutex_t& mutex() { return _mut; } + + static pthread_mutex_t& instance() { + static GlobalPaddleCreateMutex gmutex; + return gmutex.mutex(); + } + + private: + GlobalPaddleCreateMutex() { pthread_mutex_init(&_mut, NULL); } + + pthread_mutex_t _mut; +}; + +class GlobalSigmoidCreateMutex { + public: + pthread_mutex_t& mutex() { return _mut; } + static pthread_mutex_t& instance() { + static GlobalSigmoidCreateMutex gmutex; + return gmutex.mutex(); + } + + private: + GlobalSigmoidCreateMutex() { pthread_mutex_init(&_mut, NULL); } + + pthread_mutex_t _mut; +}; + +// data interface +class FluidFamilyCore { + public: + virtual ~FluidFamilyCore() {} + virtual bool Run(const void* in_data, void* out_data) { + if (!_core->Run(*(std::vector*)in_data, + (std::vector*)out_data)) { + LOG(ERROR) << "Failed call Run with paddle predictor"; + return false; + } + + return true; + } + + virtual int create(const std::string& data_path) = 0; + + virtual int clone(void* origin_core) { + if (origin_core == NULL) { + LOG(ERROR) << "origin paddle Predictor is null."; + return -1; + } + paddle::PaddlePredictor* p_predictor = + (paddle::PaddlePredictor*)origin_core; + _core = p_predictor->Clone(); + if (_core.get() == NULL) { + LOG(ERROR) << "fail to clone paddle predictor: " << origin_core; + return -1; + } + return 0; + } + + virtual void* get() { return _core.get(); } + + protected: + std::unique_ptr _core; +}; + +// infer interface +class FluidGpuAnalysisCore : public FluidFamilyCore { + public: + int create(const std::string& data_path) { + if (access(data_path.c_str(), F_OK) == -1) { + LOG(ERROR) << "create paddle predictor failed, path not exits: " + << data_path; + return -1; + } + + paddle::AnalysisConfig analysis_config; + analysis_config.SetParamsFile(data_path + "/__params__"); + analysis_config.SetProgFile(data_path + "/__model__"); + analysis_config.EnableUseGpu(100, FLAGS_gpuid); + analysis_config.SetCpuMathLibraryNumThreads(1); + analysis_config.SwitchSpecifyInputNames(true); + analysis_config.EnableMemoryOptim(); + AutoLock lock(GlobalPaddleCreateMutex::instance()); + _core = + paddle::CreatePaddlePredictor(analysis_config); + if (NULL == _core.get()) { + LOG(ERROR) << "create paddle predictor failed, path: " << data_path; + return -1; + } + + LOG(WARNING) << "create paddle predictor sucess, path: " << data_path; + return 0; + } +}; + +class FluidGpuNativeCore : public FluidFamilyCore { + public: + int create(const std::string& data_path) { + if (access(data_path.c_str(), F_OK) == -1) { + LOG(ERROR) << "create paddle predictor failed, path not exits: " + << data_path; + return -1; + } + + paddle::NativeConfig native_config; + native_config.param_file = data_path + "/__params__"; + native_config.prog_file = data_path + "/__model__"; + native_config.use_gpu = true; + native_config.fraction_of_gpu_memory = 0.01; + native_config.device = FLAGS_gpuid; + AutoLock lock(GlobalPaddleCreateMutex::instance()); + _core = paddle::CreatePaddlePredictor( + native_config); + if (NULL == _core.get()) { + LOG(ERROR) << "create paddle predictor failed, path: " << data_path; + return -1; + } + + LOG(WARNING) << "create paddle predictor sucess, path: " << data_path; + return 0; + } +}; + +class FluidGpuAnalysisDirCore : public FluidFamilyCore { + public: + int create(const std::string& data_path) { + if (access(data_path.c_str(), F_OK) == -1) { + LOG(ERROR) << "create paddle predictor failed, path not exits: " + << data_path; + return -1; + } + + paddle::AnalysisConfig analysis_config; + analysis_config.SetModel(data_path); + analysis_config.EnableUseGpu(100, FLAGS_gpuid); + analysis_config.SwitchSpecifyInputNames(true); + analysis_config.SetCpuMathLibraryNumThreads(1); + analysis_config.EnableMemoryOptim(); + AutoLock lock(GlobalPaddleCreateMutex::instance()); + _core = + paddle::CreatePaddlePredictor(analysis_config); + if (NULL == _core.get()) { + LOG(ERROR) << "create paddle predictor failed, path: " << data_path; + return -1; + } + + LOG(WARNING) << "create paddle predictor sucess, path: " << data_path; + return 0; + } +}; + +class FluidGpuNativeDirCore : public FluidFamilyCore { + public: + int create(const std::string& data_path) { + if (access(data_path.c_str(), F_OK) == -1) { + LOG(ERROR) << "create paddle predictor failed, path not exits: " + << data_path; + return -1; + } + + paddle::NativeConfig native_config; + native_config.model_dir = data_path; + native_config.use_gpu = true; + native_config.fraction_of_gpu_memory = 0.01; + native_config.device = FLAGS_gpuid; + AutoLock lock(GlobalPaddleCreateMutex::instance()); + _core = paddle::CreatePaddlePredictor( + native_config); + if (NULL == _core.get()) { + LOG(ERROR) << "create paddle predictor failed, path: " << data_path; + return -1; + } + + LOG(WARNING) << "create paddle predictor sucess, path: " << data_path; + return 0; + } +}; + +class Parameter { + public: + Parameter() : _row(0), _col(0), _params(NULL) {} + ~Parameter() { + LOG(INFO) << "before destroy Parameter, file_name[" << _file_name << "]"; + destroy(); + } + + int init(int row, int col, const char* file_name) { + destroy(); + _file_name = file_name; + _row = row; + _col = col; + _params = reinterpret_cast(malloc(_row * _col * sizeof(float))); + if (_params == NULL) { + LOG(ERROR) << "Load " << _file_name << " malloc error."; + return -1; + } + LOG(WARNING) << "Load parameter file[" << _file_name << "] success."; + return 0; + } + + void destroy() { + _row = 0; + _col = 0; + if (_params != NULL) { + free(_params); + _params = NULL; + } + } + + int load() { + if (_params == NULL || _row <= 0 || _col <= 0) { + LOG(ERROR) << "load parameter error [not inited]."; + return -1; + } + + FILE* fs = fopen(_file_name.c_str(), "rb"); + if (fs == NULL) { + LOG(ERROR) << "load " << _file_name << " fopen error."; + return -1; + } + static const uint32_t MODEL_FILE_HEAD_LEN = 16; + char head[MODEL_FILE_HEAD_LEN] = {0}; + if (fread(head, 1, MODEL_FILE_HEAD_LEN, fs) != MODEL_FILE_HEAD_LEN) { + destroy(); + LOG(ERROR) << "Load " << _file_name << " read head error."; + if (fs != NULL) { + fclose(fs); + fs = NULL; + } + return -1; + } + + uint32_t matrix_size = _row * _col; + if (matrix_size == fread(_params, sizeof(float), matrix_size, fs)) { + if (fs != NULL) { + fclose(fs); + fs = NULL; + } + LOG(INFO) << "load " << _file_name << " read ok."; + return 0; + } else { + LOG(ERROR) << "load " << _file_name << " read error."; + destroy(); + if (fs != NULL) { + fclose(fs); + fs = NULL; + } + return -1; + } + return 0; + } + + public: + std::string _file_name; + int _row; + int _col; + float* _params; +}; + +class SigmoidModel { + public: + ~SigmoidModel() {} + int load(const char* sigmoid_w_file, + const char* sigmoid_b_file, + float exp_max, + float exp_min) { + AutoLock lock(GlobalSigmoidCreateMutex::instance()); + if (0 != _sigmoid_w.init(2, 1, sigmoid_w_file) || 0 != _sigmoid_w.load()) { + LOG(ERROR) << "load params sigmoid_w failed."; + return -1; + } + LOG(WARNING) << "load sigmoid_w [" << _sigmoid_w._params[0] << "] [" + << _sigmoid_w._params[1] << "]."; + if (0 != _sigmoid_b.init(2, 1, sigmoid_b_file) || 0 != _sigmoid_b.load()) { + LOG(ERROR) << "load params sigmoid_b failed."; + return -1; + } + LOG(WARNING) << "load sigmoid_b [" << _sigmoid_b._params[0] << "] [" + << _sigmoid_b._params[1] << "]."; + _exp_max_input = exp_max; + _exp_min_input = exp_min; + return 0; + } + + int softmax(float x, double& o) { // NOLINT + float _y0 = x * _sigmoid_w._params[0] + _sigmoid_b._params[0]; + float _y1 = x * _sigmoid_w._params[1] + _sigmoid_b._params[1]; + _y0 = (_y0 > _exp_max_input) + ? _exp_max_input + : ((_y0 < _exp_min_input) ? _exp_min_input : _y0); + _y1 = (_y1 > _exp_max_input) + ? _exp_max_input + : ((_y1 < _exp_min_input) ? _exp_min_input : _y1); + o = 1.0f / (1.0f + exp(_y0 - _y1)); + return 0; + } + + public: + Parameter _sigmoid_w; + Parameter _sigmoid_b; + float _exp_max_input; + float _exp_min_input; +}; + +class SigmoidFluidModel { + public: + int softmax(float x, double& o) { // NOLINT + return _sigmoid_core->softmax(x, o); + } // NOLINT + + std::unique_ptr Clone() { + std::unique_ptr clone_model; + clone_model.reset(new SigmoidFluidModel()); + clone_model->_sigmoid_core = _sigmoid_core; + clone_model->_fluid_core = _fluid_core->Clone(); + return std::move(clone_model); + } + + public: + std::unique_ptr _fluid_core; + std::shared_ptr _sigmoid_core; +}; + +class FluidGpuWithSigmoidCore : public FluidFamilyCore { + public: + virtual ~FluidGpuWithSigmoidCore() {} + + public: + int create(const std::string& model_path) { + size_t pos = model_path.find_last_of("/\\"); + std::string conf_path = model_path.substr(0, pos); + std::string conf_file = model_path.substr(pos); + configure::SigmoidConf conf; + if (configure::read_proto_conf(conf_path, conf_file, &conf) != 0) { + LOG(ERROR) << "failed load model path: " << model_path; + return -1; + } + + _core.reset(new SigmoidFluidModel); + + std::string fluid_model_data_path = conf.dnn_model_path(); + int ret = load_fluid_model(fluid_model_data_path); + if (ret < 0) { + LOG(ERROR) << "fail to load fluid model."; + return -1; + } + const char* sigmoid_w_file = conf.sigmoid_w_file().c_str(); + const char* sigmoid_b_file = conf.sigmoid_b_file().c_str(); + float exp_max = conf.exp_max_input(); + float exp_min = conf.exp_min_input(); + _core->_sigmoid_core.reset(new SigmoidModel); + LOG(INFO) << "create sigmoid core[" << _core->_sigmoid_core.get() + << "], use count[" << _core->_sigmoid_core.use_count() << "]."; + ret = _core->_sigmoid_core->load( + sigmoid_w_file, sigmoid_b_file, exp_max, exp_min); + if (ret < 0) { + LOG(ERROR) << "fail to load sigmoid model."; + return -1; + } + return 0; + } + + virtual bool Run(const void* in_data, void* out_data) { + if (!_core->_fluid_core->Run( + *(std::vector*)in_data, + (std::vector*)out_data)) { + LOG(ERROR) << "Failed call Run with paddle predictor"; + return false; + } + + return true; + } + + virtual int clone(SigmoidFluidModel* origin_core) { + if (origin_core == NULL) { + LOG(ERROR) << "origin paddle Predictor is null."; + return -1; + } + _core = origin_core->Clone(); + if (_core.get() == NULL) { + LOG(ERROR) << "fail to clone paddle predictor: " << origin_core; + return -1; + } + LOG(INFO) << "clone sigmoid core[" << _core->_sigmoid_core.get() + << "] use count[" << _core->_sigmoid_core.use_count() << "]."; + return 0; + } + + virtual SigmoidFluidModel* get() { return _core.get(); } + + virtual int load_fluid_model(const std::string& data_path) = 0; + + int softmax(float x, double& o) { // NOLINT + return _core->_sigmoid_core->softmax(x, o); + } + + protected: + std::unique_ptr _core; +}; + +class FluidGpuNativeDirWithSigmoidCore : public FluidGpuWithSigmoidCore { + public: + int load_fluid_model(const std::string& data_path) { + if (access(data_path.c_str(), F_OK) == -1) { + LOG(ERROR) << "create paddle predictor failed, path not exits: " + << data_path; + return -1; + } + + paddle::NativeConfig native_config; + native_config.model_dir = data_path; + native_config.use_gpu = true; + native_config.fraction_of_gpu_memory = 0.01; + native_config.device = FLAGS_gpuid; + AutoLock lock(GlobalPaddleCreateMutex::instance()); + _core->_fluid_core = + paddle::CreatePaddlePredictor( + native_config); + if (NULL == _core.get()) { + LOG(ERROR) << "create paddle predictor failed, path: " << data_path; + return -1; + } + + LOG(WARNING) << "create paddle predictor sucess, path: " << data_path; + return 0; + } +}; + +class FluidGpuAnalysisDirWithSigmoidCore : public FluidGpuWithSigmoidCore { + public: + int load_fluid_model(const std::string& data_path) { + if (access(data_path.c_str(), F_OK) == -1) { + LOG(ERROR) << "create paddle predictor failed, path not exits: " + << data_path; + return -1; + } + + paddle::AnalysisConfig analysis_config; + analysis_config.SetModel(data_path); + analysis_config.EnableUseGpu(100, FLAGS_gpuid); + analysis_config.SwitchSpecifyInputNames(true); + analysis_config.SetCpuMathLibraryNumThreads(1); + analysis_config.EnableMemoryOptim(); + AutoLock lock(GlobalPaddleCreateMutex::instance()); + _core->_fluid_core = + paddle::CreatePaddlePredictor(analysis_config); + if (NULL == _core.get()) { + LOG(ERROR) << "create paddle predictor failed, path: " << data_path; + return -1; + } + + LOG(WARNING) << "create paddle predictor sucess, path: " << data_path; + return 0; + } +}; + +} // namespace fluid_gpu +} // namespace paddle_serving +} // namespace baidu diff --git a/inferencer-fluid-gpu/src/fluid_gpu_engine.cpp b/inferencer-fluid-gpu/src/fluid_gpu_engine.cpp new file mode 100644 index 00000000..70e89b31 --- /dev/null +++ b/inferencer-fluid-gpu/src/fluid_gpu_engine.cpp @@ -0,0 +1,59 @@ +// Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "inferencer-fluid-gpu/include/fluid_gpu_engine.h" +#include "predictor/framework/factory.h" + +DEFINE_int32(gpuid, 0, "GPU device id to use"); + +namespace baidu { +namespace paddle_serving { +namespace fluid_gpu { + +REGIST_FACTORY_OBJECT_IMPL_WITH_NAME( + ::baidu::paddle_serving::predictor::FluidInferEngine, + ::baidu::paddle_serving::predictor::InferEngine, + "FLUID_GPU_ANALYSIS"); + +REGIST_FACTORY_OBJECT_IMPL_WITH_NAME( + ::baidu::paddle_serving::predictor::FluidInferEngine< + FluidGpuAnalysisDirCore>, + ::baidu::paddle_serving::predictor::InferEngine, + "FLUID_GPU_ANALYSIS_DIR"); + +REGIST_FACTORY_OBJECT_IMPL_WITH_NAME( + ::baidu::paddle_serving::predictor::FluidInferEngine< + FluidGpuAnalysisDirWithSigmoidCore>, + ::baidu::paddle_serving::predictor::InferEngine, + "FLUID_GPU_ANALYSIS_DIR_SIGMOID"); + +REGIST_FACTORY_OBJECT_IMPL_WITH_NAME( + ::baidu::paddle_serving::predictor::FluidInferEngine, + ::baidu::paddle_serving::predictor::InferEngine, + "FLUID_GPU_NATIVE"); + +REGIST_FACTORY_OBJECT_IMPL_WITH_NAME( + ::baidu::paddle_serving::predictor::FluidInferEngine, + ::baidu::paddle_serving::predictor::InferEngine, + "FLUID_GPU_NATIVE_DIR"); + +REGIST_FACTORY_OBJECT_IMPL_WITH_NAME( + ::baidu::paddle_serving::predictor::FluidInferEngine< + FluidGpuNativeDirWithSigmoidCore>, + ::baidu::paddle_serving::predictor::InferEngine, + "FLUID_GPU_NATIVE_DIR_SIGMOID"); + +} // namespace fluid_gpu +} // namespace paddle_serving +} // namespace baidu diff --git a/predictor/framework/infer.h b/predictor/framework/infer.h index 3754a7ea..abf0f788 100644 --- a/predictor/framework/infer.h +++ b/predictor/framework/infer.h @@ -461,7 +461,7 @@ class CloneDBReloadableInferEngine }; template -class FluidInferEngine : public DBReloadableInferEngine { +class FluidInferEngine : public CloneDBReloadableInferEngine { public: FluidInferEngine() {} ~FluidInferEngine() {} diff --git a/predictor/src/pdserving.cpp b/predictor/src/pdserving.cpp index b24b8795..c9c7be3f 100644 --- a/predictor/src/pdserving.cpp +++ b/predictor/src/pdserving.cpp @@ -69,7 +69,30 @@ DEFINE_bool(V, false, "print version, bool"); DEFINE_bool(g, false, "user defined gflag path"); DECLARE_string(flagfile); -void pthread_worker_start_fn() { Resource::instance().thread_initialize(); } +namespace bthread { +extern pthread_mutex_t g_task_control_mutex; +} +pthread_mutex_t g_worker_start_fn_mutex = PTHREAD_MUTEX_INITIALIZER; + +void pthread_worker_start_fn() { + while (pthread_mutex_lock(&g_worker_start_fn_mutex) != 0) { + } + + // Try to avoid deadlock in bthread + int lock_status = pthread_mutex_trylock(&bthread::g_task_control_mutex); + if (lock_status == EBUSY || lock_status == EAGAIN) { + pthread_mutex_unlock(&bthread::g_task_control_mutex); + } + Resource::instance().thread_initialize(); + + // Try to avoid deadlock in bthread + if (lock_status == EBUSY || lock_status == EAGAIN) { + while (pthread_mutex_lock(&bthread::g_task_control_mutex) != 0) { + } + } + + pthread_mutex_unlock(&g_worker_start_fn_mutex); +} static void g_change_server_port() { InferServiceConf conf; @@ -111,7 +134,7 @@ int main(int argc, char** argv) { g_change_server_port(); - // initialize logger instance +// initialize logger instance #ifdef BCLOUD logging::LoggingSettings settings; settings.logging_dest = logging::LOG_TO_FILE; @@ -183,6 +206,8 @@ int main(int argc, char** argv) { } LOG(INFO) << "Succ call pthread worker start function"; + FLAGS_logtostderr = false; + if (ServerManager::instance().start_and_wait() != 0) { LOG(ERROR) << "Failed start server and wait!"; return -1; -- GitLab