From 14235385e264079869e42baba80ae06911008489 Mon Sep 17 00:00:00 2001 From: Megvii Engine Team Date: Wed, 2 Sep 2020 21:21:37 +0800 Subject: [PATCH] fix(imperative): release gil on sync GitOrigin-RevId: 6823219f9e2bc1632c26dfbbe575dfb1f6edb5e5 --- imperative/python/src/imperative_rt.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/imperative/python/src/imperative_rt.cpp b/imperative/python/src/imperative_rt.cpp index 92cd9238..90c28761 100644 --- a/imperative/python/src/imperative_rt.cpp +++ b/imperative/python/src/imperative_rt.cpp @@ -75,7 +75,7 @@ void init_imperative_rt(py::module m) { .def("get_shape", &Interpreter::Channel::get_shape) .def("_get_dev_tensor", &Interpreter::Channel::get_dev_tensor) .def("apply_op", &Interpreter::Channel::apply_op) - .def("sync", &Interpreter::Channel::sync); + .def("sync", &Interpreter::Channel::sync, py::call_guard()); std::unique_ptr ch = Interpreter::inst().create_channel(); m.attr("interpreter") = py::detail::make_caster::cast( @@ -86,6 +86,7 @@ void init_imperative_rt(py::module m) { m.def("sync", [m]() { m.attr("interpreter").attr("sync")(); + py::gil_scoped_release _; py_task_q.wait_all_task_finish(); });