optimum-rbln 0.8.1rc1__py3-none-any.whl → 0.8.2__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.
Potentially problematic release.
This version of optimum-rbln might be problematic. Click here for more details.
- optimum/rbln/__init__.py +58 -9
- optimum/rbln/__version__.py +2 -2
- optimum/rbln/configuration_utils.py +24 -5
- optimum/rbln/diffusers/configurations/models/configuration_autoencoder_kl.py +2 -2
- optimum/rbln/diffusers/configurations/models/configuration_autoencoder_kl_cosmos.py +2 -2
- optimum/rbln/diffusers/configurations/models/configuration_controlnet.py +2 -2
- optimum/rbln/diffusers/configurations/models/configuration_prior_transformer.py +2 -2
- optimum/rbln/diffusers/configurations/models/configuration_transformer_cosmos.py +5 -2
- optimum/rbln/diffusers/configurations/models/configuration_transformer_sd3.py +2 -2
- optimum/rbln/diffusers/configurations/models/configuration_unet_2d_condition.py +2 -2
- optimum/rbln/diffusers/configurations/models/configuration_vq_model.py +2 -2
- optimum/rbln/diffusers/configurations/pipelines/configuration_controlnet.py +3 -3
- optimum/rbln/diffusers/configurations/pipelines/configuration_cosmos.py +2 -2
- optimum/rbln/diffusers/configurations/pipelines/configuration_kandinsky2_2.py +4 -4
- optimum/rbln/diffusers/configurations/pipelines/configuration_stable_diffusion.py +2 -2
- optimum/rbln/diffusers/configurations/pipelines/configuration_stable_diffusion_3.py +2 -2
- optimum/rbln/diffusers/configurations/pipelines/configuration_stable_diffusion_xl.py +2 -2
- optimum/rbln/diffusers/modeling_diffusers.py +4 -5
- optimum/rbln/diffusers/models/__init__.py +3 -13
- optimum/rbln/diffusers/models/autoencoders/autoencoder_kl.py +1 -0
- optimum/rbln/diffusers/models/autoencoders/autoencoder_kl_cosmos.py +1 -0
- optimum/rbln/diffusers/models/autoencoders/vq_model.py +1 -0
- optimum/rbln/diffusers/models/transformers/transformer_cosmos.py +1 -1
- optimum/rbln/diffusers/pipelines/__init__.py +1 -5
- optimum/rbln/diffusers/pipelines/cosmos/configuration_cosmos_guardrail.py +12 -4
- optimum/rbln/diffusers/pipelines/cosmos/cosmos_guardrail.py +4 -28
- optimum/rbln/diffusers/pipelines/cosmos/pipeline_cosmos_text2world.py +1 -1
- optimum/rbln/diffusers/pipelines/cosmos/pipeline_cosmos_video2world.py +1 -1
- optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_combined.py +1 -6
- optimum/rbln/modeling.py +4 -5
- optimum/rbln/modeling_base.py +18 -14
- optimum/rbln/ops/kv_cache_update.py +5 -0
- optimum/rbln/ops/linear.py +7 -0
- optimum/rbln/transformers/__init__.py +60 -0
- optimum/rbln/transformers/configuration_generic.py +4 -4
- optimum/rbln/transformers/modeling_attention_utils.py +252 -0
- optimum/rbln/transformers/modeling_generic.py +1 -4
- optimum/rbln/transformers/models/__init__.py +45 -30
- optimum/rbln/transformers/models/bart/bart_architecture.py +2 -7
- optimum/rbln/transformers/models/blip_2/configuration_blip_2.py +2 -2
- optimum/rbln/transformers/models/blip_2/modeling_blip_2.py +1 -5
- optimum/rbln/transformers/models/clip/configuration_clip.py +14 -3
- optimum/rbln/transformers/models/clip/modeling_clip.py +123 -28
- optimum/rbln/transformers/models/colpali/colpali_architecture.py +1 -4
- optimum/rbln/transformers/models/colpali/configuration_colpali.py +2 -2
- optimum/rbln/transformers/models/colpali/modeling_colpali.py +2 -10
- optimum/rbln/transformers/models/decoderonly/__init__.py +2 -2
- optimum/rbln/transformers/models/decoderonly/configuration_decoderonly.py +214 -45
- optimum/rbln/transformers/models/decoderonly/decoderonly_architecture.py +323 -454
- optimum/rbln/transformers/models/decoderonly/modeling_decoderonly.py +579 -362
- optimum/rbln/transformers/models/exaone/exaone_architecture.py +17 -42
- optimum/rbln/transformers/models/gemma/__init__.py +2 -2
- optimum/rbln/transformers/models/gemma/configuration_gemma.py +9 -1
- optimum/rbln/transformers/models/gemma/gemma_architecture.py +3 -44
- optimum/rbln/transformers/models/gemma/modeling_gemma.py +22 -1
- optimum/rbln/transformers/models/gemma3/configuration_gemma3.py +21 -9
- optimum/rbln/transformers/models/gemma3/gemma3_architecture.py +9 -63
- optimum/rbln/transformers/models/gemma3/modeling_gemma3.py +200 -292
- optimum/rbln/transformers/models/gpt2/__init__.py +2 -2
- optimum/rbln/transformers/models/gpt2/configuration_gpt2.py +31 -3
- optimum/rbln/transformers/models/gpt2/gpt2_architecture.py +19 -24
- optimum/rbln/transformers/models/gpt2/modeling_gpt2.py +18 -1
- optimum/rbln/transformers/models/idefics3/configuration_idefics3.py +2 -2
- optimum/rbln/transformers/models/idefics3/modeling_idefics3.py +3 -9
- optimum/rbln/transformers/models/llama/__init__.py +2 -2
- optimum/rbln/transformers/models/llama/configuration_llama.py +9 -1
- optimum/rbln/transformers/models/llama/modeling_llama.py +22 -1
- optimum/rbln/transformers/models/llava/__init__.py +16 -0
- optimum/rbln/transformers/models/llava/configuration_llava.py +54 -0
- optimum/rbln/transformers/models/llava/modeling_llava.py +419 -0
- optimum/rbln/transformers/models/llava_next/configuration_llava_next.py +20 -3
- optimum/rbln/transformers/models/llava_next/modeling_llava_next.py +6 -16
- optimum/rbln/transformers/models/midm/midm_architecture.py +14 -22
- optimum/rbln/transformers/models/mistral/__init__.py +2 -2
- optimum/rbln/transformers/models/mistral/configuration_mistral.py +9 -1
- optimum/rbln/transformers/models/mistral/mistral_architecture.py +1 -1
- optimum/rbln/transformers/models/mistral/modeling_mistral.py +26 -3
- optimum/rbln/transformers/models/opt/__init__.py +2 -2
- optimum/rbln/transformers/models/opt/configuration_opt.py +8 -1
- optimum/rbln/transformers/models/opt/modeling_opt.py +41 -1
- optimum/rbln/transformers/models/opt/opt_architecture.py +16 -25
- optimum/rbln/transformers/models/pegasus/__init__.py +17 -0
- optimum/rbln/transformers/models/pegasus/configuration_pegasus.py +34 -0
- optimum/rbln/transformers/models/pegasus/modeling_pegasus.py +69 -0
- optimum/rbln/transformers/models/pegasus/pegasus_architecture.py +161 -0
- optimum/rbln/transformers/models/phi/__init__.py +2 -2
- optimum/rbln/transformers/models/phi/configuration_phi.py +9 -1
- optimum/rbln/transformers/models/phi/modeling_phi.py +10 -1
- optimum/rbln/transformers/models/phi/phi_architecture.py +16 -22
- optimum/rbln/transformers/models/pixtral/__init__.py +16 -0
- optimum/rbln/transformers/models/pixtral/configuration_pixtral.py +43 -0
- optimum/rbln/transformers/models/pixtral/modeling_pixtral.py +315 -0
- optimum/rbln/transformers/models/pixtral/pixtral_architecture.py +73 -0
- optimum/rbln/transformers/models/qwen2/__init__.py +2 -2
- optimum/rbln/transformers/models/qwen2/configuration_qwen2.py +9 -1
- optimum/rbln/transformers/models/qwen2/modeling_qwen2.py +27 -1
- optimum/rbln/transformers/models/qwen2_5_vl/configuration_qwen2_5_vl.py +3 -3
- optimum/rbln/transformers/models/qwen2_5_vl/modeling_qwen2_5_vl.py +5 -15
- optimum/rbln/transformers/models/qwen2_5_vl/qwen2_5_vl_architecture.py +1 -4
- optimum/rbln/transformers/models/qwen3/__init__.py +16 -0
- optimum/rbln/transformers/models/qwen3/configuration_qwen3.py +71 -0
- optimum/rbln/transformers/models/qwen3/modeling_qwen3.py +133 -0
- optimum/rbln/transformers/models/qwen3/qwen3_architecture.py +31 -0
- optimum/rbln/transformers/models/seq2seq/configuration_seq2seq.py +2 -12
- optimum/rbln/transformers/models/seq2seq/modeling_seq2seq.py +3 -1
- optimum/rbln/transformers/models/siglip/__init__.py +2 -6
- optimum/rbln/transformers/models/siglip/modeling_siglip.py +2 -2
- optimum/rbln/transformers/models/time_series_transformer/configuration_time_series_transformer.py +2 -2
- optimum/rbln/transformers/models/time_series_transformer/modeling_time_series_transformer.py +3 -5
- optimum/rbln/transformers/models/whisper/configuration_whisper.py +3 -12
- optimum/rbln/transformers/models/whisper/modeling_whisper.py +8 -2
- optimum/rbln/transformers/models/xlm_roberta/__init__.py +2 -8
- optimum/rbln/utils/depreacate_utils.py +16 -0
- optimum/rbln/utils/hub.py +8 -47
- optimum/rbln/utils/runtime_utils.py +31 -5
- {optimum_rbln-0.8.1rc1.dist-info → optimum_rbln-0.8.2.dist-info}/METADATA +1 -1
- {optimum_rbln-0.8.1rc1.dist-info → optimum_rbln-0.8.2.dist-info}/RECORD +119 -102
- {optimum_rbln-0.8.1rc1.dist-info → optimum_rbln-0.8.2.dist-info}/WHEEL +0 -0
- {optimum_rbln-0.8.1rc1.dist-info → optimum_rbln-0.8.2.dist-info}/licenses/LICENSE +0 -0
optimum/rbln/__init__.py
CHANGED
|
@@ -72,6 +72,8 @@ _import_structure = {
|
|
|
72
72
|
"RBLNCLIPVisionModelWithProjectionConfig",
|
|
73
73
|
"RBLNColPaliForRetrieval",
|
|
74
74
|
"RBLNColPaliForRetrievalConfig",
|
|
75
|
+
"RBLNDecoderOnlyModelConfig",
|
|
76
|
+
"RBLNDecoderOnlyModel",
|
|
75
77
|
"RBLNDecoderOnlyModelForCausalLM",
|
|
76
78
|
"RBLNDecoderOnlyModelForCausalLMConfig",
|
|
77
79
|
"RBLNDistilBertForQuestionAnswering",
|
|
@@ -80,12 +82,16 @@ _import_structure = {
|
|
|
80
82
|
"RBLNDPTForDepthEstimationConfig",
|
|
81
83
|
"RBLNExaoneForCausalLM",
|
|
82
84
|
"RBLNExaoneForCausalLMConfig",
|
|
85
|
+
"RBLNGemmaModel",
|
|
86
|
+
"RBLNGemmaModelConfig",
|
|
83
87
|
"RBLNGemmaForCausalLM",
|
|
84
88
|
"RBLNGemmaForCausalLMConfig",
|
|
85
89
|
"RBLNGemma3ForCausalLM",
|
|
86
90
|
"RBLNGemma3ForCausalLMConfig",
|
|
87
91
|
"RBLNGemma3ForConditionalGeneration",
|
|
88
92
|
"RBLNGemma3ForConditionalGenerationConfig",
|
|
93
|
+
"RBLNGPT2Model",
|
|
94
|
+
"RBLNGPT2ModelConfig",
|
|
89
95
|
"RBLNGPT2LMHeadModel",
|
|
90
96
|
"RBLNGPT2LMHeadModelConfig",
|
|
91
97
|
"RBLNIdefics3VisionTransformer",
|
|
@@ -94,22 +100,44 @@ _import_structure = {
|
|
|
94
100
|
"RBLNIdefics3VisionTransformerConfig",
|
|
95
101
|
"RBLNLlamaForCausalLM",
|
|
96
102
|
"RBLNLlamaForCausalLMConfig",
|
|
103
|
+
"RBLNLlamaModel",
|
|
104
|
+
"RBLNLlamaModelConfig",
|
|
97
105
|
"RBLNOPTForCausalLM",
|
|
98
106
|
"RBLNOPTForCausalLMConfig",
|
|
107
|
+
"RBLNLlavaForConditionalGeneration",
|
|
108
|
+
"RBLNLlavaForConditionalGenerationConfig",
|
|
99
109
|
"RBLNLlavaNextForConditionalGeneration",
|
|
100
110
|
"RBLNLlavaNextForConditionalGenerationConfig",
|
|
101
111
|
"RBLNMidmLMHeadModel",
|
|
102
112
|
"RBLNMidmLMHeadModelConfig",
|
|
113
|
+
"RBLNMistralModel",
|
|
114
|
+
"RBLNMistralModelConfig",
|
|
103
115
|
"RBLNMistralForCausalLM",
|
|
104
116
|
"RBLNMistralForCausalLMConfig",
|
|
117
|
+
"RBLNOPTModel",
|
|
118
|
+
"RBLNOPTModelConfig",
|
|
119
|
+
"RBLNPegasusForConditionalGeneration",
|
|
120
|
+
"RBLNPegasusForConditionalGenerationConfig",
|
|
121
|
+
"RBLNPegasusModel",
|
|
122
|
+
"RBLNPegasusModelConfig",
|
|
105
123
|
"RBLNPhiForCausalLM",
|
|
106
124
|
"RBLNPhiForCausalLMConfig",
|
|
125
|
+
"RBLNPixtralVisionModel",
|
|
126
|
+
"RBLNPixtralVisionModelConfig",
|
|
127
|
+
"RBLNPhiModel",
|
|
128
|
+
"RBLNPhiModelConfig",
|
|
107
129
|
"RBLNQwen2ForCausalLM",
|
|
108
130
|
"RBLNQwen2ForCausalLMConfig",
|
|
109
131
|
"RBLNQwen2_5_VisionTransformerPretrainedModel",
|
|
110
132
|
"RBLNQwen2_5_VisionTransformerPretrainedModelConfig",
|
|
111
133
|
"RBLNQwen2_5_VLForConditionalGeneration",
|
|
112
134
|
"RBLNQwen2_5_VLForConditionalGenerationConfig",
|
|
135
|
+
"RBLNQwen2Model",
|
|
136
|
+
"RBLNQwen2ModelConfig",
|
|
137
|
+
"RBLNQwen3ForCausalLM",
|
|
138
|
+
"RBLNQwen3ForCausalLMConfig",
|
|
139
|
+
"RBLNQwen3Model",
|
|
140
|
+
"RBLNQwen3ModelConfig",
|
|
113
141
|
"RBLNResNetForImageClassification",
|
|
114
142
|
"RBLNResNetForImageClassificationConfig",
|
|
115
143
|
"RBLNRobertaForMaskedLM",
|
|
@@ -203,11 +231,7 @@ _import_structure = {
|
|
|
203
231
|
}
|
|
204
232
|
|
|
205
233
|
if TYPE_CHECKING:
|
|
206
|
-
from .configuration_utils import
|
|
207
|
-
RBLNAutoConfig,
|
|
208
|
-
RBLNCompileConfig,
|
|
209
|
-
RBLNModelConfig,
|
|
210
|
-
)
|
|
234
|
+
from .configuration_utils import RBLNAutoConfig, RBLNCompileConfig, RBLNModelConfig
|
|
211
235
|
from .diffusers import (
|
|
212
236
|
RBLNAutoencoderKL,
|
|
213
237
|
RBLNAutoencoderKLConfig,
|
|
@@ -273,10 +297,7 @@ if TYPE_CHECKING:
|
|
|
273
297
|
RBLNVQModel,
|
|
274
298
|
RBLNVQModelConfig,
|
|
275
299
|
)
|
|
276
|
-
from .modeling import
|
|
277
|
-
RBLNBaseModel,
|
|
278
|
-
RBLNModel,
|
|
279
|
-
)
|
|
300
|
+
from .modeling import RBLNBaseModel, RBLNModel
|
|
280
301
|
from .transformers import (
|
|
281
302
|
RBLNASTForAudioClassification,
|
|
282
303
|
RBLNASTForAudioClassificationConfig,
|
|
@@ -319,6 +340,8 @@ if TYPE_CHECKING:
|
|
|
319
340
|
RBLNCLIPVisionModelWithProjectionConfig,
|
|
320
341
|
RBLNColPaliForRetrieval,
|
|
321
342
|
RBLNColPaliForRetrievalConfig,
|
|
343
|
+
RBLNDecoderOnlyModel,
|
|
344
|
+
RBLNDecoderOnlyModelConfig,
|
|
322
345
|
RBLNDecoderOnlyModelForCausalLM,
|
|
323
346
|
RBLNDecoderOnlyModelForCausalLMConfig,
|
|
324
347
|
RBLNDistilBertForQuestionAnswering,
|
|
@@ -333,30 +356,56 @@ if TYPE_CHECKING:
|
|
|
333
356
|
RBLNGemma3ForConditionalGenerationConfig,
|
|
334
357
|
RBLNGemmaForCausalLM,
|
|
335
358
|
RBLNGemmaForCausalLMConfig,
|
|
359
|
+
RBLNGemmaModel,
|
|
360
|
+
RBLNGemmaModelConfig,
|
|
336
361
|
RBLNGPT2LMHeadModel,
|
|
337
362
|
RBLNGPT2LMHeadModelConfig,
|
|
363
|
+
RBLNGPT2Model,
|
|
364
|
+
RBLNGPT2ModelConfig,
|
|
338
365
|
RBLNIdefics3ForConditionalGeneration,
|
|
339
366
|
RBLNIdefics3ForConditionalGenerationConfig,
|
|
340
367
|
RBLNIdefics3VisionTransformer,
|
|
341
368
|
RBLNIdefics3VisionTransformerConfig,
|
|
342
369
|
RBLNLlamaForCausalLM,
|
|
343
370
|
RBLNLlamaForCausalLMConfig,
|
|
371
|
+
RBLNLlamaModel,
|
|
372
|
+
RBLNLlamaModelConfig,
|
|
373
|
+
RBLNLlavaForConditionalGeneration,
|
|
374
|
+
RBLNLlavaForConditionalGenerationConfig,
|
|
344
375
|
RBLNLlavaNextForConditionalGeneration,
|
|
345
376
|
RBLNLlavaNextForConditionalGenerationConfig,
|
|
346
377
|
RBLNMidmLMHeadModel,
|
|
347
378
|
RBLNMidmLMHeadModelConfig,
|
|
348
379
|
RBLNMistralForCausalLM,
|
|
349
380
|
RBLNMistralForCausalLMConfig,
|
|
381
|
+
RBLNMistralModel,
|
|
382
|
+
RBLNMistralModelConfig,
|
|
350
383
|
RBLNOPTForCausalLM,
|
|
351
384
|
RBLNOPTForCausalLMConfig,
|
|
385
|
+
RBLNOPTModel,
|
|
386
|
+
RBLNOPTModelConfig,
|
|
387
|
+
RBLNPegasusForConditionalGeneration,
|
|
388
|
+
RBLNPegasusForConditionalGenerationConfig,
|
|
389
|
+
RBLNPegasusModel,
|
|
390
|
+
RBLNPegasusModelConfig,
|
|
352
391
|
RBLNPhiForCausalLM,
|
|
353
392
|
RBLNPhiForCausalLMConfig,
|
|
393
|
+
RBLNPhiModel,
|
|
394
|
+
RBLNPhiModelConfig,
|
|
395
|
+
RBLNPixtralVisionModel,
|
|
396
|
+
RBLNPixtralVisionModelConfig,
|
|
354
397
|
RBLNQwen2_5_VisionTransformerPretrainedModel,
|
|
355
398
|
RBLNQwen2_5_VisionTransformerPretrainedModelConfig,
|
|
356
399
|
RBLNQwen2_5_VLForConditionalGeneration,
|
|
357
400
|
RBLNQwen2_5_VLForConditionalGenerationConfig,
|
|
358
401
|
RBLNQwen2ForCausalLM,
|
|
359
402
|
RBLNQwen2ForCausalLMConfig,
|
|
403
|
+
RBLNQwen2Model,
|
|
404
|
+
RBLNQwen2ModelConfig,
|
|
405
|
+
RBLNQwen3ForCausalLM,
|
|
406
|
+
RBLNQwen3ForCausalLMConfig,
|
|
407
|
+
RBLNQwen3Model,
|
|
408
|
+
RBLNQwen3ModelConfig,
|
|
360
409
|
RBLNResNetForImageClassification,
|
|
361
410
|
RBLNResNetForImageClassificationConfig,
|
|
362
411
|
RBLNRobertaForMaskedLM,
|
optimum/rbln/__version__.py
CHANGED
|
@@ -17,5 +17,5 @@ __version__: str
|
|
|
17
17
|
__version_tuple__: VERSION_TUPLE
|
|
18
18
|
version_tuple: VERSION_TUPLE
|
|
19
19
|
|
|
20
|
-
__version__ = version = '0.8.
|
|
21
|
-
__version_tuple__ = version_tuple = (0, 8,
|
|
20
|
+
__version__ = version = '0.8.2'
|
|
21
|
+
__version_tuple__ = version_tuple = (0, 8, 2)
|
|
@@ -23,6 +23,7 @@ import numpy as np
|
|
|
23
23
|
import torch
|
|
24
24
|
|
|
25
25
|
from .__version__ import __version__
|
|
26
|
+
from .utils.depreacate_utils import warn_deprecated_npu
|
|
26
27
|
from .utils.logging import get_logger
|
|
27
28
|
from .utils.runtime_utils import ContextRblnConfig
|
|
28
29
|
|
|
@@ -147,7 +148,7 @@ class RBLNCompileConfig:
|
|
|
147
148
|
return asdict(self)
|
|
148
149
|
|
|
149
150
|
|
|
150
|
-
RUNTIME_KEYWORDS = ["create_runtimes", "optimize_host_memory", "device", "device_map", "activate_profiler"]
|
|
151
|
+
RUNTIME_KEYWORDS = ["create_runtimes", "optimize_host_memory", "device", "device_map", "activate_profiler", "timeout"]
|
|
151
152
|
CONFIG_MAPPING: Dict[str, Type["RBLNModelConfig"]] = {}
|
|
152
153
|
|
|
153
154
|
|
|
@@ -481,6 +482,7 @@ class RBLNModelConfig(RBLNSerializableConfigProtocol):
|
|
|
481
482
|
"device",
|
|
482
483
|
"device_map",
|
|
483
484
|
"activate_profiler",
|
|
485
|
+
"timeout",
|
|
484
486
|
]
|
|
485
487
|
submodules: List[str] = []
|
|
486
488
|
subclass_non_save_attributes = []
|
|
@@ -489,7 +491,7 @@ class RBLNModelConfig(RBLNSerializableConfigProtocol):
|
|
|
489
491
|
self,
|
|
490
492
|
submodule_config_cls: Type["RBLNModelConfig"],
|
|
491
493
|
submodule_config: Optional[Union[Dict[str, Any], "RBLNModelConfig"]] = None,
|
|
492
|
-
**kwargs:
|
|
494
|
+
**kwargs: Any,
|
|
493
495
|
) -> "RBLNModelConfig":
|
|
494
496
|
# Initialize a submodule config from a dict or a RBLNModelConfig.
|
|
495
497
|
# kwargs is specified from the predecessor config.
|
|
@@ -561,9 +563,10 @@ class RBLNModelConfig(RBLNSerializableConfigProtocol):
|
|
|
561
563
|
activate_profiler: Optional[bool] = None,
|
|
562
564
|
npu: Optional[str] = None,
|
|
563
565
|
tensor_parallel_size: Optional[int] = None,
|
|
566
|
+
timeout: Optional[int] = None,
|
|
564
567
|
optimum_rbln_version: Optional[str] = None,
|
|
565
568
|
_compile_cfgs: List[RBLNCompileConfig] = [],
|
|
566
|
-
**kwargs:
|
|
569
|
+
**kwargs: Any,
|
|
567
570
|
):
|
|
568
571
|
"""
|
|
569
572
|
Initialize a RBLN model configuration with runtime options and compile configurations.
|
|
@@ -577,6 +580,7 @@ class RBLNModelConfig(RBLNSerializableConfigProtocol):
|
|
|
577
580
|
activate_profiler (Optional[bool]): Whether to activate the profiler for performance analysis.
|
|
578
581
|
npu (Optional[str]): The NPU device name to use for compilation.
|
|
579
582
|
tensor_parallel_size (Optional[int]): Size for tensor parallelism to distribute the model across devices.
|
|
583
|
+
timeout (Optional[int]): The timeout for the runtime in seconds. If it isn't provided, it will be set to 60 by default.
|
|
580
584
|
optimum_rbln_version (Optional[str]): The optimum-rbln version used for this configuration.
|
|
581
585
|
_compile_cfgs (List[RBLNCompileConfig]): List of compilation configurations for the model.
|
|
582
586
|
**kwargs: Additional keyword arguments.
|
|
@@ -599,6 +603,7 @@ class RBLNModelConfig(RBLNSerializableConfigProtocol):
|
|
|
599
603
|
self._runtime_options["device"] = device
|
|
600
604
|
self._runtime_options["device_map"] = device_map
|
|
601
605
|
self._runtime_options["activate_profiler"] = activate_profiler
|
|
606
|
+
self._runtime_options["timeout"] = timeout
|
|
602
607
|
|
|
603
608
|
# Automatically pass npu, tensor_parallel_size to compile_cfgs
|
|
604
609
|
self.npu = npu
|
|
@@ -671,6 +676,9 @@ class RBLNModelConfig(RBLNSerializableConfigProtocol):
|
|
|
671
676
|
compile_cfg.npu = self.npu
|
|
672
677
|
compile_cfg.tensor_parallel_size = self.tensor_parallel_size
|
|
673
678
|
|
|
679
|
+
target_npu = self.npu or next((cfg.npu for cfg in self._compile_cfgs if cfg.npu is not None), None)
|
|
680
|
+
warn_deprecated_npu(target_npu)
|
|
681
|
+
|
|
674
682
|
def freeze(self):
|
|
675
683
|
if self._frozen:
|
|
676
684
|
raise RuntimeError(f"`{self.__class__.__name__}` is already frozen.")
|
|
@@ -709,7 +717,7 @@ class RBLNModelConfig(RBLNSerializableConfigProtocol):
|
|
|
709
717
|
json.dump(serializable_data, jsonf, indent=2)
|
|
710
718
|
|
|
711
719
|
@classmethod
|
|
712
|
-
def load(cls, path: str, **kwargs:
|
|
720
|
+
def load(cls, path: str, **kwargs: Any) -> "RBLNModelConfig":
|
|
713
721
|
"""
|
|
714
722
|
Load a RBLNModelConfig from a path.
|
|
715
723
|
|
|
@@ -742,7 +750,7 @@ class RBLNModelConfig(RBLNSerializableConfigProtocol):
|
|
|
742
750
|
def initialize_from_kwargs(
|
|
743
751
|
cls: Type["RBLNModelConfig"],
|
|
744
752
|
rbln_config: Optional[Union[Dict[str, Any], "RBLNModelConfig"]] = None,
|
|
745
|
-
**kwargs:
|
|
753
|
+
**kwargs: Any,
|
|
746
754
|
) -> Tuple["RBLNModelConfig", Dict[str, Any]]:
|
|
747
755
|
# Initialize RBLNModelConfig from kwargs.
|
|
748
756
|
kwargs_keys = list(kwargs.keys())
|
|
@@ -838,3 +846,14 @@ class RBLNModelConfig(RBLNSerializableConfigProtocol):
|
|
|
838
846
|
@activate_profiler.setter
|
|
839
847
|
def activate_profiler(self, activate_profiler: bool):
|
|
840
848
|
self._runtime_options["activate_profiler"] = activate_profiler
|
|
849
|
+
|
|
850
|
+
@property
|
|
851
|
+
def timeout(self):
|
|
852
|
+
context = ContextRblnConfig.get_current_context()["timeout"]
|
|
853
|
+
if context is not None:
|
|
854
|
+
return context
|
|
855
|
+
return self._runtime_options["timeout"]
|
|
856
|
+
|
|
857
|
+
@timeout.setter
|
|
858
|
+
def timeout(self, timeout: int):
|
|
859
|
+
self._runtime_options["timeout"] = timeout
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
|
-
from typing import Any,
|
|
15
|
+
from typing import Any, Optional, Tuple
|
|
16
16
|
|
|
17
17
|
from ....configuration_utils import RBLNModelConfig
|
|
18
18
|
|
|
@@ -33,7 +33,7 @@ class RBLNAutoencoderKLConfig(RBLNModelConfig):
|
|
|
33
33
|
vae_scale_factor: Optional[float] = None, # TODO: rename to scaling_factor
|
|
34
34
|
in_channels: Optional[int] = None,
|
|
35
35
|
latent_channels: Optional[int] = None,
|
|
36
|
-
**kwargs:
|
|
36
|
+
**kwargs: Any,
|
|
37
37
|
):
|
|
38
38
|
"""
|
|
39
39
|
Args:
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
|
-
from typing import Optional
|
|
15
|
+
from typing import Any, Optional
|
|
16
16
|
|
|
17
17
|
from ....configuration_utils import RBLNModelConfig
|
|
18
18
|
from ....utils.logging import get_logger
|
|
@@ -35,7 +35,7 @@ class RBLNAutoencoderKLCosmosConfig(RBLNModelConfig):
|
|
|
35
35
|
vae_scale_factor_temporal: Optional[int] = None,
|
|
36
36
|
vae_scale_factor_spatial: Optional[int] = None,
|
|
37
37
|
use_slicing: Optional[bool] = None,
|
|
38
|
-
**kwargs,
|
|
38
|
+
**kwargs: Any,
|
|
39
39
|
):
|
|
40
40
|
"""
|
|
41
41
|
Args:
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
|
-
from typing import Any,
|
|
15
|
+
from typing import Any, Optional, Tuple
|
|
16
16
|
|
|
17
17
|
from ....configuration_utils import RBLNModelConfig
|
|
18
18
|
|
|
@@ -29,7 +29,7 @@ class RBLNControlNetModelConfig(RBLNModelConfig):
|
|
|
29
29
|
unet_sample_size: Optional[Tuple[int, int]] = None,
|
|
30
30
|
vae_sample_size: Optional[Tuple[int, int]] = None,
|
|
31
31
|
text_model_hidden_size: Optional[int] = None,
|
|
32
|
-
**kwargs:
|
|
32
|
+
**kwargs: Any,
|
|
33
33
|
):
|
|
34
34
|
"""
|
|
35
35
|
Args:
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
|
-
from typing import Any,
|
|
15
|
+
from typing import Any, Optional
|
|
16
16
|
|
|
17
17
|
from ....configuration_utils import RBLNModelConfig
|
|
18
18
|
|
|
@@ -32,7 +32,7 @@ class RBLNPriorTransformerConfig(RBLNModelConfig):
|
|
|
32
32
|
batch_size: Optional[int] = None,
|
|
33
33
|
embedding_dim: Optional[int] = None,
|
|
34
34
|
num_embeddings: Optional[int] = None,
|
|
35
|
-
**kwargs:
|
|
35
|
+
**kwargs: Any,
|
|
36
36
|
):
|
|
37
37
|
"""
|
|
38
38
|
Args:
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
|
-
from typing import Optional
|
|
15
|
+
from typing import Any, Optional
|
|
16
16
|
|
|
17
17
|
from ....configuration_utils import RBLNModelConfig
|
|
18
18
|
|
|
@@ -33,7 +33,7 @@ class RBLNCosmosTransformer3DModelConfig(RBLNModelConfig):
|
|
|
33
33
|
num_latent_frames: Optional[int] = None,
|
|
34
34
|
latent_height: Optional[int] = None,
|
|
35
35
|
latent_width: Optional[int] = None,
|
|
36
|
-
**kwargs,
|
|
36
|
+
**kwargs: Any,
|
|
37
37
|
):
|
|
38
38
|
"""
|
|
39
39
|
Args:
|
|
@@ -52,6 +52,9 @@ class RBLNCosmosTransformer3DModelConfig(RBLNModelConfig):
|
|
|
52
52
|
Raises:
|
|
53
53
|
ValueError: If batch_size is not a positive integer.
|
|
54
54
|
"""
|
|
55
|
+
if kwargs.get("timeout") is None:
|
|
56
|
+
kwargs["timeout"] = 80
|
|
57
|
+
|
|
55
58
|
super().__init__(**kwargs)
|
|
56
59
|
self.batch_size = batch_size or 1
|
|
57
60
|
self.num_frames = num_frames or 121
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
|
-
from typing import Any,
|
|
15
|
+
from typing import Any, Optional, Tuple, Union
|
|
16
16
|
|
|
17
17
|
from ....configuration_utils import RBLNModelConfig
|
|
18
18
|
|
|
@@ -27,7 +27,7 @@ class RBLNSD3Transformer2DModelConfig(RBLNModelConfig):
|
|
|
27
27
|
batch_size: Optional[int] = None,
|
|
28
28
|
sample_size: Optional[Union[int, Tuple[int, int]]] = None,
|
|
29
29
|
prompt_embed_length: Optional[int] = None,
|
|
30
|
-
**kwargs:
|
|
30
|
+
**kwargs: Any,
|
|
31
31
|
):
|
|
32
32
|
"""
|
|
33
33
|
Args:
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
|
-
from typing import Any,
|
|
15
|
+
from typing import Any, Optional, Tuple
|
|
16
16
|
|
|
17
17
|
from ....configuration_utils import RBLNModelConfig
|
|
18
18
|
|
|
@@ -38,7 +38,7 @@ class RBLNUNet2DConditionModelConfig(RBLNModelConfig):
|
|
|
38
38
|
in_features: Optional[int] = None,
|
|
39
39
|
text_model_hidden_size: Optional[int] = None,
|
|
40
40
|
image_model_hidden_size: Optional[int] = None,
|
|
41
|
-
**kwargs:
|
|
41
|
+
**kwargs: Any,
|
|
42
42
|
):
|
|
43
43
|
"""
|
|
44
44
|
Args:
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
|
-
from typing import Any,
|
|
15
|
+
from typing import Any, Optional, Tuple
|
|
16
16
|
|
|
17
17
|
from ....configuration_utils import RBLNModelConfig
|
|
18
18
|
|
|
@@ -33,7 +33,7 @@ class RBLNVQModelConfig(RBLNModelConfig):
|
|
|
33
33
|
vqmodel_scale_factor: Optional[float] = None, # TODO: rename to scaling_factor
|
|
34
34
|
in_channels: Optional[int] = None,
|
|
35
35
|
latent_channels: Optional[int] = None,
|
|
36
|
-
**kwargs:
|
|
36
|
+
**kwargs: Any,
|
|
37
37
|
):
|
|
38
38
|
"""
|
|
39
39
|
Args:
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
|
-
from typing import Any,
|
|
15
|
+
from typing import Any, Optional, Tuple
|
|
16
16
|
|
|
17
17
|
from ....configuration_utils import RBLNModelConfig
|
|
18
18
|
from ....transformers import RBLNCLIPTextModelConfig, RBLNCLIPTextModelWithProjectionConfig
|
|
@@ -38,7 +38,7 @@ class RBLNStableDiffusionControlNetPipelineBaseConfig(RBLNModelConfig):
|
|
|
38
38
|
sample_size: Optional[Tuple[int, int]] = None,
|
|
39
39
|
image_size: Optional[Tuple[int, int]] = None,
|
|
40
40
|
guidance_scale: Optional[float] = None,
|
|
41
|
-
**kwargs:
|
|
41
|
+
**kwargs: Any,
|
|
42
42
|
):
|
|
43
43
|
"""
|
|
44
44
|
Args:
|
|
@@ -178,7 +178,7 @@ class RBLNStableDiffusionXLControlNetPipelineBaseConfig(RBLNModelConfig):
|
|
|
178
178
|
sample_size: Optional[Tuple[int, int]] = None,
|
|
179
179
|
image_size: Optional[Tuple[int, int]] = None,
|
|
180
180
|
guidance_scale: Optional[float] = None,
|
|
181
|
-
**kwargs:
|
|
181
|
+
**kwargs: Any,
|
|
182
182
|
):
|
|
183
183
|
"""
|
|
184
184
|
Args:
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
|
-
from typing import Optional
|
|
15
|
+
from typing import Any, Optional
|
|
16
16
|
|
|
17
17
|
from ....configuration_utils import RBLNModelConfig
|
|
18
18
|
from ....transformers import RBLNT5EncoderModelConfig
|
|
@@ -41,7 +41,7 @@ class RBLNCosmosPipelineBaseConfig(RBLNModelConfig):
|
|
|
41
41
|
num_frames: Optional[int] = None,
|
|
42
42
|
fps: Optional[int] = None,
|
|
43
43
|
max_seq_len: Optional[int] = None,
|
|
44
|
-
**kwargs,
|
|
44
|
+
**kwargs: Any,
|
|
45
45
|
):
|
|
46
46
|
"""
|
|
47
47
|
Args:
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
|
-
from typing import Any,
|
|
15
|
+
from typing import Any, Optional, Tuple
|
|
16
16
|
|
|
17
17
|
from ....configuration_utils import RBLNModelConfig
|
|
18
18
|
from ....transformers import RBLNCLIPTextModelWithProjectionConfig, RBLNCLIPVisionModelWithProjectionConfig
|
|
@@ -37,7 +37,7 @@ class RBLNKandinskyV22PipelineBaseConfig(RBLNModelConfig):
|
|
|
37
37
|
img_width: Optional[int] = None,
|
|
38
38
|
height: Optional[int] = None,
|
|
39
39
|
width: Optional[int] = None,
|
|
40
|
-
**kwargs:
|
|
40
|
+
**kwargs: Any,
|
|
41
41
|
):
|
|
42
42
|
"""
|
|
43
43
|
Args:
|
|
@@ -148,7 +148,7 @@ class RBLNKandinskyV22PriorPipelineConfig(RBLNModelConfig):
|
|
|
148
148
|
*,
|
|
149
149
|
batch_size: Optional[int] = None,
|
|
150
150
|
guidance_scale: Optional[float] = None,
|
|
151
|
-
**kwargs:
|
|
151
|
+
**kwargs: Any,
|
|
152
152
|
):
|
|
153
153
|
"""
|
|
154
154
|
Initialize a configuration for Kandinsky 2.2 prior pipeline optimized for RBLN NPU.
|
|
@@ -226,7 +226,7 @@ class RBLNKandinskyV22CombinedPipelineBaseConfig(RBLNModelConfig):
|
|
|
226
226
|
prior_text_encoder: Optional[RBLNCLIPTextModelWithProjectionConfig] = None,
|
|
227
227
|
unet: Optional[RBLNUNet2DConditionModelConfig] = None,
|
|
228
228
|
movq: Optional[RBLNVQModelConfig] = None,
|
|
229
|
-
**kwargs:
|
|
229
|
+
**kwargs: Any,
|
|
230
230
|
):
|
|
231
231
|
"""
|
|
232
232
|
Initialize a configuration for combined Kandinsky 2.2 pipelines optimized for RBLN NPU.
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
|
-
from typing import Any,
|
|
15
|
+
from typing import Any, Optional, Tuple
|
|
16
16
|
|
|
17
17
|
from ....configuration_utils import RBLNModelConfig
|
|
18
18
|
from ....transformers import RBLNCLIPTextModelConfig
|
|
@@ -37,7 +37,7 @@ class RBLNStableDiffusionPipelineBaseConfig(RBLNModelConfig):
|
|
|
37
37
|
sample_size: Optional[Tuple[int, int]] = None,
|
|
38
38
|
image_size: Optional[Tuple[int, int]] = None,
|
|
39
39
|
guidance_scale: Optional[float] = None,
|
|
40
|
-
**kwargs:
|
|
40
|
+
**kwargs: Any,
|
|
41
41
|
):
|
|
42
42
|
"""
|
|
43
43
|
Args:
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
|
-
from typing import Any,
|
|
15
|
+
from typing import Any, Optional, Tuple
|
|
16
16
|
|
|
17
17
|
from ....configuration_utils import RBLNModelConfig
|
|
18
18
|
from ....transformers import RBLNCLIPTextModelWithProjectionConfig, RBLNT5EncoderModelConfig
|
|
@@ -40,7 +40,7 @@ class RBLNStableDiffusion3PipelineBaseConfig(RBLNModelConfig):
|
|
|
40
40
|
height: Optional[int] = None,
|
|
41
41
|
width: Optional[int] = None,
|
|
42
42
|
guidance_scale: Optional[float] = None,
|
|
43
|
-
**kwargs:
|
|
43
|
+
**kwargs: Any,
|
|
44
44
|
):
|
|
45
45
|
"""
|
|
46
46
|
Args:
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
|
-
from typing import Any,
|
|
15
|
+
from typing import Any, Optional, Tuple
|
|
16
16
|
|
|
17
17
|
from ....configuration_utils import RBLNModelConfig
|
|
18
18
|
from ....transformers import RBLNCLIPTextModelConfig, RBLNCLIPTextModelWithProjectionConfig
|
|
@@ -38,7 +38,7 @@ class RBLNStableDiffusionXLPipelineBaseConfig(RBLNModelConfig):
|
|
|
38
38
|
sample_size: Optional[Tuple[int, int]] = None,
|
|
39
39
|
image_size: Optional[Tuple[int, int]] = None,
|
|
40
40
|
guidance_scale: Optional[float] = None,
|
|
41
|
-
**kwargs:
|
|
41
|
+
**kwargs: Any,
|
|
42
42
|
):
|
|
43
43
|
"""
|
|
44
44
|
Args:
|
|
@@ -70,8 +70,6 @@ class RBLNDiffusionMixin:
|
|
|
70
70
|
_submodules = []
|
|
71
71
|
_optional_submodules = []
|
|
72
72
|
_prefix = {}
|
|
73
|
-
_rbln_config_class = None
|
|
74
|
-
_hf_class = None
|
|
75
73
|
|
|
76
74
|
@staticmethod
|
|
77
75
|
def _maybe_apply_and_fuse_lora(
|
|
@@ -114,14 +112,14 @@ class RBLNDiffusionMixin:
|
|
|
114
112
|
@classmethod
|
|
115
113
|
def get_rbln_config_class(cls) -> Type[RBLNModelConfig]:
|
|
116
114
|
# Lazily loads and caches the corresponding RBLN model config class.
|
|
117
|
-
if cls._rbln_config_class is None:
|
|
115
|
+
if "_rbln_config_class" not in cls.__dict__ or cls._rbln_config_class is None:
|
|
118
116
|
rbln_config_class_name = cls.__name__ + "Config"
|
|
119
117
|
cls._rbln_config_class = get_rbln_config_class(rbln_config_class_name)
|
|
120
118
|
return cls._rbln_config_class
|
|
121
119
|
|
|
122
120
|
@classmethod
|
|
123
121
|
def get_hf_class(cls):
|
|
124
|
-
if cls._hf_class is None:
|
|
122
|
+
if "_hf_class" not in cls.__dict__ or cls._hf_class is None:
|
|
125
123
|
hf_cls_name = cls.__name__[4:]
|
|
126
124
|
library = importlib.import_module("diffusers")
|
|
127
125
|
cls._hf_class = getattr(library, hf_cls_name, None)
|
|
@@ -138,7 +136,7 @@ class RBLNDiffusionMixin:
|
|
|
138
136
|
lora_ids: Optional[Union[str, List[str]]] = None,
|
|
139
137
|
lora_weights_names: Optional[Union[str, List[str]]] = None,
|
|
140
138
|
lora_scales: Optional[Union[float, List[float]]] = None,
|
|
141
|
-
**kwargs:
|
|
139
|
+
**kwargs: Any,
|
|
142
140
|
) -> "RBLNDiffusionMixin":
|
|
143
141
|
"""
|
|
144
142
|
Load a pretrained diffusion pipeline from a model checkpoint, with optional compilation for RBLN NPUs.
|
|
@@ -230,6 +228,7 @@ class RBLNDiffusionMixin:
|
|
|
230
228
|
create_runtimes=rbln_config.create_runtimes,
|
|
231
229
|
optimize_host_mem=rbln_config.optimize_host_memory,
|
|
232
230
|
activate_profiler=rbln_config.activate_profiler,
|
|
231
|
+
timeout=rbln_config.timeout,
|
|
233
232
|
):
|
|
234
233
|
model = super().from_pretrained(pretrained_model_name_or_path=model_id, **kwargs)
|
|
235
234
|
|
|
@@ -35,20 +35,10 @@ _import_structure = {
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
if TYPE_CHECKING:
|
|
38
|
-
from .autoencoders import
|
|
39
|
-
RBLNAutoencoderKL,
|
|
40
|
-
RBLNAutoencoderKLCosmos,
|
|
41
|
-
RBLNVQModel,
|
|
42
|
-
)
|
|
38
|
+
from .autoencoders import RBLNAutoencoderKL, RBLNAutoencoderKLCosmos, RBLNVQModel
|
|
43
39
|
from .controlnet import RBLNControlNetModel
|
|
44
|
-
from .transformers import
|
|
45
|
-
|
|
46
|
-
RBLNPriorTransformer,
|
|
47
|
-
RBLNSD3Transformer2DModel,
|
|
48
|
-
)
|
|
49
|
-
from .unets import (
|
|
50
|
-
RBLNUNet2DConditionModel,
|
|
51
|
-
)
|
|
40
|
+
from .transformers import RBLNCosmosTransformer3DModel, RBLNPriorTransformer, RBLNSD3Transformer2DModel
|
|
41
|
+
from .unets import RBLNUNet2DConditionModel
|
|
52
42
|
else:
|
|
53
43
|
import sys
|
|
54
44
|
|
|
@@ -200,6 +200,7 @@ class RBLNAutoencoderKLCosmos(RBLNModel):
|
|
|
200
200
|
tensor_type="pt",
|
|
201
201
|
device=device_val,
|
|
202
202
|
activate_profiler=rbln_config.activate_profiler,
|
|
203
|
+
timeout=rbln_config.timeout,
|
|
203
204
|
)
|
|
204
205
|
for compiled_model, device_val in zip(compiled_models, device_vals)
|
|
205
206
|
]
|