Skip to main content

radam_adaptive_step

Function radam_adaptive_step 

Source
pub fn radam_adaptive_step<T: Triton, const BLOCK_SIZE: i32>(
    params_ptr: T::Pointer<f32>,
    grad_ptr: T::Pointer<f32>,
    exp_avg_ptr: T::Pointer<f32>,
    exp_avg_sq_ptr: T::Pointer<f32>,
    n_elements: i32,
    step_size: f32,
    bias_corr2_sqrt: f32,
    beta1: f32,
    beta2: f32,
    eps: f32,
    weight_decay: f32,
)
where T::I32Tensor: Tensor<i32, 1> + Comparison<i32, BoolTensor = T::BoolTensor>, T::Pointer<f32>: AddOffsets<i32, 1, T::I32Tensor, Output = T::Tensor<T::Pointer<f32>>>,
Expand description

RAdam step — adaptive variance phase (rho_t > 5).

exp_avg    = beta1 * exp_avg    + (1 - beta1) * g
exp_avg_sq = beta2 * exp_avg_sq + (1 - beta2) * g²
denom      = sqrt(exp_avg_sq / bias_correction2) + eps
p         -= step_size * exp_avg / denom

step_size = lr * rect / bias_correction1 is precomputed on host, where rect = sqrt((rho_t-4)(rho_t-2)*rho_inf / ((rho_inf-4)(rho_inf-2)*rho_t)).

Grid: [ceil(n_elements / BLOCK_SIZE), 1, 1].