"""Portable native FP4 FFN/projection kernels; weights are already packed.""" import triton import triton.language as tl from ._quantize import quantize_linear @triton.jit def scaled_amax(X, D, PARTIAL, M:tl.constexpr, K:tl.constexpr, B:tl.constexpr): idx=tl.program_id(0)*B+tl.arange(0,B) x=tl.load(X+idx,idx0,value/2688.,1.)) @triton.jit def activation_rank(X,D,RANK,M:tl.constexpr,K:tl.constexpr,BT:tl.constexpr): mb=tl.program_id(0);kt=tl.arange(0,BT) # Eight sampled rows/columns within each 128x128 activation block. rows=tl.minimum(mb*128+tl.arange(0,8)*16,M-1) cols=kt[:,None]*128+tl.arange(0,8)[None,:]*16 x=tl.load(X+rows[None,:,None]*K+cols[:,None,:],cols[:,None,:]energy[:,None])|((energy[None,:]==energy[:,None])&(kt[None,:]