From 6424359ffb8b3802775afce9e1d2125de019147f Mon Sep 17 00:00:00 2001 From: zhangjun Date: Mon, 11 Jan 2021 12:25:31 +0800 Subject: [PATCH] run arm cpu bugfix use webservice; brpc reduce BTHREAD_MIN_CONCURRENCY from 4 to 2 --- cmake/external/brpc.cmake | 2 +- .../src/fluid_arm_engine.cpp | 2 ++ python/paddle_serving_server_gpu/__init__.py | 8 ++++--- python/paddle_serving_server_gpu/serve.py | 3 ++- .../paddle_serving_server_gpu/web_service.py | 22 ++++++++++++++++--- python/setup.py.app.in | 2 +- 6 files changed, 30 insertions(+), 9 deletions(-) diff --git a/cmake/external/brpc.cmake b/cmake/external/brpc.cmake index e030b899..7ed1ed57 100644 --- a/cmake/external/brpc.cmake +++ b/cmake/external/brpc.cmake @@ -36,7 +36,7 @@ INCLUDE_DIRECTORIES(${BRPC_INCLUDE_DIR}) 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") if(WITH_LITE) - set(BRPC_REPO "https://github.com/apache/incubator-brpc.git") + set(BRPC_REPO "https://github.com/zhangjun/incubator-brpc.git") set(BRPC_TAG "master") else() set(BRPC_REPO "https://github.com/wangjiawei04/brpc") diff --git a/paddle_inference/inferencer-fluid-arm/src/fluid_arm_engine.cpp b/paddle_inference/inferencer-fluid-arm/src/fluid_arm_engine.cpp index 1b38677f..6d45019a 100644 --- a/paddle_inference/inferencer-fluid-arm/src/fluid_arm_engine.cpp +++ b/paddle_inference/inferencer-fluid-arm/src/fluid_arm_engine.cpp @@ -19,6 +19,8 @@ namespace baidu { namespace paddle_serving { namespace fluid_arm { +DEFINE_int32(gpuid, 0, "device id to use"); + REGIST_FACTORY_OBJECT_IMPL_WITH_NAME( ::baidu::paddle_serving::predictor::FluidInferEngine, ::baidu::paddle_serving::predictor::InferEngine, diff --git a/python/paddle_serving_server_gpu/__init__.py b/python/paddle_serving_server_gpu/__init__.py index c9235ba0..9246e78e 100644 --- a/python/paddle_serving_server_gpu/__init__.py +++ b/python/paddle_serving_server_gpu/__init__.py @@ -423,10 +423,12 @@ class Server(object): for line in version_file.readlines(): if re.match("cuda_version", line): cuda_version = line.split("\"")[1] - if cuda_version != "trt": - device_version = "serving-gpu-cuda" + cuda_version + "-" - else: + if cuda_version == "trt": device_version = "serving-gpu-" + cuda_version + "-" + elif cuda_version == "arm": + device_version = "serving-" + cuda_version + "-" + elif: + device_version = "serving-gpu-cuda" + cuda_version + "-" folder_name = device_version + serving_server_version tar_name = folder_name + ".tar.gz" diff --git a/python/paddle_serving_server_gpu/serve.py b/python/paddle_serving_server_gpu/serve.py index 24562524..ffa4c233 100644 --- a/python/paddle_serving_server_gpu/serve.py +++ b/python/paddle_serving_server_gpu/serve.py @@ -140,7 +140,8 @@ if __name__ == "__main__": if len(gpu_ids) > 0: web_service.set_gpus(gpu_ids) web_service.prepare_server( - workdir=args.workdir, port=args.port, device=args.device) + workdir=args.workdir, port=args.port, device=args.device, + use_lite=args.use_lite, use_xpu=args.use_xpu, ir_optim=args.ir_optim) web_service.run_rpc_service() app_instance = Flask(__name__) diff --git a/python/paddle_serving_server_gpu/web_service.py b/python/paddle_serving_server_gpu/web_service.py index 8389f92c..4b89d90e 100644 --- a/python/paddle_serving_server_gpu/web_service.py +++ b/python/paddle_serving_server_gpu/web_service.py @@ -83,10 +83,15 @@ class WebService(object): gpuid=0, thread_num=2, mem_optim=True, + use_lite=False, + use_xpu=False, ir_optim=False): device = "gpu" if gpuid == -1: - device = "cpu" + if use_lite: + device = "arm" + else: + device = "cpu" op_maker = serving.OpMaker() read_op = op_maker.create('general_reader') general_infer_op = op_maker.create('general_infer') @@ -103,6 +108,11 @@ class WebService(object): server.set_memory_optimize(mem_optim) server.set_ir_optimize(ir_optim) + if use_lite: + server.set_lite() + if use_xpu: + server.set_xpu() + server.load_model_config(self.model_config) if gpuid >= 0: server.set_gpuid(gpuid) @@ -125,9 +135,11 @@ class WebService(object): workdir="", port=9393, device="gpu", + use_lite=False, + use_xpu=False, + ir_optim=False, gpuid=0, - mem_optim=True, - ir_optim=False): + mem_optim=True): print("This API will be deprecated later. Please do not use it") self.workdir = workdir self.port = port @@ -150,6 +162,8 @@ class WebService(object): -1, thread_num=2, mem_optim=mem_optim, + use_lite=use_lite, + use_xpu=use_xpu, ir_optim=ir_optim)) else: for i, gpuid in enumerate(self.gpus): @@ -160,6 +174,8 @@ class WebService(object): gpuid, thread_num=2, mem_optim=mem_optim, + use_lite=use_lite, + use_xpu=use_xpu, ir_optim=ir_optim)) def _launch_web_service(self): diff --git a/python/setup.py.app.in b/python/setup.py.app.in index 8480ed84..5cb2d137 100644 --- a/python/setup.py.app.in +++ b/python/setup.py.app.in @@ -32,7 +32,7 @@ if '${PACK}' == 'ON': REQUIRED_PACKAGES = [ - 'six >= 1.10.0', 'sentencepiece<=0.1.92', 'opencv-python<=4.2.0.32', 'pillow', + 'six >= 1.10.0', 'sentencepiece', 'opencv-python', 'pillow', 'pyclipper' ] -- GitLab