dspk_ops/linalg/kernels/
subspace.rs1use cubecl::prelude::*;
2use dspk_core::compute::element_position;
3
4#[cube(launch)]
7pub fn centre_columns_kernel<F: Float>(x: &mut [F], mean: &[F], cols: u32, total: u32) {
8 let e = element_position() as u32;
9 if e < total {
10 x[e as usize] = x[e as usize] - mean[(e % cols) as usize];
11 }
12}
13
14#[cube(launch)]
16pub fn add_assign_kernel<F: Float>(acc: &mut [F], x: &[F], total: u32) {
17 let e = element_position() as u32;
18 if e < total {
19 acc[e as usize] = acc[e as usize] + x[e as usize];
20 }
21}
22