compressed-tensors 0.11.1a20250908__py3-none-any.whl → 0.11.1a20250909__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.
@@ -140,6 +140,11 @@ def pack_fp4_to_uint8(x: torch.Tensor) -> torch.Tensor:
140
140
  m, n = x.shape
141
141
  device = x.device
142
142
 
143
+ if n % 2 != 0:
144
+ raise ValueError(
145
+ "tensor must have an even number of columns for nvfp4 compression"
146
+ )
147
+
143
148
  # Create lookup table for FP4 values to indices
144
149
  # Map the absolute values to 0-7 indices
145
150
  kE2M1 = torch.tensor(FLOAT_TO_E2M1, device=device, dtype=x.dtype)
@@ -155,10 +160,6 @@ def pack_fp4_to_uint8(x: torch.Tensor) -> torch.Tensor:
155
160
  # Reshape to prepare for packing pairs of values
156
161
  indices = indices.reshape(-1)
157
162
 
158
- # Handle odd length by padding if necessary
159
- if indices.numel() % 2 != 0:
160
- indices = torch.cat([indices, torch.zeros(1, dtype=torch.long, device=device)])
161
-
162
163
  # Reshape to pair consecutive elements
163
164
  indices = indices.reshape(-1, 2)
164
165
 
@@ -63,9 +63,19 @@ class QuantizationScheme(BaseModel):
63
63
  if inputs.strategy not in (
64
64
  QuantizationStrategy.TOKEN,
65
65
  QuantizationStrategy.TENSOR,
66
+ QuantizationStrategy.GROUP,
66
67
  QuantizationStrategy.TENSOR_GROUP,
67
68
  ):
68
- raise ValueError(
69
+ if (
70
+ inputs.strategy == QuantizationStrategy.GROUP
71
+ and inputs.dynamic is True
72
+ ):
73
+ raise NotImplementedError(
74
+ "Static and local group-wise activation "
75
+ "quantization is not supported"
76
+ )
77
+
78
+ raise NotImplementedError(
69
79
  f"Using {inputs.strategy} strategy is not supported for "
70
80
  "activation quantization"
71
81
  )
@@ -68,10 +68,8 @@ except ImportError:
68
68
 
69
69
 
70
70
  __all__ = [
71
- "is_module_offloaded",
72
71
  "get_execution_device",
73
72
  "get_offloaded_device",
74
- "update_prefix_dict",
75
73
  "update_parameter_data",
76
74
  "register_offload_parameter",
77
75
  "update_offload_parameter",
@@ -117,11 +115,6 @@ def check_accelerate(fallback: Any):
117
115
  """ Candidates for Depreciation """
118
116
 
119
117
 
120
- @check_accelerate(fallback=False)
121
- def is_module_offloaded(module: torch.nn.Module) -> bool:
122
- return has_offloaded_params(module)
123
-
124
-
125
118
  def get_offloaded_device(module: torch.nn.Module) -> torch.device:
126
119
  """
127
120
  :param module: module to check
@@ -137,25 +130,6 @@ def get_offloaded_device(module: torch.nn.Module) -> torch.device:
137
130
  return get_execution_device(module)
138
131
 
139
132
 
140
- @check_accelerate(fallback=None)
141
- def update_prefix_dict(module: torch.nn.Module, key: str, data: torch.Tensor):
142
- """
143
- Updates the offloaded state dict for a given module. Parameter named key is replaced
144
- by data. This is neccesary because parameter updates for offloaded modules do not
145
- persist automatically between loads. This function only affects the offloaded
146
- state dict and not the current state of the loaded module.
147
-
148
- :param module: module containing the parameter to update
149
- :param key: name of parameter to update
150
- :param data: tensor to update parameter with in the offloaded state dict
151
- """
152
- if not has_offloaded_params(module):
153
- raise ValueError("Prefix dict is only applicable to offloaded modules")
154
-
155
- weights_map = module._hf_hook.weights_map
156
- offload_to_weights_map(weights_map, key, data)
157
-
158
-
159
133
  def update_parameter_data(
160
134
  module: torch.nn.Module, new_param_data: torch.Tensor, param_name: str
161
135
  ):
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '0.11.1.a20250908'
20
+ __version__ = version = '0.11.1.a20250909'
21
21
  __version_tuple__ = version_tuple = (0, 11, 1)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: compressed-tensors
3
- Version: 0.11.1a20250908
3
+ Version: 0.11.1a20250909
4
4
  Summary: Library for utilization of compressed safetensors of neural network models
5
5
  Home-page: https://github.com/neuralmagic/compressed-tensors
6
6
  Author: Neuralmagic, Inc.
@@ -1,6 +1,6 @@
1
1
  compressed_tensors/__init__.py,sha256=UtKmifNeBCSE2TZSAfduVNNzHY-3V7bLjZ7n7RuXLOE,812
2
2
  compressed_tensors/base.py,sha256=-gxWvDF4LCkyeDP8YlGzvBBKxo4Dk9h4NINPD61drFU,921
3
- compressed_tensors/version.py,sha256=8qf_B1P1NNbEDyEkRyxNNhdvTofGEV0EE02UMN3na5k,523
3
+ compressed_tensors/version.py,sha256=r7NPIWZc4XFCqdYyi4qPxtVWw1N9RBvLtcldfOSxGIA,523
4
4
  compressed_tensors/compressors/__init__.py,sha256=smSygTSfcfuujRrAXDc6uZm4L_ccV1tWZewqVnOb4lM,825
5
5
  compressed_tensors/compressors/base.py,sha256=nvWsv4xEw1Tkxkxth6TmHplDYXfBeP22xWxOsZERyDY,7204
6
6
  compressed_tensors/compressors/helpers.py,sha256=OK6qxX9j3bHwF9JfIYSGMgBJe2PWjlTA3byXKCJaTIQ,5431
@@ -9,7 +9,7 @@ compressed_tensors/compressors/model_compressors/model_compressor.py,sha256=mZqp
9
9
  compressed_tensors/compressors/quantized_compressors/__init__.py,sha256=KvaFBL_Q84LxRGJOV035M8OBoCkAx8kOkfphswgkKWk,745
10
10
  compressed_tensors/compressors/quantized_compressors/base.py,sha256=rWvaWDqzi8cctBo982g2n3-y6afRiFl3jfTd90lSMrY,10413
11
11
  compressed_tensors/compressors/quantized_compressors/naive_quantized.py,sha256=0ANDcuD8aXPqTYNPY6GnX9iS6eXJw6P0TzNV_rYS2l8,5369
12
- compressed_tensors/compressors/quantized_compressors/nvfp4_quantized.py,sha256=Qq790d5VQQccq6Dj8YhBwhr7S3DqMJNoYPI5S6M1FNo,7183
12
+ compressed_tensors/compressors/quantized_compressors/nvfp4_quantized.py,sha256=lrF-FVAZ2OGAd1yFvH5tp7d5_yvi37aZEuJui--7RmQ,7148
13
13
  compressed_tensors/compressors/quantized_compressors/pack_quantized.py,sha256=D8h9ltxSIYi1XEKYgbYu1ebbXzCibhPi-eZsBUi0NOg,11245
14
14
  compressed_tensors/compressors/sparse_compressors/__init__.py,sha256=Atuz-OdEgn8OCUhx7Ovd6gXdyImAI186uCR-uR0t_Nk,737
15
15
  compressed_tensors/compressors/sparse_compressors/base.py,sha256=YNZWcHjDleAlqbgRZQ6oJf44MQb_UDNvJGOqhl26uFA,8098
@@ -28,7 +28,7 @@ compressed_tensors/linear/compressed_linear.py,sha256=1yo9RyjA0aQ--iuIknFfcSorJn
28
28
  compressed_tensors/quantization/__init__.py,sha256=83J5bPB7PavN2TfCoW7_vEDhfYpm4TDrqYO9vdSQ5bk,760
29
29
  compressed_tensors/quantization/quant_args.py,sha256=5AxYKqCSlg7CDgz2N8G4ZRVIiSUKvIm-SCQa-Bq_SF0,12916
30
30
  compressed_tensors/quantization/quant_config.py,sha256=2NgDwKuQn0f-ojiHC8c6tXtYX_zQlk26Rj-bU71QKvA,10598
31
- compressed_tensors/quantization/quant_scheme.py,sha256=2pV3tPNgo6ovi6FLxP4ZFznEmInlC1L90Pq9I1HI_Xk,9275
31
+ compressed_tensors/quantization/quant_scheme.py,sha256=EG86Bq5c8q1O4fJL_o3s7gOu1S5SrcLjfNYOPDn414A,9673
32
32
  compressed_tensors/quantization/lifecycle/__init__.py,sha256=_uItzFWusyV74Zco_pHLOTdE9a83cL-R-ZdyQrBkIyw,772
33
33
  compressed_tensors/quantization/lifecycle/apply.py,sha256=TuSjKomSk4N0My-UY9PWk2Nyuze6TilEGPsZELgotzk,14716
34
34
  compressed_tensors/quantization/lifecycle/compressed.py,sha256=Fj9n66IN0EWsOAkBHg3O0GlOQpxstqjCcs0ttzMXrJ0,2296
@@ -57,14 +57,14 @@ compressed_tensors/utils/__init__.py,sha256=spzbjUO4-hZ2jXGST27r3MIt2yzIXsjdbEaY
57
57
  compressed_tensors/utils/helpers.py,sha256=Q3iRAa2XSdmmn4vSpUplnvKOmWwn4Clao9ZkPBHXtpI,12604
58
58
  compressed_tensors/utils/internal.py,sha256=7SSWgDoNFRnlfadwkoFhLW-T2jOc7Po_WzWv5h32Sa8,982
59
59
  compressed_tensors/utils/match.py,sha256=y03xJyWTXV8bjIPN5Z4S0_w797qMnh-Z4aiPEGQ4zNE,11239
60
- compressed_tensors/utils/offload.py,sha256=b0Q2P0hJLQBGEqdRwOh6SOK3_eJCqHNnIX38-wqeef0,24577
60
+ compressed_tensors/utils/offload.py,sha256=eXqLzl8kUkVDlNtcO5sn_4QoDcbAaxbCAS3tyZ-aGr8,23538
61
61
  compressed_tensors/utils/permutations_24.py,sha256=kx6fsfDHebx94zsSzhXGyCyuC9sVyah6BUUir_StT28,2530
62
62
  compressed_tensors/utils/permute.py,sha256=V6tJLKo3Syccj-viv4F7ZKZgJeCB-hl-dK8RKI_kBwI,2355
63
63
  compressed_tensors/utils/safetensors_load.py,sha256=Vql34aCTDHwmTZXJHzCyBISJo7iA7EQ78LdTlMjdpZo,12023
64
64
  compressed_tensors/utils/semi_structured_conversions.py,sha256=XKNffPum54kPASgqKzgKvyeqWPAkair2XEQXjkp7ho8,13489
65
65
  compressed_tensors/utils/type.py,sha256=bNwoo_FWlvLuDpYAGGzZJITRg0JA_Ngk9LGPo-kvjeU,2554
66
- compressed_tensors-0.11.1a20250908.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
67
- compressed_tensors-0.11.1a20250908.dist-info/METADATA,sha256=lLokpvLLt0OOrfW9axfgwLmBhqCR7IqyjLCQFRdxCsU,7031
68
- compressed_tensors-0.11.1a20250908.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
69
- compressed_tensors-0.11.1a20250908.dist-info/top_level.txt,sha256=w2i-GyPs2s1UwVxvutSvN_lM22SXC2hQFBmoMcPnV7Y,19
70
- compressed_tensors-0.11.1a20250908.dist-info/RECORD,,
66
+ compressed_tensors-0.11.1a20250909.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
67
+ compressed_tensors-0.11.1a20250909.dist-info/METADATA,sha256=ZESMNkRHo7FRcoSr9v_JKDGml5oWDK-Tgcboj-0CnE4,7031
68
+ compressed_tensors-0.11.1a20250909.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
69
+ compressed_tensors-0.11.1a20250909.dist-info/top_level.txt,sha256=w2i-GyPs2s1UwVxvutSvN_lM22SXC2hQFBmoMcPnV7Y,19
70
+ compressed_tensors-0.11.1a20250909.dist-info/RECORD,,