pub fn thread_idx_x() -> u32 {
panic!("thread_idx_x() can only be called inside a #[gpu_kernel] function")
}
pub fn thread_idx_y() -> u32 {
panic!("thread_idx_y() can only be called inside a #[gpu_kernel] function")
}
pub fn thread_idx_z() -> u32 {
panic!("thread_idx_z() can only be called inside a #[gpu_kernel] function")
}
pub fn block_idx_x() -> u32 {
panic!("block_idx_x() can only be called inside a #[gpu_kernel] function")
}
pub fn block_idx_y() -> u32 {
panic!("block_idx_y() can only be called inside a #[gpu_kernel] function")
}
pub fn block_idx_z() -> u32 {
panic!("block_idx_z() can only be called inside a #[gpu_kernel] function")
}
pub fn block_dim_x() -> u32 {
panic!("block_dim_x() can only be called inside a #[gpu_kernel] function")
}
pub fn block_dim_y() -> u32 {
panic!("block_dim_y() can only be called inside a #[gpu_kernel] function")
}
pub fn block_dim_z() -> u32 {
panic!("block_dim_z() can only be called inside a #[gpu_kernel] function")
}
pub fn grid_dim_x() -> u32 {
panic!("grid_dim_x() can only be called inside a #[gpu_kernel] function")
}
pub fn grid_dim_y() -> u32 {
panic!("grid_dim_y() can only be called inside a #[gpu_kernel] function")
}
pub fn grid_dim_z() -> u32 {
panic!("grid_dim_z() can only be called inside a #[gpu_kernel] function")
}
pub fn sqrt(_x: f32) -> f32 {
panic!("sqrt() can only be called inside a #[gpu_kernel] function")
}
pub fn abs<T>(_x: T) -> T {
panic!("abs() can only be called inside a #[gpu_kernel] function")
}
pub fn min<T>(_x: T, _y: T) -> T {
panic!("min() can only be called inside a #[gpu_kernel] function")
}
pub fn max<T>(_x: T, _y: T) -> T {
panic!("max() can only be called inside a #[gpu_kernel] function")
}
pub fn exp(_x: f32) -> f32 {
panic!("exp() can only be called inside a #[gpu_kernel] function")
}
pub fn log(_x: f32) -> f32 {
panic!("log() can only be called inside a #[gpu_kernel] function")
}
pub fn tanh(_x: f32) -> f32 {
panic!("tanh() can only be called inside a #[gpu_kernel] function")
}
pub fn fma(_a: f32, _b: f32, _c: f32) -> f32 {
panic!("fma() can only be called inside a #[gpu_kernel] function")
}
pub fn bar_sync() {
panic!("bar_sync() can only be called inside a #[gpu_kernel] function")
}
pub fn shfl_sync_down(_val: f32, _delta: u32, _width: u32) -> f32 {
panic!("shfl_sync_down() can only be called inside a #[gpu_kernel] function")
}
pub fn shfl_sync_up(_val: f32, _delta: u32, _width: u32) -> f32 {
panic!("shfl_sync_up() can only be called inside a #[gpu_kernel] function")
}
pub fn shfl_sync_bfly(_val: f32, _lane_mask: u32, _width: u32) -> f32 {
panic!("shfl_sync_bfly() can only be called inside a #[gpu_kernel] function")
}
pub fn block_reduce_sum(_val: f32) -> f32 {
panic!("block_reduce_sum() can only be called inside a #[gpu_kernel] function")
}
pub fn block_reduce_max(_val: f32) -> f32 {
panic!("block_reduce_max() can only be called inside a #[gpu_kernel] function")
}
pub fn block_reduce_min(_val: f32) -> f32 {
panic!("block_reduce_min() can only be called inside a #[gpu_kernel] function")
}
pub fn warp_reduce_sum(_val: f32) -> f32 {
panic!("warp_reduce_sum() can only be called inside a #[gpu_kernel] function")
}
pub fn warp_reduce_max(_val: f32) -> f32 {
panic!("warp_reduce_max() can only be called inside a #[gpu_kernel] function")
}
pub fn warp_reduce_min(_val: f32) -> f32 {
panic!("warp_reduce_min() can only be called inside a #[gpu_kernel] function")
}
#[macro_export]
macro_rules! shared_mem {
($ty:ty; $n:expr) => {
compile_error!("shared_mem![] can only be used inside a #[gpu_kernel] function")
};
}