From ff34187131dc74e01b48c8f369114450ccb96eeb Mon Sep 17 00:00:00 2001 From: Abdussamet Turker <152855144+aturker-synnada@users.noreply.github.com> Date: Thu, 6 Mar 2025 09:16:17 +0300 Subject: [PATCH] feat: Add GGML backend (#217) --- .coveragerc | 6 - .github/workflows/ci-test-example.yml | 13 +- .github/workflows/ci-test-macos.yaml | 16 +- .github/workflows/ci-test-ubuntu.yaml | 16 +- .github/workflows/pypi-release.yml | 2 + .gitmodules | 3 + .pre-commit-config.yaml | 3 + MANIFEST.in | 2 +- license_checker.py | 20 +- mithril/__init__.py | 6 + mithril/backends/backend.py | 6 +- .../with_autograd/jax_backend/backend.py | 6 +- .../with_autograd/jax_backend/utils.py | 6 +- .../with_autograd/mlx_backend/backend.py | 5 +- .../with_autograd/mlx_backend/utils.py | 7 +- .../with_autograd/torch_backend/backend.py | 5 +- .../with_autograd/torch_backend/utils.py | 6 +- .../with_manualgrad/c_backend/backend.py | 11 +- .../with_manualgrad/c_backend/utils.py | 24 +- .../with_manualgrad/ggml_backend/__init__.py | 17 + .../with_manualgrad/ggml_backend/backend.py | 103 ++++ .../with_manualgrad/ggml_backend/utils.py | 31 + .../with_manualgrad/numpy_backend/backend.py | 5 +- .../with_manualgrad/numpy_backend/utils.py | 7 +- mithril/common.py | 23 + mithril/cores/c/array.py | 85 +-- mithril/cores/c/array.pyi | 12 +- mithril/cores/c/ggml/README.md | 66 +++ mithril/cores/c/ggml/build_ggml.sh | 53 ++ mithril/cores/c/ggml/compile.sh | 29 + mithril/cores/c/ggml/ggml | 1 + mithril/cores/c/ggml/ggml_backend.h | 23 + mithril/cores/c/ggml/ggml_core.py | 69 +++ mithril/cores/c/ggml/ggml_mithril.md | 32 ++ mithril/cores/c/ggml/libggml-base.dylib | Bin 0 -> 612288 bytes mithril/cores/c/ggml/libggml-cpu.dylib | Bin 0 -> 340352 bytes mithril/cores/c/ggml/libggml.dylib | Bin 0 -> 65216 bytes mithril/cores/c/ggml/ops.c | 45 ++ mithril/cores/c/ggml/ops.h | 28 + mithril/cores/c/{ => raw_c}/array.c | 0 mithril/cores/c/{ => raw_c}/array.h | 0 mithril/cores/c/raw_c/array.py | 83 +++ mithril/cores/c/raw_c/array.pyi | 33 ++ mithril/cores/c/{ => raw_c}/cbackend.h | 0 mithril/cores/c/{ => raw_c}/compile.sh | 0 mithril/cores/c/{ => raw_c}/main.c | 0 mithril/cores/c/{ => raw_c}/ops.c | 0 mithril/cores/c/{ => raw_c}/ops.h | 0 mithril/cores/c/{ => raw_c}/utils.h | 0 mithril/framework/codegen/__init__.py | 13 +- mithril/framework/codegen/c_ast.py | 165 +++++- mithril/framework/codegen/c_gen.py | 534 ++++++++++++++---- mithril/framework/codegen/code_gen.py | 2 + mithril/framework/codegen/ggml_gen.py | 298 ++++++++++ mithril/framework/codegen/python_gen.py | 4 + mithril/framework/codegen/raw_c_gen.py | 53 ++ mithril/framework/codegen/utils.py | 5 +- mithril/framework/physical/flat_graph.py | 6 +- setup.py | 61 +- tests/scripts/test_c_backend.py | 40 +- tests/scripts/test_functions.py | 28 +- 61 files changed, 1837 insertions(+), 280 deletions(-) create mode 100644 .gitmodules create mode 100644 mithril/backends/with_manualgrad/ggml_backend/__init__.py create mode 100644 mithril/backends/with_manualgrad/ggml_backend/backend.py create mode 100644 mithril/backends/with_manualgrad/ggml_backend/utils.py create mode 100644 mithril/cores/c/ggml/README.md create mode 100755 mithril/cores/c/ggml/build_ggml.sh create mode 100755 mithril/cores/c/ggml/compile.sh create mode 160000 mithril/cores/c/ggml/ggml create mode 100644 mithril/cores/c/ggml/ggml_backend.h create mode 100644 mithril/cores/c/ggml/ggml_core.py create mode 100644 mithril/cores/c/ggml/ggml_mithril.md create mode 100755 mithril/cores/c/ggml/libggml-base.dylib create mode 100755 mithril/cores/c/ggml/libggml-cpu.dylib create mode 100755 mithril/cores/c/ggml/libggml.dylib create mode 100644 mithril/cores/c/ggml/ops.c create mode 100644 mithril/cores/c/ggml/ops.h rename mithril/cores/c/{ => raw_c}/array.c (100%) rename mithril/cores/c/{ => raw_c}/array.h (100%) create mode 100644 mithril/cores/c/raw_c/array.py create mode 100644 mithril/cores/c/raw_c/array.pyi rename mithril/cores/c/{ => raw_c}/cbackend.h (100%) rename mithril/cores/c/{ => raw_c}/compile.sh (100%) rename mithril/cores/c/{ => raw_c}/main.c (100%) rename mithril/cores/c/{ => raw_c}/ops.c (100%) rename mithril/cores/c/{ => raw_c}/ops.h (100%) rename mithril/cores/c/{ => raw_c}/utils.h (100%) create mode 100644 mithril/framework/codegen/ggml_gen.py create mode 100644 mithril/framework/codegen/raw_c_gen.py diff --git a/.coveragerc b/.coveragerc index 5e874df8..e69de29b 100644 --- a/.coveragerc +++ b/.coveragerc @@ -1,6 +0,0 @@ -[run] -omit = - /private/var/* - tmp/* - tests/* - diff --git a/.github/workflows/ci-test-example.yml b/.github/workflows/ci-test-example.yml index d24ae221..65abb893 100644 --- a/.github/workflows/ci-test-example.yml +++ b/.github/workflows/ci-test-example.yml @@ -15,15 +15,24 @@ jobs: steps: - name: Check out repository uses: actions/checkout@v2 + with: + submodules: 'recursive' - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - name: Make compile script executable - run: chmod +x ./mithril/cores/c/compile.sh + run: | + chmod +x ./mithril/cores/c/raw_c/compile.sh + chmod +x ./mithril/cores/c/ggml/compile.sh + chmod +x ./mithril/cores/c/ggml/build_ggml.sh - name: Compile C code run: | - pushd ./mithril/cores/c + pushd ./mithril/cores/c/raw_c + ./compile.sh + popd + pushd ./mithril/cores/c/ggml + ./build_ggml.sh ./compile.sh popd - name: Install Python dependencies diff --git a/.github/workflows/ci-test-macos.yaml b/.github/workflows/ci-test-macos.yaml index b436e502..7f52cdbf 100644 --- a/.github/workflows/ci-test-macos.yaml +++ b/.github/workflows/ci-test-macos.yaml @@ -15,15 +15,24 @@ jobs: steps: - name: Check out repository uses: actions/checkout@v2 + with: + submodules: 'recursive' - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - - name: Make compile script executable - run: chmod +x ./mithril/cores/c/compile.sh + - name: Make compile scripts executable + run: | + chmod +x ./mithril/cores/c/raw_c/compile.sh + chmod +x ./mithril/cores/c/ggml/compile.sh + chmod +x ./mithril/cores/c/ggml/build_ggml.sh - name: Compile C code run: | - pushd ./mithril/cores/c + pushd ./mithril/cores/c/raw_c + ./compile.sh + popd + pushd ./mithril/cores/c/ggml + ./build_ggml.sh ./compile.sh popd - name: Install Python dependencies @@ -38,7 +47,6 @@ jobs: python3 -m pip install mypy python3 -m pip install pre-commit pre-commit run --all-files - python3 license_checker.py - name: Execute testcase unit tests run: pytest --cov --cov-report=xml -s tests/ - name: Upload results to Codecov diff --git a/.github/workflows/ci-test-ubuntu.yaml b/.github/workflows/ci-test-ubuntu.yaml index 7d44f70e..bd3cb44c 100644 --- a/.github/workflows/ci-test-ubuntu.yaml +++ b/.github/workflows/ci-test-ubuntu.yaml @@ -13,15 +13,24 @@ jobs: steps: - name: Check out repository uses: actions/checkout@v2 + with: + submodules: 'recursive' - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - - name: Make compile script executable - run: chmod +x ./mithril/cores/c/compile.sh + - name: Make compile scripts executable + run: | + chmod +x ./mithril/cores/c/raw_c/compile.sh + chmod +x ./mithril/cores/c/ggml/compile.sh + chmod +x ./mithril/cores/c/ggml/build_ggml.sh - name: Compile C code run: | - pushd ./mithril/cores/c + pushd ./mithril/cores/c/raw_c + ./compile.sh + popd + pushd ./mithril/cores/c/ggml + ./build_ggml.sh ./compile.sh popd - name: Install Python dependencies @@ -35,7 +44,6 @@ jobs: python3 -m pip install mypy python3 -m pip install pre-commit pre-commit run --all-files - python3 license_checker.py - name: Execute testcase unit tests run: pytest -s tests/ diff --git a/.github/workflows/pypi-release.yml b/.github/workflows/pypi-release.yml index 2755dbd0..ecdec40c 100644 --- a/.github/workflows/pypi-release.yml +++ b/.github/workflows/pypi-release.yml @@ -15,6 +15,8 @@ jobs: steps: - name: Check out code uses: actions/checkout@v3 + with: + submodules: 'recursive' - name: Set up Python uses: actions/setup-python@v4 diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..098cf55a --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "mithril/cores/c/ggml/ggml"] + path = mithril/cores/c/ggml/ggml + url = https://github.com/ggml-org/ggml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 66dc43c4..f2bae8f6 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,3 +1,4 @@ +exclude: '^mithril/cores/c/ggml/ggml/' repos: - repo: https://github.com/astral-sh/ruff-pre-commit # Ruff version. @@ -15,12 +16,14 @@ repos: name: license checker entry: python3 license_checker.py language: python + args: ["--exclude=mithril/cores/c/ggml/ggml"] - id: mypy name: mypy entry: mypy . language: system always_run: true pass_filenames: false + args: ["--exclude=mithril/cores/c/ggml/ggml"] # - repo: https://github.com/pre-commit/mirrors-mypy # rev: v1.12.0 diff --git a/MANIFEST.in b/MANIFEST.in index e99726e7..e1ee745f 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,3 +1,3 @@ include mithril/cores/c/libmithrilc.so recursive-include mithril/cores * -recursive-include mithril/backends/with_manualgrad/c_backend/src * \ No newline at end of file +recursive-include mithril/backends/with_manualgrad/c_backend/src * diff --git a/license_checker.py b/license_checker.py index f17acfc4..e83a25a8 100755 --- a/license_checker.py +++ b/license_checker.py @@ -14,6 +14,14 @@ import os +import sys + +# Take the exclude argument with argparse +exclude = "" +for arg in sys.argv: + if arg.startswith("--exclude="): + exclude = arg.split("=")[1] + break license_py = """# Copyright 2022 Synnada, Inc. # @@ -45,8 +53,9 @@ // limitations under the License. """ current_directory = os.getcwd() -# Walk through the directory recursively + +# Walk through the directory recursively for root, _, files in os.walk(current_directory): if os.path.basename(root) == "tmp": continue @@ -54,10 +63,17 @@ if filename.endswith((".py", ".c", ".h")): # Check for .py .h and .c files file_path = os.path.join(root, filename) + if exclude in file_path: + continue + # Check if it's a file if os.path.isfile(file_path): with open(file_path, encoding="utf-8", errors="ignore") as file: - file_license = "".join(next(file) for _ in range(13)) + lines = file.readlines() + if len(lines) < 13: + raise Exception(f"No license found in {file_path}") + + file_license = "".join(lines[:13]) license = license_py if filename.endswith(".py") else license_ch diff --git a/mithril/__init__.py b/mithril/__init__.py index 4a1bbbdb..e9b02065 100644 --- a/mithril/__init__.py +++ b/mithril/__init__.py @@ -46,6 +46,7 @@ "MlxBackend", "TorchBackend", "CBackend", + "GGMLBackend", "NumpyBackend", "compile", "DataType", @@ -92,6 +93,11 @@ except Exception: CBackend = UnavailableBackend # type: ignore +try: + from .backends.with_manualgrad.ggml_backend.backend import GGMLBackend +except ImportError: + GGMLBackend = UnavailableBackend # type: ignore + try: from .backends.with_manualgrad.numpy_backend.backend import NumpyBackend except ImportError: diff --git a/mithril/backends/backend.py b/mithril/backends/backend.py index 23255a31..c21010e1 100644 --- a/mithril/backends/backend.py +++ b/mithril/backends/backend.py @@ -19,6 +19,7 @@ from typing import Any, Generic, overload from .. import types +from ..common import CGenConfig, PythonGenConfig from ..types import DataType from .parallel import Parallel from .utils import DtypeBits, StaticScalar @@ -49,6 +50,7 @@ class Backend(ABC, Generic[DataType]): registered_primitives: dict[str, Callable[..., DataType]] array_creation_funcs: list[str] primitive_fn_path: str + CODEGEN_CONFIG: PythonGenConfig | CGenConfig def __init__(self, dtype: types.Dtype = types.float32, device: str = "cpu") -> None: # Check if given dtype is a valid one. @@ -90,10 +92,6 @@ def e(self) -> float: def is_manualgrad(self) -> bool: raise NotImplementedError("is_manualgrad is not implemented") - @property - def codegen_config(self) -> dict[str, bool]: - raise NotImplementedError("codegen_config is not implemented") - def get_backend_array_type(self) -> type[DataType]: raise NotImplementedError("get_backend_array_type is not implemented") diff --git a/mithril/backends/with_autograd/jax_backend/backend.py b/mithril/backends/with_autograd/jax_backend/backend.py index 461a4e24..9fa9c703 100644 --- a/mithril/backends/with_autograd/jax_backend/backend.py +++ b/mithril/backends/with_autograd/jax_backend/backend.py @@ -27,7 +27,6 @@ from ...utils import DtypeSubTypes, StaticScalar, process_shape from . import utils from .parallel import JaxParallel -from .utils import CODEGEN_CONFIG __all__ = ["JaxBackend"] @@ -52,6 +51,7 @@ class JaxBackend(ParallelBackend[jax.numpy.ndarray]): backend_type = "jax" registered_primitives: dict[str, Callable[..., jax.numpy.ndarray]] = {} primitive_fn_path = "mithril.cores.python.jax.ops" + CODEGEN_CONFIG = utils.CODEGEN_CONFIG def __init__( self, @@ -107,10 +107,6 @@ def get_device(self) -> Any: def DataType(self) -> type[jax.Array]: # noqa: N802 return utils.ArrayType - @property - def codegen_config(self) -> dict[str, bool]: - return CODEGEN_CONFIG - @staticmethod def get_available_devices() -> list[str]: """Static method to get a list of available devices. diff --git a/mithril/backends/with_autograd/jax_backend/utils.py b/mithril/backends/with_autograd/jax_backend/utils.py index 3e4bdadb..1a5e29c9 100644 --- a/mithril/backends/with_autograd/jax_backend/utils.py +++ b/mithril/backends/with_autograd/jax_backend/utils.py @@ -19,13 +19,11 @@ import numpy as np from .... import types -from ....common import find_dominant_type +from ....common import PythonGenConfig, find_dominant_type from ....cores.python.jax.utils import dtype_map from ...utils import DtypeSubTypes -CODEGEN_CONFIG: dict[str, bool] = { - "specify_device": True, -} +CODEGEN_CONFIG = PythonGenConfig(SPECIFY_DEVICE=True) ArrayType = jax.Array diff --git a/mithril/backends/with_autograd/mlx_backend/backend.py b/mithril/backends/with_autograd/mlx_backend/backend.py index 277f6871..65e36309 100644 --- a/mithril/backends/with_autograd/mlx_backend/backend.py +++ b/mithril/backends/with_autograd/mlx_backend/backend.py @@ -37,6 +37,7 @@ class MlxBackend(Backend[mx.array]): supported_dtypes = [Dtype.float16, Dtype.bfloat16, Dtype.float32] registered_primitives: dict[str, Callable[..., mx.array]] = {} primitive_fn_path = "mithril.cores.python.mlx.ops" + CODEGEN_CONFIG = utils.CODEGEN_CONFIG def __init__( self, @@ -75,10 +76,6 @@ def nan(self) -> float: def device(self) -> Any: utils.get_device(self._device) - @property - def codegen_config(self) -> dict[str, bool]: - return utils.CODEGEN_CONFIG - def get_device(self) -> Any: return self._device diff --git a/mithril/backends/with_autograd/mlx_backend/utils.py b/mithril/backends/with_autograd/mlx_backend/utils.py index c99ef2fe..8e1a034f 100644 --- a/mithril/backends/with_autograd/mlx_backend/utils.py +++ b/mithril/backends/with_autograd/mlx_backend/utils.py @@ -21,13 +21,12 @@ import numpy as np from .... import types -from ....common import find_dominant_type +from ....common import PythonGenConfig, find_dominant_type from ....cores.python.mlx.utils import dtype_map from ...utils import DtypeSubTypes -CODEGEN_CONFIG: dict[str, bool] = { - "specify_device": True, -} +CODEGEN_CONFIG = PythonGenConfig(SPECIFY_DEVICE=True) + ArrayType = mx.array diff --git a/mithril/backends/with_autograd/torch_backend/backend.py b/mithril/backends/with_autograd/torch_backend/backend.py index 549c381a..9f1e24c5 100644 --- a/mithril/backends/with_autograd/torch_backend/backend.py +++ b/mithril/backends/with_autograd/torch_backend/backend.py @@ -51,6 +51,7 @@ class TorchBackend(ParallelBackend[torch.Tensor]): backend_type = "torch" registered_primitives = {} primitive_fn_path = "mithril.cores.python.torch.ops" + CODEGEN_CONFIG = utils.CODEGEN_CONFIG def __init__( self, @@ -93,10 +94,6 @@ def nan(self) -> float: def DataType(self) -> type[torch.Tensor]: # noqa: N802 return utils.ArrayType - @property - def codegen_config(self) -> dict[str, bool]: - return utils.CODEGEN_CONFIG - @property def device(self) -> torch.device: return utils.get_device(self._device) diff --git a/mithril/backends/with_autograd/torch_backend/utils.py b/mithril/backends/with_autograd/torch_backend/utils.py index e63181c8..21d6a0a7 100644 --- a/mithril/backends/with_autograd/torch_backend/utils.py +++ b/mithril/backends/with_autograd/torch_backend/utils.py @@ -30,13 +30,11 @@ from torch.distributed._tensor import DeviceMesh from .... import types -from ....common import find_dominant_type +from ....common import PythonGenConfig, find_dominant_type from ....cores.python.torch.utils import dtype_map from ...utils import DtypeSubTypes -CODEGEN_CONFIG: dict[str, bool] = { - "specify_device": True, -} +CODEGEN_CONFIG = PythonGenConfig(SPECIFY_DEVICE=True) AVAILABLE_BACKEND_TYPES = ["cpu", "cuda"] diff --git a/mithril/backends/with_manualgrad/c_backend/backend.py b/mithril/backends/with_manualgrad/c_backend/backend.py index 830ac134..44ac609c 100644 --- a/mithril/backends/with_manualgrad/c_backend/backend.py +++ b/mithril/backends/with_manualgrad/c_backend/backend.py @@ -12,14 +12,15 @@ # See the License for the specific language governing permissions and # limitations under the License. +import ctypes import os from typing import Any import numpy as np from .... import types -from ....cores.c import array from ....cores.c.array import PyArray +from ....cores.c.raw_c import array from ...backend import Backend from ...utils import process_shape from . import utils @@ -29,7 +30,10 @@ class CBackend(Backend[PyArray]): backend_type = "c" - SRC_PATH = os.path.join(os.path.dirname(__file__), "..", "..", "..", "cores", "c") + SRC_PATH = os.path.join( + os.path.dirname(__file__), "..", "..", "..", "cores", "c", "raw_c" + ) + CODEGEN_CONFIG = utils.CODEGEN_CONFIG def __init__(self) -> None: self._device = "cpu" @@ -90,3 +94,6 @@ def array( assert dtype is None, "dtype is not supported in CBackend" input = input.astype(np.float32) return utils.from_numpy(input) + + def get_struct_cls(self) -> type[ctypes.Structure]: + return array.Array diff --git a/mithril/backends/with_manualgrad/c_backend/utils.py b/mithril/backends/with_manualgrad/c_backend/utils.py index b16a8a27..c93175bb 100644 --- a/mithril/backends/with_manualgrad/c_backend/utils.py +++ b/mithril/backends/with_manualgrad/c_backend/utils.py @@ -16,17 +16,33 @@ import numpy as np -from ....cores.c.array import ( +from ....common import CGenConfig +from ....cores.c.array import PyArray +from ....cores.c.raw_c.array import ( Array, - PyArray, lib, to_c_float_array, to_c_int_array, ) +CODEGEN_CONFIG = CGenConfig() + +# File configs +CODEGEN_CONFIG.HEADER_NAME = "cbackend.h" + +# Array configs +CODEGEN_CONFIG.ARRAY_NAME = "Array" + +# Function configs +CODEGEN_CONFIG.RETURN_OUTPUT = False +CODEGEN_CONFIG.USE_OUTPUT_AS_INPUT = True + +# Memory Management configs +CODEGEN_CONFIG.ALLOCATE_INTERNALS = True + def to_numpy(array: PyArray) -> np.ndarray[Any, Any]: - return np.ctypeslib.as_array(array.arr.contents.data, shape=(array.shape)) + return np.ctypeslib.as_array(array.arr.data, shape=(array.shape)) def from_numpy(array: np.ndarray[Any, Any]) -> PyArray: @@ -36,4 +52,4 @@ def from_numpy(array: np.ndarray[Any, Any]) -> PyArray: c_shape = to_c_int_array(shape) c_data = to_c_float_array(array) # type: ignore arr: Array = lib.create_struct(c_data, ndim, c_shape) - return PyArray(arr, shape) + return PyArray(arr.contents, shape) diff --git a/mithril/backends/with_manualgrad/ggml_backend/__init__.py b/mithril/backends/with_manualgrad/ggml_backend/__init__.py new file mode 100644 index 00000000..5f383378 --- /dev/null +++ b/mithril/backends/with_manualgrad/ggml_backend/__init__.py @@ -0,0 +1,17 @@ +# Copyright 2022 Synnada, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from .backend import GGMLBackend + +__all__ = ["GGMLBackend"] diff --git a/mithril/backends/with_manualgrad/ggml_backend/backend.py b/mithril/backends/with_manualgrad/ggml_backend/backend.py new file mode 100644 index 00000000..f588bff8 --- /dev/null +++ b/mithril/backends/with_manualgrad/ggml_backend/backend.py @@ -0,0 +1,103 @@ +# Copyright 2022 Synnada, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import ctypes +import os +from typing import Any + +import numpy as np + +from .... import types +from ....cores.c.array import PyArray +from ....cores.c.ggml.ggml_core import ggml_struct +from ....cores.c.raw_c import array +from ...backend import Backend +from ...utils import process_shape +from ..c_backend.utils import from_numpy +from . import utils + +__all__ = ["GGMLBackend"] + + +class GGMLBackend(Backend[PyArray]): + backend_type = "c" + SRC_PATH = os.path.join( + os.path.dirname(__file__), "..", "..", "..", "cores", "c", "ggml" + ) + CODEGEN_CONFIG = utils.CODEGEN_CONFIG + + def __init__(self) -> None: + self._device = "cpu" + self.primitive_function_dict = {} + + @property + def is_manualgrad(self) -> bool: + return True + + @property + def precision(self) -> int: + return 32 + + def set_seed(self, seed: int) -> None: + raise NotImplementedError("set_seed is not supported in GGML Backend") + + def get_backend_array_type(self) -> type[PyArray]: + return PyArray + + def get_struct_cls(self) -> type[ctypes.Structure]: + return ggml_struct + + def to_numpy(self, array: PyArray) -> np.ndarray[Any, Any]: + return np.ctypeslib.as_array( + ctypes.cast(array.arr.data, ctypes.POINTER(ctypes.c_float)), + shape=(array.shape), + ) + + def array( + self, input: np.ndarray[Any, Any], *, dtype: types.Dtype | None = None + ) -> PyArray: + assert dtype is None, "dtype is not supported in CBackend" + input = input.astype(np.float32) + data_ptr = ctypes.cast(from_numpy(input).arr.data, ctypes.c_void_p) + return PyArray(ggml_struct(data=data_ptr), input.shape) + + def ones( + self, + *shape: int | tuple[int, ...] | list[int], + dtype: types.Dtype | None = None, + ) -> PyArray: + assert dtype is None, "dtype is not supported in GGML Backend" + _shape = process_shape(shape) + data_ptr = ctypes.cast(array.ones(_shape).arr.data, ctypes.c_void_p) + return PyArray(ggml_struct(data=data_ptr), _shape) + + def zeros( + self, + *shape: int | tuple[int, ...] | list[int], + dtype: types.Dtype | None = None, + ) -> PyArray: + assert dtype is None, "dtype is not supported in GGML Backend" + _shape = process_shape(shape) + data_ptr = ctypes.cast(array.zeros(_shape).arr.data, ctypes.c_void_p) + return PyArray(ggml_struct(data=data_ptr), _shape) + + def empty( + self, + *shape: int | tuple[int, ...] | list[int], + dtype: types.Dtype | None = None, + ) -> PyArray: + assert dtype is None, "dtype is not supported in GGML Backend" + _shape = process_shape(shape) + data_ptr = ctypes.cast(array.empty(_shape).arr.data, ctypes.c_void_p) + return PyArray(ggml_struct(data=data_ptr), _shape) diff --git a/mithril/backends/with_manualgrad/ggml_backend/utils.py b/mithril/backends/with_manualgrad/ggml_backend/utils.py new file mode 100644 index 00000000..5266a557 --- /dev/null +++ b/mithril/backends/with_manualgrad/ggml_backend/utils.py @@ -0,0 +1,31 @@ +# Copyright 2022 Synnada, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from ....common import CGenConfig + +CODEGEN_CONFIG = CGenConfig() + +# File configs +CODEGEN_CONFIG.HEADER_NAME = "ggml_backend.h" + + +# Array configs +CODEGEN_CONFIG.ARRAY_NAME = "struct ggml_tensor" + +# Function configs +CODEGEN_CONFIG.USE_OUTPUT_AS_INPUT = False +CODEGEN_CONFIG.RETURN_OUTPUT = True + +# Memory management +CODEGEN_CONFIG.ALLOCATE_INTERNALS = False diff --git a/mithril/backends/with_manualgrad/numpy_backend/backend.py b/mithril/backends/with_manualgrad/numpy_backend/backend.py index 79d6d755..201e17d2 100644 --- a/mithril/backends/with_manualgrad/numpy_backend/backend.py +++ b/mithril/backends/with_manualgrad/numpy_backend/backend.py @@ -46,6 +46,7 @@ class NumpyBackend(Backend[np.ndarray[Any, Any]]): primitive_fn_path = "mithril.cores.python.numpy.ops" primitive_grad_fn_path = "mithril.cores.python.numpy.ops_grad" registered_primitives_grad_fn: dict[str, Callable[..., np.ndarray[Any, Any]]] = {} + CODEGEN_CONFIG = utils.CODEGEN_CONFIG def __init__(self, device: str = "cpu", dtype: Dtype = Dtype.float32) -> None: self._dtype = dtype @@ -84,10 +85,6 @@ def nan(self) -> float: def DataType(self) -> type[np.ndarray[Any, Any]]: # noqa: N802 return utils.ArrayType - @property - def codegen_config(self) -> dict[str, bool]: - return utils.CODEGEN_CONFIG - def get_backend_array_type(self) -> type[np.ndarray[Any, Any]]: return np.ndarray diff --git a/mithril/backends/with_manualgrad/numpy_backend/utils.py b/mithril/backends/with_manualgrad/numpy_backend/utils.py index dc6673e3..aaab8dfe 100644 --- a/mithril/backends/with_manualgrad/numpy_backend/utils.py +++ b/mithril/backends/with_manualgrad/numpy_backend/utils.py @@ -18,13 +18,12 @@ import numpy as np from .... import types -from ....common import find_dominant_type +from ....common import PythonGenConfig, find_dominant_type from ....cores.python.numpy.utils import dtype_map from ...utils import DtypeSubTypes -CODEGEN_CONFIG: dict[str, bool] = { - "specify_device": False, -} +CODEGEN_CONFIG = PythonGenConfig(SPECIFY_DEVICE=False) + ArrayType = np.ndarray diff --git a/mithril/common.py b/mithril/common.py index f61f46b1..ea404dff 100644 --- a/mithril/common.py +++ b/mithril/common.py @@ -13,10 +13,33 @@ # limitations under the License. from collections.abc import Callable, Iterator, MutableMapping +from dataclasses import dataclass from enum import IntEnum from typing import Any, TypeVar +@dataclass +class CGenConfig: + # Import configs + HEADER_NAME: str = "" + + # Array configs + ARRAY_NAME: str = "" + + # Function call configs + USE_OUTPUT_AS_INPUT: bool = False + RETURN_OUTPUT: bool = False + + # Memory Management + ALLOCATE_INTERNALS: bool = False + + +@dataclass +class PythonGenConfig: + # Import configs + SPECIFY_DEVICE: bool = False + + class PaddingType(IntEnum): VALID = 0 SAME = 1 diff --git a/mithril/cores/c/array.py b/mithril/cores/c/array.py index bb7c102b..24a9e81e 100644 --- a/mithril/cores/c/array.py +++ b/mithril/cores/c/array.py @@ -13,81 +13,40 @@ # limitations under the License. import ctypes -import os -from typing import Any - -import numpy as np - -current_file_path = os.path.abspath(__file__) - -lib = ctypes.CDLL(os.path.join(os.path.dirname(current_file_path), "libmithrilc.so")) - - -class Array(ctypes.Structure): - _fields_ = [ - ("data", ctypes.POINTER(ctypes.c_float)), - ("shape", ctypes.POINTER(ctypes.c_int)), - ("strides", ctypes.POINTER(ctypes.c_int)), - ("ndim", ctypes.c_int), - ("size", ctypes.c_int), - ] - - -lib.create_struct.restype = ctypes.POINTER(Array) -lib.create_struct.argtypes = [ - ctypes.POINTER(ctypes.c_float), - ctypes.c_int, - ctypes.POINTER(ctypes.c_int), -] - -lib.create_empty_struct.restype = ctypes.POINTER(Array) -lib.create_empty_struct.argtypes = [ctypes.c_int, ctypes.POINTER(ctypes.c_int)] - -lib.create_full_struct.restype = ctypes.POINTER(Array) -lib.create_full_struct.argtypes = [ - ctypes.c_float, - ctypes.c_int, - ctypes.POINTER(ctypes.c_int), -] - -lib.delete_struct.argtypes = [ctypes.POINTER(Array)] - - -def to_c_int_array(lst: list[int] | tuple[int, ...]) -> ctypes.Array[ctypes.c_int]: - return (ctypes.c_int * len(lst))(*lst) - - -def to_c_float_array( - arr: list[float] | tuple[float, ...] | np.ndarray[Any, Any], -) -> ctypes.Array[ctypes.c_float]: - return arr.ctypes.data_as(ctypes.POINTER(ctypes.c_float)) +from collections.abc import Sequence class PyArray: - def __init__(self, arr: Array, shape: tuple[int, ...] | list[int]): + def __init__(self, arr: ctypes.Structure, shape: tuple[int, ...] | list[int]): + # TODO: PyArray need to store strides + self.arr = arr if isinstance(shape, list): shape = tuple(shape) self.shape = shape self.ndim = len(shape) - def __del__(self): - lib.delete_struct(self.arr) + # TODO: Implement __del__ method for deleting the struct + # def __del__(self): + # lib.delete_struct(self.arr) @property - def data(self): + def data(self) -> Sequence[int | Sequence[int | Sequence[int]]]: total_elements = 1 for dim in self.shape: total_elements *= dim # Convert the array into a Python list - data_ptr = self.arr.contents.data + data_ptr = ctypes.cast(self.arr.data, ctypes.POINTER(ctypes.c_float)) data_list = [data_ptr[i] for i in range(total_elements)] # Reshape the flat list based on the shape - def reshape(data: PyArray, shape: tuple[int, ...]): + def reshape( + data: Sequence[int], shape: tuple[int, ...] + ) -> Sequence[int | Sequence[int | Sequence[int]]]: if len(shape) == 1: return data + size = shape[0] return [ reshape(data[i * size : (i + 1) * size], shape[1:]) @@ -101,21 +60,3 @@ def __repr__(self): def __str__(self): return f"PyArray(shape={self.shape})\n{self.data}" - - -def empty(shape: tuple[int, ...] | list[int]): - c_shape = to_c_int_array(shape) - arr = lib.create_empty_struct(len(shape), c_shape) - return PyArray(arr, shape) - - -def ones(shape: tuple[int, ...] | list[int]): - c_shape = to_c_int_array(shape) - arr = lib.create_full_struct(1.0, len(shape), c_shape) - return PyArray(arr, shape) - - -def zeros(shape: tuple[int, ...] | list[int]): - c_shape = to_c_int_array(shape) - arr = lib.create_full_struct(0.0, len(shape), c_shape) - return PyArray(arr, shape) diff --git a/mithril/cores/c/array.pyi b/mithril/cores/c/array.pyi index 7331645c..2527147e 100644 --- a/mithril/cores/c/array.pyi +++ b/mithril/cores/c/array.pyi @@ -27,15 +27,15 @@ def to_c_float_array( arr: list[float] | tuple[float, ...], ) -> ctypes.Array[ctypes.c_float]: ... -class Array(ctypes.Structure): ... - class PyArray: - arr: Array + arr: ctypes.Structure shape: tuple[int, ...] ndim: int def data(self) -> NestedList: ... - def __init__(self, arr: Array, shape: tuple[int, ...] | list[int]) -> None: ... + def __init__( + self, arr: ctypes.Structure, shape: tuple[int, ...] | list[int] + ) -> None: ... def __gt__(self, other: PyArray) -> PyArray: ... def __ge__(self, other: PyArray) -> PyArray: ... def __lt__(self, other: PyArray) -> PyArray: ... @@ -214,7 +214,3 @@ class PyArray: def __iter__(self) -> Any: ... def __repr__(self) -> str: ... def __str__(self) -> str: ... - -def empty(shape: tuple[builtins.int, ...] | list[builtins.int]) -> PyArray: ... -def ones(shape: tuple[builtins.int, ...] | list[builtins.int]) -> PyArray: ... -def zeros(shape: tuple[builtins.int, ...] | list[builtins.int]) -> PyArray: ... diff --git a/mithril/cores/c/ggml/README.md b/mithril/cores/c/ggml/README.md new file mode 100644 index 00000000..ecb5dc4d --- /dev/null +++ b/mithril/cores/c/ggml/README.md @@ -0,0 +1,66 @@ +# Mithril GGML Bindings + +This directory contains bindings for the GGML tensor library for use in Mithril. + +## Building the Binaries + +### Option 1: Use Pre-built GGML Libraries + +If you already have GGML libraries (`libggml-base.so`, `libggml-base.dylib`, etc.) available, you can just build the bindings: + +```bash +# Make the script executable if needed +chmod +x compile.sh + +# Build the bindings +./compile.sh +``` + +This will generate the `libmithrilggml.[so/dylib/dll]` file that contains the Mithril custom operations for GGML. + +### Option 2: Build GGML from Source + +If you don't have GGML libraries available, you can download and build them from source: + +```bash +# Make the script executable if needed +chmod +x build_ggml.sh + +# Build GGML and the bindings +./build_ggml.sh +``` + +This script will: +1. Clone the GGML repository (if not already present) +2. Build GGML with CMake +3. Copy the resulting libraries to this directory +4. Build the Mithril GGML bindings + +## Using the Bindings in Python + +The GGML bindings can be imported and used in Python: + +```python +from mithril.cores.c.ggml import ggml_struct +# Additional imports may be needed depending on your usage +``` + +## Custom Operations + +This binding provides the following custom operations: + +- `add`: Adds two GGML tensors +- `multiplication`: Multiplies two GGML tensors + +Each operation also has a corresponding gradient function for use in backpropagation: + +- `add_grad`: Gradient function for addition +- `multiplication_grad`: Gradient function for multiplication + +## Platform Support + +The build scripts handle cross-platform compilation and will generate the appropriate library type for your system: + +- Linux: `.so` extension +- macOS: `.dylib` extension +- Windows: `.dll` extension \ No newline at end of file diff --git a/mithril/cores/c/ggml/build_ggml.sh b/mithril/cores/c/ggml/build_ggml.sh new file mode 100755 index 00000000..757da883 --- /dev/null +++ b/mithril/cores/c/ggml/build_ggml.sh @@ -0,0 +1,53 @@ +#!/bin/bash +# Script to download and build GGML from source if needed + +set -e # Exit on any error + +# Detect OS and set appropriate library extension +UNAME=$(uname) +if [ "$UNAME" = "Darwin" ]; then + LIB_EXT="dylib" +elif [ "$UNAME" = "Windows" ] || [ "$UNAME" = "MINGW"* ] || [ "$UNAME" = "MSYS"* ]; then + LIB_EXT="dll" +else + LIB_EXT="so" +fi + +# Set directories +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +BUILD_DIR="${SCRIPT_DIR}/ggml/build" +GGML_REPO="https://github.com/ggerganov/ggml.git" +GGML_DIR="${SCRIPT_DIR}/ggml" + +# Check if we need to download GGML +if [ ! -d "${GGML_DIR}" ]; then + echo "GGML not found. Cloning from repository..." + git clone --depth 1 "${GGML_REPO}" "${GGML_DIR}" +else + echo "GGML directory exists. Using existing files." +fi + +# Create build directory if it doesn't exist +mkdir -p "${BUILD_DIR}" +cd "${BUILD_DIR}" + +# Configure CMake build +echo "Configuring GGML build..." +cmake .. -DBUILD_SHARED_LIBS=ON + +# Build GGML +echo "Building GGML..." +cmake --build . --config Release -j$(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || echo 1) + +# Copy the libraries to our directory +echo "Copying GGML libraries to ${SCRIPT_DIR}..." +find . -name "libggml*.${LIB_EXT}*" -exec cp {} "${SCRIPT_DIR}/" \; + +# Build our own bindings +cd "${SCRIPT_DIR}" +echo "Building Mithril GGML bindings..." +./compile.sh + +echo "Build completed successfully!" +echo "The following libraries are available:" +ls -l "${SCRIPT_DIR}"/*.${LIB_EXT}* \ No newline at end of file diff --git a/mithril/cores/c/ggml/compile.sh b/mithril/cores/c/ggml/compile.sh new file mode 100755 index 00000000..2b34c608 --- /dev/null +++ b/mithril/cores/c/ggml/compile.sh @@ -0,0 +1,29 @@ +#!/bin/bash +# Build GGML binaries with proper names for different platforms + +set -e # Exit on any error + +# Detect OS and set appropriate library extension +UNAME=$(uname) +if [ "$UNAME" = "Darwin" ]; then + LIB_EXT="dylib" +elif [ "$UNAME" = "Windows" ] || [ "$UNAME" = "MINGW"* ] || [ "$UNAME" = "MSYS"* ]; then + LIB_EXT="dll" +else + LIB_EXT="so" +fi + +# Basic compiler settings +CC=${CC:-cc} +CFLAGS="-O3 -fPIC" + +echo "Building GGML binaries for platform: $UNAME (extension: .$LIB_EXT)" + +# Compile the main library +echo "Compiling libmithrilggml.$LIB_EXT..." +${CC} ${CFLAGS} ops.c -L. -lggml-base -shared -o "libmithrilggml.$LIB_EXT" + +# Make the library executable if needed +chmod +x "libmithrilggml.$LIB_EXT" + +echo "Done! Created libmithrilggml.$LIB_EXT" \ No newline at end of file diff --git a/mithril/cores/c/ggml/ggml b/mithril/cores/c/ggml/ggml new file mode 160000 index 00000000..9a4acb37 --- /dev/null +++ b/mithril/cores/c/ggml/ggml @@ -0,0 +1 @@ +Subproject commit 9a4acb374565f4146b8d6eb1cffdcd7d437d1ba2 diff --git a/mithril/cores/c/ggml/ggml_backend.h b/mithril/cores/c/ggml/ggml_backend.h new file mode 100644 index 00000000..b7292c30 --- /dev/null +++ b/mithril/cores/c/ggml/ggml_backend.h @@ -0,0 +1,23 @@ +// Copyright 2022 Synnada, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + +#ifndef GGMLBACKEND_H +#define GGMLBACKEND_H + +#include "ops.h" +#include "ggml/include/ggml-cpu.h" +#include + +#endif \ No newline at end of file diff --git a/mithril/cores/c/ggml/ggml_core.py b/mithril/cores/c/ggml/ggml_core.py new file mode 100644 index 00000000..bbd99a3a --- /dev/null +++ b/mithril/cores/c/ggml/ggml_core.py @@ -0,0 +1,69 @@ +# Copyright 2022 Synnada, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +__all__ = ["ggml_struct"] + +import ctypes + +GGML_MAX_DIMS = 4 +GGML_MAX_OP_PARAMS = 64 +GGML_MAX_SRC = 10 +GGML_MAX_NAME = 64 + + +class ggml_struct(ctypes.Structure): # noqa: N801 + """n-dimensional tensor + + Attributes: + type (int): ggml_type + buffer (ctypes.pointer[ggml_backend_buffer]): pointer to backend buffer + ne (ctypes.Array[ctypes.c_int64]): number of elements in each dimension + nb (ctypes.Array[ctypes.c_size_t]): stride in bytes for each dimension + op (int): ggml operation + op_params (ctypes.Array[ctypes.c_int32]): `GGML_MAX_OP_PARAMS`-length array of + operation parameters + flags (int): tensor flags + grad (ggml_struct_p): reference to gradient tensor + src (ctypes.Array[ggml_struct_p]): `GGML_MAX_SRC`-length array of source tensors + perf_runs (int): number of performance runs + perf_cycles (int): number of cycles + perf_time_us (int): time in microseconds + view_src (ggml_struct_p): pointer to tensor if this tensor is a view, None if + the tensor is not a view + view_offs (ctypes.c_size_t): offset into the data pointer of the view tensor + data (ctypes.c_void_p): reference to raw tensor data + name (bytes): name of tensor + extra (ctypes.c_void_p): extra data (e.g. for CUDA) + """ + + +ggml_struct._fields_ = [ + ("type", ctypes.c_int), + ("buffer", ctypes.c_void_p), + ("ne", ctypes.c_int64 * GGML_MAX_DIMS), + ("nb", ctypes.c_size_t * GGML_MAX_DIMS), + ("op", ctypes.c_int), + ( + "op_params", + ctypes.c_int32 * (GGML_MAX_OP_PARAMS // ctypes.sizeof(ctypes.c_int32)), + ), + ("flags", ctypes.c_int), + ("src", ctypes.POINTER(ggml_struct) * GGML_MAX_SRC), + ("view_src", ctypes.POINTER(ggml_struct)), + ("view_offs", ctypes.c_size_t), + ("data", ctypes.c_void_p), + ("name", ctypes.c_char * GGML_MAX_NAME), + ("extra", ctypes.c_void_p), + ("padding", ctypes.c_char * 8), +] diff --git a/mithril/cores/c/ggml/ggml_mithril.md b/mithril/cores/c/ggml/ggml_mithril.md new file mode 100644 index 00000000..282e74aa --- /dev/null +++ b/mithril/cores/c/ggml/ggml_mithril.md @@ -0,0 +1,32 @@ +# Program flow + +1) Determine context size + * Tensor data + * Tensor overhead * n#Tensor + * Graph overhead + * Some addttional overhead? +2) Initialize params with context size and some additional parameters +2) Initialize contex with params +4) Create tensors via context and set data + * We have to set dtype, and shape here. +5) Create graph via context +6) Apply operations to input tensors and obtain result Tensor + * This step is lazy, actually it creates the computational graph + + +### Problems +* Operations are lazy how we are going to do backend operations? +* Shape and dtype must be determined. + +### Questions +* Are we going to create context etc + +### Installation + + +### Allocation in GGML +1) The context is created with the params. The params contains: + * The size of the entire graph + * buffer_mem(if NULL it will allocated) + +2) diff --git a/mithril/cores/c/ggml/libggml-base.dylib b/mithril/cores/c/ggml/libggml-base.dylib new file mode 100755 index 0000000000000000000000000000000000000000..fa98f4287c2ab5e66b78a0e6b594bf9ebf28dc72 GIT binary patch literal 612288 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

tT)aXl- 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 literal 0 HcmV?d00001 diff --git a/mithril/cores/c/ggml/libggml.dylib b/mithril/cores/c/ggml/libggml.dylib new file mode 100755 index 0000000000000000000000000000000000000000..58b642e3142ab569ad5693366c280796badd6629 GIT binary patch literal 65216 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 HQt|%)B9zl3 literal 0 HcmV?d00001 diff --git a/mithril/cores/c/ggml/ops.c b/mithril/cores/c/ggml/ops.c new file mode 100644 index 00000000..42f26094 --- /dev/null +++ b/mithril/cores/c/ggml/ops.c @@ -0,0 +1,45 @@ +// Copyright 2022 Synnada, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "ops.h" + +struct ggml_tensor * add(struct ggml_context * ctx, struct ggml_tensor * left, struct ggml_tensor * right) { + struct ggml_tensor * res = ggml_add(ctx, left, right); + return res; +} + + +struct ggml_tensor * multiplication(struct ggml_context * ctx, struct ggml_tensor * left, struct ggml_tensor * right) { + struct ggml_tensor * res = ggml_mul(ctx, left, right); + return res; +} + + + + +struct ggml_tensor * add_grad(struct ggml_context * ctx, struct ggml_tensor * gradient, int idx, struct ggml_tensor * output, struct ggml_tensor * left, struct ggml_tensor * right) +{ + return gradient; +} + + +struct ggml_tensor * multiplication_grad(struct ggml_context * ctx, struct ggml_tensor * gradient, int idx, struct ggml_tensor * output, struct ggml_tensor * left, struct ggml_tensor * right) +{ + if (idx == 0){ + return multiplication(ctx, gradient, right); + } + else{ + return multiplication(ctx, gradient, left); + } +} diff --git a/mithril/cores/c/ggml/ops.h b/mithril/cores/c/ggml/ops.h new file mode 100644 index 00000000..282c02a2 --- /dev/null +++ b/mithril/cores/c/ggml/ops.h @@ -0,0 +1,28 @@ +// Copyright 2022 Synnada, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef MITHRIL_GGML_OPS_H +#define MITHRIL_GGML_OPS_H + +#include "ggml/include/ggml.h" + + +struct ggml_tensor * add(struct ggml_context * ctx, struct ggml_tensor * left, struct ggml_tensor * right); +struct ggml_tensor * multiplication(struct ggml_context * ctx, struct ggml_tensor * left, struct ggml_tensor * right); + + +struct ggml_tensor * add_grad(struct ggml_context * ctx, struct ggml_tensor * gradient, int idx, struct ggml_tensor * output, struct ggml_tensor * left, struct ggml_tensor * right); +struct ggml_tensor * multiplication_grad(struct ggml_context * ctx, struct ggml_tensor * gradient, int idx, struct ggml_tensor * output, struct ggml_tensor * left, struct ggml_tensor * right); + +#endif diff --git a/mithril/cores/c/array.c b/mithril/cores/c/raw_c/array.c similarity index 100% rename from mithril/cores/c/array.c rename to mithril/cores/c/raw_c/array.c diff --git a/mithril/cores/c/array.h b/mithril/cores/c/raw_c/array.h similarity index 100% rename from mithril/cores/c/array.h rename to mithril/cores/c/raw_c/array.h diff --git a/mithril/cores/c/raw_c/array.py b/mithril/cores/c/raw_c/array.py new file mode 100644 index 00000000..2295da7f --- /dev/null +++ b/mithril/cores/c/raw_c/array.py @@ -0,0 +1,83 @@ +# Copyright 2022 Synnada, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import ctypes +import os +from typing import Any + +import numpy as np + +from ..array import PyArray + +current_file_path = os.path.abspath(__file__) + +lib = ctypes.CDLL(os.path.join(os.path.dirname(current_file_path), "libmithrilc.so")) + + +class Array(ctypes.Structure): + _fields_ = [ + ("data", ctypes.POINTER(ctypes.c_float)), + ("shape", ctypes.POINTER(ctypes.c_int)), + ("strides", ctypes.POINTER(ctypes.c_int)), + ("ndim", ctypes.c_int), + ("size", ctypes.c_int), + ] + + +lib.create_struct.restype = ctypes.POINTER(Array) +lib.create_struct.argtypes = [ + ctypes.POINTER(ctypes.c_float), + ctypes.c_int, + ctypes.POINTER(ctypes.c_int), +] + +lib.create_empty_struct.restype = ctypes.POINTER(Array) +lib.create_empty_struct.argtypes = [ctypes.c_int, ctypes.POINTER(ctypes.c_int)] + +lib.create_full_struct.restype = ctypes.POINTER(Array) +lib.create_full_struct.argtypes = [ + ctypes.c_float, + ctypes.c_int, + ctypes.POINTER(ctypes.c_int), +] + +lib.delete_struct.argtypes = [ctypes.POINTER(Array)] + + +def to_c_int_array(lst: list[int] | tuple[int, ...]) -> ctypes.Array[ctypes.c_int]: + return (ctypes.c_int * len(lst))(*lst) + + +def to_c_float_array( + arr: list[float] | tuple[float, ...] | np.ndarray[Any, Any], +) -> ctypes.Array[ctypes.c_float]: + return arr.ctypes.data_as(ctypes.POINTER(ctypes.c_float)) + + +def empty(shape: tuple[int, ...] | list[int]): + c_shape = to_c_int_array(shape) + arr = lib.create_empty_struct(len(shape), c_shape).contents + return PyArray(arr, shape) + + +def ones(shape: tuple[int, ...] | list[int]): + c_shape = to_c_int_array(shape) + arr = lib.create_full_struct(1.0, len(shape), c_shape).contents + return PyArray(arr, shape) + + +def zeros(shape: tuple[int, ...] | list[int]): + c_shape = to_c_int_array(shape) + arr = lib.create_full_struct(0.0, len(shape), c_shape).contents + return PyArray(arr, shape) diff --git a/mithril/cores/c/raw_c/array.pyi b/mithril/cores/c/raw_c/array.pyi new file mode 100644 index 00000000..d0a21e30 --- /dev/null +++ b/mithril/cores/c/raw_c/array.pyi @@ -0,0 +1,33 @@ +# Copyright 2022 Synnada, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import builtins +import ctypes + +from ..array import PyArray + +NestedList = list[float | "NestedList"] + +lib: ctypes.CDLL + +def to_c_int_array(lst: list[int] | tuple[int, ...]) -> ctypes.Array[ctypes.c_int]: ... +def to_c_float_array( + arr: list[float] | tuple[float, ...], +) -> ctypes.Array[ctypes.c_float]: ... + +class Array(ctypes.Structure): ... + +def empty(shape: tuple[builtins.int, ...] | list[builtins.int]) -> PyArray: ... +def ones(shape: tuple[builtins.int, ...] | list[builtins.int]) -> PyArray: ... +def zeros(shape: tuple[builtins.int, ...] | list[builtins.int]) -> PyArray: ... diff --git a/mithril/cores/c/cbackend.h b/mithril/cores/c/raw_c/cbackend.h similarity index 100% rename from mithril/cores/c/cbackend.h rename to mithril/cores/c/raw_c/cbackend.h diff --git a/mithril/cores/c/compile.sh b/mithril/cores/c/raw_c/compile.sh similarity index 100% rename from mithril/cores/c/compile.sh rename to mithril/cores/c/raw_c/compile.sh diff --git a/mithril/cores/c/main.c b/mithril/cores/c/raw_c/main.c similarity index 100% rename from mithril/cores/c/main.c rename to mithril/cores/c/raw_c/main.c diff --git a/mithril/cores/c/ops.c b/mithril/cores/c/raw_c/ops.c similarity index 100% rename from mithril/cores/c/ops.c rename to mithril/cores/c/raw_c/ops.c diff --git a/mithril/cores/c/ops.h b/mithril/cores/c/raw_c/ops.h similarity index 100% rename from mithril/cores/c/ops.h rename to mithril/cores/c/raw_c/ops.h diff --git a/mithril/cores/c/utils.h b/mithril/cores/c/raw_c/utils.h similarity index 100% rename from mithril/cores/c/utils.h rename to mithril/cores/c/raw_c/utils.h diff --git a/mithril/framework/codegen/__init__.py b/mithril/framework/codegen/__init__.py index 86bb3b5a..b65758c9 100644 --- a/mithril/framework/codegen/__init__.py +++ b/mithril/framework/codegen/__init__.py @@ -42,11 +42,19 @@ pass try: from ...backends.with_manualgrad.c_backend import CBackend - from .c_gen import CGen + from .raw_c_gen import RawCGen - code_gen_map[CBackend] = CGen + code_gen_map[CBackend] = RawCGen except Exception: pass + +try: + from ...backends.with_manualgrad.ggml_backend import GGMLBackend + from .ggml_gen import GGMLCodeGen + + code_gen_map[GGMLBackend] = GGMLCodeGen +except Exception as e: + raise e try: from ...backends.with_manualgrad.numpy_backend import NumpyBackend from .numpy_gen import NumpyCodeGen @@ -63,4 +71,5 @@ "PythonCodeGen", "NumpyCodeGen", "TorchCodeGen", + "GGMLCodeGen", ] diff --git a/mithril/framework/codegen/c_ast.py b/mithril/framework/codegen/c_ast.py index 04414ac5..c7533a96 100644 --- a/mithril/framework/codegen/c_ast.py +++ b/mithril/framework/codegen/c_ast.py @@ -13,7 +13,7 @@ # limitations under the License. from abc import ABC, abstractmethod -from collections.abc import Sequence +from collections.abc import Mapping, Sequence from dataclasses import dataclass @@ -34,22 +34,29 @@ class Stmt(AST): pass +@dataclass +class MakeStmt(Stmt): + expr: Expr + + def to_str(self) -> str: + return self.expr.to_str() + ";" + + @dataclass class Call(Expr): name: str - args: list[str] | list[Expr] + args: Sequence[str | Expr] def to_str(self) -> str: args_str = ", ".join( [arg.to_str() if isinstance(arg, Expr) else arg for arg in self.args] ) - # args_str = ", ".join(self.args) return f"{self.name}({args_str})" @dataclass class Constant(Expr): - value: int | float + value: int | float | str def to_str(self) -> str: return str(self.value) @@ -58,13 +65,34 @@ def __str__(self) -> str: return self.to_str() +@dataclass +class Variable(Expr): + name: str + + def to_str(self) -> str: + return self.name + + +@dataclass +class Assign(Stmt): + target: Expr + source: Expr | Stmt + + def to_str(self) -> str: + result_str = f"{self.target.to_str()} = {self.source.to_str()}" + if not isinstance(self.source, Stmt): + result_str += ";" + return result_str + + @dataclass class Parameter: - type: str + type: str | Expr name: str def to_str(self) -> str: - return f"{self.type} {self.name}" + type_str = self.type.to_str() if isinstance(self.type, Expr) else self.type + return f"{type_str} {self.name}" @dataclass @@ -76,10 +104,12 @@ class FunctionDef(Stmt): def to_str(self) -> str: params_str = ( - "\n\t" + ",\n\t".join([param.to_str() for param in self.params]) + "\n" + ("\n\t" + ",\n\t".join([param.to_str() for param in self.params]) + "\n") + if len(self.params) > 0 + else "" ) - body_str = "\n ".join([stmt.to_str() + ";" for stmt in self.body]) - return f"{self.return_type} {self.name}({params_str})\n{{\n {body_str}\n}}" + body_str = "\n ".join([stmt.to_str() for stmt in self.body]) + return f"\n{self.return_type} {self.name}({params_str})\n{{\n {body_str}\n}}" @dataclass @@ -102,6 +132,43 @@ def to_str(self) -> str: return f'#include "{self.header}"' +@dataclass +class Comment(Stmt): + text: str + multiline: bool = False # True for /* */ comments, False for // comments + + def to_str(self) -> str: + if self.multiline: + # Format multiline comments with proper line breaks + lines = self.text.split("\n") + if len(lines) == 1: + return f"/* {self.text} */" + formatted_lines = [f" * {line}" for line in lines] + return "/*\n" + "\n".join(formatted_lines) + "\n */" + else: + return f"// {self.text}" + + +@dataclass +class StructField: + type: str | Expr + name: str + + def to_str(self) -> str: + type_str = self.type.to_str() if isinstance(self.type, Expr) else self.type + return f" {type_str} {self.name};" + + +@dataclass +class StructDef(Stmt): + name: str + fields: list[StructField] + + def to_str(self) -> str: + fields_str = "\n".join(field.to_str() for field in self.fields) + return f"\nstruct {self.name} {{\n{fields_str}\n}};\n" + + @dataclass class FILE(AST): includes: list[Include] @@ -115,3 +182,83 @@ def to_str(self) -> str: globals_str = "\n".join(stmt.to_str() for stmt in self.globals) declarations_str = "\n\n".join(decl.to_str() for decl in self.declarations) return f"{includes_str}\n\n{globals_str}\n\n{declarations_str}" + + +@dataclass +class StructInit(Stmt): + struct_name: str + field_values: Mapping[str, Expr | str] + static: bool = False + + def to_str(self) -> str: + field_inits = [ + f".{field} = {value.to_str() if isinstance(value, Expr) else value}" + for field, value in self.field_values.items() + ] + fields_str = ", ".join(field_inits) + + stmt = f"struct {self.struct_name} = {{ {fields_str} }};" + if self.static: + stmt = f"static {stmt}" + + return stmt + + +@dataclass +class StaticVariable(Stmt): + type: str | Expr + name: str + initial_value: Expr | None = None + + def to_str(self) -> str: + type_str = self.type.to_str() if isinstance(self.type, Expr) else self.type + if self.initial_value is None: + return f"static {type_str} {self.name};" + return f"static {type_str} {self.name} = {self.initial_value.to_str()};" + + +@dataclass +class If(Stmt): + condition: Expr + body: list[Stmt] + else_body: list[Stmt] | None = None + + def to_str(self) -> str: + body_str = "\n ".join([stmt.to_str() for stmt in self.body]) + if self.else_body is None: + return f"if ({self.condition.to_str()}) {{\n {body_str}\n}}" + else: + else_str = "\n ".join([stmt.to_str() for stmt in self.else_body]) + return ( + f"if ({self.condition.to_str()}) {{\n {body_str}\n}} else " + f"{{\n {else_str}\n}}" + ) + + +@dataclass +class Arrow(Expr): + target: Expr + field: str + + def to_str(self) -> str: + return f"{self.target.to_str()}->{self.field}" + + +@dataclass +class Dot(Expr): + target: Variable + field: str + + def to_str(self) -> str: + return f"{self.target.to_str()}.{self.field}" + + +@dataclass +class Pointer(Expr): + target: str | Expr + + def to_str(self) -> str: + target_str = ( + self.target.to_str() if isinstance(self.target, Expr) else self.target + ) + return f"{target_str} *" diff --git a/mithril/framework/codegen/c_gen.py b/mithril/framework/codegen/c_gen.py index 275fda79..e23fe0a4 100644 --- a/mithril/framework/codegen/c_gen.py +++ b/mithril/framework/codegen/c_gen.py @@ -19,8 +19,10 @@ from functools import partial from ...backends.with_manualgrad.c_backend import CBackend, backend -from ...cores.c import array -from ...cores.c.array import Array, PyArray +from ...backends.with_manualgrad.ggml_backend import GGMLBackend +from ...common import CGenConfig +from ...cores.c.array import PyArray +from ...cores.c.raw_c import array from ...framework.common import ( EvaluateAllType, EvaluateGradientsType, @@ -31,17 +33,30 @@ from . import c_ast from .code_gen import CodeGen -FinalCost = "final_cost" +ast_block_type = list[c_ast.Stmt] | list[c_ast.Expr] | list[c_ast.Stmt | c_ast.Expr] class CGen(CodeGen[PyArray]): BACKWARD_FN_SUFFIX = "_grad" + EVALUATE_INPUT_STRUCT_NAME = "eval_inputs" + EVALUATE_GRAD_INPUT_STRUCT_NAME = "eval_grad_inputs" + EVALUATE_OUTPUT_STRUCT_NAME = "eval_outputs" + EVALUATE_GRAD_OUTPUT_STRUCT_NAME = "eval_grad_outputs" + CACHE_STRUCT_NAME = "cache_keys" + GRAD_STRUCT_NAME = "grad_keys" + CACHE_NAME = "cache" + + dynamic_links: list[str] = [] def __init__(self, pm: PhysicalModel[PyArray]) -> None: super().__init__(pm) - assert isinstance(self.pm.backend, CBackend) - self.backend: CBackend = self.pm.backend + assert isinstance(self.pm.backend, CBackend | GGMLBackend), ( + f"Invalid backend '{self.pm.backend.backend_type}'! Must be CBackend" + " or GGMLBackend" + ) + + self.backend: CBackend | GGMLBackend = self.pm.backend self.imports: list[c_ast.AST] = [] self.globals: list[c_ast.AST] = [] @@ -49,22 +64,52 @@ def __init__(self, pm: PhysicalModel[PyArray]) -> None: # This will be used to store the keys of the argument of the functions self.func_arg_keys: dict[str, list[str]] = {} + self.configs: CGenConfig = self.backend.CODEGEN_CONFIG - def generate_imports(self) -> list[c_ast.Include]: - header_path = os.path.join(self.backend.SRC_PATH, "cbackend.h") - return [c_ast.Include(header_path, system=False)] + # Ignored grad keys + self.ignored_grad_keys: set[str] = self._infer_ignored_grad_keys() + + # Determine struct keys + self.determined_struct_keys: dict[str, list[str]] = ( + self._determine_struct_keys() + ) def generate_code(self, file_path: str | None = None) -> None: self.file_path = file_path - self.imports = self.generate_imports() # type: ignore - eval_fn, eval_used_keys = self.generate_evaluate() + self.imports += self.generate_imports() + + # Functions + eval_fn = self.generate_evaluate() self.functions.append(eval_fn) - self.func_arg_keys["evaluate"] = sorted(eval_used_keys) + self.func_arg_keys["evaluate"] = sorted(self.pm.input_keys) + if not self.pm.inference: - eval_grad_fn, eval_grad_used_keys = self.generate_evaluate_gradients() + eval_grad_fn = self.generate_evaluate_gradients() self.functions.append(eval_grad_fn) - self.func_arg_keys["evaluate_gradients"] = sorted(eval_grad_used_keys) + + # Structs + self._generate_structs() + + # Init cache struct + cache_struct = c_ast.StructInit( + f"{self.CACHE_STRUCT_NAME} {self.CACHE_NAME}", + {key: "NULL" for key in self.determined_struct_keys["eval_cache_keys"]}, + static=True, + ) + self.globals.append(cache_struct) + + if not self.pm.inference: + # Init grad struct + grad_struct = c_ast.StructInit( + f"{self.EVALUATE_GRAD_OUTPUT_STRUCT_NAME} {self.GRAD_STRUCT_NAME}", + { + key: "NULL" + for key in self.determined_struct_keys["eval_grad_output_keys"] + }, + static=True, + ) + self.globals.append(grad_struct) generated_code = c_ast.FILE(self.imports, self.globals, self.functions).to_str() # type: ignore @@ -89,7 +134,6 @@ def compile_code( assert not jit, "JIT is not yet supported for CBackend" assert self.file_path is not None, "Code has not been generated yet!" - eval_arg_keys = self.func_arg_keys["evaluate"] so_file_path = self.file_path.replace(".c", ".so") default_compile_flags = ["cc", self.file_path, "-shared", "-fPIC"] @@ -100,7 +144,7 @@ def compile_code( [ *default_compile_flags, f"-L{self.backend.SRC_PATH}", - "-lmithrilc", + *self.dynamic_links, f"-Wl,-rpath,{self.backend.SRC_PATH}", "-o", so_file_path, @@ -110,14 +154,51 @@ def compile_code( if so_file_path[0] != "/": so_file_path = "./" + so_file_path + # Load dynamic links + for link in self.dynamic_links: + link_path = os.path.join(self.backend.SRC_PATH, link.replace("-l", "lib")) + if os.path.exists(link_path + ".so"): + link_path += ".so" + elif os.path.exists(link_path + ".dylib"): + link_path += ".dylib" + + ctypes.CDLL(link_path) + # We need backend subtype lib = ctypes.CDLL(so_file_path) - lib.evaluate.argtypes = [ctypes.POINTER(Array)] * len(eval_arg_keys) + + # Input and output structs + class Inputs(ctypes.Structure): + _fields_ = [ + (key, ctypes.POINTER(self.backend.get_struct_cls())) + for key in self.determined_struct_keys["eval_input_keys"] + ] + + class Outputs(ctypes.Structure): + _fields_ = [ + (key, ctypes.POINTER(self.backend.get_struct_cls())) + for key in self.determined_struct_keys["eval_output_keys"] + ] + + class GradInputs(ctypes.Structure): + _fields_ = [ + (key, ctypes.POINTER(self.backend.get_struct_cls())) + for key in self.determined_struct_keys["eval_grad_input_keys"] + ] + + class GradOutputs(ctypes.Structure): + _fields_ = [ + (key, ctypes.POINTER(self.backend.get_struct_cls())) + for key in self.determined_struct_keys["eval_grad_output_keys"] + ] + + # Set the return type and argument types + lib.evaluate.argtypes = [ctypes.POINTER(Inputs)] + lib.evaluate.restype = Outputs + if not self.pm.inference: - eval_grad_arg_keys = self.func_arg_keys["evaluate_gradients"] - lib.evaluate_gradients.argtypes = [ctypes.POINTER(Array)] * len( - eval_grad_arg_keys - ) + lib.evaluate_gradients.argtypes = [ctypes.POINTER(GradInputs)] + lib.evaluate_gradients.restype = GradOutputs # we need backend data types! # include_internals flag is used for get internal values for backpropagation @@ -135,21 +216,38 @@ def evaluate_wrapper( if isinstance(cache, dict): inputs |= cache - # Allocate output arrays - for arg_key in eval_arg_keys: - if arg_key in inputs: - continue + if self.configs.ALLOCATE_INTERNALS: + # Allocate output arrays + for arg_key in self.determined_struct_keys["eval_input_keys"]: + if arg_key in inputs: + continue - arr_shape = self._get_array_shape(arg_key) - inputs[arg_key] = self.backend.empty(*arr_shape) + arr_shape = self._get_array_shape(arg_key) + inputs[arg_key] = self.backend.empty(*arr_shape) - inputs_ordered = [inputs[arg].arr for arg in eval_arg_keys] - lib.evaluate(*inputs_ordered) + inputs_struct = Inputs( + **{ + key: ctypes.pointer(inputs[key].arr) + for key in self.determined_struct_keys["eval_input_keys"] + } + ) + inputs_struct_ptr = ctypes.pointer(inputs_struct) - if not include_internals: - return {key: inputs[key] for key in self.pm.output_keys} - else: - return inputs + output_struct = lib.evaluate(inputs_struct_ptr) + + outputs = {} + return_keys = ( + self.determined_struct_keys["eval_output_keys"] + if include_internals + else self.pm.output_keys + ) + for key in return_keys: + array_ptr = getattr(output_struct, key) + outputs[key] = PyArray( + array_ptr.contents, shape=self._get_tensor_shape(key) + ) + + return outputs def evaluate_gradients_wrapper( params: dict[str, PyArray], @@ -160,38 +258,58 @@ def evaluate_gradients_wrapper( if data is None: data = {} - if output_gradients is None and FinalCost not in self.pm._output_keys: + if output_gradients is None and self.FinalCost not in self.pm._output_keys: raise ValueError( "Requires output gradients if final loss is not attached!" ) elif output_gradients is None: - output_gradients = {FinalCost: array.ones((1,))} + output_gradients = {self.FinalCost: array.ones((1,))} gradients = {key: value for key, value in output_gradients.items()} forward_pass = evaluate_wrapper( - params=params, data=data, cache={}, include_internals=True + params=params, + data=data, + cache={}, + include_internals=self.configs.ALLOCATE_INTERNALS, ) # Create gradients for all params - for key in ( - self.pm.flat_graph.all_source_keys - - self.pm.flat_graph.all_static_keys - - self.pm.flat_graph.unused_keys - - self.pm.ignore_grad_keys - ): - # In CBackend we are creating all internal gradients with zeros. - if key not in gradients: - arr_shape = self._get_array_shape(key) - gradients[key] = self.backend.zeros(*arr_shape) - - gradients = {key + "_grad": value for key, value in gradients.items()} + if self.configs.ALLOCATE_INTERNALS: + for key in ( + self.pm.flat_graph.all_source_keys + - self.pm.flat_graph.all_static_keys + - self.pm.flat_graph.unused_keys + - self.ignored_grad_keys + ): + # In CBackend we are creating all internal gradients with zeros. + if key not in gradients: + arr_shape = self._get_array_shape(key) + gradients[key] = self.backend.zeros(*arr_shape) + + gradients = { + key + self.BACKWARD_FN_SUFFIX: value for key, value in gradients.items() + } inputs = params | data | gradients | forward_pass - inputs_ordered = [inputs[arg].arr for arg in sorted(inputs.keys())] - lib.evaluate_gradients(*inputs_ordered) + inputs_struct = GradInputs( + **{ + key: ctypes.pointer(inputs[key].arr) + for key in self.determined_struct_keys["eval_grad_input_keys"] + } + ) + inputs_struct_ptr = ctypes.pointer(inputs_struct) + + output_struct = lib.evaluate_gradients(inputs_struct_ptr) + outputs = {} + for grad_key in self.determined_struct_keys["eval_grad_output_keys"]: + key = grad_key.replace(self.BACKWARD_FN_SUFFIX, "") + array_ptr = getattr(output_struct, grad_key) + outputs[key] = PyArray( + array_ptr.contents, shape=self._get_tensor_shape(key) + ) - return {key: inputs[key + "_grad"] for key in params} + return outputs return ( # type: ignore evaluate_wrapper, @@ -199,86 +317,209 @@ def evaluate_gradients_wrapper( partial(evaluate_gradients_wrapper, include_output=True), # type: ignore ) - def create_primitive_call(self, formula_name: str, args: list[str]) -> c_ast.Expr: - return c_ast.Call(formula_name, args) + def generate_imports(self) -> list[c_ast.Include]: + header_path = os.path.join(self.backend.SRC_PATH, self.configs.HEADER_NAME) + return [c_ast.Include(header_path, system=False)] + + def create_primitive_call( + self, formula_name: str, args: list[c_ast.Expr], context: str + ) -> c_ast.Expr: + return c_ast.Call(formula_name, args=args) + + def assign_primitive_output( + self, target: str, source: c_ast.Expr, context: str + ) -> c_ast.Assign: + return self.assign_array( + self.create_key_ref(target, context=context, load=False), source + ) + + def create_key_ref(self, key: str, context: str, load: bool = True) -> c_ast.Expr: + if key in self.determined_struct_keys["eval_cache_keys"]: + return c_ast.Variable(f"{self.CACHE_NAME}.{key}") + + elif ( + context == "eval" and key in self.determined_struct_keys["eval_input_keys"] + ): + return c_ast.Arrow(c_ast.Variable("inputs"), key) + + elif context == "eval_grad": + if key in self.determined_struct_keys["eval_grad_input_keys"]: + return c_ast.Arrow(c_ast.Variable("inputs"), key) + + if ( + key in self.pm.flat_graph.all_keys + or key.replace(self.BACKWARD_FN_SUFFIX, "") + in self.pm.flat_graph.all_keys + ) and not load: + return c_ast.Variable(f"{self.configs.ARRAY_NAME} * {key}") + + return c_ast.Variable(key) + + def assign_array( + self, target: c_ast.Variable | c_ast.Expr, source: c_ast.Expr + ) -> c_ast.Assign: + return c_ast.Assign(target, source) + + def define_function( + self, + return_type: str, + name: str, + params: list[c_ast.Parameter], + pre_process: ast_block_type, + operations: ast_block_type, + post_process: ast_block_type, + ) -> c_ast.FunctionDef: + body = pre_process + operations + post_process + return c_ast.FunctionDef(return_type, name, params, body) + + def create_output_struct(self, context: str) -> c_ast.StructInit: + output_keys = ( + self.determined_struct_keys["eval_output_keys"] + if context == "eval" + else self.determined_struct_keys["eval_grad_output_keys"] + ) + output_struct_init: dict[str, c_ast.Expr] = { + key: self.create_key_ref(key, context=context) for key in output_keys + } + + output_struct_name = ( + self.EVALUATE_OUTPUT_STRUCT_NAME + if context == "eval" + else self.EVALUATE_GRAD_OUTPUT_STRUCT_NAME + ) + + return c_ast.StructInit( + f"{output_struct_name} output_struct", output_struct_init + ) - def generate_evaluate(self) -> tuple[c_ast.FunctionDef, set[str]]: - fn_body: list[c_ast.Expr] = [] - used_keys: set[str] = set() + def generate_evaluate(self) -> c_ast.FunctionDef: + # Function body + pre_process: ast_block_type = [] + operations: ast_block_type = [] + post_process: ast_block_type = [] + + # Define function arguments + arguments = [ + c_ast.Parameter( + c_ast.Pointer(f"struct {self.EVALUATE_INPUT_STRUCT_NAME}"), "inputs" + ) + ] for output_key in self.pm.flat_graph.topological_order: model = self.pm.flat_graph.get_model(output_key) inputs = self.pm.flat_graph.get_source_keys(output_key) - # In C backend we need to pass output array as first argument - inputs = [output_key] + inputs + if self.configs.USE_OUTPUT_AS_INPUT: + # In raw_c backend we need to pass output array as first argument + inputs = [output_key] + inputs + + input_vars: list[c_ast.Expr] = [ + self.create_key_ref(key, context="eval", load=True) for key in inputs + ] # Create primitive call - p_call = self.create_primitive_call(model.formula_key, inputs) - fn_body.append(p_call) + p_call = self.create_primitive_call( + model.formula_key, + input_vars, + context="eval", + ) - used_keys.add(output_key) - used_keys |= set(inputs) + p_call_stmts: c_ast.Stmt = self.assign_primitive_output( + output_key, p_call, context="eval" + ) - arguments: list[c_ast.Parameter] = [] - for used_key in sorted(used_keys): - arguments.append(c_ast.Parameter("Array *", used_key)) + operations.append(p_call_stmts) # type: ignore - evaluate_fn = c_ast.FunctionDef("void", "evaluate", arguments, fn_body) + # Prepare output + post_process.append(self.create_output_struct(context="eval")) # type: ignore + post_process.append(c_ast.Return(c_ast.Variable("output_struct"))) # type: ignore - return evaluate_fn, used_keys + evaluate_fn = self.define_function( + f"struct {self.EVALUATE_OUTPUT_STRUCT_NAME}", + "evaluate", + arguments, + pre_process, + operations, + post_process, + ) - def generate_evaluate_gradients(self) -> tuple[c_ast.FunctionDef, set[str]]: - fn_body: list[c_ast.Expr] = [] - used_keys: set[str] = set() + return evaluate_fn - all_ignored_keys = ( - self.pm.ignore_grad_keys - | self.pm.flat_graph.all_static_keys - | self.pm.flat_graph.unused_keys - ) - all_ignored_keys, _ = self.pm.flat_graph.infer_ignore( - set(), self.pm._output_keys, all_ignored_keys, update_graph=False - ) + def generate_evaluate_gradients(self) -> c_ast.FunctionDef: + # Function body + pre_process: ast_block_type = [] + operations: ast_block_type = [] + post_process: ast_block_type = [] + + # Define function arguments + arguments = [ + c_ast.Parameter( + c_ast.Pointer(f"struct {self.EVALUATE_GRAD_INPUT_STRUCT_NAME}"), + "inputs", + ) + ] for output_key in reversed(self.pm.flat_graph.topological_order): # Staticly infered and unused model will not be added - if output_key in all_ignored_keys: + if output_key in self.ignored_grad_keys: continue model = self.pm.flat_graph.get_model(output_key) inputs = self.pm.flat_graph.get_source_keys(output_key) # Assume all inputs are Array - grad_inputs = [input_key + "_grad" for input_key in inputs] - for idx in range(len(grad_inputs)): - fn_inputs: list[str] = ( - [output_key + "_grad", c_ast.Constant(idx).to_str(), output_key] - + inputs - + grad_inputs - ) + for idx in range(len(inputs)): + if inputs[idx] in self.ignored_grad_keys: + continue + + fn_inputs: list[c_ast.Expr] = [ + self.create_key_ref( + output_key + self.BACKWARD_FN_SUFFIX, context="eval_grad" + ), + c_ast.Constant(idx), + self.create_key_ref(output_key, context="eval_grad"), + ] + [ + self.create_key_ref(input_key, context="eval_grad") + for input_key in inputs + ] + + if self.configs.USE_OUTPUT_AS_INPUT: + fn_inputs += [ + self.create_key_ref( + input_key + self.BACKWARD_FN_SUFFIX, context="eval_grad" + ) + if input_key not in self.ignored_grad_keys + else c_ast.Variable("NULL") + for input_key in inputs + ] # Create primitive call p_call = self.create_primitive_call( - model.formula_key + self.BACKWARD_FN_SUFFIX, fn_inputs + model.formula_key + self.BACKWARD_FN_SUFFIX, + fn_inputs, + context="eval_grad", ) - fn_body.append(p_call) - used_keys.add(output_key) - used_keys.add(output_key + "_grad") - used_keys |= set(inputs) - used_keys |= set(grad_inputs) + p_call_stmts: c_ast.Stmt = self.assign_primitive_output( + inputs[idx] + self.BACKWARD_FN_SUFFIX, p_call, context="eval_grad" + ) - arguments: list[c_ast.Parameter] = [] + operations.append(p_call_stmts) # type: ignore - for used_key in sorted(used_keys): - arguments.append(c_ast.Parameter("Array *", used_key)) + # Prepare output + post_process.append(self.create_output_struct(context="eval_grad")) # type: ignore + post_process.append(c_ast.Return(c_ast.Variable("output_struct"))) # type: ignore - evaluate_grad_fn = c_ast.FunctionDef( - "void", "evaluate_gradients", arguments, fn_body + evaluate_grad_fn = self.define_function( + f"struct {self.EVALUATE_GRAD_OUTPUT_STRUCT_NAME}", + "evaluate_gradients", + arguments, + pre_process, + operations, + post_process, ) - return evaluate_grad_fn, used_keys + return evaluate_grad_fn def _get_backend_path(self) -> str: backend_path = backend.__file__ @@ -293,3 +534,102 @@ def _get_array_shape(self, key: str) -> tuple[int, ...]: return tuple(shape) else: raise ValueError(f"Unexpected shape: {shape}") + + def _generate_structs(self) -> None: + # Generate structs + eval_input_struct = self._generate_struct( + self.EVALUATE_INPUT_STRUCT_NAME, + self.determined_struct_keys["eval_input_keys"], + ) + eval_outputs_struct = self._generate_struct( + self.EVALUATE_OUTPUT_STRUCT_NAME, + self.determined_struct_keys["eval_output_keys"], + ) + + cache_struct = self._generate_struct( + self.CACHE_STRUCT_NAME, self.determined_struct_keys["eval_cache_keys"] + ) + + structs = [eval_input_struct, eval_outputs_struct, cache_struct] + + if not self.pm.inference: + eval_grad_input_struct = self._generate_struct( + self.EVALUATE_GRAD_INPUT_STRUCT_NAME, + self.determined_struct_keys["eval_grad_input_keys"], + ) + + eval_grad_outputs_struct = self._generate_struct( + self.EVALUATE_GRAD_OUTPUT_STRUCT_NAME, + self.determined_struct_keys["eval_grad_output_keys"], + ) + + structs += [eval_grad_input_struct, eval_grad_outputs_struct] + + self.globals = structs + self.globals + + def _generate_struct(self, name: str, field_keys: list[str]) -> c_ast.Stmt: + fields = [ + c_ast.StructField( + c_ast.Pointer(c_ast.Variable(self.configs.ARRAY_NAME)), key + ) + for key in sorted(field_keys) + ] + struct = c_ast.StructDef(name, fields) + return struct + + def _infer_ignored_grad_keys(self) -> set[str]: + all_ignored_keys = ( + self.pm.ignore_grad_keys + | self.pm.flat_graph.all_static_keys + | self.pm.flat_graph.unused_keys + ) + all_ignored_keys, _ = self.pm.flat_graph.infer_ignore( + set(), self.pm._output_keys, all_ignored_keys, update_graph=False + ) + + return all_ignored_keys + + def _determine_struct_keys(self) -> dict[str, list[str]]: + eval_input_keys = sorted(self.pm.input_keys) + if self.configs.USE_OUTPUT_AS_INPUT: + eval_input_keys = sorted(self.pm.flat_graph.all_keys) + + eval_output_keys = sorted(self.pm.output_keys) + eval_cache_keys = sorted(self.pm.flat_graph.all_keys - self.pm.input_keys) + + eval_grad_input_keys = sorted( + ( + self.pm.input_keys + | set(self.pm.output_keys) + | { + key + self.BACKWARD_FN_SUFFIX + for key in set(self.pm.output_keys) - self.ignored_grad_keys + } + ) + - set(eval_cache_keys) + ) + + eval_grad_output_keys = sorted( + [ + key + self.BACKWARD_FN_SUFFIX + for key in set(self.pm.input_keys) - self.ignored_grad_keys + ] + ) + + determined_struct_keys = { + "eval_input_keys": eval_input_keys, + "eval_output_keys": eval_output_keys, + "eval_cache_keys": eval_cache_keys, + "eval_grad_input_keys": eval_grad_input_keys, + "eval_grad_output_keys": eval_grad_output_keys, + } + + return determined_struct_keys + + def _get_tensor_shape(self, key: str) -> tuple[int, ...]: + if key in self.pm.shapes: + return self.pm.shapes[key] # type: ignore + elif key.replace(self.BACKWARD_FN_SUFFIX, "") in self.pm.shapes: + return self.pm.shapes[key.replace(self.BACKWARD_FN_SUFFIX, "")] # type: ignore + else: + raise ValueError(f"Shape for key {key} not found") diff --git a/mithril/framework/codegen/code_gen.py b/mithril/framework/codegen/code_gen.py index a0ca649b..5ea453d0 100644 --- a/mithril/framework/codegen/code_gen.py +++ b/mithril/framework/codegen/code_gen.py @@ -21,6 +21,8 @@ class CodeGen(ABC, Generic[DataType]): + FinalCost = "final_cost" + def __init__(self, pm: PhysicalModel[DataType]) -> None: self.pm: PhysicalModel[DataType] = pm self.code: str | None = None diff --git a/mithril/framework/codegen/ggml_gen.py b/mithril/framework/codegen/ggml_gen.py new file mode 100644 index 00000000..e7b538fb --- /dev/null +++ b/mithril/framework/codegen/ggml_gen.py @@ -0,0 +1,298 @@ +# Copyright 2022 Synnada, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +from typing import override + +from ...cores.c.array import PyArray +from ..physical.model import PhysicalModel +from . import c_ast +from .c_gen import CGen + +ast_block_type = list[c_ast.Stmt] | list[c_ast.Expr] | list[c_ast.Stmt | c_ast.Expr] + + +class GGMLCodeGen(CGen): + dynamic_links = ["-lggml-base", "-lggml-cpu", "-lmithrilggml"] + + def __init__(self, pm: PhysicalModel[PyArray]) -> None: + super().__init__(pm) + + self.defined_tmp_vars: set[str] = set() + + def generate_code(self, file_path: str | None = None) -> None: + # Add stdlib.h include for atexit + stdlib_include = c_ast.Include("stdlib.h", system=True) + self.imports.append(stdlib_include) + + # Generate static context variable at file scope + eval_static_ctx = c_ast.StaticVariable( + c_ast.Pointer("struct ggml_context"), + "eval_static_ctx", + c_ast.Constant("NULL"), + ) + + eval_static_gf = c_ast.StaticVariable( + c_ast.Pointer("struct ggml_cgraph"), + "eval_static_gf", + c_ast.Constant("NULL"), + ) + + eval_grad_static_ctx = c_ast.StaticVariable( + c_ast.Pointer("struct ggml_context"), + "eval_grad_static_ctx", + c_ast.Constant("NULL"), + ) + + eval_grad_static_gf = c_ast.StaticVariable( + c_ast.Pointer("struct ggml_cgraph"), + "eval_grad_static_gf", + c_ast.Constant("NULL"), + ) + + cleanup_fn = self.generate_cleanup_fn() + + self.globals.extend( + [ + eval_static_ctx, + eval_grad_static_ctx, + eval_static_gf, + eval_grad_static_gf, + cleanup_fn, + ] + ) + + super().generate_code(file_path) + + def generate_cleanup_fn(self) -> c_ast.Stmt: + fn_body: list[c_ast.Stmt] = [] + + # Add if check for static_ctx + if_check1 = c_ast.If( + c_ast.Variable("eval_static_ctx != NULL"), + [ + c_ast.MakeStmt(c_ast.Call("ggml_free", ["eval_static_ctx"])), + c_ast.Assign(c_ast.Variable("eval_static_ctx"), c_ast.Constant("NULL")), + ], + ) + + if_check2 = c_ast.If( + c_ast.Variable("eval_grad_static_ctx != NULL"), + [ + c_ast.MakeStmt(c_ast.Call("ggml_free", ["eval_grad_static_ctx"])), + c_ast.Assign( + c_ast.Variable("eval_grad_static_ctx"), c_ast.Constant("NULL") + ), + ], + ) + + fn_body.append(if_check1) + fn_body.append(if_check2) + + return c_ast.FunctionDef("void", "cleanup", [], fn_body) + + @override + def define_function( + self, + return_type: str, + name: str, + params: list[c_ast.Parameter], + pre_process: ast_block_type, + operations: ast_block_type, + post_process: ast_block_type, + ) -> c_ast.FunctionDef: + if name in ["evaluate", "evaluate_gradients"]: + return self.update_function( + name, return_type, params, pre_process, operations, post_process + ) + + return super().define_function( + return_type, name, params, pre_process, operations, post_process + ) + + @override + def create_primitive_call( + self, formula_name: str, args: list[c_ast.Expr], context: str + ) -> c_ast.Expr: + # Add context as input for all primitive calls + context_var = "eval_static_ctx" if context == "eval" else "eval_grad_static_ctx" + return c_ast.Call( + formula_name, + [context_var] + args, # type: ignore + ) + + def update_function( + self, + name: str, + return_type: str, + params: list[c_ast.Parameter], + pre_process: ast_block_type, + operations: ast_block_type, + post_process: ast_block_type, + ) -> c_ast.FunctionDef: + # Define static variables at function scope + static_vars: list[c_ast.Stmt] = [] + + fn_ref_name = "eval" if name == "evaluate" else "eval_grad" + ctx_name = f"{fn_ref_name}_static_ctx" + + # Add static tensors + for key in self.determined_struct_keys[f"{fn_ref_name}_input_keys"]: + static_vars.append( + c_ast.StaticVariable( + c_ast.Pointer("struct ggml_tensor"), key, c_ast.Constant("NULL") + ) + ) + + pre_process = static_vars + pre_process + + # Create initialization block + init_block: ast_block_type = [] + + # Initialize context if NULL + init_block.append(c_ast.Comment("One-time initialization")) # type: ignore + init_block.append( + c_ast.StructInit( # type: ignore + "ggml_init_params params", + { + "mem_size": c_ast.Constant(1024 * 1024 * 512), + "mem_buffer": c_ast.Constant("NULL"), + "no_alloc": c_ast.Constant("false"), + }, + ) + ) + init_block.append( + c_ast.Assign( # type: ignore + c_ast.Variable(f"{fn_ref_name}_static_ctx"), + c_ast.Call("ggml_init", ["params"]), + ) + ) + + # Create tensors + init_block.append(c_ast.Comment("Create tensors only once")) # type: ignore + for key in self.determined_struct_keys[f"{fn_ref_name}_input_keys"]: + shape = self._get_tensor_shape(key) + if shape is not None: + tensor = c_ast.Call( + f"ggml_new_tensor_{len(shape)}d", + [ctx_name, "GGML_TYPE_F32"] + [str(size) for size in shape], + ) + init_block.append(c_ast.Assign(c_ast.Variable(key), tensor)) # type: ignore + + # Create and build graph + init_block.extend( + [ + c_ast.Comment("Create graph object only once"), # type: ignore + c_ast.Assign( # type: ignore + c_ast.Variable("eval_static_gf"), + c_ast.Call("ggml_new_graph", [ctx_name]), + ), + ] + ) + + # Add the original body operations + init_block += operations # type: ignore + + # Build graph + for out_key in self.determined_struct_keys[f"{fn_ref_name}_output_keys"]: + init_block.append( + c_ast.MakeStmt( # type: ignore + c_ast.Call( + "ggml_build_forward_expand", + [ + "eval_static_gf", + self.create_key_ref(out_key, context=fn_ref_name), + ], + ) + ) + ) + + init_block.append(c_ast.MakeStmt(c_ast.Call("atexit", ["cleanup"]))) # type: ignore + + # Wrap initialization in if check + if_init = [c_ast.If(c_ast.Variable(f"{ctx_name} == NULL"), init_block)] # type: ignore + + # Update input data + update_ptr_block: ast_block_type = [] + update_ptr_block.append(c_ast.Comment("Update tensor data for each call")) # type: ignore + for key in self.determined_struct_keys[f"{fn_ref_name}_input_keys"]: + update_ptr_block.append( + c_ast.Assign( # type: ignore + c_ast.Arrow(c_ast.Variable(f"{key}"), "data"), + c_ast.Arrow(c_ast.Arrow(c_ast.Variable("inputs"), key), "data"), + ) + ) + + # Initialization function + init_fn = super().define_function( + "void", + f"init_{fn_ref_name}", + params, + static_vars, + if_init, # type: ignore + update_ptr_block, + ) + + self.functions.append(init_fn) + + # Call initialization function + call_init_fn = c_ast.MakeStmt( + c_ast.Call( + f"init_{fn_ref_name}", + ["inputs"], + ) + ) + + pre_process = [call_init_fn] # type: ignore + + # Compute graph + compute_block = [ + c_ast.Comment("Compute graph"), + c_ast.MakeStmt( + c_ast.Call( + "ggml_graph_compute_with_ctx", + [ctx_name, "eval_static_gf", c_ast.Constant(1)], + ) + ), + ] + + post_process = compute_block + post_process + + return super().define_function( + return_type, name, params, pre_process, [], post_process + ) + + @override + def create_key_ref( + self, key: str, context: str, load: bool = True + ) -> c_ast.Variable | c_ast.Expr: + # TODO: Refactor this logic + if ( + key not in self.determined_struct_keys["eval_cache_keys"] + and context == "eval" + ): + return c_ast.Variable(key) + + elif ( + key not in self.determined_struct_keys["eval_cache_keys"] + and context == "eval_grad" + ): + if key in self.determined_struct_keys["eval_grad_output_keys"]: + return c_ast.Dot(c_ast.Variable(f"{self.GRAD_STRUCT_NAME}"), key) + elif not load: + return c_ast.Variable(f"{self.configs.ARRAY_NAME} * {key}") + else: + return c_ast.Variable(key) + + return super().create_key_ref(key, context, load) diff --git a/mithril/framework/codegen/python_gen.py b/mithril/framework/codegen/python_gen.py index 90c39889..1ed3c53f 100644 --- a/mithril/framework/codegen/python_gen.py +++ b/mithril/framework/codegen/python_gen.py @@ -22,6 +22,7 @@ from typing import Any, Generic, Literal, Protocol, overload from ...backends.backend import ParallelBackend +from ...common import PythonGenConfig from ...types import DataType, Dtype from ...utils.func_utils import prepare_function_args from ..common import ( @@ -106,6 +107,9 @@ def __init__(self, pm: PhysicalModel[DataType]) -> None: self.functions: list[ast.stmt] = [] self.backend = self.pm.backend + assert isinstance(self.backend.CODEGEN_CONFIG, PythonGenConfig) + self.configs = self.backend.CODEGEN_CONFIG + def generate_code(self, file_path: str | None = None) -> None: self.file_path = file_path self.imports += self.generate_imports() diff --git a/mithril/framework/codegen/raw_c_gen.py b/mithril/framework/codegen/raw_c_gen.py new file mode 100644 index 00000000..c3036f0e --- /dev/null +++ b/mithril/framework/codegen/raw_c_gen.py @@ -0,0 +1,53 @@ +# Copyright 2022 Synnada, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import override + +from . import c_ast +from .c_gen import CGen + + +class RawCGen(CGen): + dynamic_links = ["-lmithrilc"] + + @override + def _determine_struct_keys(self) -> dict[str, list[str]]: + determined_struct_keys = super()._determine_struct_keys() + determined_struct_keys["eval_grad_input_keys"] = sorted( + { + key + "_grad" + for key in self.pm.flat_graph.all_keys + if key not in self.ignored_grad_keys + } + | self.pm.flat_graph.all_keys + ) + determined_struct_keys["eval_output_keys"] = sorted( + determined_struct_keys["eval_input_keys"] + ) + + return determined_struct_keys + + def create_key_ref( + self, key: str, context: str, load: bool = True + ) -> c_ast.Variable | c_ast.Expr: + if key in self.determined_struct_keys["eval_input_keys"]: + return c_ast.Variable(f"inputs->{key}") + + else: + return super().create_key_ref(key, context, load) + + def assign_primitive_output( + self, target: str, source: c_ast.Expr, context: str + ) -> c_ast.Assign: + return c_ast.MakeStmt(source) # type: ignore diff --git a/mithril/framework/codegen/utils.py b/mithril/framework/codegen/utils.py index 9835784c..2cdeb1b1 100644 --- a/mithril/framework/codegen/utils.py +++ b/mithril/framework/codegen/utils.py @@ -15,6 +15,7 @@ import ast from ...backends.backend import Backend +from ...common import PythonGenConfig from ...types import DataType from ..common import ShapeNode @@ -23,11 +24,13 @@ def partial_array_creation_func( backend: Backend[DataType], formula_key: str ) -> ast.stmt: + assert isinstance(backend.CODEGEN_CONFIG, PythonGenConfig) + kwargs = [ ast.keyword(arg="default_dtype", value=ast.Constant(value=backend._dtype.name)) ] - if backend.codegen_config["specify_device"]: + if backend.CODEGEN_CONFIG.SPECIFY_DEVICE: kwargs.append( ast.keyword(arg="device", value=ast.Constant(value=backend.get_device())) ) diff --git a/mithril/framework/physical/flat_graph.py b/mithril/framework/physical/flat_graph.py index 64cbd564..876d012d 100644 --- a/mithril/framework/physical/flat_graph.py +++ b/mithril/framework/physical/flat_graph.py @@ -21,7 +21,7 @@ import mithril as ml -from ...common import BiMap +from ...common import BiMap, PythonGenConfig from ...types import DataType, GenericDataType from ...utils.func_utils import is_make_array_required, prepare_function_args from ..common import ( @@ -684,7 +684,9 @@ def infer_static_keys(self) -> Updates: # If function needs backend specific args if model.formula_key in self.backend.array_creation_funcs: kwargs["default_dtype"] = self.backend._dtype.name - if self.backend.codegen_config["specify_device"]: + # TODO: Add support for C backends + assert isinstance(self.backend.CODEGEN_CONFIG, PythonGenConfig) + if self.backend.CODEGEN_CONFIG.SPECIFY_DEVICE: kwargs["device"] = self.backend.get_device() static_value = fn(*args, **kwargs) diff --git a/setup.py b/setup.py index f10a3268..822bb43d 100644 --- a/setup.py +++ b/setup.py @@ -17,19 +17,60 @@ import setuptools from setuptools.command.build_ext import build_ext +from setuptools.extension import Extension class CustomBuildExt(build_ext): def run(self): - shell = os.getenv("SHELL", "sh") - script_path = os.path.join( - os.path.dirname(__file__), - "mithril", - "cores", - "c", - "compile.sh", - ) - subprocess.check_call([shell, script_path]) + # Use bash explicitly instead of relying on SHELL environment variable + shell = "/bin/bash" + + # Define script paths + scripts = [ + os.path.join( + os.path.dirname(__file__), + "mithril", + "cores", + "c", + "raw_c", + "compile.sh", + ), + os.path.join( + os.path.dirname(__file__), + "mithril", + "cores", + "c", + "ggml", + "build_ggml.sh", + ), + os.path.join( + os.path.dirname(__file__), + "mithril", + "cores", + "c", + "ggml", + "compile.sh", + ), + ] + + print("Running compilation scripts...") + + # Save current working directory + original_dir = os.getcwd() + + try: + # Run each script from its own directory + for script_path in scripts: + script_dir = os.path.dirname(script_path) + script_name = os.path.basename(script_path) + print(f"Running {script_name} in {script_dir}") + os.chdir(script_dir) + subprocess.check_call([shell, f"./{script_name}"]) + os.chdir(original_dir) # Return to original directory + finally: + # Make sure we return to the original directory even if an error occurs + os.chdir(original_dir) + # Continue with the normal build super().run() @@ -54,6 +95,6 @@ def run(self): python_requires=">=3.12", install_requires=[], cmdclass={"build_ext": CustomBuildExt}, - package_data={"mithril.cores.c": ["libmithrilc.so"]}, + ext_modules=[Extension("mithril.c_sources", sources=[])], include_package_data=True, ) diff --git a/tests/scripts/test_c_backend.py b/tests/scripts/test_c_backend.py index 644bcd03..057d0863 100644 --- a/tests/scripts/test_c_backend.py +++ b/tests/scripts/test_c_backend.py @@ -17,7 +17,7 @@ import numpy as np -from mithril import CBackend, NumpyBackend, compile +from mithril import CBackend, GGMLBackend, NumpyBackend, compile from mithril.cores.c.array import PyArray from mithril.framework.common import Tensor from mithril.models import Add, IOKey, Model, Multiply @@ -30,9 +30,11 @@ def test_cbackend_1(): model += Add()(left="left", right="right", output="output") model.set_types(left=Tensor, right=Tensor) + model.set_differentiability(left=True, right=True) c_backend = CBackend() np_backend = NumpyBackend() + ggml_backend = GGMLBackend() c_pm = compile( model, @@ -49,15 +51,26 @@ def test_cbackend_1(): jit=False, ) + ggml_pm = compile( + model, + ggml_backend, + shapes={"left": [5, 5], "right": [5, 5]}, + trainable_keys={"left", "right"}, + jit=False, + ) + left = np_backend.ones(5, 5) right = np_backend.ones(5, 5) output_grad = np_backend.rand(5, 5) + # Numpy Backend + np_outputs = np_pm.evaluate({"left": left, "right": right}) np_grads = np_pm.evaluate_gradients( {"left": left, "right": right}, {}, output_gradients={"output": output_grad} ) + # Raw C Backend c_left = c_backend.array(left) c_right = c_backend.array(right) c_output_grad = c_backend.array(output_grad) @@ -69,25 +82,42 @@ def test_cbackend_1(): output_gradients={"output": c_output_grad}, ) + # GGML Backend + ggml_left = ggml_backend.array(left) + ggml_right = ggml_backend.array(right) + ggml_output_grad = ggml_backend.array(output_grad) + + ggml_outputs = ggml_pm.evaluate({"left": ggml_left, "right": ggml_right}) + ggml_grads = ggml_pm.evaluate_gradients( + {"left": ggml_left, "right": ggml_right}, + {}, + output_gradients={"output": ggml_output_grad}, + ) + + # Assertions for key in np_outputs: out = c_outputs[key] + out_ggml = ggml_outputs[key] out_np = np_outputs[key] assert isinstance(out_np, np.ndarray) assert isinstance(out, PyArray) + assert isinstance(out_ggml, PyArray) assert np.allclose(c_backend.to_numpy(out), out_np) + assert np.allclose(ggml_backend.to_numpy(out_ggml), out_np) for key in np_grads: assert np.allclose(c_backend.to_numpy(c_grads[key]), np_grads[key]) + assert np.allclose(ggml_backend.to_numpy(ggml_grads[key]), np_grads[key]) @with_temp_file(suffix=".c") def test_cbackend_2(file_path: str): model = Model() - add = Add() - model |= add(left="left", right="right", output=IOKey(name="output")) + model |= Add()(left="left", right="right", output=IOKey(name="output")) model |= Add()(left="left2", right="output", output=IOKey(name="output2")) model.set_types(left=Tensor, left2=Tensor, right=Tensor) + model.set_differentiability(left=True, left2=True, right=True) c_backend = CBackend() np_backend = NumpyBackend() @@ -113,6 +143,7 @@ def test_cbackend_2(file_path: str): right = np_backend.ones(5, 5) # type: ignore # (check after DataTypes Update) output_grad = np_backend.rand(5, 5) + # Numpy np_outputs = np_pm.evaluate({"left": left, "right": right, "left2": left2}) np_grads = np_pm.evaluate_gradients( {"left": left, "right": right, "left2": left2}, @@ -123,6 +154,7 @@ def test_cbackend_2(file_path: str): }, ) + # Raw C Backend c_left = c_backend.array(left) c_left2 = c_backend.array(left2) c_right = c_backend.array(right) @@ -135,6 +167,7 @@ def test_cbackend_2(file_path: str): output_gradients={"output": c_output_grad, "output2": c_output_grad}, ) + # Assertions for key in np_outputs: out = c_outputs[key] out_np = np_outputs[key] @@ -144,7 +177,6 @@ def test_cbackend_2(file_path: str): for key in np_grads: assert np.allclose(c_backend.to_numpy(c_grads[key]), np_grads[key]) - os.remove(file_path.replace(".c", ".so")) diff --git a/tests/scripts/test_functions.py b/tests/scripts/test_functions.py index 71134cef..6d237dcf 100644 --- a/tests/scripts/test_functions.py +++ b/tests/scripts/test_functions.py @@ -732,22 +732,24 @@ def test_code_generator_8(file_path: str): evaluate_gradient_code = "".join(code[start_line:end_line]) reference_eval_code = ( - "void evaluate(\n\tArray * left,\n\tArray * output,\n\tArray * output_0" - ",\n\tArray * right,\n\tArray * right2\n)\n{\n add(output_0, left, " - "right);\n multiplication(output, output_0, right2);\n}\n" + "struct eval_outputs evaluate(\n\tstruct eval_inputs * inputs\n)\n{\n " + "add(inputs->output_0, inputs->left, inputs->right);\n multiplication(i" + "nputs->output, inputs->output_0, inputs->right2);\n struct eval_outputs " + "output_struct = { .left = inputs->left, .output = inputs->output, .output_0 " + "= inputs->output_0, .right = inputs->right, .right2 = inputs->right2 };\n " + "return output_struct;\n}\n" ) reference_eval_grad_code = ( - "void evaluate_gradients(\n\tArray * left,\n\tArray * " - "left_grad,\n\tArray * output,\n\tArray * output_0,\n\t" - "Array * output_0_grad,\n\tArray * output_grad,\n\tArray * right,\n\tArray " - "* right2,\n\tArray * right2_grad,\n\tArray * right_grad\n)\n{\n " - "multiplication_grad(output_grad, 0, output, output_0, right2, " - "output_0_grad, right2_grad);\n multiplication_grad(output_grad" - ", 1, output, output_0, right2, output_0_grad, right2_grad);\n" - " add_grad(output_0_grad, 0, output_0, left, right, left_grad," - " right_grad);\n add_grad(output_0_grad, 1, output_0, left, " - "right, left_grad, right_grad);\n}" + "struct eval_grad_outputs evaluate_gradients(\n\tstruct eval_grad_inputs " + "* inputs\n)\n{\n multiplication_grad(inputs->output_grad, 0, inputs->" + "output, inputs->output_0, inputs->right2, inputs->output_0_grad, NULL);\n" + " add_grad(inputs->output_0_grad, 0, inputs->output_0, inputs->left, inputs" + "->right, inputs->left_grad, inputs->right_grad);\n add_grad(inputs->" + "output_0_grad, 1, inputs->output_0, inputs->left, inputs->right, inputs->" + "left_grad, inputs->right_grad);\n struct eval_grad_outputs output_struct" + " = { .left_grad = inputs->left_grad, .right_grad = inputs->right_grad };\n " + "return output_struct;\n}" ) assert eval_code == reference_eval_code

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�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%0AJF5k(}Z$_6@27jL6 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 !9SBuZEIzaa75 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