Skip to main content

cubecl_cpp/hip/
arch.rs

1use crate::shared::Architecture;
2
3pub use cubecl_core::ir::amd::{AMDArchitecture, AmdWmma};
4
5impl Architecture for AMDArchitecture {
6    fn warp_size(&self) -> u32 {
7        // Zero for an architecture the table does not know, which the HIP runtime checks the
8        // driver's own answer against before anything is compiled for it.
9        self.plane_dim().unwrap_or(0)
10    }
11
12    fn is_wmma_capable(&self) -> bool {
13        matches!(
14            self,
15            AMDArchitecture::GFX103 | AMDArchitecture::GFX11 | AMDArchitecture::GFX12
16        )
17    }
18
19    fn is_mfma_capable(&self) -> bool {
20        matches!(
21            self,
22            AMDArchitecture::GFX908 | AMDArchitecture::GFX90A | AMDArchitecture::GFX94
23        )
24    }
25}