diff --git a/CMakeLists.txt b/CMakeLists.txt index 5486b6f98df2ad32a75bece4eb49885c671fc9a7..3b21d33489dbce4894ae323fc62dafd5f59fdb31 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -65,8 +65,8 @@ endif() if (NOT CLIENT_ONLY) include(external/jsoncpp) include(external/rocksdb) -include(external/gtest) endif() +#include(external/gtest) include(external/snappy) include(external/leveldb) diff --git a/README.md b/README.md index 5e0624388f41d921079c243a123195ed13f8d6c9..528fca6589573526bf41cd59334ca2d98fad0550 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ An easy-to-use Machine Learning Model Inference Service Deployment Tool [![Issues](https://img.shields.io/github/issues/PaddlePaddle/Serving)](Issues) [![License](https://img.shields.io/github/license/PaddlePaddle/Serving)](LICENSE) -[中文](./README_CN.md) +[中文](./doc/README_CN.md) Paddle Serving is the online inference service framework of [Paddle](https://github.com/PaddlePaddle/Paddle) that can help developers easily deploy a deep learning model service on server side and send request from mobile devices, edge devices as well as data centers. Currently, Paddle Serving supports the deep learning models produced by Paddle althought it can be very easy to support other deep learning framework's model inference. Paddle Serving is designed oriented from industrial practice. For example, multiple models management for online service, double buffers model loading, models online A/B testing are supported. Highly concurrent [Baidu-rpc](https://github.com/apache/incubator-brpc) is used as the underlying communication library which is also from industry practice. Paddle Serving provides user-friendly API that can integrate with Paddle training code seamlessly, and users can finish model training and model serving in an end-to-end fasion. @@ -22,6 +22,7 @@ pip install paddle-serving-client pip install paddle-serving-server ``` + ### Training Scripts ``` python @@ -121,7 +122,7 @@ for data in test_reader(): ### Advanced features and development -[Compile from source code(Chinese)](doc/INSTALL.md) +[Compile from source code(Chinese)](doc/COMPILE.md) ## Contribution diff --git a/cmake/external/gtest.cmake b/cmake/external/gtest.cmake index 82af574574dae191aedc785e7aa4cedcf4c88330..cc844acf44091a35ff55410582b2e8dcd89404ac 100644 --- a/cmake/external/gtest.cmake +++ b/cmake/external/gtest.cmake @@ -28,7 +28,7 @@ ExternalProject_Add( GIT_TAG master UPDATE_COMMAND "" CONFIGURE_COMMAND "" - BUILD_COMMAND CXXFLAGS=-fPIC && mkdir build && cd build && cmake .. && make -j ${NUM_OF_PROCESSOR} gtest + BUILD_COMMAND CXXFLAGS=-fPIC && mkdir -p build && cd build && cmake .. && make -j ${NUM_OF_PROCESSOR} gtest INSTALL_COMMAND mkdir -p ${GTEST_INSTALL_DIR}/lib/ && cp ${GTEST_SOURCES_DIR}/src/extern_gtest/build/lib/libgtest.a ${GTEST_LIBRARIES} && cp -r ${GTEST_SOURCES_DIR}/src/extern_gtest/googletest/include ${GTEST_INSTALL_DIR}/ @@ -41,4 +41,3 @@ ADD_LIBRARY(gtest STATIC IMPORTED GLOBAL) SET_PROPERTY(TARGET gtest PROPERTY IMPORTED_LOCATION ${GTEST_LIBRARIES}) LIST(APPEND external_project_dependencies gtest) - diff --git a/core/cube/cube-server/CMakeLists.txt b/core/cube/cube-server/CMakeLists.txt index d9b4012409eefb9f2c1016536b09935e4a030ca7..e33b0b00de65738dbbf83c44a6af6508b96c5cb1 100644 --- a/core/cube/cube-server/CMakeLists.txt +++ b/core/cube/cube-server/CMakeLists.txt @@ -67,10 +67,10 @@ endif() target_link_libraries(cube brpc ${DYNAMIC_LIB} -lpthread -ldl -lz) -add_executable(cube_test ${SRC_LIST} test/cube_test.cpp - ${PROTO_SRC} ${PROTO_HEADER}) +#add_executable(cube_test ${SRC_LIST} test/cube_test.cpp +# ${PROTO_SRC} ${PROTO_HEADER}) -target_link_libraries(cube_test brpc ${DYNAMIC_LIB} gtest -lpthread -ldl -lz) +#target_link_libraries(cube_test brpc ${DYNAMIC_LIB} gtest -lpthread -ldl -lz) # install install(TARGETS cube diff --git a/core/general-client/src/elog b/core/general-client/src/elog deleted file mode 100644 index 33edf65aab6e7a4778f160dde6585216181c4cfb..0000000000000000000000000000000000000000 --- a/core/general-client/src/elog +++ /dev/null @@ -1 +0,0 @@ -make: *** No targets specified and no makefile found. Stop. diff --git a/core/general-server/op/general_infer_op.cpp b/core/general-server/op/general_infer_op.cpp index 81358bf6c12244e8dd9a8f3d27161f9d86d46800..6cec9d1cb4d87e13c566c24c90cef11f148749c8 100644 --- a/core/general-server/op/general_infer_op.cpp +++ b/core/general-server/op/general_infer_op.cpp @@ -36,8 +36,9 @@ using baidu::paddle_serving::predictor::InferManager; using baidu::paddle_serving::predictor::PaddleGeneralModelConfig; int GeneralInferOp::inference() { + VLOG(2) << "Going to run inference"; const GeneralBlob *input_blob = get_depend_argument(pre_name()); - + VLOG(2) << "Get precedent op name: " << pre_name(); GeneralBlob *output_blob = mutable_data(); if (!input_blob) { @@ -48,6 +49,8 @@ int GeneralInferOp::inference() { const TensorVector *in = &input_blob->tensor_vector; TensorVector *out = &output_blob->tensor_vector; int batch_size = input_blob->GetBatchSize(); + VLOG(2) << "input batch size: " << batch_size; + output_blob->SetBatchSize(batch_size); VLOG(2) << "infer batch size: " << batch_size; diff --git a/core/general-server/op/general_text_reader_op.cpp b/core/general-server/op/general_text_reader_op.cpp index 77dd299c818cf2af2cee05b7cf14e7b490f79e19..81df8171d30d7ebd2c208ad31cda5aea0564c50e 100644 --- a/core/general-server/op/general_text_reader_op.cpp +++ b/core/general-server/op/general_text_reader_op.cpp @@ -45,7 +45,9 @@ int GeneralTextReaderOp::inference() { std::vector capacity; GeneralBlob *res = mutable_data(); - TensorVector *in = &res->tensor_vector; + TensorVector *out = &res->tensor_vector; + + res->SetBatchSize(batch_size); if (!res) { LOG(ERROR) << "Failed get op tls reader object output"; @@ -103,23 +105,23 @@ int GeneralTextReaderOp::inference() { VLOG(2) << "var[" << i << "] is tensor, capacity: " << capacity[i]; } lod_tensor.name = model_config->_feed_name[i]; - in->push_back(lod_tensor); + out->push_back(lod_tensor); } for (int i = 0; i < var_num; ++i) { - if (in->at(i).lod.size() == 1) { + if (out->at(i).lod.size() == 1) { for (int j = 0; j < batch_size; ++j) { const Tensor &tensor = req->insts(j).tensor_array(i); int data_len = tensor.int_data_size(); - int cur_len = in->at(i).lod[0].back(); - in->at(i).lod[0].push_back(cur_len + data_len); + int cur_len = out->at(i).lod[0].back(); + out->at(i).lod[0].push_back(cur_len + data_len); } - in->at(i).data.Resize(in->at(i).lod[0].back() * elem_size[i]); - in->at(i).shape = {in->at(i).lod[0].back(), 1}; + out->at(i).data.Resize(out->at(i).lod[0].back() * elem_size[i]); + out->at(i).shape = {out->at(i).lod[0].back(), 1}; VLOG(2) << "var[" << i - << "] is lod_tensor and len=" << in->at(i).lod[0].back(); + << "] is lod_tensor and len=" << out->at(i).lod[0].back(); } else { - in->at(i).data.Resize(batch_size * capacity[i] * elem_size[i]); + out->at(i).data.Resize(batch_size * capacity[i] * elem_size[i]); VLOG(2) << "var[" << i << "] is tensor and capacity=" << batch_size * capacity[i]; } @@ -127,7 +129,7 @@ int GeneralTextReaderOp::inference() { for (int i = 0; i < var_num; ++i) { if (elem_type[i] == 0) { - int64_t *dst_ptr = static_cast(in->at(i).data.data()); + int64_t *dst_ptr = static_cast(out->at(i).data.data()); int offset = 0; for (int j = 0; j < batch_size; ++j) { for (int k = 0; @@ -136,14 +138,14 @@ int GeneralTextReaderOp::inference() { dst_ptr[offset + k] = req->insts(j).tensor_array(i).int_data(k); } - if (in->at(i).lod.size() == 1) { - offset = in->at(i).lod[0][j + 1]; + if (out->at(i).lod.size() == 1) { + offset = out->at(i).lod[0][j + 1]; } else { offset += capacity[i]; } } } else { - float *dst_ptr = static_cast(in->at(i).data.data()); + float *dst_ptr = static_cast(out->at(i).data.data()); int offset = 0; for (int j = 0; j < batch_size; ++j) { for (int k = 0; @@ -152,8 +154,8 @@ int GeneralTextReaderOp::inference() { dst_ptr[offset + k] = req->insts(j).tensor_array(i).int_data(k); } - if (in->at(i).lod.size() == 1) { - offset = in->at(i).lod[0][j + 1]; + if (out->at(i).lod.size() == 1) { + offset = out->at(i).lod[0][j + 1]; } else { offset += capacity[i]; } @@ -162,6 +164,7 @@ int GeneralTextReaderOp::inference() { } int64_t end = timeline.TimeStampUS(); + res->p_size = 0; AddBlobInfo(res, start); AddBlobInfo(res, end); diff --git a/core/kvdb/CMakeLists.txt b/core/kvdb/CMakeLists.txt index 8eb2ee42cdbe1ff3982af9d375de0d9d2434f15b..e81d32da4a54f98eeb10f2855336463c5d7e6b99 100644 --- a/core/kvdb/CMakeLists.txt +++ b/core/kvdb/CMakeLists.txt @@ -1,54 +1,21 @@ include_directories(SYSTEM ${CMAKE_CURRENT_LIST_DIR}/include) -set(SRC_LIST ${CMAKE_CURRENT_LIST_DIR}/src/test_rocksdb.cpp - ${CMAKE_CURRENT_LIST_DIR}/src/rockskvdb_impl.cpp +set(SRC_LIST ${CMAKE_CURRENT_LIST_DIR}/src/rockskvdb_impl.cpp ${CMAKE_CURRENT_LIST_DIR}/src/param_dict_mgr_impl.cpp ${CMAKE_CURRENT_LIST_DIR}/src/mock_param_dict_impl.cpp - ${CMAKE_CURRENT_LIST_DIR}/src/paddle_rocksdb.cpp - ${CMAKE_CURRENT_LIST_DIR}/src/gtest_kvdb.cpp) + ${CMAKE_CURRENT_LIST_DIR}/src/paddle_rocksdb.cpp) add_library(kvdb ${SRC_LIST}) add_dependencies(kvdb rocksdb) install(TARGETS kvdb ARCHIVE DESTINATION ${PADDLE_SERVING_INSTALL_DIR}/lib/) -add_executable(kvdb_test ${SRC_LIST}) -add_dependencies(kvdb_test rocksdb) -target_link_libraries(kvdb_test rocksdb bz2 snappy zlib gtest) -#target_include_directories(kvdb_test PUBLIC ${CMAKE_CURRENT_LIST_DIR}/include/kvdb) -set(SRC_LIST2 ${CMAKE_CURRENT_LIST_DIR}/src/gtest_db_thread.cpp - ${CMAKE_CURRENT_LIST_DIR}/src/rockskvdb_impl.cpp +set(SRC_LIST2 ${CMAKE_CURRENT_LIST_DIR}/src/rockskvdb_impl.cpp ${CMAKE_CURRENT_LIST_DIR}/src/param_dict_mgr_impl.cpp ${CMAKE_CURRENT_LIST_DIR}/src/mock_param_dict_impl.cpp ${CMAKE_CURRENT_LIST_DIR}/src/paddle_rocksdb.cpp) - -add_executable(db_thread ${SRC_LIST2}) -add_dependencies(db_thread rocksdb) -target_link_libraries(db_thread rocksdb bz2 snappy zlib gtest) -#target_include_directories(db_thread PUBLIC ${CMAKE_CURRENT_LIST_DIR}/include/kvdb) - - -set(SRC_LIST3 ${CMAKE_CURRENT_LIST_DIR}/src/gtest_db_func.cpp - ${CMAKE_CURRENT_LIST_DIR}/src/rockskvdb_impl.cpp - ${CMAKE_CURRENT_LIST_DIR}/src/param_dict_mgr_impl.cpp - ${CMAKE_CURRENT_LIST_DIR}/src/mock_param_dict_impl.cpp - ${CMAKE_CURRENT_LIST_DIR}/src/paddle_rocksdb.cpp) - -add_executable(db_func ${SRC_LIST3}) -add_dependencies(db_func rocksdb) -target_link_libraries(db_func rocksdb bz2 snappy zlib gtest) -#target_include_directories(db_func PUBLIC ${CMAKE_CURRENT_LIST_DIR}/include/kvdb) - -install(TARGETS kvdb_test - RUNTIME DESTINATION ${PADDLE_SERVING_INSTALL_DIR}/demo/kvdb_test) -install(TARGETS db_thread - RUNTIME DESTINATION ${PADDLE_SERVING_INSTALL_DIR}/demo/db_thread) -install(TARGETS db_func - RUNTIME DESTINATION ${PADDLE_SERVING_INSTALL_DIR}/demo/db_func) - - file(GLOB kvdb_headers "${CMAKE_CURRENT_LIST_DIR}/include/kvdb/*.h") install(FILES ${kvdb_headers} DESTINATION ${PADDLE_SERVING_INSTALL_DIR}/include/kvdb/) diff --git a/core/kvdb/src/gtest_db_func.cpp b/core/tests/gtest_db_func.cpp similarity index 100% rename from core/kvdb/src/gtest_db_func.cpp rename to core/tests/gtest_db_func.cpp diff --git a/core/kvdb/src/gtest_db_thread.cpp b/core/tests/gtest_db_thread.cpp similarity index 100% rename from core/kvdb/src/gtest_db_thread.cpp rename to core/tests/gtest_db_thread.cpp diff --git a/core/kvdb/src/gtest_kvdb.cpp b/core/tests/gtest_kvdb.cpp similarity index 100% rename from core/kvdb/src/gtest_kvdb.cpp rename to core/tests/gtest_kvdb.cpp diff --git a/core/kvdb/src/test_rocksdb.cpp b/core/tests/test_rocksdb.cpp similarity index 100% rename from core/kvdb/src/test_rocksdb.cpp rename to core/tests/test_rocksdb.cpp diff --git a/doc/COMPILE.md b/doc/COMPILE.md new file mode 100644 index 0000000000000000000000000000000000000000..e93d0b7e5b906213e6a3ff9f149b372c22b1c80e --- /dev/null +++ b/doc/COMPILE.md @@ -0,0 +1,30 @@ +# 如何编译PaddleServing + +### 获取代码 + +``` python +git clone https://github.com/PaddlePaddle/Serving +git submodule update --init --recursive +``` + +### 编译Server部分 + +#### 集成CPU版本Paddle Inference Library +``` shell +cmake -DPYTHON_INCLUDE_DIR=$PYTHONROOT/include/python2.7/ -DPYTHON_LIBRARIES=$PYTHONROOT/lib/libpython2.7.so -DPYTHON_EXECUTABLE=/home/users/dongdaxiang/software/baidu/third-party/python/bin/python -DCLIENT_ONLY=OFF .. +make -j10 +``` + +#### 集成GPU版本Paddle Inference Library +``` shell +cmake -DPYTHON_INCLUDE_DIR=$PYTHONROOT/include/python2.7/ -DPYTHON_LIBRARIES=$PYTHONROOT/lib/libpython2.7.so -DPYTHON_EXECUTABLE=/home/users/dongdaxiang/software/baidu/third-party/python/bin/python -DCLIENT_ONLY=ON -DWITH_GPU=ON .. +make -j10 +``` + +### 编译Client部分 + +``` shell +cmake -DPYTHON_INCLUDE_DIR=$PYTHONROOT/include/python2.7/ -DPYTHON_LIBRARIES=$PYTHONROOT/lib/libpython2.7.so -DPYTHON_EXECUTABLE=/home/users/dongdaxiang/software/baidu/third-party/python/bin/python -DCLIENT_ONLY=ON .. +make -j10 +``` + diff --git a/README_CN.md b/doc/README_CN.md similarity index 100% rename from README_CN.md rename to doc/README_CN.md diff --git a/README_EN.md b/doc/README_EN.md similarity index 100% rename from README_EN.md rename to doc/README_EN.md diff --git a/go/client_app/imdb_client.go b/go/client_app/imdb_client.go index aef823ed2c5209217d4f60f93d19006e67dca35d..079ddbbda50ce159b29b9835f947a47ce7d47791 100644 --- a/go/client_app/imdb_client.go +++ b/go/client_app/imdb_client.go @@ -28,7 +28,7 @@ func main() { var config_file_path string config_file_path = os.Args[1] handle := serving_client.LoadModelConfig(config_file_path) - handle = serving_client.Connect("127.0.0.1", "9292", handle) + handle = serving_client.Connect("127.0.0.1", "9393", handle) test_file_path := os.Args[2] fi, err := os.Open(test_file_path) diff --git a/go/serving_client/serving_client_api.go b/go/serving_client/serving_client_api.go index 6fcdb9454d04fb134470902e7713b4c40e197d37..3d4b95f28c869143f6a97e7fd060fc1ee84c7540 100644 --- a/go/serving_client/serving_client_api.go +++ b/go/serving_client/serving_client_api.go @@ -43,11 +43,12 @@ type FetchInst struct { type Request struct { Insts []FeedInst `json:"insts"` FetchVarNames []string `json:"fetch_var_names"` + ProfileServer bool `json:"profile_server"` } type Response struct { Insts []FetchInst `json:"insts"` - MeanInferUs float32 `json:"mean_infer_us"` + ProfileTime []int64 `json:"profile_time"` } type Handle struct { @@ -125,9 +126,13 @@ func Predict(handle Handle, int_feed_map map[string][]int64, fetch []string) map inst.TensorArray = tensor_array + var profile_server bool + profile_server = false + req := &Request{ Insts: []FeedInst{inst}, - FetchVarNames: fetch} + FetchVarNames: fetch, + ProfileServer: profile_server} b, err := json.Marshal(req) diff --git a/python/paddle_serving_server/__init__.py b/python/paddle_serving_server/__init__.py index 68cf2c907a346416198fe4aa845e7c148dd08c89..c08d9d2c3ee0dda5e67333e84e5a5c95f5ff558e 100644 --- a/python/paddle_serving_server/__init__.py +++ b/python/paddle_serving_server/__init__.py @@ -259,6 +259,8 @@ class Server(object): # currently we do not load cube if not self.use_local_bin: self.download_bin() + else: + print("Use local bin") command = "{} " \ "-enable_model_toolkit " \ "-inferservice_path {} " \ @@ -283,5 +285,7 @@ class Server(object): self.resource_fn, self.workdir, self.workflow_fn, - self.num_threads,) + self.num_threads) + print("Going to Run Comand") + print(command) os.system(command) diff --git a/python/paddle_serving_server/serve.py b/python/paddle_serving_server/serve.py new file mode 100644 index 0000000000000000000000000000000000000000..fe9dcd4dc8cb7cea51a0ac180796c340a22ef8ae --- /dev/null +++ b/python/paddle_serving_server/serve.py @@ -0,0 +1,63 @@ +# Copyright (c) 2020 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. +""" +Usage: + Host a trained paddle model with one line command + Example: + python -m paddle_serving_server.serve --model ./serving_server_model --port 9292 +""" +import argparse + +def parse_args(): + parser = argparse.ArgumentParser("serve") + parser.add_argument("--thread", type=int, default=10, help="Concurrency of server") + parser.add_argument("--model", type=str, default="", help="Model for serving") + parser.add_argument("--port", type=int, default=9292, help="Port the server") + parser.add_argument("--workdir", type=str, default="workdir", help="Working dir of current service") + parser.add_argument("--device", type=str, default="cpu", help="Type of device") + return parser.parse_args() + +def start_standard_model(): + args = parse_args() + thread_num = args.thread + model = args.model + port = args.port + workdir = args.workdir + device = args.device + + if model == "": + print("You must specify your serving model") + exit(-1) + + import paddle_serving_server as serving + op_maker = serving.OpMaker() + read_op = op_maker.create('general_reader') + general_infer_op = op_maker.create('general_infer') + general_response_op = op_maker.create('general_response') + + op_seq_maker = serving.OpSeqMaker() + op_seq_maker.add_op(read_op) + op_seq_maker.add_op(general_infer_op) + op_seq_maker.add_op(general_response_op) + + server = serving.Server() + server.set_op_sequence(op_seq_maker.get_op_sequence()) + server.set_num_threads(thread_num) + + server.load_model_config(model) + server.prepare_server(workdir=workdir, port=port, device=device) + server.run_server() + +if __name__ == "__main__": + start_standard_model() diff --git a/python/paddle_serving_server_gpu/__init__.py b/python/paddle_serving_server_gpu/__init__.py index 8e1cabb998ecb7c0507bff17bc5a6320a445e412..1cb860c71447d9672dee8ec4cd48e7fcb62ca5f5 100644 --- a/python/paddle_serving_server_gpu/__init__.py +++ b/python/paddle_serving_server_gpu/__init__.py @@ -272,4 +272,6 @@ class Server(object): self.workflow_fn, self.num_threads, self.gpuid,) + print("Going to Run Comand") + print(command) os.system(command) diff --git a/Dockerfile b/tools/Dockerfile similarity index 100% rename from Dockerfile rename to tools/Dockerfile diff --git a/Dockerfile.gpu b/tools/Dockerfile.gpu similarity index 100% rename from Dockerfile.gpu rename to tools/Dockerfile.gpu diff --git a/examples/CMakeLists.txt b/tools/cpp_examples/CMakeLists.txt similarity index 100% rename from examples/CMakeLists.txt rename to tools/cpp_examples/CMakeLists.txt diff --git a/examples/bert-gpu-serving/client/bert_service/bert_service.py b/tools/cpp_examples/bert-gpu-serving/client/bert_service/bert_service.py similarity index 100% rename from examples/bert-gpu-serving/client/bert_service/bert_service.py rename to tools/cpp_examples/bert-gpu-serving/client/bert_service/bert_service.py diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/README.md b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/README.md similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/README.md rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/README.md diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/__init__.py b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/__init__.py similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/__init__.py rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/__init__.py diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/run/__init__.py b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/run/__init__.py similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/run/__init__.py rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/run/__init__.py diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/cube.conf b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/cube.conf similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/cube.conf rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/cube.conf diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/gflags.conf b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/gflags.conf similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/gflags.conf rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/gflags.conf diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.0 b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.0 similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.0 rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.0 diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.1 b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.1 similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.1 rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.1 diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.10 b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.10 similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.10 rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.10 diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.11 b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.11 similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.11 rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.11 diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.12 b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.12 similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.12 rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.12 diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.13 b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.13 similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.13 rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.13 diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.14 b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.14 similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.14 rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.14 diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.15 b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.15 similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.15 rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.15 diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.2 b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.2 similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.2 rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.2 diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.3 b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.3 similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.3 rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.3 diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.4 b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.4 similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.4 rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.4 diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.5 b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.5 similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.5 rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.5 diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.6 b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.6 similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.6 rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.6 diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.7 b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.7 similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.7 rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.7 diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.8 b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.8 similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.8 rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.8 diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.9 b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.9 similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.9 rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/model_toolkit.prototxt.9 diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.0 b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.0 similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.0 rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.0 diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.1 b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.1 similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.1 rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.1 diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.10 b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.10 similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.10 rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.10 diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.11 b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.11 similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.11 rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.11 diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.12 b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.12 similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.12 rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.12 diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.13 b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.13 similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.13 rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.13 diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.14 b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.14 similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.14 rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.14 diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.15 b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.15 similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.15 rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.15 diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.2 b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.2 similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.2 rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.2 diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.3 b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.3 similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.3 rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.3 diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.4 b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.4 similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.4 rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.4 diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.5 b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.5 similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.5 rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.5 diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.6 b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.6 similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.6 rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.6 diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.7 b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.7 similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.7 rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.7 diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.8 b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.8 similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.8 rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.8 diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.9 b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.9 similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.9 rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/resource.prototxt.9 diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/service.prototxt b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/service.prototxt similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/service.prototxt rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/service.prototxt diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/workflow.prototxt b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/workflow.prototxt similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/workflow.prototxt rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/conf/workflow.prototxt diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/data/model/paddle/fluid_reload_flag b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/data/model/paddle/fluid_reload_flag similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/data/model/paddle/fluid_reload_flag rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/data/model/paddle/fluid_reload_flag diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/data/model/paddle/fluid_time_file b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/data/model/paddle/fluid_time_file similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/data/model/paddle/fluid_time_file rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/paddle_gpu_serving/server/data/model/paddle/fluid_time_file diff --git a/examples/bert-gpu-serving/paddle-gpu-serving/setup.py b/tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/setup.py similarity index 100% rename from examples/bert-gpu-serving/paddle-gpu-serving/setup.py rename to tools/cpp_examples/bert-gpu-serving/paddle-gpu-serving/setup.py diff --git a/examples/demo-client/CMakeLists.txt b/tools/cpp_examples/demo-client/CMakeLists.txt similarity index 100% rename from examples/demo-client/CMakeLists.txt rename to tools/cpp_examples/demo-client/CMakeLists.txt diff --git a/examples/demo-client/conf/predictors.prototxt b/tools/cpp_examples/demo-client/conf/predictors.prototxt similarity index 100% rename from examples/demo-client/conf/predictors.prototxt rename to tools/cpp_examples/demo-client/conf/predictors.prototxt diff --git a/examples/demo-client/inference.conf b/tools/cpp_examples/demo-client/inference.conf similarity index 100% rename from examples/demo-client/inference.conf rename to tools/cpp_examples/demo-client/inference.conf diff --git a/examples/demo-client/paddle_serving_client.egg-info/PKG-INFO b/tools/cpp_examples/demo-client/paddle_serving_client.egg-info/PKG-INFO similarity index 100% rename from examples/demo-client/paddle_serving_client.egg-info/PKG-INFO rename to tools/cpp_examples/demo-client/paddle_serving_client.egg-info/PKG-INFO diff --git a/examples/demo-client/paddle_serving_client.egg-info/SOURCES.txt b/tools/cpp_examples/demo-client/paddle_serving_client.egg-info/SOURCES.txt similarity index 100% rename from examples/demo-client/paddle_serving_client.egg-info/SOURCES.txt rename to tools/cpp_examples/demo-client/paddle_serving_client.egg-info/SOURCES.txt diff --git a/examples/demo-client/paddle_serving_client.egg-info/dependency_links.txt b/tools/cpp_examples/demo-client/paddle_serving_client.egg-info/dependency_links.txt similarity index 100% rename from examples/demo-client/paddle_serving_client.egg-info/dependency_links.txt rename to tools/cpp_examples/demo-client/paddle_serving_client.egg-info/dependency_links.txt diff --git a/examples/demo-client/paddle_serving_client.egg-info/not-zip-safe b/tools/cpp_examples/demo-client/paddle_serving_client.egg-info/not-zip-safe similarity index 100% rename from examples/demo-client/paddle_serving_client.egg-info/not-zip-safe rename to tools/cpp_examples/demo-client/paddle_serving_client.egg-info/not-zip-safe diff --git a/examples/demo-client/paddle_serving_client.egg-info/top_level.txt b/tools/cpp_examples/demo-client/paddle_serving_client.egg-info/top_level.txt similarity index 100% rename from examples/demo-client/paddle_serving_client.egg-info/top_level.txt rename to tools/cpp_examples/demo-client/paddle_serving_client.egg-info/top_level.txt diff --git a/examples/demo-client/php/echo.php b/tools/cpp_examples/demo-client/php/echo.php similarity index 100% rename from examples/demo-client/php/echo.php rename to tools/cpp_examples/demo-client/php/echo.php diff --git a/examples/demo-client/php/text_classification.php b/tools/cpp_examples/demo-client/php/text_classification.php similarity index 100% rename from examples/demo-client/php/text_classification.php rename to tools/cpp_examples/demo-client/php/text_classification.php diff --git a/examples/demo-client/predictor.conf b/tools/cpp_examples/demo-client/predictor.conf similarity index 100% rename from examples/demo-client/predictor.conf rename to tools/cpp_examples/demo-client/predictor.conf diff --git a/examples/demo-client/python/echo.py b/tools/cpp_examples/demo-client/python/echo.py similarity index 100% rename from examples/demo-client/python/echo.py rename to tools/cpp_examples/demo-client/python/echo.py diff --git a/examples/demo-client/python/text_classification.py b/tools/cpp_examples/demo-client/python/text_classification.py similarity index 100% rename from examples/demo-client/python/text_classification.py rename to tools/cpp_examples/demo-client/python/text_classification.py diff --git a/examples/demo-client/src/bert_service.cpp b/tools/cpp_examples/demo-client/src/bert_service.cpp similarity index 100% rename from examples/demo-client/src/bert_service.cpp rename to tools/cpp_examples/demo-client/src/bert_service.cpp diff --git a/examples/demo-client/src/ctr_prediction.cpp b/tools/cpp_examples/demo-client/src/ctr_prediction.cpp similarity index 100% rename from examples/demo-client/src/ctr_prediction.cpp rename to tools/cpp_examples/demo-client/src/ctr_prediction.cpp diff --git a/examples/demo-client/src/dense_format.cpp b/tools/cpp_examples/demo-client/src/dense_format.cpp similarity index 100% rename from examples/demo-client/src/dense_format.cpp rename to tools/cpp_examples/demo-client/src/dense_format.cpp diff --git a/examples/demo-client/src/echo.cpp b/tools/cpp_examples/demo-client/src/echo.cpp similarity index 100% rename from examples/demo-client/src/echo.cpp rename to tools/cpp_examples/demo-client/src/echo.cpp diff --git a/examples/demo-client/src/echo_kvdb.cpp b/tools/cpp_examples/demo-client/src/echo_kvdb.cpp similarity index 100% rename from examples/demo-client/src/echo_kvdb.cpp rename to tools/cpp_examples/demo-client/src/echo_kvdb.cpp diff --git a/examples/demo-client/src/general_model.cpp b/tools/cpp_examples/demo-client/src/general_model.cpp similarity index 100% rename from examples/demo-client/src/general_model.cpp rename to tools/cpp_examples/demo-client/src/general_model.cpp diff --git a/examples/demo-client/src/general_model.h b/tools/cpp_examples/demo-client/src/general_model.h similarity index 100% rename from examples/demo-client/src/general_model.h rename to tools/cpp_examples/demo-client/src/general_model.h diff --git a/examples/demo-client/src/general_model_main.cpp b/tools/cpp_examples/demo-client/src/general_model_main.cpp similarity index 100% rename from examples/demo-client/src/general_model_main.cpp rename to tools/cpp_examples/demo-client/src/general_model_main.cpp diff --git a/examples/demo-client/src/int64tensor_format.cpp b/tools/cpp_examples/demo-client/src/int64tensor_format.cpp similarity index 100% rename from examples/demo-client/src/int64tensor_format.cpp rename to tools/cpp_examples/demo-client/src/int64tensor_format.cpp diff --git a/examples/demo-client/src/load_general_model.cpp b/tools/cpp_examples/demo-client/src/load_general_model.cpp similarity index 100% rename from examples/demo-client/src/load_general_model.cpp rename to tools/cpp_examples/demo-client/src/load_general_model.cpp diff --git a/examples/demo-client/src/pybind_general_model.cpp b/tools/cpp_examples/demo-client/src/pybind_general_model.cpp similarity index 100% rename from examples/demo-client/src/pybind_general_model.cpp rename to tools/cpp_examples/demo-client/src/pybind_general_model.cpp diff --git a/examples/demo-client/src/sparse_format.cpp b/tools/cpp_examples/demo-client/src/sparse_format.cpp similarity index 100% rename from examples/demo-client/src/sparse_format.cpp rename to tools/cpp_examples/demo-client/src/sparse_format.cpp diff --git a/examples/demo-client/src/text_classification.cpp b/tools/cpp_examples/demo-client/src/text_classification.cpp similarity index 100% rename from examples/demo-client/src/text_classification.cpp rename to tools/cpp_examples/demo-client/src/text_classification.cpp diff --git a/examples/demo-client/src/text_classification_press.cpp b/tools/cpp_examples/demo-client/src/text_classification_press.cpp similarity index 100% rename from examples/demo-client/src/text_classification_press.cpp rename to tools/cpp_examples/demo-client/src/text_classification_press.cpp diff --git a/examples/demo-client/src/ximage.cpp b/tools/cpp_examples/demo-client/src/ximage.cpp similarity index 100% rename from examples/demo-client/src/ximage.cpp rename to tools/cpp_examples/demo-client/src/ximage.cpp diff --git a/examples/demo-client/src/ximage_press.cpp b/tools/cpp_examples/demo-client/src/ximage_press.cpp similarity index 100% rename from examples/demo-client/src/ximage_press.cpp rename to tools/cpp_examples/demo-client/src/ximage_press.cpp diff --git a/examples/demo-serving/CMakeLists.txt b/tools/cpp_examples/demo-serving/CMakeLists.txt similarity index 100% rename from examples/demo-serving/CMakeLists.txt rename to tools/cpp_examples/demo-serving/CMakeLists.txt diff --git a/examples/demo-serving/conf/cube.conf b/tools/cpp_examples/demo-serving/conf/cube.conf similarity index 100% rename from examples/demo-serving/conf/cube.conf rename to tools/cpp_examples/demo-serving/conf/cube.conf diff --git a/examples/demo-serving/conf/general_model.prototxt b/tools/cpp_examples/demo-serving/conf/general_model.prototxt similarity index 100% rename from examples/demo-serving/conf/general_model.prototxt rename to tools/cpp_examples/demo-serving/conf/general_model.prototxt diff --git a/examples/demo-serving/conf/gflags.conf b/tools/cpp_examples/demo-serving/conf/gflags.conf similarity index 100% rename from examples/demo-serving/conf/gflags.conf rename to tools/cpp_examples/demo-serving/conf/gflags.conf diff --git a/examples/demo-serving/conf/model_toolkit.prototxt b/tools/cpp_examples/demo-serving/conf/model_toolkit.prototxt similarity index 100% rename from examples/demo-serving/conf/model_toolkit.prototxt rename to tools/cpp_examples/demo-serving/conf/model_toolkit.prototxt diff --git a/examples/demo-serving/conf/resource.prototxt b/tools/cpp_examples/demo-serving/conf/resource.prototxt similarity index 100% rename from examples/demo-serving/conf/resource.prototxt rename to tools/cpp_examples/demo-serving/conf/resource.prototxt diff --git a/examples/demo-serving/conf/service.prototxt b/tools/cpp_examples/demo-serving/conf/service.prototxt similarity index 100% rename from examples/demo-serving/conf/service.prototxt rename to tools/cpp_examples/demo-serving/conf/service.prototxt diff --git a/examples/demo-serving/conf/workflow.prototxt b/tools/cpp_examples/demo-serving/conf/workflow.prototxt similarity index 100% rename from examples/demo-serving/conf/workflow.prototxt rename to tools/cpp_examples/demo-serving/conf/workflow.prototxt diff --git a/examples/demo-serving/op/CMakeLists.txt b/tools/cpp_examples/demo-serving/op/CMakeLists.txt similarity index 100% rename from examples/demo-serving/op/CMakeLists.txt rename to tools/cpp_examples/demo-serving/op/CMakeLists.txt diff --git a/examples/demo-serving/op/bert_service_op.cpp b/tools/cpp_examples/demo-serving/op/bert_service_op.cpp similarity index 100% rename from examples/demo-serving/op/bert_service_op.cpp rename to tools/cpp_examples/demo-serving/op/bert_service_op.cpp diff --git a/examples/demo-serving/op/bert_service_op.h b/tools/cpp_examples/demo-serving/op/bert_service_op.h similarity index 100% rename from examples/demo-serving/op/bert_service_op.h rename to tools/cpp_examples/demo-serving/op/bert_service_op.h diff --git a/examples/demo-serving/op/classify_op.cpp b/tools/cpp_examples/demo-serving/op/classify_op.cpp similarity index 100% rename from examples/demo-serving/op/classify_op.cpp rename to tools/cpp_examples/demo-serving/op/classify_op.cpp diff --git a/examples/demo-serving/op/classify_op.h b/tools/cpp_examples/demo-serving/op/classify_op.h similarity index 100% rename from examples/demo-serving/op/classify_op.h rename to tools/cpp_examples/demo-serving/op/classify_op.h diff --git a/examples/demo-serving/op/common_echo_op.cpp b/tools/cpp_examples/demo-serving/op/common_echo_op.cpp similarity index 100% rename from examples/demo-serving/op/common_echo_op.cpp rename to tools/cpp_examples/demo-serving/op/common_echo_op.cpp diff --git a/examples/demo-serving/op/common_echo_op.h b/tools/cpp_examples/demo-serving/op/common_echo_op.h similarity index 100% rename from examples/demo-serving/op/common_echo_op.h rename to tools/cpp_examples/demo-serving/op/common_echo_op.h diff --git a/examples/demo-serving/op/ctr_prediction_op.cpp b/tools/cpp_examples/demo-serving/op/ctr_prediction_op.cpp similarity index 100% rename from examples/demo-serving/op/ctr_prediction_op.cpp rename to tools/cpp_examples/demo-serving/op/ctr_prediction_op.cpp diff --git a/examples/demo-serving/op/ctr_prediction_op.h b/tools/cpp_examples/demo-serving/op/ctr_prediction_op.h similarity index 100% rename from examples/demo-serving/op/ctr_prediction_op.h rename to tools/cpp_examples/demo-serving/op/ctr_prediction_op.h diff --git a/examples/demo-serving/op/dense_echo_op.cpp b/tools/cpp_examples/demo-serving/op/dense_echo_op.cpp similarity index 100% rename from examples/demo-serving/op/dense_echo_op.cpp rename to tools/cpp_examples/demo-serving/op/dense_echo_op.cpp diff --git a/examples/demo-serving/op/dense_echo_op.h b/tools/cpp_examples/demo-serving/op/dense_echo_op.h similarity index 100% rename from examples/demo-serving/op/dense_echo_op.h rename to tools/cpp_examples/demo-serving/op/dense_echo_op.h diff --git a/examples/demo-serving/op/general_model_op.cpp b/tools/cpp_examples/demo-serving/op/general_model_op.cpp similarity index 100% rename from examples/demo-serving/op/general_model_op.cpp rename to tools/cpp_examples/demo-serving/op/general_model_op.cpp diff --git a/examples/demo-serving/op/general_model_op.h b/tools/cpp_examples/demo-serving/op/general_model_op.h similarity index 100% rename from examples/demo-serving/op/general_model_op.h rename to tools/cpp_examples/demo-serving/op/general_model_op.h diff --git a/examples/demo-serving/op/int64tensor_echo_op.cpp b/tools/cpp_examples/demo-serving/op/int64tensor_echo_op.cpp similarity index 100% rename from examples/demo-serving/op/int64tensor_echo_op.cpp rename to tools/cpp_examples/demo-serving/op/int64tensor_echo_op.cpp diff --git a/examples/demo-serving/op/int64tensor_echo_op.h b/tools/cpp_examples/demo-serving/op/int64tensor_echo_op.h similarity index 100% rename from examples/demo-serving/op/int64tensor_echo_op.h rename to tools/cpp_examples/demo-serving/op/int64tensor_echo_op.h diff --git a/examples/demo-serving/op/kvdb_echo_op.cpp b/tools/cpp_examples/demo-serving/op/kvdb_echo_op.cpp similarity index 100% rename from examples/demo-serving/op/kvdb_echo_op.cpp rename to tools/cpp_examples/demo-serving/op/kvdb_echo_op.cpp diff --git a/examples/demo-serving/op/kvdb_echo_op.h b/tools/cpp_examples/demo-serving/op/kvdb_echo_op.h similarity index 100% rename from examples/demo-serving/op/kvdb_echo_op.h rename to tools/cpp_examples/demo-serving/op/kvdb_echo_op.h diff --git a/examples/demo-serving/op/load_general_model_conf_op.cpp b/tools/cpp_examples/demo-serving/op/load_general_model_conf_op.cpp similarity index 100% rename from examples/demo-serving/op/load_general_model_conf_op.cpp rename to tools/cpp_examples/demo-serving/op/load_general_model_conf_op.cpp diff --git a/examples/demo-serving/op/load_general_model_conf_op.h b/tools/cpp_examples/demo-serving/op/load_general_model_conf_op.h similarity index 100% rename from examples/demo-serving/op/load_general_model_conf_op.h rename to tools/cpp_examples/demo-serving/op/load_general_model_conf_op.h diff --git a/examples/demo-serving/op/reader_op.cpp b/tools/cpp_examples/demo-serving/op/reader_op.cpp similarity index 100% rename from examples/demo-serving/op/reader_op.cpp rename to tools/cpp_examples/demo-serving/op/reader_op.cpp diff --git a/examples/demo-serving/op/reader_op.h b/tools/cpp_examples/demo-serving/op/reader_op.h similarity index 100% rename from examples/demo-serving/op/reader_op.h rename to tools/cpp_examples/demo-serving/op/reader_op.h diff --git a/examples/demo-serving/op/sparse_echo_op.cpp b/tools/cpp_examples/demo-serving/op/sparse_echo_op.cpp similarity index 100% rename from examples/demo-serving/op/sparse_echo_op.cpp rename to tools/cpp_examples/demo-serving/op/sparse_echo_op.cpp diff --git a/examples/demo-serving/op/sparse_echo_op.h b/tools/cpp_examples/demo-serving/op/sparse_echo_op.h similarity index 100% rename from examples/demo-serving/op/sparse_echo_op.h rename to tools/cpp_examples/demo-serving/op/sparse_echo_op.h diff --git a/examples/demo-serving/op/text_classification_op.cpp b/tools/cpp_examples/demo-serving/op/text_classification_op.cpp similarity index 100% rename from examples/demo-serving/op/text_classification_op.cpp rename to tools/cpp_examples/demo-serving/op/text_classification_op.cpp diff --git a/examples/demo-serving/op/text_classification_op.h b/tools/cpp_examples/demo-serving/op/text_classification_op.h similarity index 100% rename from examples/demo-serving/op/text_classification_op.h rename to tools/cpp_examples/demo-serving/op/text_classification_op.h diff --git a/examples/demo-serving/op/write_json_op.cpp b/tools/cpp_examples/demo-serving/op/write_json_op.cpp similarity index 100% rename from examples/demo-serving/op/write_json_op.cpp rename to tools/cpp_examples/demo-serving/op/write_json_op.cpp diff --git a/examples/demo-serving/op/write_json_op.h b/tools/cpp_examples/demo-serving/op/write_json_op.h similarity index 100% rename from examples/demo-serving/op/write_json_op.h rename to tools/cpp_examples/demo-serving/op/write_json_op.h diff --git a/examples/demo-serving/op/write_op.cpp b/tools/cpp_examples/demo-serving/op/write_op.cpp similarity index 100% rename from examples/demo-serving/op/write_op.cpp rename to tools/cpp_examples/demo-serving/op/write_op.cpp diff --git a/examples/demo-serving/op/write_op.h b/tools/cpp_examples/demo-serving/op/write_op.h similarity index 100% rename from examples/demo-serving/op/write_op.h rename to tools/cpp_examples/demo-serving/op/write_op.h diff --git a/examples/demo-serving/proto/CMakeLists.txt b/tools/cpp_examples/demo-serving/proto/CMakeLists.txt similarity index 100% rename from examples/demo-serving/proto/CMakeLists.txt rename to tools/cpp_examples/demo-serving/proto/CMakeLists.txt diff --git a/examples/demo-serving/proto/bert_service.proto b/tools/cpp_examples/demo-serving/proto/bert_service.proto similarity index 100% rename from examples/demo-serving/proto/bert_service.proto rename to tools/cpp_examples/demo-serving/proto/bert_service.proto diff --git a/examples/demo-serving/proto/ctr_prediction.proto b/tools/cpp_examples/demo-serving/proto/ctr_prediction.proto similarity index 100% rename from examples/demo-serving/proto/ctr_prediction.proto rename to tools/cpp_examples/demo-serving/proto/ctr_prediction.proto diff --git a/examples/demo-serving/proto/dense_service.proto b/tools/cpp_examples/demo-serving/proto/dense_service.proto similarity index 100% rename from examples/demo-serving/proto/dense_service.proto rename to tools/cpp_examples/demo-serving/proto/dense_service.proto diff --git a/examples/demo-serving/proto/echo_kvdb_service.proto b/tools/cpp_examples/demo-serving/proto/echo_kvdb_service.proto similarity index 100% rename from examples/demo-serving/proto/echo_kvdb_service.proto rename to tools/cpp_examples/demo-serving/proto/echo_kvdb_service.proto diff --git a/examples/demo-serving/proto/echo_service.proto b/tools/cpp_examples/demo-serving/proto/echo_service.proto similarity index 100% rename from examples/demo-serving/proto/echo_service.proto rename to tools/cpp_examples/demo-serving/proto/echo_service.proto diff --git a/examples/demo-serving/proto/general_model_service.proto b/tools/cpp_examples/demo-serving/proto/general_model_service.proto similarity index 100% rename from examples/demo-serving/proto/general_model_service.proto rename to tools/cpp_examples/demo-serving/proto/general_model_service.proto diff --git a/examples/demo-serving/proto/image_class.proto b/tools/cpp_examples/demo-serving/proto/image_class.proto similarity index 100% rename from examples/demo-serving/proto/image_class.proto rename to tools/cpp_examples/demo-serving/proto/image_class.proto diff --git a/examples/demo-serving/proto/int64tensor_service.proto b/tools/cpp_examples/demo-serving/proto/int64tensor_service.proto similarity index 100% rename from examples/demo-serving/proto/int64tensor_service.proto rename to tools/cpp_examples/demo-serving/proto/int64tensor_service.proto diff --git a/examples/demo-serving/proto/load_general_model_service.proto b/tools/cpp_examples/demo-serving/proto/load_general_model_service.proto similarity index 100% rename from examples/demo-serving/proto/load_general_model_service.proto rename to tools/cpp_examples/demo-serving/proto/load_general_model_service.proto diff --git a/examples/demo-serving/proto/sparse_service.proto b/tools/cpp_examples/demo-serving/proto/sparse_service.proto similarity index 100% rename from examples/demo-serving/proto/sparse_service.proto rename to tools/cpp_examples/demo-serving/proto/sparse_service.proto diff --git a/examples/demo-serving/proto/text_classification.proto b/tools/cpp_examples/demo-serving/proto/text_classification.proto similarity index 100% rename from examples/demo-serving/proto/text_classification.proto rename to tools/cpp_examples/demo-serving/proto/text_classification.proto diff --git a/examples/elastic-ctr/CMakeLists.txt b/tools/cpp_examples/elastic-ctr/CMakeLists.txt similarity index 100% rename from examples/elastic-ctr/CMakeLists.txt rename to tools/cpp_examples/elastic-ctr/CMakeLists.txt diff --git a/examples/elastic-ctr/client/CMakeLists.txt b/tools/cpp_examples/elastic-ctr/client/CMakeLists.txt similarity index 100% rename from examples/elastic-ctr/client/CMakeLists.txt rename to tools/cpp_examples/elastic-ctr/client/CMakeLists.txt diff --git a/examples/elastic-ctr/client/api/elastic_ctr_api.cpp b/tools/cpp_examples/elastic-ctr/client/api/elastic_ctr_api.cpp similarity index 100% rename from examples/elastic-ctr/client/api/elastic_ctr_api.cpp rename to tools/cpp_examples/elastic-ctr/client/api/elastic_ctr_api.cpp diff --git a/examples/elastic-ctr/client/api/elastic_ctr_api.h b/tools/cpp_examples/elastic-ctr/client/api/elastic_ctr_api.h similarity index 100% rename from examples/elastic-ctr/client/api/elastic_ctr_api.h rename to tools/cpp_examples/elastic-ctr/client/api/elastic_ctr_api.h diff --git a/examples/elastic-ctr/client/api/python/elasticctr/elastic_ctr_api.py b/tools/cpp_examples/elastic-ctr/client/api/python/elasticctr/elastic_ctr_api.py similarity index 100% rename from examples/elastic-ctr/client/api/python/elasticctr/elastic_ctr_api.py rename to tools/cpp_examples/elastic-ctr/client/api/python/elasticctr/elastic_ctr_api.py diff --git a/examples/elastic-ctr/client/demo/conf/predictors.prototxt b/tools/cpp_examples/elastic-ctr/client/demo/conf/predictors.prototxt similarity index 100% rename from examples/elastic-ctr/client/demo/conf/predictors.prototxt rename to tools/cpp_examples/elastic-ctr/client/demo/conf/predictors.prototxt diff --git a/examples/elastic-ctr/client/demo/conf/slot.conf b/tools/cpp_examples/elastic-ctr/client/demo/conf/slot.conf similarity index 100% rename from examples/elastic-ctr/client/demo/conf/slot.conf rename to tools/cpp_examples/elastic-ctr/client/demo/conf/slot.conf diff --git a/examples/elastic-ctr/client/demo/data/ctr_prediction/data.txt b/tools/cpp_examples/elastic-ctr/client/demo/data/ctr_prediction/data.txt similarity index 100% rename from examples/elastic-ctr/client/demo/data/ctr_prediction/data.txt rename to tools/cpp_examples/elastic-ctr/client/demo/data/ctr_prediction/data.txt diff --git a/examples/elastic-ctr/client/demo/demo.cpp b/tools/cpp_examples/elastic-ctr/client/demo/demo.cpp similarity index 100% rename from examples/elastic-ctr/client/demo/demo.cpp rename to tools/cpp_examples/elastic-ctr/client/demo/demo.cpp diff --git a/examples/elastic-ctr/client/demo/elastic_ctr.py b/tools/cpp_examples/elastic-ctr/client/demo/elastic_ctr.py similarity index 100% rename from examples/elastic-ctr/client/demo/elastic_ctr.py rename to tools/cpp_examples/elastic-ctr/client/demo/elastic_ctr.py diff --git a/examples/elastic-ctr/client/proto/CMakeLists.txt b/tools/cpp_examples/elastic-ctr/client/proto/CMakeLists.txt similarity index 100% rename from examples/elastic-ctr/client/proto/CMakeLists.txt rename to tools/cpp_examples/elastic-ctr/client/proto/CMakeLists.txt diff --git a/examples/elastic-ctr/client/proto/elastic_ctr_prediction.proto b/tools/cpp_examples/elastic-ctr/client/proto/elastic_ctr_prediction.proto similarity index 100% rename from examples/elastic-ctr/client/proto/elastic_ctr_prediction.proto rename to tools/cpp_examples/elastic-ctr/client/proto/elastic_ctr_prediction.proto diff --git a/examples/elastic-ctr/serving/CMakeLists.txt b/tools/cpp_examples/elastic-ctr/serving/CMakeLists.txt similarity index 100% rename from examples/elastic-ctr/serving/CMakeLists.txt rename to tools/cpp_examples/elastic-ctr/serving/CMakeLists.txt diff --git a/examples/elastic-ctr/serving/conf/cube.conf b/tools/cpp_examples/elastic-ctr/serving/conf/cube.conf similarity index 100% rename from examples/elastic-ctr/serving/conf/cube.conf rename to tools/cpp_examples/elastic-ctr/serving/conf/cube.conf diff --git a/examples/elastic-ctr/serving/conf/gflags.conf b/tools/cpp_examples/elastic-ctr/serving/conf/gflags.conf similarity index 100% rename from examples/elastic-ctr/serving/conf/gflags.conf rename to tools/cpp_examples/elastic-ctr/serving/conf/gflags.conf diff --git a/examples/elastic-ctr/serving/conf/model_toolkit.prototxt b/tools/cpp_examples/elastic-ctr/serving/conf/model_toolkit.prototxt similarity index 100% rename from examples/elastic-ctr/serving/conf/model_toolkit.prototxt rename to tools/cpp_examples/elastic-ctr/serving/conf/model_toolkit.prototxt diff --git a/examples/elastic-ctr/serving/conf/resource.prototxt b/tools/cpp_examples/elastic-ctr/serving/conf/resource.prototxt similarity index 100% rename from examples/elastic-ctr/serving/conf/resource.prototxt rename to tools/cpp_examples/elastic-ctr/serving/conf/resource.prototxt diff --git a/examples/elastic-ctr/serving/conf/service.prototxt b/tools/cpp_examples/elastic-ctr/serving/conf/service.prototxt similarity index 100% rename from examples/elastic-ctr/serving/conf/service.prototxt rename to tools/cpp_examples/elastic-ctr/serving/conf/service.prototxt diff --git a/examples/elastic-ctr/serving/conf/workflow.prototxt b/tools/cpp_examples/elastic-ctr/serving/conf/workflow.prototxt similarity index 100% rename from examples/elastic-ctr/serving/conf/workflow.prototxt rename to tools/cpp_examples/elastic-ctr/serving/conf/workflow.prototxt diff --git a/examples/elastic-ctr/serving/data/model/paddle/fluid/.gitignore b/tools/cpp_examples/elastic-ctr/serving/data/model/paddle/fluid/.gitignore similarity index 100% rename from examples/elastic-ctr/serving/data/model/paddle/fluid/.gitignore rename to tools/cpp_examples/elastic-ctr/serving/data/model/paddle/fluid/.gitignore diff --git a/examples/elastic-ctr/serving/data/model/paddle/fluid_reload_flag b/tools/cpp_examples/elastic-ctr/serving/data/model/paddle/fluid_reload_flag similarity index 100% rename from examples/elastic-ctr/serving/data/model/paddle/fluid_reload_flag rename to tools/cpp_examples/elastic-ctr/serving/data/model/paddle/fluid_reload_flag diff --git a/examples/elastic-ctr/serving/data/model/paddle/fluid_time_file b/tools/cpp_examples/elastic-ctr/serving/data/model/paddle/fluid_time_file similarity index 100% rename from examples/elastic-ctr/serving/data/model/paddle/fluid_time_file rename to tools/cpp_examples/elastic-ctr/serving/data/model/paddle/fluid_time_file diff --git a/examples/elastic-ctr/serving/op/CMakeLists.txt b/tools/cpp_examples/elastic-ctr/serving/op/CMakeLists.txt similarity index 100% rename from examples/elastic-ctr/serving/op/CMakeLists.txt rename to tools/cpp_examples/elastic-ctr/serving/op/CMakeLists.txt diff --git a/examples/elastic-ctr/serving/op/elastic_ctr_prediction_op.cpp b/tools/cpp_examples/elastic-ctr/serving/op/elastic_ctr_prediction_op.cpp similarity index 100% rename from examples/elastic-ctr/serving/op/elastic_ctr_prediction_op.cpp rename to tools/cpp_examples/elastic-ctr/serving/op/elastic_ctr_prediction_op.cpp diff --git a/examples/elastic-ctr/serving/op/elastic_ctr_prediction_op.h b/tools/cpp_examples/elastic-ctr/serving/op/elastic_ctr_prediction_op.h similarity index 100% rename from examples/elastic-ctr/serving/op/elastic_ctr_prediction_op.h rename to tools/cpp_examples/elastic-ctr/serving/op/elastic_ctr_prediction_op.h diff --git a/examples/elastic-ctr/serving/proto/CMakeLists.txt b/tools/cpp_examples/elastic-ctr/serving/proto/CMakeLists.txt similarity index 100% rename from examples/elastic-ctr/serving/proto/CMakeLists.txt rename to tools/cpp_examples/elastic-ctr/serving/proto/CMakeLists.txt diff --git a/examples/elastic-ctr/serving/proto/elastic_ctr_prediction.proto b/tools/cpp_examples/elastic-ctr/serving/proto/elastic_ctr_prediction.proto similarity index 100% rename from examples/elastic-ctr/serving/proto/elastic_ctr_prediction.proto rename to tools/cpp_examples/elastic-ctr/serving/proto/elastic_ctr_prediction.proto