提交 9330929f 编写于 作者: M Megvii Engine Team

feat(lite): add c_opr_init_interface for lar

GitOrigin-RevId: f7bcc2765647a32951a197d4eb618c95e5fb735b
上级 16ba05a8
......@@ -121,9 +121,13 @@ void COprLibOption::load_lib() {
handle, "failed to open c opr lib %s:\n errmsg: %s", lib_path.c_str(),
dlerror());
const char* entry = MGB_C_OPR_INIT_FUNC_STR;
const char* entry = m_c_opr_init_func.c_str();
auto func = dlsym(handle, entry);
mgb_assert(func, "can not resolve %s: %s", entry, dlerror());
mgb_assert(
func,
"can not resolve %s: %s, please use '--c-opr-init-interface' to set the "
"init API of your loader",
entry, dlerror());
typedef void (*entry_f_t)(void*);
reinterpret_cast<entry_f_t>(func)(
reinterpret_cast<void*>(&mgb_get_extern_c_opr_api_versioned));
......@@ -177,6 +181,7 @@ COprLibOption::COprLibOption() {
lib_path = FLAGS_c_opr_lib;
c_opr_args.is_run_c_opr = !lib_path.empty();
c_opr_args.is_run_c_opr_with_param = FLAGS_c_opr_lib_with_param;
m_c_opr_init_func = FLAGS_c_opr_init_interface;
}
bool COprLibOption::is_valid() {
......@@ -205,5 +210,7 @@ DEFINE_bool(
"Run c opr lib with param, use to benchmark speed and check result, "
"need c opr loader implemente `copr_param_device_ptr_malloc, "
"copr_param_device_ptr_free and copr_param_device_ptr_h2d' symbols");
DEFINE_string(
c_opr_init_interface, MGB_C_OPR_INIT_FUNC_STR,
"set the C_OPR_INIT_FUNC interface when running");
REGIST_OPTION_CREATOR(c_opr_lib, lar::COprLibOption::create_option);
......@@ -6,7 +6,7 @@
DECLARE_bool(c_opr_lib_with_param);
DECLARE_string(c_opr_lib);
DECLARE_string(c_opr_init_interface);
namespace lar {
struct COprArgs {
......@@ -51,5 +51,6 @@ private:
COprArgs c_opr_args;
std::string lib_path;
std::shared_ptr<ExternCOprParam> c_opr_param;
std::string m_c_opr_init_func;
};
} // namespace lar
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册