提交 43562c3d 编写于 作者: X xulongteng

add cube init

上级 765e5daa
...@@ -35,6 +35,8 @@ message ModelToolkitConf { repeated EngineDesc engines = 1; }; ...@@ -35,6 +35,8 @@ message ModelToolkitConf { repeated EngineDesc engines = 1; };
message ResourceConf { message ResourceConf {
required string model_toolkit_path = 1; required string model_toolkit_path = 1;
required string model_toolkit_file = 2; required string model_toolkit_file = 2;
optional string cube_config_path = 3;
optional string cube_config_file = 4;
}; };
// DAG node depency info // DAG node depency info
......
...@@ -40,6 +40,7 @@ DEFINE_int32( ...@@ -40,6 +40,7 @@ DEFINE_int32(
DEFINE_int32(reload_interval_s, 10, ""); DEFINE_int32(reload_interval_s, 10, "");
DEFINE_bool(enable_model_toolkit, false, "enable model toolkit"); DEFINE_bool(enable_model_toolkit, false, "enable model toolkit");
DEFINE_string(enable_protocol_list, "baidu_std", "set protocol list"); DEFINE_string(enable_protocol_list, "baidu_std", "set protocol list");
DEFINE_bool(enable_cube, false, "enable cube");
const char* START_OP_NAME = "startup_op"; const char* START_OP_NAME = "startup_op";
} // namespace predictor } // namespace predictor
......
...@@ -39,6 +39,9 @@ DECLARE_int32(num_threads); ...@@ -39,6 +39,9 @@ DECLARE_int32(num_threads);
DECLARE_int32(reload_interval_s); DECLARE_int32(reload_interval_s);
DECLARE_bool(enable_model_toolkit); DECLARE_bool(enable_model_toolkit);
DECLARE_string(enable_protocol_list); DECLARE_string(enable_protocol_list);
DECLARE_bool(enable_cube);
DECLARE_string(cube_config_path);
DECLARE_string(cube_config_file);
// STATIC Variables // STATIC Variables
extern const char* START_OP_NAME; extern const char* START_OP_NAME;
......
...@@ -22,7 +22,7 @@ namespace paddle_serving { ...@@ -22,7 +22,7 @@ namespace paddle_serving {
namespace predictor { namespace predictor {
using configure::ResourceConf; using configure::ResourceConf;
using rec::mcube::CubeAPI;
// __thread bool p_thread_initialized = false; // __thread bool p_thread_initialized = false;
static void dynamic_resource_deleter(void* d) { static void dynamic_resource_deleter(void* d) {
...@@ -91,6 +91,45 @@ int Resource::initialize(const std::string& path, const std::string& file) { ...@@ -91,6 +91,45 @@ int Resource::initialize(const std::string& path, const std::string& file) {
return 0; return 0;
} }
int Resource::cube_initialize(const std::string& path,
const std::string& file) {
// cube
if (!FLAGS_enable_cube) {
return 0;
}
ResourceConf resource_conf;
if (configure::read_proto_conf(path, file, &resource_conf) != 0) {
LOG(ERROR) << "Failed initialize resource from: " << path << "/" << file;
return -1;
}
int err = 0;
std::string cube_config_path = resource_conf.cube_config_path();
if (err != 0) {
LOG(ERROR) << "reade cube_config_path failed, path[" << path << "], file["
<< cube_config_path << "]";
return -1;
}
std::string cube_config_file = resource_conf.cube_config_file();
if (err != 0) {
LOG(ERROR) << "reade cube_config_file failed, path[" << path << "], file["
<< cube_config_file << "]";
return -1;
}
err = CubeAPI::instance()->init(cube_config_path.c_str(),
cube_config_file.c_str());
if (err != 0) {
LOG(ERROR) << "failed initialize cube, config: " << cube_config_path << "/"
<< cube_config_file << " error code : " << err;
return -1;
}
LOG(INFO) << "Successfully initialize cube";
return 0;
}
int Resource::thread_initialize() { int Resource::thread_initialize() {
// mempool // mempool
if (MempoolWrapper::instance().thread_initialize() != 0) { if (MempoolWrapper::instance().thread_initialize() != 0) {
...@@ -192,7 +231,10 @@ int Resource::finalize() { ...@@ -192,7 +231,10 @@ int Resource::finalize() {
LOG(ERROR) << "Failed proc finalize infer manager"; LOG(ERROR) << "Failed proc finalize infer manager";
return -1; return -1;
} }
if (CubeAPI::instance()->destroy() != 0) {
LOG(ERROR) << "Destory cube api failed ";
return -1;
}
THREAD_KEY_DELETE(_tls_bspec_key); THREAD_KEY_DELETE(_tls_bspec_key);
return 0; return 0;
......
...@@ -13,7 +13,9 @@ ...@@ -13,7 +13,9 @@
// limitations under the License. // limitations under the License.
#pragma once #pragma once
#include <memory>
#include <string> #include <string>
#include "include/cube/cube_api.h"
#include "kvdb/paddle_rocksdb.h" #include "kvdb/paddle_rocksdb.h"
#include "predictor/common/inner_common.h" #include "predictor/common/inner_common.h"
#include "predictor/framework/memory.h" #include "predictor/framework/memory.h"
...@@ -45,7 +47,7 @@ class Resource { ...@@ -45,7 +47,7 @@ class Resource {
} }
int initialize(const std::string& path, const std::string& file); int initialize(const std::string& path, const std::string& file);
int cube_initialize(const std::string& path, const std::string& file);
int thread_initialize(); int thread_initialize();
int thread_clear(); int thread_clear();
......
...@@ -209,6 +209,14 @@ int main(int argc, char** argv) { ...@@ -209,6 +209,14 @@ int main(int argc, char** argv) {
} }
LOG(INFO) << "Succ call pthread worker start function"; LOG(INFO) << "Succ call pthread worker start function";
if (Resource::instance().cube_initialize(FLAGS_resource_path,
FLAGS_resource_file) != 0) {
LOG(ERROR) << "Failed initialize cube, conf: " << FLAGS_resource_path << "/"
<< FLAGS_resource_file;
return -1;
}
LOG(INFO) << "Succ initialize cube";
FLAGS_logtostderr = false; FLAGS_logtostderr = false;
if (ServerManager::instance().start_and_wait() != 0) { if (ServerManager::instance().start_and_wait() != 0) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册