cutlass_gemm_fp8/
cutlass_gemm_fp8.rs1use atomr_accel_cutlass::dtype::F8E4m3;
8use atomr_accel_cutlass::{CutlassActor, CutlassMsg, GemmEpilogue, GemmRequest, GemmShape, SmArch};
9
10fn main() {
11 let actor = CutlassActor::new(16);
12 let req = GemmRequest::<F8E4m3>::new(GemmShape::new(4096, 4096, 4096), SmArch::Sm90a)
13 .with_epilogue(GemmEpilogue::LinearReLU {
14 alpha: 1.0,
15 beta: 0.0,
16 });
17
18 println!("plan key: {:?}", req.plan_key());
19 let (src, name) = req.render_cu();
20 println!("kernel: {name}");
21 println!("--- generated .cu ---");
22 println!("{src}");
23
24 actor.handle(CutlassMsg::Gemm(Box::new(req.clone())));
25 actor.handle(CutlassMsg::Gemm(Box::new(req)));
26
27 println!("dispatched: {}", actor.inner().dispatched());
28 println!("plan cache len: {}", actor.inner().plan_cache.len());
29}