cubecl_core/frontend/
comptime.rs

1use crate as cubecl;
2use alloc::rc::Rc;
3use cubecl::prelude::*;
4use cubecl_ir::{DeviceProperties, HardwareProperties};
5use cubecl_macros::intrinsic;
6
7/// Retrieves the [device_properties](DeviceProperties).
8#[cube]
9#[allow(unused_variables)]
10pub fn device_properties() -> comptime_type!(Rc<DeviceProperties>) {
11    intrinsic!(|scope| scope.properties.as_ref().unwrap().clone())
12}
13
14/// Retrieves the [hardware_properties](HardwareProperties).
15#[cube]
16#[allow(unused_variables)]
17pub fn hardware_properties() -> comptime_type!(HardwareProperties) {
18    let props = &device_properties().comptime().hardware;
19    comptime!(props.clone())
20}