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.
- digitalhub_runtime_tvm/__init__.py +32 -0
- digitalhub_runtime_tvm/entities/__init__.py +3 -0
- digitalhub_runtime_tvm/entities/_base/__init__.py +3 -0
- digitalhub_runtime_tvm/entities/_base/runtime_entity/__init__.py +3 -0
- digitalhub_runtime_tvm/entities/_base/runtime_entity/builder.py +46 -0
- digitalhub_runtime_tvm/entities/_commons/__init__.py +3 -0
- digitalhub_runtime_tvm/entities/_commons/enums.py +31 -0
- digitalhub_runtime_tvm/entities/function/__init__.py +3 -0
- digitalhub_runtime_tvm/entities/function/tvm/__init__.py +3 -0
- digitalhub_runtime_tvm/entities/function/tvm/builder.py +28 -0
- digitalhub_runtime_tvm/entities/function/tvm/entity.py +25 -0
- digitalhub_runtime_tvm/entities/function/tvm/spec.py +48 -0
- digitalhub_runtime_tvm/entities/function/tvm/status.py +9 -0
- digitalhub_runtime_tvm/entities/run/__init__.py +3 -0
- digitalhub_runtime_tvm/entities/run/_base/__init__.py +3 -0
- digitalhub_runtime_tvm/entities/run/_base/entity.py +25 -0
- digitalhub_runtime_tvm/entities/run/_base/spec.py +59 -0
- digitalhub_runtime_tvm/entities/run/_base/status.py +9 -0
- digitalhub_runtime_tvm/entities/run/build/__init__.py +3 -0
- digitalhub_runtime_tvm/entities/run/build/builder.py +25 -0
- digitalhub_runtime_tvm/entities/run/build/entity.py +25 -0
- digitalhub_runtime_tvm/entities/run/build/spec.py +76 -0
- digitalhub_runtime_tvm/entities/run/build/status.py +9 -0
- digitalhub_runtime_tvm/entities/run/compile/__init__.py +3 -0
- digitalhub_runtime_tvm/entities/run/compile/builder.py +25 -0
- digitalhub_runtime_tvm/entities/run/compile/entity.py +25 -0
- digitalhub_runtime_tvm/entities/run/compile/spec.py +88 -0
- digitalhub_runtime_tvm/entities/run/compile/status.py +9 -0
- digitalhub_runtime_tvm/entities/run/serve/__init__.py +3 -0
- digitalhub_runtime_tvm/entities/run/serve/builder.py +25 -0
- digitalhub_runtime_tvm/entities/run/serve/entity.py +25 -0
- digitalhub_runtime_tvm/entities/run/serve/spec.py +76 -0
- digitalhub_runtime_tvm/entities/run/serve/status.py +9 -0
- digitalhub_runtime_tvm/entities/task/__init__.py +3 -0
- digitalhub_runtime_tvm/entities/task/build/__init__.py +3 -0
- digitalhub_runtime_tvm/entities/task/build/builder.py +28 -0
- digitalhub_runtime_tvm/entities/task/build/entity.py +25 -0
- digitalhub_runtime_tvm/entities/task/build/spec.py +62 -0
- digitalhub_runtime_tvm/entities/task/build/status.py +9 -0
- digitalhub_runtime_tvm/entities/task/compile/__init__.py +3 -0
- digitalhub_runtime_tvm/entities/task/compile/builder.py +25 -0
- digitalhub_runtime_tvm/entities/task/compile/entity.py +25 -0
- digitalhub_runtime_tvm/entities/task/compile/spec.py +76 -0
- digitalhub_runtime_tvm/entities/task/compile/status.py +9 -0
- digitalhub_runtime_tvm/entities/task/serve/__init__.py +3 -0
- digitalhub_runtime_tvm/entities/task/serve/builder.py +25 -0
- digitalhub_runtime_tvm/entities/task/serve/entity.py +25 -0
- digitalhub_runtime_tvm/entities/task/serve/spec.py +61 -0
- digitalhub_runtime_tvm/entities/task/serve/status.py +9 -0
- digitalhub_runtime_tvm/runtimes/__init__.py +3 -0
- digitalhub_runtime_tvm/runtimes/builder.py +15 -0
- digitalhub_runtime_tvm/runtimes/runtime.py +13 -0
- digitalhub_runtime_tvm-0.16.0b0.dist-info/METADATA +275 -0
- digitalhub_runtime_tvm-0.16.0b0.dist-info/RECORD +57 -0
- digitalhub_runtime_tvm-0.16.0b0.dist-info/WHEEL +4 -0
- digitalhub_runtime_tvm-0.16.0b0.dist-info/licenses/AUTHORS +5 -0
- 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,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,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,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,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,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,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."""
|