Bases: _KimiGDNMergedColumnParallelLinear
Merged projection with padding_size zero rows appended per rank.
Source code in vllm/models/kimi_k3/amd/kda.py
| class _PaddedKimiGDNMergedColumnParallelLinear(_KimiGDNMergedColumnParallelLinear):
"""Merged projection with ``padding_size`` zero rows appended per rank."""
def __init__(self, *args, padding_size: int = 0, **kwargs) -> None:
super().__init__(*args, **kwargs)
self.padding_size = padding_size
if padding_size:
assert isinstance(self.weight, torch.Tensor)
# Exclude padding rows from the load-completion count.
set_weight_attrs(
self.weight,
{"weight_loader_numel": self.weight[:-padding_size].numel()},
)
self.weight.data[-padding_size:].zero_()
def weight_loader(self, param, loaded_weight, loaded_shard_id=None) -> None:
super().weight_loader(param, loaded_weight, loaded_shard_id)
self._zero_padding(param)
def weight_loader_v2(self, param, loaded_weight, loaded_shard_id=None) -> None:
super().weight_loader_v2(param, loaded_weight, loaded_shard_id)
self._zero_padding(param)
def _zero_padding(self, param: torch.Tensor) -> None:
# Online processing materializes the weight after __init__ zeroing.
if self.padding_size and param is self.weight:
param.data[-self.padding_size :].zero_()
|