--reset
--dt=f16,bf16,f32
--stag=abx --wtag=abx --dtag=abx
--attr-post-ops=,tanh,logistic,swish,mish
--batch=shapes_2d
--batch=shapes_3d

# f8:f8:f16-32
--reset
--dt=f8_e5m2:f8_e4m3:f16,f8_e5m2:f8_e4m3:bf16,f8_e5m2:f8_e4m3:f32
--stag=abx --wtag=abx --dtag=abx
--batch=shapes_2d

# f8
--reset
--dt=f8_e5m2:f8_e4m3:f8_e5m2,f8_e4m3:f8_e5m2:f8_e4m3,f8_e5m2,f8_e4m3
--stag=abx --wtag=abx --dtag=abx
--batch=shapes_2d
--batch=shapes_3d

# batch, mixed fp8
--reset
--dt=bf16:bf16:f8_e5m2
8x8x8x1x8:8x8x1x8x8

# wei_decomp
## f16-32:i4:f16-32
--reset --dt=bf16:u4:bf16,f16:s4:f16,f32:u4:f32 --attr-fpmath=bf16:true --stag=ab --wtag=ab --dtag=ab 24x32:32x64 25x32:32x16 96x96:96x64 14x96:96x32 1x30:30x20 10x30:30x20
## f16-32:i4:f8
--reset --dt=bf16:u4:f8_e5m2,f16:s4:f8_e4m3,f32:u4:f8_e4m3 --attr-fpmath=f16:true --stag=ab --wtag=ab --dtag=ab 24x32:32x64 25x32:32x16 96x96:96x64 14x96:96x32 1x30:30x20 10x30:30x20
## f8:i4:f16-32
--reset --dt=f8_e4m3:u4:bf16,f8_e5m2:s4:f32 --attr-fpmath=bf16:true --stag=ab --wtag=ab --dtag=ab 24x32:32x64 25x32:32x16 96x96:96x64 14x96:96x32 1x30:30x20 10x30:30x20
--reset --dt=f8_e5m2:s4:f16,f8_e4m3:u4:f32 --attr-fpmath=f16:true --stag=ab --wtag=ab --dtag=ab 24x32:32x64 25x32:32x16 96x96:96x64 14x96:96x32 1x30:30x20 10x30:30x20
## f8:i4:f8
--reset --dt=f8_e4m3:u4:f8_e4m3,f8_e5m2:s4:f8_e5m2,f8_e4m3:u4:f8_e5m2 --attr-fpmath=strict:true --stag=ab --wtag=ab --dtag=ab 24x32:32x64 25x32:32x16 96x96:96x64 14x96:96x32 1x30:30x20 10x30:30x20

# fp16/32:int4:fp16/32
# 2D block wei scale, zp (fp16/32)

--reset
--dt=bf16:s4:bf16,bf16:u4:bf16
--stag=abc
--attr-scales=wei:per_ocic:bf16:32x1
--attr-zero-points=wei:per_ocic:s4:32x1
--attr-fpmath=bf16:true
7x6x32:7x32x64
7x6x32:1x32x64
3x6x96:3x96x64
3x6x96:1x96x64

--reset
--dt=f16:s4:f16,f16:u4:f16
--stag=abc
--attr-scales=wei:per_ocic:f16:32x1
--attr-zero-points=wei:per_ocic:s4:32x1
--attr-fpmath=f16:true
7x6x32:7x32x64
7x6x32:1x32x64
3x6x96:3x96x64
3x6x96:1x96x64

# TODO: re-enable when f32 scales are fixed by backport from main
#--reset
#--dt=f32:s4:f32,f32:u4:f32
#--stag=abc #,acb
#--attr-scales=wei:per_ocic:f32:32x1
#--attr-zero-points=wei:per_ocic:s4:32x1
#--attr-fpmath=strict:true
#7x6x32:7x32x64
#7x6x32:1x32x64
#3x6x96:3x96x64
#3x6x96:1x96x64

# fp8:fp8:fp8
# common/per_oc src, wei, dst scale (bf16/f32)

--reset
--dt=f8_e5m2:f8_e4m3:f8_e5m2,f8_e4m3:f8_e5m2:f8_e4m3,f8_e5m2,f8_e4m3
--attr-scales=wei:per_oc:bf16+src:per_ocic:bf16:1x256+dst:per_oc:bf16,\
              wei:common:2:bf16+src:common:2:bf16+dst:common:2:bf16,\
              wei:per_oc:f32+src:per_ocic:f32:1x256+dst:per_oc:f32,\
              wei:common:2:f32+src:common:2:f32+dst:common:2:f32
--stag=ab --wtag=ab --dtag=ab
2x256:256x128n"DLRM:2*1"
2x256:256x2n"DLRM:7*1"

# fp8:fp8:fp16/32
# common/per_oc src, wei scale (bf16/f32)

--reset
--dt=f8_e5m2:f8_e4m3:f32,f8_e4m3:f8_e5m2:f16,f8_e5m2:f8_e4m3:bf16
--attr-scales=wei:per_oc:bf16+src:per_ocic:bf16:1x256,\
              wei:common:2:bf16+src:common:2:bf16,\
              wei:per_oc:f32+src:per_ocic:f32:1x256,\
              wei:common:2:f32+src:common:2:f32
--stag=ab --wtag=ab --dtag=ab
2x256:256x128n"DLRM:2*1"
2x256:256x2n"DLRM:7*1"

# fp16/32:int4:fp8
# 2D block wei scale (fp16/32)
# common/per_oc dst scale (fp16/32)

--reset
--dt=bf16:s4:f8_e5m2,bf16:u4:f8_e4m3
--stag=abc
--attr-scales=wei:per_ocic:bf16:32x1+dst:per_oc:bf16,\
              wei:per_ocic:bf16:32x1+dst:common:2:bf16
--attr-zero-points=wei:per_ocic:s4:32x1
--attr-fpmath=bf16:true
7x6x32:7x32x64
7x6x32:1x32x64
3x6x96:3x96x64
3x6x96:1x96x64

# fp8:int4:fp16/32
# 2D block wei scale (fp16/32)
# common/per_oc src scale (fp16/32)

--reset
--dt=f8_e5m2:s4:bf16,f8_e4m3:u4:bf16
--stag=abc
--attr-scales=wei:per_ocic:bf16:32x1+src:per_oc:bf16:1x32,\
              wei:per_ocic:bf16:32x1+src:common:2:bf16
--attr-zero-points=wei:per_ocic:s4:32x1
--attr-fpmath=bf16:true
7x6x32:7x32x64
7x6x32:1x32x64

# fp8:int4:fp8
# 2D block wei scale (fp16/32/fp8)
# common/per_oc src, dst scale (f32)

--reset
--dt=f8_e5m2:s4:f8_e5m2,f8_e4m3:u4:f8_e4m3
--stag=abc
--attr-scales=wei:per_ocic:f8_e4m3:32x1+src:per_oc:f32:1x32,\
              wei:per_ocic:f8_e4m3:32x1+src:common:2:f32,\
              wei:per_ocic:f32:32x1+src:common:2:f32
--attr-zero-points=wei:per_ocic:s4:32x1
--attr-fpmath=bf16:true
7x6x32:7x32x64
7x6x32:1x32x64
