digitalhub-runtime-tvm 0.16.0b0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. digitalhub_runtime_tvm/__init__.py +32 -0
  2. digitalhub_runtime_tvm/entities/__init__.py +3 -0
  3. digitalhub_runtime_tvm/entities/_base/__init__.py +3 -0
  4. digitalhub_runtime_tvm/entities/_base/runtime_entity/__init__.py +3 -0
  5. digitalhub_runtime_tvm/entities/_base/runtime_entity/builder.py +46 -0
  6. digitalhub_runtime_tvm/entities/_commons/__init__.py +3 -0
  7. digitalhub_runtime_tvm/entities/_commons/enums.py +31 -0
  8. digitalhub_runtime_tvm/entities/function/__init__.py +3 -0
  9. digitalhub_runtime_tvm/entities/function/tvm/__init__.py +3 -0
  10. digitalhub_runtime_tvm/entities/function/tvm/builder.py +28 -0
  11. digitalhub_runtime_tvm/entities/function/tvm/entity.py +25 -0
  12. digitalhub_runtime_tvm/entities/function/tvm/spec.py +48 -0
  13. digitalhub_runtime_tvm/entities/function/tvm/status.py +9 -0
  14. digitalhub_runtime_tvm/entities/run/__init__.py +3 -0
  15. digitalhub_runtime_tvm/entities/run/_base/__init__.py +3 -0
  16. digitalhub_runtime_tvm/entities/run/_base/entity.py +25 -0
  17. digitalhub_runtime_tvm/entities/run/_base/spec.py +59 -0
  18. digitalhub_runtime_tvm/entities/run/_base/status.py +9 -0
  19. digitalhub_runtime_tvm/entities/run/build/__init__.py +3 -0
  20. digitalhub_runtime_tvm/entities/run/build/builder.py +25 -0
  21. digitalhub_runtime_tvm/entities/run/build/entity.py +25 -0
  22. digitalhub_runtime_tvm/entities/run/build/spec.py +76 -0
  23. digitalhub_runtime_tvm/entities/run/build/status.py +9 -0
  24. digitalhub_runtime_tvm/entities/run/compile/__init__.py +3 -0
  25. digitalhub_runtime_tvm/entities/run/compile/builder.py +25 -0
  26. digitalhub_runtime_tvm/entities/run/compile/entity.py +25 -0
  27. digitalhub_runtime_tvm/entities/run/compile/spec.py +88 -0
  28. digitalhub_runtime_tvm/entities/run/compile/status.py +9 -0
  29. digitalhub_runtime_tvm/entities/run/serve/__init__.py +3 -0
  30. digitalhub_runtime_tvm/entities/run/serve/builder.py +25 -0
  31. digitalhub_runtime_tvm/entities/run/serve/entity.py +25 -0
  32. digitalhub_runtime_tvm/entities/run/serve/spec.py +76 -0
  33. digitalhub_runtime_tvm/entities/run/serve/status.py +9 -0
  34. digitalhub_runtime_tvm/entities/task/__init__.py +3 -0
  35. digitalhub_runtime_tvm/entities/task/build/__init__.py +3 -0
  36. digitalhub_runtime_tvm/entities/task/build/builder.py +28 -0
  37. digitalhub_runtime_tvm/entities/task/build/entity.py +25 -0
  38. digitalhub_runtime_tvm/entities/task/build/spec.py +62 -0
  39. digitalhub_runtime_tvm/entities/task/build/status.py +9 -0
  40. digitalhub_runtime_tvm/entities/task/compile/__init__.py +3 -0
  41. digitalhub_runtime_tvm/entities/task/compile/builder.py +25 -0
  42. digitalhub_runtime_tvm/entities/task/compile/entity.py +25 -0
  43. digitalhub_runtime_tvm/entities/task/compile/spec.py +76 -0
  44. digitalhub_runtime_tvm/entities/task/compile/status.py +9 -0
  45. digitalhub_runtime_tvm/entities/task/serve/__init__.py +3 -0
  46. digitalhub_runtime_tvm/entities/task/serve/builder.py +25 -0
  47. digitalhub_runtime_tvm/entities/task/serve/entity.py +25 -0
  48. digitalhub_runtime_tvm/entities/task/serve/spec.py +61 -0
  49. digitalhub_runtime_tvm/entities/task/serve/status.py +9 -0
  50. digitalhub_runtime_tvm/runtimes/__init__.py +3 -0
  51. digitalhub_runtime_tvm/runtimes/builder.py +15 -0
  52. digitalhub_runtime_tvm/runtimes/runtime.py +13 -0
  53. digitalhub_runtime_tvm-0.16.0b0.dist-info/METADATA +275 -0
  54. digitalhub_runtime_tvm-0.16.0b0.dist-info/RECORD +57 -0
  55. digitalhub_runtime_tvm-0.16.0b0.dist-info/WHEEL +4 -0
  56. digitalhub_runtime_tvm-0.16.0b0.dist-info/licenses/AUTHORS +5 -0
  57. digitalhub_runtime_tvm-0.16.0b0.dist-info/licenses/LICENSE +201 -0
@@ -0,0 +1,32 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+ from digitalhub_runtime_tvm.entities._commons.enums import EntityKinds
5
+ from digitalhub_runtime_tvm.entities.function.tvm.builder import FunctionTvmBuilder
6
+ from digitalhub_runtime_tvm.entities.run.build.builder import RunTvmRunBuildBuilder
7
+ from digitalhub_runtime_tvm.entities.run.compile.builder import RunTvmRunCompileBuilder
8
+ from digitalhub_runtime_tvm.entities.run.serve.builder import RunTvmRunServeBuilder
9
+ from digitalhub_runtime_tvm.entities.task.build.builder import TaskTvmBuildBuilder
10
+ from digitalhub_runtime_tvm.entities.task.compile.builder import TaskTvmCompileBuilder
11
+ from digitalhub_runtime_tvm.entities.task.serve.builder import TaskTvmServeBuilder
12
+
13
+ entity_builders = (
14
+ (EntityKinds.FUNCTION_TVM.value, FunctionTvmBuilder),
15
+ (EntityKinds.TASK_TVM_BUILD.value, TaskTvmBuildBuilder),
16
+ (EntityKinds.TASK_TVM_COMPILE.value, TaskTvmCompileBuilder),
17
+ (EntityKinds.TASK_TVM_SERVE.value, TaskTvmServeBuilder),
18
+ (EntityKinds.RUN_TVM_BUILD.value, RunTvmRunBuildBuilder),
19
+ (EntityKinds.RUN_TVM_COMPILE.value, RunTvmRunCompileBuilder),
20
+ (EntityKinds.RUN_TVM_SERVE.value, RunTvmRunServeBuilder),
21
+ )
22
+
23
+ try:
24
+ from digitalhub_runtime_tvm.runtimes.builder import RuntimeTvmBuilder
25
+
26
+ runtime_builders = ((kind, RuntimeTvmBuilder) for kind in [e.value for e in EntityKinds])
27
+ except ImportError as e:
28
+ from digitalhub.utils.logger.logger import get_logger
29
+
30
+ logger = get_logger(__name__)
31
+ logger.debug(f"Error importing runtime builders: {e}")
32
+ runtime_builders = ()
@@ -0,0 +1,3 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
@@ -0,0 +1,3 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
@@ -0,0 +1,3 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
@@ -0,0 +1,46 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from __future__ import annotations
6
+
7
+ from digitalhub.entities._commons.utils import map_actions
8
+ from digitalhub.entities._mixin.runtime_entity.builder import RuntimeEntityBuilder
9
+
10
+ from digitalhub_runtime_tvm.entities._commons.enums import Actions, EntityKinds
11
+
12
+
13
+ class RuntimeEntityBuilderTvm(RuntimeEntityBuilder):
14
+ EXECUTABLE_KIND = EntityKinds.FUNCTION_TVM.value
15
+ TASKS_KINDS = map_actions(
16
+ [
17
+ (
18
+ EntityKinds.TASK_TVM_BUILD.value,
19
+ Actions.BUILD.value,
20
+ ),
21
+ (
22
+ EntityKinds.TASK_TVM_COMPILE.value,
23
+ Actions.COMPILE.value,
24
+ ),
25
+ (
26
+ EntityKinds.TASK_TVM_SERVE.value,
27
+ Actions.SERVE.value,
28
+ ),
29
+ ]
30
+ )
31
+ RUN_KINDS = map_actions(
32
+ [
33
+ (
34
+ EntityKinds.RUN_TVM_BUILD.value,
35
+ Actions.BUILD.value,
36
+ ),
37
+ (
38
+ EntityKinds.RUN_TVM_COMPILE.value,
39
+ Actions.COMPILE.value,
40
+ ),
41
+ (
42
+ EntityKinds.RUN_TVM_SERVE.value,
43
+ Actions.SERVE.value,
44
+ ),
45
+ ]
46
+ )
@@ -0,0 +1,3 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
@@ -0,0 +1,31 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import Enum
8
+
9
+
10
+ class EntityKinds(Enum):
11
+ """
12
+ Entity kinds.
13
+ """
14
+
15
+ FUNCTION_TVM = "tvm"
16
+ TASK_TVM_BUILD = "tvm+build"
17
+ TASK_TVM_COMPILE = "tvm+compile"
18
+ TASK_TVM_SERVE = "tvm+serve"
19
+ RUN_TVM_BUILD = "tvm+build:run"
20
+ RUN_TVM_COMPILE = "tvm+compile:run"
21
+ RUN_TVM_SERVE = "tvm+serve:run"
22
+
23
+
24
+ class Actions(Enum):
25
+ """
26
+ Task actions.
27
+ """
28
+
29
+ BUILD = "build"
30
+ COMPILE = "compile"
31
+ SERVE = "serve"
@@ -0,0 +1,3 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
@@ -0,0 +1,3 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
@@ -0,0 +1,28 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from __future__ import annotations
6
+
7
+ from digitalhub.entities.function._base.builder import FunctionBuilder
8
+
9
+ from digitalhub_runtime_tvm.entities._base.runtime_entity.builder import RuntimeEntityBuilderTvm
10
+ from digitalhub_runtime_tvm.entities._commons.enums import EntityKinds
11
+ from digitalhub_runtime_tvm.entities.function.tvm.entity import FunctionTvm
12
+ from digitalhub_runtime_tvm.entities.function.tvm.spec import (
13
+ FunctionSpecTvm,
14
+ FunctionValidatorTvm,
15
+ )
16
+ from digitalhub_runtime_tvm.entities.function.tvm.status import FunctionStatusTvm
17
+
18
+
19
+ class FunctionTvmBuilder(FunctionBuilder, RuntimeEntityBuilderTvm):
20
+ """
21
+ FunctionTvm builder.
22
+ """
23
+
24
+ ENTITY_CLASS = FunctionTvm
25
+ ENTITY_SPEC_CLASS = FunctionSpecTvm
26
+ ENTITY_SPEC_VALIDATOR = FunctionValidatorTvm
27
+ ENTITY_STATUS_CLASS = FunctionStatusTvm
28
+ ENTITY_KIND = EntityKinds.FUNCTION_TVM.value
@@ -0,0 +1,25 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from __future__ import annotations
6
+
7
+ import typing
8
+
9
+ from digitalhub.entities.function._base.entity import Function
10
+
11
+ if typing.TYPE_CHECKING:
12
+ from digitalhub_runtime_tvm.entities.function.tvm.spec import FunctionSpecTvm
13
+ from digitalhub_runtime_tvm.entities.function.tvm.status import FunctionStatusTvm
14
+
15
+
16
+ class FunctionTvm(Function):
17
+ """
18
+ FunctionTvm class.
19
+ """
20
+
21
+ def __init__(self, *args, **kwargs) -> None:
22
+ super().__init__(*args, **kwargs)
23
+
24
+ self.spec: FunctionSpecTvm
25
+ self.status: FunctionStatusTvm
@@ -0,0 +1,48 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from __future__ import annotations
6
+
7
+ from typing import Literal
8
+
9
+ from digitalhub.entities.function._base.spec import FunctionSpec, FunctionValidator
10
+
11
+ TvmFormat = Literal["auto", "onnx", "tflite"]
12
+
13
+
14
+ class FunctionSpecTvm(FunctionSpec):
15
+ """
16
+ FunctionTvm specifications.
17
+ """
18
+
19
+ def __init__(
20
+ self,
21
+ model: str,
22
+ format: TvmFormat | None = None,
23
+ ir_model: str | None = None,
24
+ so_model: str | None = None,
25
+ ) -> None:
26
+ super().__init__()
27
+ self.model = model
28
+ self.format = format
29
+ self.ir_model = ir_model
30
+ self.so_model = so_model
31
+
32
+
33
+ class FunctionValidatorTvm(FunctionValidator):
34
+ """
35
+ FunctionTvm validator.
36
+ """
37
+
38
+ model: str
39
+ """Source model path or store key."""
40
+
41
+ format: TvmFormat | None = None
42
+ """Source model format."""
43
+
44
+ ir_model: str | None = None
45
+ """Store key of the Relax IR model produced by build."""
46
+
47
+ so_model: str | None = None
48
+ """Store key of the compiled model.so produced by compile."""
@@ -0,0 +1,9 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from digitalhub.entities.function._base.status import FunctionStatus
6
+
7
+
8
+ class FunctionStatusTvm(FunctionStatus):
9
+ """FunctionTvm status."""
@@ -0,0 +1,3 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
@@ -0,0 +1,3 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
@@ -0,0 +1,25 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from __future__ import annotations
6
+
7
+ import typing
8
+
9
+ from digitalhub.entities.run._base.entity import Run
10
+
11
+ if typing.TYPE_CHECKING:
12
+ from digitalhub_runtime_tvm.entities.run._base.spec import RunSpecTvmRun
13
+ from digitalhub_runtime_tvm.entities.run._base.status import RunStatusTvmRun
14
+
15
+
16
+ class RunTvmRun(Run):
17
+ """
18
+ RunTvmRun class.
19
+ """
20
+
21
+ def __init__(self, *args, **kwargs) -> None:
22
+ super().__init__(*args, **kwargs)
23
+
24
+ self.spec: RunSpecTvmRun
25
+ self.status: RunStatusTvmRun
@@ -0,0 +1,59 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from digitalhub.entities.run._base.spec import RunSpec, RunValidator
6
+
7
+ from digitalhub_runtime_tvm.entities.function.tvm.spec import TvmFormat
8
+
9
+
10
+ class RunSpecTvmRun(RunSpec):
11
+ """
12
+ Tvm run specifications.
13
+ """
14
+
15
+ def __init__(
16
+ self,
17
+ task: str,
18
+ model: str,
19
+ function: str | None = None,
20
+ workflow: str | None = None,
21
+ volumes: list[dict] | None = None,
22
+ resources: dict | None = None,
23
+ envs: list[dict] | None = None,
24
+ secrets: list[str] | None = None,
25
+ profile: str | None = None,
26
+ inputs: dict[str, str] | None = None,
27
+ format: TvmFormat | None = None,
28
+ ir_model: str | None = None,
29
+ so_model: str | None = None,
30
+ **kwargs,
31
+ ) -> None:
32
+ super().__init__(
33
+ task=task,
34
+ function=function,
35
+ workflow=workflow,
36
+ volumes=volumes,
37
+ resources=resources,
38
+ envs=envs,
39
+ secrets=secrets,
40
+ profile=profile,
41
+ **kwargs,
42
+ )
43
+ self.model = model
44
+ self.inputs = inputs if inputs is not None else {}
45
+ self.format = format
46
+ self.ir_model = ir_model
47
+ self.so_model = so_model
48
+
49
+
50
+ class RunValidatorTvmRun(RunValidator):
51
+ """
52
+ Tvm run validator.
53
+ """
54
+
55
+ model: str
56
+ inputs: dict[str, str] | None = None
57
+ format: TvmFormat | None = None
58
+ ir_model: str | None = None
59
+ so_model: str | None = None
@@ -0,0 +1,9 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from digitalhub.entities.run._base.status import RunStatus
6
+
7
+
8
+ class RunStatusTvmRun(RunStatus):
9
+ """Tvm run status."""
@@ -0,0 +1,3 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
@@ -0,0 +1,25 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from __future__ import annotations
6
+
7
+ from digitalhub.entities.run._base.builder import RunBuilder
8
+
9
+ from digitalhub_runtime_tvm.entities._base.runtime_entity.builder import RuntimeEntityBuilderTvm
10
+ from digitalhub_runtime_tvm.entities._commons.enums import EntityKinds
11
+ from digitalhub_runtime_tvm.entities.run.build.entity import RunTvmRunBuild
12
+ from digitalhub_runtime_tvm.entities.run.build.spec import RunSpecTvmRunBuild, RunValidatorTvmRunBuild
13
+ from digitalhub_runtime_tvm.entities.run.build.status import RunStatusTvmRunBuild
14
+
15
+
16
+ class RunTvmRunBuildBuilder(RunBuilder, RuntimeEntityBuilderTvm):
17
+ """
18
+ RunTvmRunBuildBuilder runner.
19
+ """
20
+
21
+ ENTITY_CLASS = RunTvmRunBuild
22
+ ENTITY_SPEC_CLASS = RunSpecTvmRunBuild
23
+ ENTITY_SPEC_VALIDATOR = RunValidatorTvmRunBuild
24
+ ENTITY_STATUS_CLASS = RunStatusTvmRunBuild
25
+ ENTITY_KIND = EntityKinds.RUN_TVM_BUILD.value
@@ -0,0 +1,25 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from __future__ import annotations
6
+
7
+ import typing
8
+
9
+ from digitalhub_runtime_tvm.entities.run._base.entity import RunTvmRun
10
+
11
+ if typing.TYPE_CHECKING:
12
+ from digitalhub_runtime_tvm.entities.run.build.spec import RunSpecTvmRunBuild
13
+ from digitalhub_runtime_tvm.entities.run.build.status import RunStatusTvmRunBuild
14
+
15
+
16
+ class RunTvmRunBuild(RunTvmRun):
17
+ """
18
+ RunTvmRunBuild class.
19
+ """
20
+
21
+ def __init__(self, *args, **kwargs) -> None:
22
+ super().__init__(*args, **kwargs)
23
+
24
+ self.spec: RunSpecTvmRunBuild
25
+ self.status: RunStatusTvmRunBuild
@@ -0,0 +1,76 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from digitalhub_runtime_tvm.entities.run._base.spec import RunSpecTvmRun, RunValidatorTvmRun
6
+
7
+
8
+ class RunSpecTvmRunBuild(RunSpecTvmRun):
9
+ """
10
+ Tvm build run specifications.
11
+ """
12
+
13
+ def __init__(
14
+ self,
15
+ task: str,
16
+ model: str,
17
+ function: str | None = None,
18
+ workflow: str | None = None,
19
+ volumes: list[dict] | None = None,
20
+ resources: dict | None = None,
21
+ envs: list[dict] | None = None,
22
+ secrets: list[str] | None = None,
23
+ profile: str | None = None,
24
+ inputs: dict[str, str] | None = None,
25
+ format: str | None = None,
26
+ ir_model: str | None = None,
27
+ so_model: str | None = None,
28
+ image: str | None = None,
29
+ simplify: bool | None = None,
30
+ target_opset: int | None = None,
31
+ opset_override: int | None = None,
32
+ strict_shape_inference: bool | None = None,
33
+ data_prop: bool | None = None,
34
+ keep_params_in_input: bool | None = None,
35
+ sanitize_input_names: bool | None = None,
36
+ **kwargs,
37
+ ) -> None:
38
+ super().__init__(
39
+ task=task,
40
+ model=model,
41
+ function=function,
42
+ workflow=workflow,
43
+ volumes=volumes,
44
+ resources=resources,
45
+ envs=envs,
46
+ secrets=secrets,
47
+ profile=profile,
48
+ inputs=inputs,
49
+ format=format,
50
+ ir_model=ir_model,
51
+ so_model=so_model,
52
+ **kwargs,
53
+ )
54
+ self.image = image
55
+ self.simplify = simplify
56
+ self.target_opset = target_opset
57
+ self.opset_override = opset_override
58
+ self.strict_shape_inference = strict_shape_inference
59
+ self.data_prop = data_prop
60
+ self.keep_params_in_input = keep_params_in_input
61
+ self.sanitize_input_names = sanitize_input_names
62
+
63
+
64
+ class RunValidatorTvmRunBuild(RunValidatorTvmRun):
65
+ """
66
+ Tvm build run validator.
67
+ """
68
+
69
+ image: str | None = None
70
+ simplify: bool | None = None
71
+ target_opset: int | None = None
72
+ opset_override: int | None = None
73
+ strict_shape_inference: bool | None = None
74
+ data_prop: bool | None = None
75
+ keep_params_in_input: bool | None = None
76
+ sanitize_input_names: bool | None = None
@@ -0,0 +1,9 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from digitalhub_runtime_tvm.entities.run._base.status import RunStatusTvmRun
6
+
7
+
8
+ class RunStatusTvmRunBuild(RunStatusTvmRun):
9
+ """Tvm build run status."""
@@ -0,0 +1,3 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
@@ -0,0 +1,25 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from __future__ import annotations
6
+
7
+ from digitalhub.entities.run._base.builder import RunBuilder
8
+
9
+ from digitalhub_runtime_tvm.entities._base.runtime_entity.builder import RuntimeEntityBuilderTvm
10
+ from digitalhub_runtime_tvm.entities._commons.enums import EntityKinds
11
+ from digitalhub_runtime_tvm.entities.run.compile.entity import RunTvmRunCompile
12
+ from digitalhub_runtime_tvm.entities.run.compile.spec import RunSpecTvmRunCompile, RunValidatorTvmRunCompile
13
+ from digitalhub_runtime_tvm.entities.run.compile.status import RunStatusTvmRunCompile
14
+
15
+
16
+ class RunTvmRunCompileBuilder(RunBuilder, RuntimeEntityBuilderTvm):
17
+ """
18
+ RunTvmRunCompileBuilder runner.
19
+ """
20
+
21
+ ENTITY_CLASS = RunTvmRunCompile
22
+ ENTITY_SPEC_CLASS = RunSpecTvmRunCompile
23
+ ENTITY_SPEC_VALIDATOR = RunValidatorTvmRunCompile
24
+ ENTITY_STATUS_CLASS = RunStatusTvmRunCompile
25
+ ENTITY_KIND = EntityKinds.RUN_TVM_COMPILE.value
@@ -0,0 +1,25 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from __future__ import annotations
6
+
7
+ import typing
8
+
9
+ from digitalhub_runtime_tvm.entities.run._base.entity import RunTvmRun
10
+
11
+ if typing.TYPE_CHECKING:
12
+ from digitalhub_runtime_tvm.entities.run.compile.spec import RunSpecTvmRunCompile
13
+ from digitalhub_runtime_tvm.entities.run.compile.status import RunStatusTvmRunCompile
14
+
15
+
16
+ class RunTvmRunCompile(RunTvmRun):
17
+ """
18
+ RunTvmRunCompile class.
19
+ """
20
+
21
+ def __init__(self, *args, **kwargs) -> None:
22
+ super().__init__(*args, **kwargs)
23
+
24
+ self.spec: RunSpecTvmRunCompile
25
+ self.status: RunStatusTvmRunCompile
@@ -0,0 +1,88 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from pydantic import Field
6
+
7
+ from digitalhub_runtime_tvm.entities.run._base.spec import RunSpecTvmRun, RunValidatorTvmRun
8
+ from digitalhub_runtime_tvm.entities.task.compile.spec import TvmTargetArchitecture
9
+
10
+
11
+ class RunSpecTvmRunCompile(RunSpecTvmRun):
12
+ """
13
+ Tvm compile run specifications.
14
+ """
15
+
16
+ def __init__(
17
+ self,
18
+ task: str,
19
+ model: str,
20
+ function: str | None = None,
21
+ workflow: str | None = None,
22
+ volumes: list[dict] | None = None,
23
+ resources: dict | None = None,
24
+ envs: list[dict] | None = None,
25
+ secrets: list[str] | None = None,
26
+ profile: str | None = None,
27
+ inputs: dict[str, str] | None = None,
28
+ format: str | None = None,
29
+ ir_model: str | None = None,
30
+ so_model: str | None = None,
31
+ model_path: str | None = None,
32
+ target_architecture: TvmTargetArchitecture | None = None,
33
+ opt_level: int | None = None,
34
+ cross_cc: str | None = None,
35
+ exec_mode: str | None = None,
36
+ relax_pipeline: str | None = None,
37
+ tir_pipeline: str | None = None,
38
+ system_lib: bool | None = None,
39
+ params_path: str | None = None,
40
+ tag: str | None = None,
41
+ image: str | None = None,
42
+ **kwargs,
43
+ ) -> None:
44
+ super().__init__(
45
+ task=task,
46
+ model=model,
47
+ function=function,
48
+ workflow=workflow,
49
+ volumes=volumes,
50
+ resources=resources,
51
+ envs=envs,
52
+ secrets=secrets,
53
+ profile=profile,
54
+ inputs=inputs,
55
+ format=format,
56
+ ir_model=ir_model,
57
+ so_model=so_model,
58
+ **kwargs,
59
+ )
60
+ self.model_path = model_path
61
+ self.target_architecture = target_architecture
62
+ self.opt_level = opt_level
63
+ self.cross_cc = cross_cc
64
+ self.exec_mode = exec_mode
65
+ self.relax_pipeline = relax_pipeline
66
+ self.tir_pipeline = tir_pipeline
67
+ self.system_lib = system_lib
68
+ self.params_path = params_path
69
+ self.tag = tag
70
+ self.image = image
71
+
72
+
73
+ class RunValidatorTvmRunCompile(RunValidatorTvmRun):
74
+ """
75
+ Tvm compile run validator.
76
+ """
77
+
78
+ model_path: str | None = None
79
+ target_architecture: TvmTargetArchitecture | None = None
80
+ opt_level: int | None = Field(default=None, ge=0)
81
+ cross_cc: str | None = None
82
+ exec_mode: str | None = None
83
+ relax_pipeline: str | None = None
84
+ tir_pipeline: str | None = None
85
+ system_lib: bool | None = None
86
+ params_path: str | None = None
87
+ tag: str | None = None
88
+ image: str | None = None
@@ -0,0 +1,9 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from digitalhub_runtime_tvm.entities.run._base.status import RunStatusTvmRun
6
+
7
+
8
+ class RunStatusTvmRunCompile(RunStatusTvmRun):
9
+ """Tvm compile run status."""
@@ -0,0 +1,3 @@
1
+ # SPDX-FileCopyrightText: © 2025 DSLab - Fondazione Bruno Kessler
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0