File tree Expand file tree Collapse file tree
vllm/model_executor/layers/quantization/utils Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ # SPDX-License-Identifier: Apache-2.0
2+ # SPDX-FileCopyrightText: Copyright contributors to the vLLM project
3+
4+ import pytest
5+ import torch
6+
7+ import vllm .model_executor .parameter as parameter
8+ from vllm .model_executor .layers .quantization .utils .fp8_utils import (
9+ create_fp8_scale_parameter ,
10+ )
11+ from vllm .model_executor .parameter import BlockQuantScaleParameter
12+
13+
14+ @pytest .mark .skipif (
15+ not hasattr (torch , "float8_e8m0fnu" ),
16+ reason = "torch does not expose float8_e8m0fnu" ,
17+ )
18+ def test_create_fp8_scale_parameter_initializes_e8m0 (monkeypatch ):
19+ monkeypatch .setattr (parameter , "get_tensor_model_parallel_rank" , lambda : 0 )
20+ monkeypatch .setattr (parameter , "get_tensor_model_parallel_world_size" , lambda : 1 )
21+
22+ scale = create_fp8_scale_parameter (
23+ BlockQuantScaleParameter ,
24+ output_partition_sizes = [128 ],
25+ input_size_per_partition = 128 ,
26+ block_size = [128 , 128 ],
27+ weight_loader = None ,
28+ scale_dtype = torch .float8_e8m0fnu ,
29+ )
30+
31+ assert scale .dtype == torch .float8_e8m0fnu
32+ raw_scale = scale .data .view (torch .uint8 )
33+ assert torch .equal (raw_scale , torch .zeros_like (raw_scale ))
Original file line number Diff line number Diff line change @@ -1231,6 +1231,8 @@ def create_fp8_scale_parameter(
12311231
12321232 if dtype == torch .float32 :
12331233 scale [:] = torch .finfo (torch .float32 ).min
1234+ elif dtype == getattr (torch , "float8_e8m0fnu" , None ):
1235+ scale [:] = 0
12341236 set_weight_attrs (scale , {"scale_type" : "weight_scale" })
12351237 return scale
12361238
You can’t perform that action at this time.
0 commit comments