Update rms_layernorm.py

This commit is contained in:
Daniel Han 2024-11-04 23:11:03 -08:00
commit 2cd4b8debd

View file

@ -138,7 +138,7 @@ class Fast_RMS_Layernorm(torch.autograd.Function):
def forward(ctx, X, W, eps : float, gemma : bool = False):
shape = X.shape
dim : int = shape[-1]
X : torch.Tensor = X.view(-1, dim)
X = X.view(-1, dim)
n_rows : int
n_cols : int
n_rows, n_cols = X.shape
@ -149,27 +149,27 @@ class Fast_RMS_Layernorm(torch.autograd.Function):
Y = torch.empty((n_rows, n_cols), dtype = X.dtype, device = "cuda:0")
r = torch.empty(n_rows, dtype = torch.float32, device = "cuda:0")
# if gemma == False:
_rms_layernorm_forward[(n_rows,)](
Y, Y.stride(0),
X, X.stride(0),
W, W.stride(0),
r, r.stride(0),
n_cols = int(n_cols),
eps = float(eps),
BLOCK_SIZE = BLOCK_SIZE,
num_warps = num_warps,
)
# else:
# _gemma_rms_layernorm_forward[(n_rows,)](
# Y, Y.stride(0),
# X, X.stride(0),
# W, W.stride(0),
# r, r.stride(0),
# n_cols, eps,
# BLOCK_SIZE = BLOCK_SIZE,
# num_warps = num_warps,
# )
if not gemma:
_rms_layernorm_forward[(n_rows,)](
Y, Y.stride(0),
X, X.stride(0),
W, W.stride(0),
r, r.stride(0),
n_cols = int(n_cols),
eps = float(eps),
BLOCK_SIZE = BLOCK_SIZE,
num_warps = 16,
)
else:
_gemma_rms_layernorm_forward[(n_rows,)](
Y, Y.stride(0),
X, X.stride(0),
W, W.stride(0),
r, r.stride(0),
n_cols, eps,
BLOCK_SIZE = BLOCK_SIZE,
num_warps = num_warps,
)
ctx.eps = eps
ctx.BLOCK_SIZE = BLOCK_SIZE
ctx.num_warps = num_warps