Spaces:
Running on Zero
Running on Zero
| import torch | |
| import torch.nn as nn | |
| try: | |
| import sgl_kernel | |
| except ImportError: | |
| sgl_kernel = None | |
| class SglWanRMSNorm(nn.Module): | |
| def __init__(self, dim, eps=1e-5): | |
| super().__init__() | |
| self.dim = dim | |
| self.eps = eps | |
| self.weight = nn.Parameter(torch.ones(dim)) | |
| def forward(self, x: torch.Tensor) -> torch.Tensor: | |
| orig_shape = x.shape | |
| x_2d = x.contiguous().view(-1, orig_shape[-1]) | |
| return sgl_kernel.rmsnorm(x_2d, self.weight, self.eps).view(orig_shape) |