From ce243b2cb93603e6633a4aab588e048096a4b087 Mon Sep 17 00:00:00 2001 From: zhihaow6 Date: Fri, 24 Jul 2026 16:58:07 -0700 Subject: [PATCH 1/2] Acquire the GIL in lazy init_extension Bindings declared with call_guard (e.g. fp8_transpose) can be the first transformer_engine_torch call in a process. init_extension() then runs py::module_::import without holding the GIL and segfaults inside PyImport_ImportModule. Reacquire the GIL inside the one-time initializer. Signed-off-by: zhihaow6 --- transformer_engine/pytorch/csrc/extensions/pybind.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/transformer_engine/pytorch/csrc/extensions/pybind.cpp b/transformer_engine/pytorch/csrc/extensions/pybind.cpp index 7e9d114be8..bbad62e54b 100644 --- a/transformer_engine/pytorch/csrc/extensions/pybind.cpp +++ b/transformer_engine/pytorch/csrc/extensions/pybind.cpp @@ -121,6 +121,7 @@ void init_grouped_tensor_extension() { void init_extension() { std::call_once(extension_init_flag, []() { + pybind11::gil_scoped_acquire gil; init_float8_extension(); init_mxfp8_extension(); init_float8blockwise_extension(); From d5c53b05395a6b02da5c822f14e98635496b7fce Mon Sep 17 00:00:00 2001 From: Zhihao Wang <101526713+xiuhu17@users.noreply.github.com> Date: Tue, 28 Jul 2026 11:44:06 -0700 Subject: [PATCH 2/2] Update transformer_engine/pytorch/csrc/extensions/pybind.cpp Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> Signed-off-by: Zhihao Wang <101526713+xiuhu17@users.noreply.github.com> --- transformer_engine/pytorch/csrc/extensions/pybind.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/transformer_engine/pytorch/csrc/extensions/pybind.cpp b/transformer_engine/pytorch/csrc/extensions/pybind.cpp index bbad62e54b..c6bf7eb516 100644 --- a/transformer_engine/pytorch/csrc/extensions/pybind.cpp +++ b/transformer_engine/pytorch/csrc/extensions/pybind.cpp @@ -120,8 +120,8 @@ void init_grouped_tensor_extension() { } void init_extension() { + pybind11::gil_scoped_acquire gil; std::call_once(extension_init_flag, []() { - pybind11::gil_scoped_acquire gil; init_float8_extension(); init_mxfp8_extension(); init_float8blockwise_extension();