cubecl_cpp/metal/
variable.rs1use crate::{Dialect, shared::Variable};
2
3use super::BuiltInAttribute;
4
5impl<D: Dialect> Variable<D> {
6 pub fn attribute(&self) -> BuiltInAttribute {
7 match self {
8 Variable::AbsolutePosBaseName => BuiltInAttribute::ThreadPositionInGrid,
9 Variable::CubeCountBaseName => BuiltInAttribute::ThreadgroupsPerGrid,
10 Variable::CubeDimBaseName => BuiltInAttribute::ThreadsPerThreadgroup,
11 Variable::CubePosBaseName => BuiltInAttribute::ThreadgroupPositionInGrid,
12 Variable::PlaneDim => BuiltInAttribute::ThreadsPerSIMDgroup,
13 Variable::PlanePos => BuiltInAttribute::SIMDgroupIndexInThreadgroup,
14 Variable::UnitPosBaseName => BuiltInAttribute::ThreadPositionInThreadgroup,
15 Variable::UnitPos => BuiltInAttribute::ThreadIndexInThreadgroup,
16 Variable::UnitPosPlane => BuiltInAttribute::ThreadIndexInSIMDgroup,
17 _ => BuiltInAttribute::None,
18 }
19 }
20}