diff --git a/mlir/lib/Bindings/Python/AsyncPasses.cpp b/mlir/lib/Bindings/Python/AsyncPasses.cpp index b611a758dbbb37..d34a164b6e30c2 100644 --- a/mlir/lib/Bindings/Python/AsyncPasses.cpp +++ b/mlir/lib/Bindings/Python/AsyncPasses.cpp @@ -11,11 +11,13 @@ #include #include +namespace py = pybind11; + // ----------------------------------------------------------------------------- // Module initialization. // ----------------------------------------------------------------------------- -PYBIND11_MODULE(_mlirAsyncPasses, m) { +PYBIND11_MODULE(_mlirAsyncPasses, m, py::mod_gil_not_used()) { m.doc() = "MLIR Async Dialect Passes"; // Register all Async passes on load. diff --git a/mlir/lib/Bindings/Python/DialectGPU.cpp b/mlir/lib/Bindings/Python/DialectGPU.cpp index 560a54bcd15919..5acfad007c3055 100644 --- a/mlir/lib/Bindings/Python/DialectGPU.cpp +++ b/mlir/lib/Bindings/Python/DialectGPU.cpp @@ -23,7 +23,7 @@ using namespace mlir::python::adaptors; // Module initialization. // ----------------------------------------------------------------------------- -PYBIND11_MODULE(_mlirDialectsGPU, m) { +PYBIND11_MODULE(_mlirDialectsGPU, m, py::mod_gil_not_used()) { m.doc() = "MLIR GPU Dialect"; //===-------------------------------------------------------------------===// // AsyncTokenType diff --git a/mlir/lib/Bindings/Python/DialectLLVM.cpp b/mlir/lib/Bindings/Python/DialectLLVM.cpp index 42a4c8c0793ba8..2af133a061eb4b 100644 --- a/mlir/lib/Bindings/Python/DialectLLVM.cpp +++ b/mlir/lib/Bindings/Python/DialectLLVM.cpp @@ -134,7 +134,7 @@ void populateDialectLLVMSubmodule(const pybind11::module &m) { }); } -PYBIND11_MODULE(_mlirDialectsLLVM, m) { +PYBIND11_MODULE(_mlirDialectsLLVM, m, py::mod_gil_not_used()) { m.doc() = "MLIR LLVM Dialect"; populateDialectLLVMSubmodule(m); diff --git a/mlir/lib/Bindings/Python/DialectLinalg.cpp b/mlir/lib/Bindings/Python/DialectLinalg.cpp index 2e54ebeb61fb10..118c4ab3f2f573 100644 --- a/mlir/lib/Bindings/Python/DialectLinalg.cpp +++ b/mlir/lib/Bindings/Python/DialectLinalg.cpp @@ -21,7 +21,7 @@ static void populateDialectLinalgSubmodule(py::module m) { "op."); } -PYBIND11_MODULE(_mlirDialectsLinalg, m) { +PYBIND11_MODULE(_mlirDialectsLinalg, m, py::mod_gil_not_used()) { m.doc() = "MLIR Linalg dialect."; populateDialectLinalgSubmodule(m); diff --git a/mlir/lib/Bindings/Python/DialectNVGPU.cpp b/mlir/lib/Bindings/Python/DialectNVGPU.cpp index 754e0a75b0abc7..4c962c403082cb 100644 --- a/mlir/lib/Bindings/Python/DialectNVGPU.cpp +++ b/mlir/lib/Bindings/Python/DialectNVGPU.cpp @@ -34,7 +34,7 @@ static void populateDialectNVGPUSubmodule(const pybind11::module &m) { py::arg("ctx") = py::none()); } -PYBIND11_MODULE(_mlirDialectsNVGPU, m) { +PYBIND11_MODULE(_mlirDialectsNVGPU, m, py::mod_gil_not_used()) { m.doc() = "MLIR NVGPU dialect."; populateDialectNVGPUSubmodule(m); diff --git a/mlir/lib/Bindings/Python/DialectPDL.cpp b/mlir/lib/Bindings/Python/DialectPDL.cpp index 8d3f9a7ab1d6ac..e8542d5e777a65 100644 --- a/mlir/lib/Bindings/Python/DialectPDL.cpp +++ b/mlir/lib/Bindings/Python/DialectPDL.cpp @@ -100,7 +100,7 @@ void populateDialectPDLSubmodule(const pybind11::module &m) { py::arg("context") = py::none()); } -PYBIND11_MODULE(_mlirDialectsPDL, m) { +PYBIND11_MODULE(_mlirDialectsPDL, m, py::mod_gil_not_used()) { m.doc() = "MLIR PDL dialect."; populateDialectPDLSubmodule(m); } diff --git a/mlir/lib/Bindings/Python/DialectQuant.cpp b/mlir/lib/Bindings/Python/DialectQuant.cpp index af9cdc7bdd2d89..fc6ef9f46ce8e5 100644 --- a/mlir/lib/Bindings/Python/DialectQuant.cpp +++ b/mlir/lib/Bindings/Python/DialectQuant.cpp @@ -307,7 +307,7 @@ static void populateDialectQuantSubmodule(const py::module &m) { }); } -PYBIND11_MODULE(_mlirDialectsQuant, m) { +PYBIND11_MODULE(_mlirDialectsQuant, m, py::mod_gil_not_used()) { m.doc() = "MLIR Quantization dialect"; populateDialectQuantSubmodule(m); diff --git a/mlir/lib/Bindings/Python/DialectSparseTensor.cpp b/mlir/lib/Bindings/Python/DialectSparseTensor.cpp index 584981cfe99bf1..d4f35859fdcf1a 100644 --- a/mlir/lib/Bindings/Python/DialectSparseTensor.cpp +++ b/mlir/lib/Bindings/Python/DialectSparseTensor.cpp @@ -142,7 +142,7 @@ static void populateDialectSparseTensorSubmodule(const py::module &m) { }); } -PYBIND11_MODULE(_mlirDialectsSparseTensor, m) { +PYBIND11_MODULE(_mlirDialectsSparseTensor, m, py::mod_gil_not_used()) { m.doc() = "MLIR SparseTensor dialect."; populateDialectSparseTensorSubmodule(m); } diff --git a/mlir/lib/Bindings/Python/DialectTransform.cpp b/mlir/lib/Bindings/Python/DialectTransform.cpp index 6b57e652aa9d8b..df665dd66bdc28 100644 --- a/mlir/lib/Bindings/Python/DialectTransform.cpp +++ b/mlir/lib/Bindings/Python/DialectTransform.cpp @@ -117,7 +117,7 @@ void populateDialectTransformSubmodule(const pybind11::module &m) { "Get the type this ParamType is associated with."); } -PYBIND11_MODULE(_mlirDialectsTransform, m) { +PYBIND11_MODULE(_mlirDialectsTransform, m, py::mod_gil_not_used()) { m.doc() = "MLIR Transform dialect."; populateDialectTransformSubmodule(m); } diff --git a/mlir/lib/Bindings/Python/ExecutionEngineModule.cpp b/mlir/lib/Bindings/Python/ExecutionEngineModule.cpp index b3df30583fc963..ddd81d1e7d592e 100644 --- a/mlir/lib/Bindings/Python/ExecutionEngineModule.cpp +++ b/mlir/lib/Bindings/Python/ExecutionEngineModule.cpp @@ -64,7 +64,7 @@ class PyExecutionEngine { } // namespace /// Create the `mlir.execution_engine` module here. -PYBIND11_MODULE(_mlirExecutionEngine, m) { +PYBIND11_MODULE(_mlirExecutionEngine, m, py::mod_gil_not_used()) { m.doc() = "MLIR Execution Engine"; //---------------------------------------------------------------------------- diff --git a/mlir/lib/Bindings/Python/GPUPasses.cpp b/mlir/lib/Bindings/Python/GPUPasses.cpp index e276a3ce3a56a0..bfc43e99946bb9 100644 --- a/mlir/lib/Bindings/Python/GPUPasses.cpp +++ b/mlir/lib/Bindings/Python/GPUPasses.cpp @@ -11,11 +11,13 @@ #include #include +namespace py = pybind11; + // ----------------------------------------------------------------------------- // Module initialization. // ----------------------------------------------------------------------------- -PYBIND11_MODULE(_mlirGPUPasses, m) { +PYBIND11_MODULE(_mlirGPUPasses, m, py::mod_gil_not_used()) { m.doc() = "MLIR GPU Dialect Passes"; // Register all GPU passes on load. diff --git a/mlir/lib/Bindings/Python/LinalgPasses.cpp b/mlir/lib/Bindings/Python/LinalgPasses.cpp index 3f230207a42114..e3d8f237e2bab3 100644 --- a/mlir/lib/Bindings/Python/LinalgPasses.cpp +++ b/mlir/lib/Bindings/Python/LinalgPasses.cpp @@ -10,11 +10,13 @@ #include +namespace py = pybind11; + // ----------------------------------------------------------------------------- // Module initialization. // ----------------------------------------------------------------------------- -PYBIND11_MODULE(_mlirLinalgPasses, m) { +PYBIND11_MODULE(_mlirLinalgPasses, m, py::mod_gil_not_used()) { m.doc() = "MLIR Linalg Dialect Passes"; // Register all Linalg passes on load. diff --git a/mlir/lib/Bindings/Python/MainModule.cpp b/mlir/lib/Bindings/Python/MainModule.cpp index 8da1ab16a4514b..de713e7031a01e 100644 --- a/mlir/lib/Bindings/Python/MainModule.cpp +++ b/mlir/lib/Bindings/Python/MainModule.cpp @@ -22,7 +22,7 @@ using namespace mlir::python; // Module initialization. // ----------------------------------------------------------------------------- -PYBIND11_MODULE(_mlir, m) { +PYBIND11_MODULE(_mlir, m, py::mod_gil_not_used()) { m.doc() = "MLIR Python Native Extension"; py::class_(m, "_Globals", py::module_local()) diff --git a/mlir/lib/Bindings/Python/RegisterEverything.cpp b/mlir/lib/Bindings/Python/RegisterEverything.cpp index 6b2f6b0a6a3b86..5c5c6e32102712 100644 --- a/mlir/lib/Bindings/Python/RegisterEverything.cpp +++ b/mlir/lib/Bindings/Python/RegisterEverything.cpp @@ -9,7 +9,7 @@ #include "mlir-c/RegisterEverything.h" #include "mlir/Bindings/Python/PybindAdaptors.h" -PYBIND11_MODULE(_mlirRegisterEverything, m) { +PYBIND11_MODULE(_mlirRegisterEverything, m, py::mod_gil_not_used()) { m.doc() = "MLIR All Upstream Dialects, Translations and Passes Registration"; m.def("register_dialects", [](MlirDialectRegistry registry) { diff --git a/mlir/lib/Bindings/Python/SparseTensorPasses.cpp b/mlir/lib/Bindings/Python/SparseTensorPasses.cpp index 2a8e2b802df9c4..1bbdf2f3ccf4e5 100644 --- a/mlir/lib/Bindings/Python/SparseTensorPasses.cpp +++ b/mlir/lib/Bindings/Python/SparseTensorPasses.cpp @@ -10,11 +10,13 @@ #include +namespace py = pybind11; + // ----------------------------------------------------------------------------- // Module initialization. // ----------------------------------------------------------------------------- -PYBIND11_MODULE(_mlirSparseTensorPasses, m) { +PYBIND11_MODULE(_mlirSparseTensorPasses, m, py::mod_gil_not_used()) { m.doc() = "MLIR SparseTensor Dialect Passes"; // Register all SparseTensor passes on load. diff --git a/mlir/lib/Bindings/Python/TransformInterpreter.cpp b/mlir/lib/Bindings/Python/TransformInterpreter.cpp index f6b4532b1b6be4..93ab447d52bec1 100644 --- a/mlir/lib/Bindings/Python/TransformInterpreter.cpp +++ b/mlir/lib/Bindings/Python/TransformInterpreter.cpp @@ -99,7 +99,7 @@ static void populateTransformInterpreterSubmodule(py::module &m) { py::arg("target"), py::arg("other")); } -PYBIND11_MODULE(_mlirTransformInterpreter, m) { +PYBIND11_MODULE(_mlirTransformInterpreter, m, py::mod_gil_not_used()) { m.doc() = "MLIR Transform dialect interpreter functionality."; populateTransformInterpreterSubmodule(m); } diff --git a/mlir/python/requirements.txt b/mlir/python/requirements.txt index d1b5418cca5b23..49b8471c6b771c 100644 --- a/mlir/python/requirements.txt +++ b/mlir/python/requirements.txt @@ -1,4 +1,6 @@ -numpy>=1.19.5, <=1.26 -pybind11>=2.9.0, <=2.10.3 +numpy>=1.19.5, <3.0 +# pybind11>=2.14.0, <2.15.0 +# Temporarily set pybind11 version to master waiting the next release to 2.13.6 +pybind11 @ git+https://github.com/pybind/pybind11@master PyYAML>=5.4.0, <=6.0.1 -ml_dtypes>=0.1.0, <=0.4.0 # provides several NumPy dtype extensions, including the bf16 +ml_dtypes>=0.5.0, <=0.6.0 # provides several NumPy dtype extensions, including the bf16