optimum-rbln 0.7.4a9__py3-none-any.whl → 0.7.5a0__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.
- optimum/rbln/__init__.py +1 -0
- optimum/rbln/__version__.py +2 -2
- optimum/rbln/configuration_utils.py +2 -3
- optimum/rbln/diffusers/models/controlnet.py +1 -1
- optimum/rbln/diffusers/models/transformers/transformer_sd3.py +1 -1
- optimum/rbln/diffusers/models/unets/unet_2d_condition.py +1 -1
- optimum/rbln/transformers/models/decoderonly/configuration_decoderonly.py +31 -1
- optimum/rbln/transformers/models/decoderonly/modeling_decoderonly.py +103 -59
- optimum/rbln/utils/import_utils.py +23 -6
- {optimum_rbln-0.7.4a9.dist-info → optimum_rbln-0.7.5a0.dist-info}/METADATA +1 -1
- {optimum_rbln-0.7.4a9.dist-info → optimum_rbln-0.7.5a0.dist-info}/RECORD +13 -13
- {optimum_rbln-0.7.4a9.dist-info → optimum_rbln-0.7.5a0.dist-info}/WHEEL +0 -0
- {optimum_rbln-0.7.4a9.dist-info → optimum_rbln-0.7.5a0.dist-info}/licenses/LICENSE +0 -0
optimum/rbln/__init__.py
CHANGED
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.7.
|
21
|
-
__version_tuple__ = version_tuple = (0, 7,
|
20
|
+
__version__ = version = '0.7.5a0'
|
21
|
+
__version_tuple__ = version_tuple = (0, 7, 5, 'a0')
|
@@ -19,7 +19,6 @@ from dataclasses import asdict, dataclass
|
|
19
19
|
from pathlib import Path
|
20
20
|
from typing import Any, Dict, List, Optional, Tuple, Type, Union
|
21
21
|
|
22
|
-
import rebel
|
23
22
|
import torch
|
24
23
|
|
25
24
|
from .__version__ import __version__
|
@@ -533,7 +532,7 @@ class RBLNModelConfig:
|
|
533
532
|
|
534
533
|
Args:
|
535
534
|
cls_name (Optional[str]): The class name of the configuration. Defaults to the current class name.
|
536
|
-
create_runtimes (Optional[bool]): Whether to create RBLN runtimes. Defaults to True
|
535
|
+
create_runtimes (Optional[bool]): Whether to create RBLN runtimes. Defaults to True.
|
537
536
|
optimize_host_memory (Optional[bool]): Whether to optimize host memory usage. Defaults to True.
|
538
537
|
device (Optional[Union[int, List[int]]]): The device(s) to load the model onto. Can be a single device ID or a list.
|
539
538
|
device_map (Optional[Dict[str, Union[int, List[int]]]]): Mapping from compiled model names to device IDs.
|
@@ -756,7 +755,7 @@ class RBLNModelConfig:
|
|
756
755
|
if context is not None:
|
757
756
|
return context
|
758
757
|
elif self._runtime_options["create_runtimes"] is None:
|
759
|
-
return
|
758
|
+
return True
|
760
759
|
return self._runtime_options["create_runtimes"]
|
761
760
|
|
762
761
|
@create_runtimes.setter
|
@@ -222,7 +222,7 @@ class RBLNControlNetModel(RBLNModel):
|
|
222
222
|
f"Mismatch between ControlNet's runtime batch size ({sample_batch_size}) and compiled batch size ({compiled_batch_size}). "
|
223
223
|
"This may be caused by the 'guidance_scale' parameter, which doubles the runtime batch size of ControlNet in Stable Diffusion. "
|
224
224
|
"Adjust the batch size of ControlNet during compilation to match the runtime batch size.\n\n"
|
225
|
-
"For details, see: https://docs.rbln.ai/software/optimum/model_api.html#
|
225
|
+
"For details, see: https://docs.rbln.ai/software/optimum/model_api/diffusers/pipelines/controlnet.html#important-batch-size-configuration-for-guidance-scale"
|
226
226
|
)
|
227
227
|
|
228
228
|
added_cond_kwargs = {} if added_cond_kwargs is None else added_cond_kwargs
|
@@ -161,7 +161,7 @@ class RBLNSD3Transformer2DModel(RBLNModel):
|
|
161
161
|
f"Mismatch between transformer's runtime batch size ({sample_batch_size}) and compiled batch size ({compiled_batch_size}). "
|
162
162
|
"This may be caused by the 'guidance scale' parameter, which doubles the runtime batch size in Stable Diffusion. "
|
163
163
|
"Adjust the batch size of transformer during compilation.\n\n"
|
164
|
-
"For details, see: https://docs.rbln.ai/software/optimum/model_api.html#
|
164
|
+
"For details, see: https://docs.rbln.ai/software/optimum/model_api/diffusers/pipelines/stable_diffusion_3.html#important-batch-size-configuration-for-guidance-scale"
|
165
165
|
)
|
166
166
|
|
167
167
|
return super().forward(
|
@@ -346,7 +346,7 @@ class RBLNUNet2DConditionModel(RBLNModel):
|
|
346
346
|
f"Mismatch between UNet's runtime batch size ({sample_batch_size}) and compiled batch size ({compiled_batch_size}). "
|
347
347
|
"This may be caused by the 'guidance scale' parameter, which doubles the runtime batch size of UNet in Stable Diffusion. "
|
348
348
|
"Adjust the batch size of UNet during compilation to match the runtime batch size.\n\n"
|
349
|
-
"For details, see: https://docs.rbln.ai/software/optimum/model_api.html#
|
349
|
+
"For details, see: https://docs.rbln.ai/software/optimum/model_api/diffusers/pipelines/stable_diffusion.html#important-batch-size-configuration-for-guidance-scale"
|
350
350
|
)
|
351
351
|
|
352
352
|
added_cond_kwargs = {} if added_cond_kwargs is None else added_cond_kwargs
|
@@ -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, Dict, Optional
|
15
|
+
from typing import Any, Dict, List, Optional
|
16
16
|
|
17
17
|
import rebel
|
18
18
|
|
@@ -37,6 +37,7 @@ class RBLNDecoderOnlyModelForCausalLMConfig(RBLNModelConfig):
|
|
37
37
|
quantization: Optional[Dict[str, Any]] = None,
|
38
38
|
prefill_chunk_size: Optional[int] = None,
|
39
39
|
kvcache_num_blocks: Optional[int] = None,
|
40
|
+
decoder_batch_sizes: Optional[List[int]] = None,
|
40
41
|
**kwargs,
|
41
42
|
):
|
42
43
|
"""
|
@@ -53,6 +54,13 @@ class RBLNDecoderOnlyModelForCausalLMConfig(RBLNModelConfig):
|
|
53
54
|
prefill_chunk_size (Optional[int]): The chunk size for prefilling the KV cache. Defaults to 128,
|
54
55
|
and must be a positive integer divisible by 64.
|
55
56
|
kvcache_num_blocks (Optional[int]): The number of blocks in the KV cache.
|
57
|
+
decoder_batch_sizes (Optional[List[int]]): A list of batch sizes for which separate decoder models will be compiled.
|
58
|
+
This allows the model to handle varying batch sizes efficiently during generation. If not specified,
|
59
|
+
defaults to a list containing only the model's main batch size. When specifying multiple batch sizes:
|
60
|
+
1) All values must be less than or equal to the main batch size.
|
61
|
+
2) The list will be sorted in descending order (larger batch sizes first).
|
62
|
+
3) If using multiple decoders, at least one batch size should match the main batch size.
|
63
|
+
|
56
64
|
**kwargs: Additional arguments passed to the parent RBLNModelConfig.
|
57
65
|
|
58
66
|
Raises:
|
@@ -88,3 +96,25 @@ class RBLNDecoderOnlyModelForCausalLMConfig(RBLNModelConfig):
|
|
88
96
|
raise ValueError("`prefill_chunk_size` must be a positive integer divisible by 64.")
|
89
97
|
|
90
98
|
self.kvcache_num_blocks = kvcache_num_blocks
|
99
|
+
self.decoder_batch_sizes = decoder_batch_sizes
|
100
|
+
if self.decoder_batch_sizes is None:
|
101
|
+
self.decoder_batch_sizes = [self.batch_size]
|
102
|
+
|
103
|
+
if self.use_multiple_decoder:
|
104
|
+
if max(self.decoder_batch_sizes) > self.batch_size:
|
105
|
+
raise ValueError(
|
106
|
+
f"Decoder batch size ({max(self.decoder_batch_sizes)}) must be less than or equal to the runtime batch size ({self.batch_size})."
|
107
|
+
)
|
108
|
+
if max(self.decoder_batch_sizes) < self.batch_size:
|
109
|
+
logger.warning(
|
110
|
+
f"Maximum decoder batch size ({max(self.decoder_batch_sizes)}) is less than the model's batch size ({self.batch_size}). "
|
111
|
+
"Appending the model's batch size to the decoder batch size."
|
112
|
+
)
|
113
|
+
self.decoder_batch_sizes.append(self.batch_size)
|
114
|
+
|
115
|
+
# Larger batch size should be at the beginning of the list.
|
116
|
+
self.decoder_batch_sizes.sort(reverse=True)
|
117
|
+
|
118
|
+
@property
|
119
|
+
def use_multiple_decoder(self):
|
120
|
+
return isinstance(self.decoder_batch_sizes, list) and len(self.decoder_batch_sizes) > 1
|
@@ -229,6 +229,12 @@ class RBLNRuntimeModel(RBLNPytorchRuntime):
|
|
229
229
|
|
230
230
|
attention_mask = self.dec_attn_mask
|
231
231
|
|
232
|
+
if self.batch_size < block_tables.shape[0]:
|
233
|
+
block_tables = block_tables[: self.batch_size]
|
234
|
+
|
235
|
+
if self.batch_size < attention_mask.shape[0]:
|
236
|
+
attention_mask = attention_mask[: self.batch_size]
|
237
|
+
|
232
238
|
logits = super().forward(
|
233
239
|
inputs,
|
234
240
|
cache_position,
|
@@ -417,19 +423,24 @@ class RBLNDecoderOnlyModelForCausalLM(RBLNModel):
|
|
417
423
|
use_attention_mask=self.rbln_config.use_attention_mask,
|
418
424
|
attn_impl=self.rbln_config.attn_impl,
|
419
425
|
)
|
420
|
-
self.
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
426
|
+
self.decoders = {}
|
427
|
+
for i, batch_size in enumerate(self.rbln_config.decoder_batch_sizes):
|
428
|
+
self.decoders[batch_size] = RBLNRuntimeModel(
|
429
|
+
runtime=self.model[i + 1],
|
430
|
+
main_input_name=main_input_name,
|
431
|
+
embed_tokens=self.embed_tokens,
|
432
|
+
phase="decode",
|
433
|
+
batch_size=batch_size,
|
434
|
+
dec_attn_mask=dec_attn_mask,
|
435
|
+
block_tables=block_tables,
|
436
|
+
free_block_pool=free_block_pool,
|
437
|
+
kvcache_block_size=self.rbln_config.kvcache_block_size,
|
438
|
+
use_attention_mask=self.rbln_config.use_attention_mask,
|
439
|
+
attn_impl=self.rbln_config.attn_impl,
|
440
|
+
)
|
441
|
+
|
442
|
+
# NOTE(eunji): Use a decoder whose batch size matches the model's main batch size for compatibility.
|
443
|
+
self.decoder = self.decoders[self.rbln_config.batch_size]
|
433
444
|
|
434
445
|
@classmethod
|
435
446
|
def save_torch_artifacts(
|
@@ -547,7 +558,6 @@ class RBLNDecoderOnlyModelForCausalLM(RBLNModel):
|
|
547
558
|
|
548
559
|
rbln_compile_configs = rbln_config.compile_cfgs
|
549
560
|
prefill_compile_config = rbln_compile_configs[0]
|
550
|
-
dec_compile_config = rbln_compile_configs[1]
|
551
561
|
|
552
562
|
context = CompileContext(use_weight_sharing=True)
|
553
563
|
|
@@ -562,33 +572,42 @@ class RBLNDecoderOnlyModelForCausalLM(RBLNModel):
|
|
562
572
|
static_tensors[name] = tensor
|
563
573
|
context.mark_static_address(tensor)
|
564
574
|
|
565
|
-
dec_example_inputs = dec_compile_config.get_dummy_inputs(fill=0, static_tensors=static_tensors)
|
566
|
-
|
567
575
|
@QuantizationManager.with_quantization_env
|
568
|
-
def compile_model(
|
576
|
+
def compile_model(wrapped_model, compile_config, example_inputs, compile_context, **kwargs):
|
569
577
|
try:
|
570
578
|
original_linear = torch.nn.functional.linear
|
571
579
|
torch.nn.functional.linear = torch.ops.rbln_custom_ops.linear
|
572
|
-
|
573
|
-
compiled_prefill = RBLNModel.compile(
|
580
|
+
compiled_model = RBLNModel.compile(
|
574
581
|
wrapped_model,
|
575
|
-
|
576
|
-
example_inputs=
|
577
|
-
compile_context=
|
582
|
+
compile_config,
|
583
|
+
example_inputs=example_inputs,
|
584
|
+
compile_context=compile_context,
|
578
585
|
)
|
579
|
-
|
580
|
-
wrapped_model.phase = "decode"
|
581
|
-
compiled_decoder = RBLNModel.compile(
|
582
|
-
wrapped_model,
|
583
|
-
dec_compile_config,
|
584
|
-
example_inputs=dec_example_inputs,
|
585
|
-
compile_context=context,
|
586
|
-
)
|
587
|
-
return {"prefill": compiled_prefill, "decoder": compiled_decoder}
|
586
|
+
return compiled_model
|
588
587
|
finally:
|
589
588
|
torch.nn.functional.linear = original_linear
|
590
589
|
|
591
|
-
|
590
|
+
wrapped_model.phase = "prefill"
|
591
|
+
compiled_prefill = compile_model(
|
592
|
+
wrapped_model,
|
593
|
+
prefill_compile_config,
|
594
|
+
prefill_example_inputs,
|
595
|
+
context,
|
596
|
+
quantize_config=rbln_config.quantization,
|
597
|
+
)
|
598
|
+
|
599
|
+
wrapped_model.phase = "decode"
|
600
|
+
compiled_models = {"prefill": compiled_prefill}
|
601
|
+
for batch_size, dec_compile_config in zip(rbln_config.decoder_batch_sizes, rbln_compile_configs[1:]):
|
602
|
+
dec_example_inputs = dec_compile_config.get_dummy_inputs(fill=0, static_tensors=static_tensors)
|
603
|
+
compiled_decoder = compile_model(
|
604
|
+
wrapped_model,
|
605
|
+
dec_compile_config,
|
606
|
+
dec_example_inputs,
|
607
|
+
context,
|
608
|
+
quantize_config=rbln_config.quantization,
|
609
|
+
)
|
610
|
+
compiled_models[f"decoder_batch_{batch_size}"] = compiled_decoder
|
592
611
|
|
593
612
|
# check if the memory is enough to have additional blocks
|
594
613
|
required_num_blocks = (rbln_config.max_seq_len // rbln_config.kvcache_block_size) * rbln_config.batch_size
|
@@ -613,8 +632,11 @@ class RBLNDecoderOnlyModelForCausalLM(RBLNModel):
|
|
613
632
|
alloc_memory_by_key: Dict[str, int] = {
|
614
633
|
key: sum(memory_per_node) for key, memory_per_node in alloc_memory_per_node_by_key.items()
|
615
634
|
}
|
616
|
-
for
|
617
|
-
|
635
|
+
for batch_size in rbln_config.decoder_batch_sizes:
|
636
|
+
for key, memory_per_node in (
|
637
|
+
compiled_models[f"decoder_batch_{batch_size}"].get_alloc_per_node_by_key().items()
|
638
|
+
):
|
639
|
+
alloc_memory_by_key[key] += sum(memory_per_node)
|
618
640
|
alloc_memory_by_key.pop("PortRecur") # kv-cache
|
619
641
|
kernel_size = alloc_memory_by_key.pop("Kernel") # model weight
|
620
642
|
|
@@ -650,6 +672,7 @@ class RBLNDecoderOnlyModelForCausalLM(RBLNModel):
|
|
650
672
|
n_model_params: Optional[int] = None,
|
651
673
|
kernel_size: Optional[int] = None,
|
652
674
|
buffer: Optional[int] = None,
|
675
|
+
num_runtimes: int = 2,
|
653
676
|
) -> int:
|
654
677
|
"""
|
655
678
|
We are finding max_n_blocks(x) that satisfies the following equation:
|
@@ -721,7 +744,8 @@ class RBLNDecoderOnlyModelForCausalLM(RBLNModel):
|
|
721
744
|
|
722
745
|
if buffer is None:
|
723
746
|
# TODO: Accurate buffer estimation
|
724
|
-
|
747
|
+
buffer_per_runtime_per_core = 2**28 # 256MB per runtime
|
748
|
+
buffer_per_core = buffer_per_runtime_per_core * num_runtimes # 1 for prefill, 1 for decoder
|
725
749
|
buffer = buffer_per_core * tensor_parallel_size
|
726
750
|
available_dram -= buffer
|
727
751
|
|
@@ -839,6 +863,7 @@ class RBLNDecoderOnlyModelForCausalLM(RBLNModel):
|
|
839
863
|
kvcache_block_size=rbln_config.kvcache_block_size,
|
840
864
|
nbits_per_param=16 if not rbln_config.quantization else 4, # TODO(jongho): FIX Ad-hoc
|
841
865
|
n_model_params=sum(p.numel() for p in model.parameters()),
|
866
|
+
num_runtimes=1 + len(rbln_config.decoder_batch_sizes),
|
842
867
|
)
|
843
868
|
|
844
869
|
max_num_blocks = min(max_num_blocks, estimated_max_num_blocks)
|
@@ -881,24 +906,28 @@ class RBLNDecoderOnlyModelForCausalLM(RBLNModel):
|
|
881
906
|
hidden_size=hidden_size,
|
882
907
|
head_dim=head_dim,
|
883
908
|
)
|
884
|
-
dec_input_info = cls.get_input_info(
|
885
|
-
batch_size=rbln_config.batch_size,
|
886
|
-
query_length=1,
|
887
|
-
use_inputs_embeds=rbln_config.use_inputs_embeds,
|
888
|
-
use_attention_mask=rbln_config.use_attention_mask,
|
889
|
-
max_seq_len=rbln_config.max_seq_len,
|
890
|
-
kvcache_block_size=rbln_config.kvcache_block_size,
|
891
|
-
kvcache_num_blocks=rbln_config.kvcache_num_blocks,
|
892
|
-
num_key_value_heads=num_key_value_heads,
|
893
|
-
num_hidden_layers=num_hidden_layers,
|
894
|
-
hidden_size=hidden_size,
|
895
|
-
head_dim=head_dim,
|
896
|
-
)
|
897
909
|
|
898
910
|
prefill_compile_config = RBLNCompileConfig(compiled_model_name="prefill", input_info=prefill_input_info)
|
899
|
-
dec_compile_config = RBLNCompileConfig(compiled_model_name="decoder", input_info=dec_input_info)
|
900
911
|
|
901
|
-
|
912
|
+
dec_compile_configs = []
|
913
|
+
for batch_size in rbln_config.decoder_batch_sizes:
|
914
|
+
dec_input_info = cls.get_input_info(
|
915
|
+
batch_size=batch_size,
|
916
|
+
query_length=1,
|
917
|
+
use_inputs_embeds=rbln_config.use_inputs_embeds,
|
918
|
+
use_attention_mask=rbln_config.use_attention_mask,
|
919
|
+
max_seq_len=rbln_config.max_seq_len,
|
920
|
+
kvcache_block_size=rbln_config.kvcache_block_size,
|
921
|
+
kvcache_num_blocks=rbln_config.kvcache_num_blocks,
|
922
|
+
num_key_value_heads=num_key_value_heads,
|
923
|
+
num_hidden_layers=num_hidden_layers,
|
924
|
+
hidden_size=hidden_size,
|
925
|
+
head_dim=head_dim,
|
926
|
+
)
|
927
|
+
dec_compile_configs.append(
|
928
|
+
RBLNCompileConfig(compiled_model_name=f"decoder_batch_{batch_size}", input_info=dec_input_info)
|
929
|
+
)
|
930
|
+
rbln_config.set_compile_cfgs([prefill_compile_config, *dec_compile_configs])
|
902
931
|
|
903
932
|
return rbln_config
|
904
933
|
|
@@ -908,8 +937,12 @@ class RBLNDecoderOnlyModelForCausalLM(RBLNModel):
|
|
908
937
|
compiled_models: List[rebel.RBLNCompiledModel],
|
909
938
|
rbln_config: RBLNDecoderOnlyModelForCausalLMConfig,
|
910
939
|
) -> List[rebel.Runtime]:
|
911
|
-
|
912
|
-
|
940
|
+
expected_model_names = [
|
941
|
+
"prefill",
|
942
|
+
*[f"decoder_batch_{batch_size}" for batch_size in rbln_config.decoder_batch_sizes],
|
943
|
+
]
|
944
|
+
if any(model_name not in rbln_config.device_map for model_name in expected_model_names):
|
945
|
+
cls._raise_missing_compiled_file_error(expected_model_names)
|
913
946
|
|
914
947
|
return [
|
915
948
|
rebel.Runtime(
|
@@ -918,12 +951,15 @@ class RBLNDecoderOnlyModelForCausalLM(RBLNModel):
|
|
918
951
|
device=rbln_config.device_map["prefill"],
|
919
952
|
activate_profiler=rbln_config.activate_profiler,
|
920
953
|
),
|
921
|
-
|
922
|
-
|
923
|
-
|
924
|
-
|
925
|
-
|
926
|
-
|
954
|
+
*[
|
955
|
+
rebel.Runtime(
|
956
|
+
compiled_models[i + 1],
|
957
|
+
tensor_type="pt",
|
958
|
+
device=rbln_config.device_map[f"decoder_batch_{batch_size}"],
|
959
|
+
activate_profiler=rbln_config.activate_profiler,
|
960
|
+
)
|
961
|
+
for i, batch_size in enumerate(rbln_config.decoder_batch_sizes)
|
962
|
+
],
|
927
963
|
]
|
928
964
|
|
929
965
|
def get_decoder(self):
|
@@ -1024,7 +1060,15 @@ class RBLNDecoderOnlyModelForCausalLM(RBLNModel):
|
|
1024
1060
|
logits = torch.cat(logits, dim=0)
|
1025
1061
|
# Decoder
|
1026
1062
|
else:
|
1027
|
-
|
1063
|
+
inputs = inputs_embeds if inputs_embeds is not None else input_ids
|
1064
|
+
batch_size = inputs.shape[0]
|
1065
|
+
if batch_size not in self.decoders:
|
1066
|
+
raise ValueError(
|
1067
|
+
f"No decoder runtime available for batch size {batch_size}. "
|
1068
|
+
f"Available batch sizes are: {list(self.decoders.keys())}. "
|
1069
|
+
f"Please run your model with one of these batch sizes or add support for batch size {batch_size}."
|
1070
|
+
)
|
1071
|
+
logits = self.decoders[batch_size](
|
1028
1072
|
input_ids=input_ids,
|
1029
1073
|
inputs_embeds=inputs_embeds,
|
1030
1074
|
cache_position=cache_position,
|
@@ -144,10 +144,27 @@ def check_version_compats() -> None:
|
|
144
144
|
except importlib.metadata.PackageNotFoundError:
|
145
145
|
warnings.warn(f"optimum-rbln requires {compat.package_name} to be installed.", ImportWarning)
|
146
146
|
continue
|
147
|
+
# For versions 0.7.2 and above, don't show warning for rebel-compiler if base versions match
|
147
148
|
|
148
|
-
if
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
149
|
+
if compat.package_name == "rebel-compiler":
|
150
|
+
# For optimum-rbln versions 0.7.2 and above, suppress the warning if the base versions of
|
151
|
+
# optimum-rbln and rebel-compiler match (e.g., 0.7.x with 0.7.y).
|
152
|
+
if (
|
153
|
+
Version(my_version) >= Version("0.7.2")
|
154
|
+
and Version(my_version).base_version == Version(dep_version).base_version
|
155
|
+
):
|
156
|
+
continue
|
157
|
+
else:
|
158
|
+
warnings.warn(
|
159
|
+
f"Version mismatch detected: optimum-rbln v{my_version} and {compat.package_name} v{dep_version} have different base versions. "
|
160
|
+
f"For optimal performance and compatibility, please ensure both packages share the same major and minor version numbers. "
|
161
|
+
"Please refer to our SDK release notes at https://docs.rbln.ai/about_atom/release_note.html",
|
162
|
+
ImportWarning,
|
163
|
+
)
|
164
|
+
else:
|
165
|
+
if not Version(compat.min_version) <= Version(dep_version) < Version(compat.max_version):
|
166
|
+
warnings.warn(
|
167
|
+
f"optimum-rbln v{my_version} is compatible to {compat.package_name} v{compat.min_version} to v{compat.max_version}. (you are currently using v{dep_version})\n"
|
168
|
+
"Please refer to our SDK release notes at https://docs.rbln.ai/about_atom/release_note.html",
|
169
|
+
ImportWarning,
|
170
|
+
)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: optimum-rbln
|
3
|
-
Version: 0.7.
|
3
|
+
Version: 0.7.5a0
|
4
4
|
Summary: Optimum RBLN is the interface between the HuggingFace Transformers and Diffusers libraries and RBLN accelerators. It provides a set of tools enabling easy model loading and inference on single and multiple rbln device settings for different downstream tasks.
|
5
5
|
Project-URL: Homepage, https://rebellions.ai
|
6
6
|
Project-URL: Documentation, https://docs.rbln.ai
|
@@ -1,6 +1,6 @@
|
|
1
|
-
optimum/rbln/__init__.py,sha256=
|
2
|
-
optimum/rbln/__version__.py,sha256=
|
3
|
-
optimum/rbln/configuration_utils.py,sha256=
|
1
|
+
optimum/rbln/__init__.py,sha256=89QJBCQbW1u83pFzFif2gwnJ09eAWYEUEuiVF_mDHBI,13238
|
2
|
+
optimum/rbln/__version__.py,sha256=bJpxWEb0lqqNtDNdD8kjIjXRVQ1JbWhjYWAaVwJIkmU,519
|
3
|
+
optimum/rbln/configuration_utils.py,sha256=Bz4mDuKQAbIvd1F1E5hssLenqUIwGWYZIRAe0UCaHbU,31050
|
4
4
|
optimum/rbln/modeling.py,sha256=qDXB69Oq0jx9hfONebDiSNe2_DgKYhnAGLTbGAtwYVw,9677
|
5
5
|
optimum/rbln/modeling_base.py,sha256=iQKw2IORu1cN6sOK0xeBVrhatt-ZPeinT_v6l2FnGRw,24173
|
6
6
|
optimum/rbln/diffusers/__init__.py,sha256=XL6oKPHbPCV6IVCw3fu0-M9mD2KO_x6unx5kJdAtpVY,6180
|
@@ -20,16 +20,16 @@ optimum/rbln/diffusers/configurations/pipelines/configuration_stable_diffusion.p
|
|
20
20
|
optimum/rbln/diffusers/configurations/pipelines/configuration_stable_diffusion_3.py,sha256=54NTvVur7RADGgjGwO33s76dgKQ4zVNvmFl68rQFapw,6370
|
21
21
|
optimum/rbln/diffusers/configurations/pipelines/configuration_stable_diffusion_xl.py,sha256=H0hqsqpAfqb9gBIK5KsfUf9gX9cTnggK9Nt2aqfzeIM,5528
|
22
22
|
optimum/rbln/diffusers/models/__init__.py,sha256=mkCvJyH1KcwrsUvYSq_bVC79oOfyqtBSFDyPS1_48wA,1478
|
23
|
-
optimum/rbln/diffusers/models/controlnet.py,sha256=
|
23
|
+
optimum/rbln/diffusers/models/controlnet.py,sha256=kzDbUckGlioor8t0kKBvwi-hzNaG15XluEzTa7xZs1Q,10292
|
24
24
|
optimum/rbln/diffusers/models/autoencoders/__init__.py,sha256=dg17ZTUsiqTcbIaEE4fqew9uRbao0diQ21PXvRKIqKg,679
|
25
25
|
optimum/rbln/diffusers/models/autoencoders/autoencoder_kl.py,sha256=qjReFNmuQEjnHjoI8f7ClAp_rRTA1vIk-3dwxJi6s7U,7905
|
26
26
|
optimum/rbln/diffusers/models/autoencoders/vae.py,sha256=_fyFco2697uT1zo_P_fGML-_zqZw2sUQp3tRRjA5pg4,4172
|
27
27
|
optimum/rbln/diffusers/models/autoencoders/vq_model.py,sha256=DC8Nee8_BabGhagJgpCUDhA-oaTpZMg-lCVzXJ6dNEw,6134
|
28
28
|
optimum/rbln/diffusers/models/transformers/__init__.py,sha256=V8rSR7WzHs-i8Cwb_MNxhY2NFbwPgxu24vGtkwl-6tk,706
|
29
29
|
optimum/rbln/diffusers/models/transformers/prior_transformer.py,sha256=d7CYmm88lozepqXjmrFr4qsQ-lRE_10wQRwnenMSflU,4989
|
30
|
-
optimum/rbln/diffusers/models/transformers/transformer_sd3.py,sha256=
|
30
|
+
optimum/rbln/diffusers/models/transformers/transformer_sd3.py,sha256=ywWiRAYQ0wfKMMZBrJ9C34GBwIu92F5QXSG8qi7Cr6s,6579
|
31
31
|
optimum/rbln/diffusers/models/unets/__init__.py,sha256=MaICuK9CWjgzejXy8y2NDrphuEq1rkzanF8u45k6O5I,655
|
32
|
-
optimum/rbln/diffusers/models/unets/unet_2d_condition.py,sha256=
|
32
|
+
optimum/rbln/diffusers/models/unets/unet_2d_condition.py,sha256=dyrez3vS0_YSxTVwcjlSijDJhe6XchdsLsCFv74HiFQ,15555
|
33
33
|
optimum/rbln/diffusers/pipelines/__init__.py,sha256=5KLZ5LrpMzBya2e_3_PvEoPwG24U8JMexfw_ygZREKc,3140
|
34
34
|
optimum/rbln/diffusers/pipelines/controlnet/__init__.py,sha256=n1Ef22TSeax-kENi_d8K6wGGHSNEo9QkUeygELHgcao,983
|
35
35
|
optimum/rbln/diffusers/pipelines/controlnet/multicontrolnet.py,sha256=Cv__E0Boc6TSOIv8TdXVE821zIiPG4MVI_lnaGSqquk,4102
|
@@ -81,9 +81,9 @@ optimum/rbln/transformers/models/clip/__init__.py,sha256=TLeXDqcFK6M6v9x7Xr64kBb
|
|
81
81
|
optimum/rbln/transformers/models/clip/configuration_clip.py,sha256=wgfZeVvcVdSzrN9tcnt7DKJQ0NLR0REvW7MyUXyv2Bg,2976
|
82
82
|
optimum/rbln/transformers/models/clip/modeling_clip.py,sha256=UslcDN6otyQ_psou7F_YcdK5vCImEtgIdcbwmexSfOM,7256
|
83
83
|
optimum/rbln/transformers/models/decoderonly/__init__.py,sha256=vQYZDDdoddwA7yKc5zzrq2Zs9sax-0p8rNF_aYfF4bk,1006
|
84
|
-
optimum/rbln/transformers/models/decoderonly/configuration_decoderonly.py,sha256=
|
84
|
+
optimum/rbln/transformers/models/decoderonly/configuration_decoderonly.py,sha256=tIBzKmts1Ea-CZWXC7RtJqeE9bd5wjmkugZg269wmVg,5962
|
85
85
|
optimum/rbln/transformers/models/decoderonly/decoderonly_architecture.py,sha256=NG2tKC3gT57r34PYKgU0evZHctEHzJGRrk2FOjLyK7Q,41748
|
86
|
-
optimum/rbln/transformers/models/decoderonly/modeling_decoderonly.py,sha256=
|
86
|
+
optimum/rbln/transformers/models/decoderonly/modeling_decoderonly.py,sha256=n5Kh5hE49m8Rl94DDwe2aDD3Y-dCPwRcENn-x9qkpzM,45245
|
87
87
|
optimum/rbln/transformers/models/dpt/__init__.py,sha256=Nzep9mlzKyL1kV726IBqY8DnLp1DkH9JzFeknWSRhok,714
|
88
88
|
optimum/rbln/transformers/models/dpt/configuration_dpt.py,sha256=4fW6bzVhaAxym4wGV3F785rvUOoWPyw_gdEMqB08Leg,755
|
89
89
|
optimum/rbln/transformers/models/dpt/modeling_dpt.py,sha256=oKLX7MQZvfk1QB8wOtcdi7AmZH2fOIVbypa9A3RA9MI,733
|
@@ -157,13 +157,13 @@ optimum/rbln/transformers/utils/rbln_quantization.py,sha256=gwBVHf97sQgPNmGa0wq8
|
|
157
157
|
optimum/rbln/utils/__init__.py,sha256=ieDBT2VFTt2E0M4v_POLBpuGW9LxSydpb_DuPd6PQqc,712
|
158
158
|
optimum/rbln/utils/decorator_utils.py,sha256=xu-TrsNi33SRC2a7DBsyoo6-pEQxWKZPZSmM9QlDe2Y,3745
|
159
159
|
optimum/rbln/utils/hub.py,sha256=Z_R9Ic9VAew8bUmlaAlxZf5JGMDBivHvvFRI557pILY,4196
|
160
|
-
optimum/rbln/utils/import_utils.py,sha256=
|
160
|
+
optimum/rbln/utils/import_utils.py,sha256=fpOERIIxXm-cDYGn1NN6c7aWDPQYVitPQW2MiyZ9NEY,5471
|
161
161
|
optimum/rbln/utils/logging.py,sha256=VKKBmlQSdg6iZCGmAXaWYiW67K84jyp1QJhLQSSjPPE,3453
|
162
162
|
optimum/rbln/utils/model_utils.py,sha256=V2kFpUe2aqVzLwbpztD8JOVFQqRHncvIWwJbgnUPr4E,1274
|
163
163
|
optimum/rbln/utils/runtime_utils.py,sha256=LoKNK3AQNV_BSScstIZWjICkJf265MnUgy360BOocVI,5454
|
164
164
|
optimum/rbln/utils/save_utils.py,sha256=hG5uOtYmecSXZuGTvCXsTM-SiyZpr5q3InUGCCq_jzQ,3619
|
165
165
|
optimum/rbln/utils/submodule.py,sha256=TtcH3OLctFd2Dosc-zNMGZ8xOXKKUfE91dLQ1v09E8Q,4636
|
166
|
-
optimum_rbln-0.7.
|
167
|
-
optimum_rbln-0.7.
|
168
|
-
optimum_rbln-0.7.
|
169
|
-
optimum_rbln-0.7.
|
166
|
+
optimum_rbln-0.7.5a0.dist-info/METADATA,sha256=4whxRZ9ifF1V_E6GUaWfwDfEW8oM0ahTpV_KttLvsrE,5299
|
167
|
+
optimum_rbln-0.7.5a0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
168
|
+
optimum_rbln-0.7.5a0.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
|
169
|
+
optimum_rbln-0.7.5a0.dist-info/RECORD,,
|
File without changes
|
File without changes
|