Skip to main content

adamax_step

Function adamax_step 

Source
pub fn adamax_step<T: Triton, const BLOCK_SIZE: i32>(
    params_ptr: T::Pointer<f32>,
    grad_ptr: T::Pointer<f32>,
    exp_avg_ptr: T::Pointer<f32>,
    exp_inf_ptr: T::Pointer<f32>,
    n_elements: i32,
    clr: 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

Adamax step (infinity-norm variant of Adam).

exp_avg = beta1 * exp_avg + (1 - beta1) * g
exp_inf = max(beta2 * exp_inf, |g| + eps)
p       = p - clr * exp_avg / exp_inf

clr = lr / (1 - beta1^t) is precomputed on the host.

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