From d7e6ad89e07e7383e23e77ebcfb9c4ff6356987e Mon Sep 17 00:00:00 2001 From: Bartlomiej Kocot Date: Tue, 28 Jul 2026 13:09:50 +0000 Subject: [PATCH 1/4] test(rocke): bench cases conv --- .../rocke/benchmark/bench_cases_conv.json | 127 ++++++++++++++++++ .../rocke/benchmark/bench_cases_conv_bwd.json | 49 +++++++ 2 files changed, 176 insertions(+) create mode 100644 dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/bench_cases_conv.json create mode 100644 dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/bench_cases_conv_bwd.json diff --git a/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/bench_cases_conv.json b/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/bench_cases_conv.json new file mode 100644 index 000000000000..a92db289c6b8 --- /dev/null +++ b/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/bench_cases_conv.json @@ -0,0 +1,127 @@ +[ + {"case_id":"F001","owner_story":"CF4","model":"ResNet-50","variant":"stem_7x7_s2_nchw_bf16","domain":"legacy_baseline","op":"conv2d","layout":"NCHW","N":1,"Cin":3,"Cout":64,"H":224,"W":224,"Kh":7,"Kw":7,"stride":2,"pad":3,"dilation":1,"groups":1,"dtype":"bf16","capability":"stem","used_by":["ResNet-50","ResNet-101"],"note":"classic MLPerf baseline stem; RGB->64, 224->112","suite":"regular","purpose":"acceptance","priority":"P0"}, + {"case_id":"F002","owner_story":"CF4","model":"ResNet-50","variant":"stem_7x7_s2_nhwc_fp16","domain":"legacy_baseline","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":64,"H":224,"W":224,"Kh":7,"Kw":7,"stride":2,"pad":3,"dilation":1,"groups":1,"dtype":"fp16","capability":"stem","used_by":["ResNet-50"],"note":"channels-last twin of the stem","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, + {"case_id":"F003","owner_story":"CF6A","model":"ResNet-50","variant":"stem_7x7_s2_int8","domain":"legacy_baseline","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":64,"H":224,"W":224,"Kh":7,"Kw":7,"stride":2,"pad":3,"dilation":1,"groups":1,"dtype":"int8","capability":"stem","used_by":["ResNet-50"],"note":"quantized deployed-vision path","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, + {"case_id":"F004","owner_story":"CF1","model":"ResNet-50","variant":"bottleneck_3x3_s1_nhwc_bf16","domain":"legacy_baseline","op":"conv2d","layout":"NHWC","N":1,"Cin":64,"Cout":64,"H":56,"W":56,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["ResNet-50"],"note":"canonical dense 3x3 (implicit-GEMM / Winograd territory)","suite":"regular","purpose":"acceptance","priority":"P0"}, + {"case_id":"F005","owner_story":"CF2","model":"ResNet-50","variant":"reduce_1x1_nhwc_bf16","domain":"legacy_baseline","op":"conv2d","layout":"NHWC","N":1,"Cin":256,"Cout":64,"H":56,"W":56,"Kh":1,"Kw":1,"stride":1,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"pointwise_1x1","used_by":["ResNet-50"],"note":"1x1 channel reduce = pure GEMM","suite":"regular","purpose":"acceptance","priority":"P0"}, + {"case_id":"F006","owner_story":"CF2","model":"ResNet-50","variant":"expand_1x1_nhwc_bf16","domain":"legacy_baseline","op":"conv2d","layout":"NHWC","N":1,"Cin":64,"Cout":256,"H":56,"W":56,"Kh":1,"Kw":1,"stride":1,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"pointwise_1x1","used_by":["ResNet-50"],"note":"1x1 channel expand","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, + {"case_id":"F007","owner_story":"CF1","model":"ResNet-50","variant":"downsample_3x3_s2_nhwc_bf16","domain":"legacy_baseline","op":"conv2d","layout":"NHWC","N":1,"Cin":128,"Cout":128,"H":56,"W":56,"Kh":3,"Kw":3,"stride":2,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["ResNet-50"],"note":"stage transition 56->28","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, + {"case_id":"F008","owner_story":"CF4","model":"ResNet-50","variant":"stem_7x7_s2_train_n256_bf16","domain":"legacy_baseline","op":"conv2d","layout":"NHWC","N":256,"Cin":3,"Cout":64,"H":224,"W":224,"Kh":7,"Kw":7,"stride":2,"pad":3,"dilation":1,"groups":1,"dtype":"bf16","capability":"stem","used_by":["ResNet-50"],"note":"MLPerf-scale training batch","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + + {"case_id":"F009","owner_story":"CF2","model":"MobileNetV4-Conv-L","variant":"ib_expand_1x1_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":24,"Cout":144,"H":56,"W":56,"Kh":1,"Kw":1,"stride":1,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"pointwise_1x1","used_by":["MobileNetV4","EfficientNetV2-S","MobileNetV3"],"note":"inverted-bottleneck expand (ratio 6)","suite":"regular","purpose":"acceptance","priority":"P0"}, + {"case_id":"F010","owner_story":"CF10","model":"MobileNetV4-Conv-L","variant":"uib_dw3x3_s1_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":144,"Cout":144,"H":56,"W":56,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":144,"dtype":"bf16","capability":"depthwise","used_by":["MobileNetV4","EfficientNetV2-S","MobileNetV3"],"note":"depthwise 3x3, memory-bound low-AI kernel","suite":"regular","purpose":"acceptance","priority":"P0"}, + {"case_id":"F011","owner_story":"CF10","model":"MobileNetV4-Conv-L","variant":"uib_dw5x5_s2_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":144,"Cout":144,"H":56,"W":56,"Kh":5,"Kw":5,"stride":2,"pad":2,"dilation":1,"groups":144,"dtype":"bf16","capability":"depthwise","used_by":["MobileNetV4","EfficientNet-B x"],"note":"depthwise 5x5 stride-2 downsample 56->28","suite":"regular","purpose":"acceptance","priority":"P1"}, + {"case_id":"F012","owner_story":"CF2","model":"MobileNetV4-Conv-L","variant":"ib_project_1x1_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":144,"Cout":40,"H":28,"W":28,"Kh":1,"Kw":1,"stride":1,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"pointwise_1x1","used_by":["MobileNetV4"],"note":"inverted-bottleneck linear project","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, + {"case_id":"F013","owner_story":"CF6B","model":"MobileNetV4-Conv-S","variant":"uib_dw3x3_int8","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":96,"Cout":96,"H":56,"W":56,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":96,"dtype":"int8","capability":"depthwise","used_by":["MobileNetV4","MobileNetV3"],"note":"quantized on-device mobile inference","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, + {"case_id":"F014","owner_story":"CF1","model":"EfficientNetV2-S","variant":"fused_mbconv_3x3_s2_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":24,"Cout":48,"H":192,"W":192,"Kh":3,"Kw":3,"stride":2,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["EfficientNetV2-S","EfficientNetV2-M"],"note":"fused-MBConv uses a full (non-DW) 3x3 in early stages","suite":"regular","purpose":"acceptance","priority":"P1"}, + {"case_id":"F015","owner_story":"CF10","model":"EfficientNetV2-S","variant":"mbconv_dw3x3_se_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":256,"Cout":256,"H":24,"W":24,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":256,"dtype":"bf16","capability":"depthwise","used_by":["EfficientNetV2-S"],"note":"deep MBConv depthwise (SE block around it)","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, + + {"case_id":"F016","owner_story":"CF3","model":"ConvNeXt-V2-L","variant":"stem_patchify_4x4_s4_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":192,"H":224,"W":224,"Kh":4,"Kw":4,"stride":4,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"patchify_strided","used_by":["ConvNeXt-V2-L","ConvNeXt-V2-B","ConvNeXt-V1"],"note":"non-overlap patchify stem (stride=kernel), 224->56","suite":"regular","purpose":"acceptance","priority":"P0"}, + {"case_id":"F017","owner_story":"CF13","model":"ConvNeXt-V2-L","variant":"dw7x7_stage1_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":192,"Cout":192,"H":56,"W":56,"Kh":7,"Kw":7,"stride":1,"pad":3,"dilation":1,"groups":192,"dtype":"bf16","capability":"large_kernel_dw","used_by":["ConvNeXt-V2-L","ConvNeXt-V2-H"],"note":"7x7 depthwise token-mixer (the ViT-competitive move)","suite":"regular","purpose":"acceptance","priority":"P0"}, + {"case_id":"F018","owner_story":"CF13","model":"ConvNeXt-V2-L","variant":"dw7x7_stage3_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":768,"Cout":768,"H":14,"W":14,"Kh":7,"Kw":7,"stride":1,"pad":3,"dilation":1,"groups":768,"dtype":"bf16","capability":"large_kernel_dw","used_by":["ConvNeXt-V2-L","ConvNeXt-V2-H"],"note":"stage-3 7x7 depthwise","suite":"regular","purpose":"acceptance","priority":"P0"}, + {"case_id":"F019","owner_story":"CF13","model":"ConvNeXt-V2-L","variant":"dw7x7_stage4_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":1536,"Cout":1536,"H":7,"W":7,"Kh":7,"Kw":7,"stride":1,"pad":3,"dilation":1,"groups":1536,"dtype":"bf16","capability":"large_kernel_dw","used_by":["ConvNeXt-V2-L"],"note":"deepest stage, kernel ~= feature-map size","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, + {"case_id":"F020","owner_story":"CF2","model":"ConvNeXt-V2-L","variant":"block_pw_expand_1x1_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":768,"Cout":3072,"H":14,"W":14,"Kh":1,"Kw":1,"stride":1,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"pointwise_1x1","used_by":["ConvNeXt-V2-L"],"note":"4x pointwise MLP expand (dominates block FLOPs)","suite":"regular","purpose":"acceptance","priority":"P0"}, + {"case_id":"F021","owner_story":"CF3","model":"ConvNeXt-V2-L","variant":"downsample_2x2_s2_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":384,"Cout":768,"H":28,"W":28,"Kh":2,"Kw":2,"stride":2,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"patchify_strided","used_by":["ConvNeXt-V2-L","ConvNeXt-V1"],"note":"2x2 stride-2 downsample layer (stride=kernel)","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, + {"case_id":"F022","owner_story":"CF13","model":"ConvNeXt-V2-L","variant":"dw7x7_stage3_fp16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":768,"Cout":768,"H":14,"W":14,"Kh":7,"Kw":7,"stride":1,"pad":3,"dilation":1,"groups":768,"dtype":"fp16","capability":"large_kernel_dw","used_by":["ConvNeXt-V2-L"],"note":"fp16 twin of the 7x7 DW","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + {"case_id":"F023","owner_story":"CF13","model":"RepLKNet-31B","variant":"dw31x31_stage2_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":256,"Cout":256,"H":28,"W":28,"Kh":31,"Kw":31,"stride":1,"pad":15,"dilation":1,"groups":256,"dtype":"bf16","capability":"large_kernel_dw","used_by":["RepLKNet-31B","RepLKNet-31L"],"note":"31x31 reparameterized depthwise (large effective receptive field)","suite":"regular","purpose":"acceptance","priority":"P0"}, + {"case_id":"F024","owner_story":"CF13","model":"RepLKNet-31B","variant":"dw31x31_stage3_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":512,"Cout":512,"H":14,"W":14,"Kh":31,"Kw":31,"stride":1,"pad":15,"dilation":1,"groups":512,"dtype":"bf16","capability":"large_kernel_dw","used_by":["RepLKNet-31B"],"note":"31x31 DW at 14x14 (kernel >> feature map, heavy halo)","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, + {"case_id":"F025","owner_story":"CF13","composition_id":"slak_dw51_stripes","branch":"vertical","composition_op":"sum","composition_timing":"both branch kernels plus output sum","model":"SLaK","variant":"dw51x5_stripe_vertical_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":512,"Cout":512,"H":14,"W":14,"Kh":51,"Kw":5,"stride":1,"pads_before":[25,2],"pads_after":[25,2],"dilation":1,"groups":512,"dtype":"bf16","capability":"large_kernel_dw","used_by":["SLaK-T","SLaK-S"],"note":"executable 51x5 depthwise stripe branch; paired with the separate 5x51 branch, not a synthetic 51x51 convolution","suite":"extended","purpose":"frontier","priority":"P2"}, + {"case_id":"F026","owner_story":"CF13","composition_id":"slak_dw51_stripes","branch":"horizontal","composition_op":"sum","composition_timing":"both branch kernels plus output sum","model":"SLaK","variant":"dw5x51_stripe_horizontal_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":512,"Cout":512,"H":14,"W":14,"Kh":5,"Kw":51,"stride":1,"pads_before":[2,25],"pads_after":[2,25],"dilation":1,"groups":512,"dtype":"bf16","capability":"large_kernel_dw","used_by":["SLaK-T","SLaK-S"],"note":"executable 5x51 depthwise stripe branch; paired with the separate 51x5 branch, not a synthetic 51x51 convolution","suite":"extended","purpose":"frontier","priority":"P2"}, + {"case_id":"F027","owner_story":"CF13","model":"UniRepLKNet-L","variant":"dw13x13_dilated_reparam_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":384,"Cout":384,"H":28,"W":28,"Kh":13,"Kw":13,"stride":1,"pad":6,"dilation":1,"groups":384,"dtype":"bf16","capability":"large_kernel_dw","used_by":["UniRepLKNet-L","UniRepLKNet-B"],"note":"inference-fused single 13x13 depthwise convolution; training-time dilated branches are already reparameterized, so this runtime row has dilation=1","suite":"extended","purpose":"frontier","priority":"P2"}, + + {"case_id":"F028","owner_story":"CF3","model":"ViT-L/14","variant":"patchify_conv2d_bf16","domain":"mllm_vision","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":1024,"H":224,"W":224,"Kh":14,"Kw":14,"stride":14,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"patchify_strided","used_by":["CLIP-ViT-L/14","ViT-L/14","OpenCLIP-ViT-L"],"note":"the ubiquitous ViT patch-embed conv (stride=kernel), 224->16x16","suite":"regular","purpose":"acceptance","priority":"P0"}, + {"case_id":"F029","owner_story":"CF3","model":"SigLIP-so400m","variant":"patchify14_384_bf16","domain":"mllm_vision","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":1152,"H":384,"W":384,"Kh":14,"Kw":14,"stride":14,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"patchify_strided","used_by":["SigLIP-so400m","SigLIP2","DeepSeek-VL2"],"note":"384px SigLIP patch-embed -> 27x27 tokens; dominant VLM vision encoder","suite":"regular","purpose":"acceptance","priority":"P0"}, + {"case_id":"F030","owner_story":"CF3","model":"CLIP-ViT-B/16","variant":"patchify16_bf16","domain":"mllm_vision","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":768,"H":224,"W":224,"Kh":16,"Kw":16,"stride":16,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"patchify_strided","used_by":["CLIP-ViT-B/16","ViT-B/16"],"note":"16x16 patch-embed -> 14x14","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, + {"case_id":"F031","owner_story":"CF14","model":"Qwen2-VL","variant":"patchify_conv3d_bf16","domain":"mllm_vision","op":"conv3d","layout":"NDHWC","N":1,"Cin":3,"Cout":1280,"D":2,"H":224,"W":224,"Kd":2,"Kh":14,"Kw":14,"strides":[2,14,14],"pads_before":[0,0,0],"pads_after":[0,0,0],"dilations":[1,1,1],"output_spatial":[1,16,16],"groups":1,"dtype":"bf16","capability":"patchify_strided","used_by":["Qwen2-VL","Qwen2.5-VL"],"note":"spatiotemporal patch-embed Conv3d kernel=stride=[2,14,14], no padding; images duplicated to 2 frames","suite":"regular","purpose":"acceptance","priority":"P0"}, + {"case_id":"F032","owner_story":"CF3","model":"SAM-ViT-H","variant":"patchify16_bf16","domain":"mllm_vision","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":1280,"H":1024,"W":1024,"Kh":16,"Kw":16,"stride":16,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"patchify_strided","used_by":["SAM-ViT-H","SAM2"],"note":"high-res (1024px) segmentation patch-embed -> 64x64","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + {"case_id":"F033","owner_story":"CF3","model":"SD3-MMDiT","variant":"latent_patchify_2x2_bf16","domain":"diffusion_vae","op":"conv2d","layout":"NHWC","N":2,"Cin":16,"Cout":1536,"H":128,"W":128,"Kh":2,"Kw":2,"stride":2,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"patchify_strided","used_by":["SD3-Medium","SD3.5"],"note":"MMDiT latent patch-embed on 16ch latent (2x2, stride=kernel)","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, + {"case_id":"F034","owner_story":"CF6A","model":"ViT-B/16-edge","variant":"patchify16_int8","domain":"mllm_vision","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":768,"H":224,"W":224,"Kh":16,"Kw":16,"stride":16,"pad":0,"dilation":1,"groups":1,"dtype":"int8","capability":"patchify_strided","used_by":["ViT-B/16"],"note":"quantized edge ViT patch-embed","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + + {"case_id":"F035","owner_story":"CF4","model":"YOLO11-L","variant":"stem_3x3_s2_bf16","domain":"detection","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":64,"H":640,"W":640,"Kh":3,"Kw":3,"stride":2,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"stem","used_by":["YOLO11-L","YOLO11-M","YOLOv8-L"],"note":"detector stem at 640; modern nets use 3x3 s2, not 7x7","suite":"regular","purpose":"acceptance","priority":"P0"}, + {"case_id":"F036","owner_story":"CF1","model":"YOLO11-L","variant":"down_3x3_s2_128_bf16","domain":"detection","op":"conv2d","layout":"NHWC","N":1,"Cin":64,"Cout":128,"H":320,"W":320,"Kh":3,"Kw":3,"stride":2,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["YOLO11-L","YOLOv8-L"],"note":"P2 downsample 320->160","suite":"regular","purpose":"acceptance","priority":"P0"}, + {"case_id":"F037","owner_story":"CF1","model":"YOLO11-L","variant":"down_3x3_s2_256_bf16","domain":"detection","op":"conv2d","layout":"NHWC","N":1,"Cin":128,"Cout":256,"H":160,"W":160,"Kh":3,"Kw":3,"stride":2,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["YOLO11-L"],"note":"P3 downsample 160->80","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, + {"case_id":"F038","owner_story":"CF1","model":"YOLO11-L","variant":"down_3x3_s2_512_bf16","domain":"detection","op":"conv2d","layout":"NHWC","N":1,"Cin":256,"Cout":512,"H":80,"W":80,"Kh":3,"Kw":3,"stride":2,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["YOLO11-L"],"note":"P4 downsample 80->40","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, + {"case_id":"F039","owner_story":"CF2","model":"YOLO11-L","variant":"c3k2_pw_1x1_bf16","domain":"detection","op":"conv2d","layout":"NHWC","N":1,"Cin":512,"Cout":256,"H":40,"W":40,"Kh":1,"Kw":1,"stride":1,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"pointwise_1x1","used_by":["YOLO11-L"],"note":"C3k2 split/transition 1x1","suite":"regular","purpose":"acceptance","priority":"P0"}, + {"case_id":"F040","owner_story":"CF1","model":"YOLO11-L","variant":"c3k2_bottleneck_3x3_bf16","domain":"detection","op":"conv2d","layout":"NHWC","N":1,"Cin":256,"Cout":256,"H":40,"W":40,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["YOLO11-L"],"note":"C3k2 uses two small 3x3 convs (vs YOLOv8 one large conv)","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, + {"case_id":"F041","owner_story":"CF1","model":"YOLO11-L","variant":"detect_head_3x3_bf16","domain":"detection","op":"conv2d","layout":"NHWC","N":1,"Cin":256,"Cout":256,"H":80,"W":80,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["YOLO11-L"],"note":"detection head conv (P3 scale)","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, + {"case_id":"F042","owner_story":"CF6A","model":"YOLO11-L","variant":"stem_3x3_s2_int8","domain":"detection","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":64,"H":640,"W":640,"Kh":3,"Kw":3,"stride":2,"pad":1,"dilation":1,"groups":1,"dtype":"int8","capability":"stem","used_by":["YOLO11-L","YOLOv8"],"note":"quantized deployed detector","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, + {"case_id":"F043","owner_story":"CF10","model":"YOLO11-L","variant":"dwsep_dw3x3_p3_bf16","domain":"detection","op":"conv2d","layout":"NHWC","N":1,"Cin":256,"Cout":256,"H":80,"W":80,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":256,"dtype":"bf16","capability":"depthwise","used_by":["YOLO11-L"],"note":"depthwise-separable variant block","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + {"case_id":"F044","owner_story":"CF4","model":"YOLO11-L","variant":"stem_3x3_s2_1280_bf16","domain":"detection","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":64,"H":1280,"W":1280,"Kh":3,"Kw":3,"stride":2,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"stem","used_by":["YOLO11-L"],"note":"high-res 1280 input sweep","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + + {"case_id":"F045","owner_story":"CF1","model":"SDXL-VAE","variant":"enc_conv_in_3x3_fp16","domain":"diffusion_vae","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":128,"H":1024,"W":1024,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"fp16","capability":"dense_smallk","used_by":["SDXL-VAE","SD1.5-VAE"],"note":"encoder conv_in at full 1024px (bandwidth-heavy high-res)","suite":"regular","purpose":"acceptance","priority":"P0"}, + {"case_id":"F046","owner_story":"CF1","model":"SDXL-VAE","variant":"enc_resnet_3x3_128_bf16","domain":"diffusion_vae","op":"conv2d","layout":"NHWC","N":1,"Cin":128,"Cout":128,"H":1024,"W":1024,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["SDXL-VAE"],"note":"encoder ResNet block 3x3 at 1024px","suite":"regular","purpose":"acceptance","priority":"P1"}, + {"case_id":"F047","owner_story":"CF1","model":"SDXL-VAE","variant":"enc_downsample_3x3_s2_bf16","domain":"diffusion_vae","op":"conv2d","layout":"NHWC","N":1,"Cin":128,"Cout":128,"H":1024,"W":1024,"Kh":3,"Kw":3,"stride":2,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["SDXL-VAE"],"note":"encoder 8x downsample stage 1024->512","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, + {"case_id":"F048","owner_story":"CF1","model":"SDXL-VAE","variant":"mid_3x3_512_bf16","domain":"diffusion_vae","op":"conv2d","layout":"NHWC","N":1,"Cin":512,"Cout":512,"H":128,"W":128,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["SDXL-VAE","SD3-VAE"],"note":"mid-block 3x3 at latent resolution 128","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, + {"case_id":"F049","owner_story":"CF1","model":"SDXL-VAE","variant":"dec_resnet_3x3_512_bf16","domain":"diffusion_vae","op":"conv2d","layout":"NHWC","N":1,"Cin":512,"Cout":512,"H":128,"W":128,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["SDXL-VAE"],"note":"decoder ResNet block 3x3","suite":"regular","purpose":"acceptance","priority":"P1"}, + {"case_id":"F050","owner_story":"CF1","model":"SDXL-VAE","variant":"dec_upsample_conv_3x3_bf16","domain":"diffusion_vae","op":"conv2d","layout":"NHWC","N":1,"Cin":512,"Cout":512,"H":256,"W":256,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"pre_op":{"type":"external_upsample","benchmarked":false},"dtype":"bf16","capability":"upsample_conv","used_by":["SDXL-VAE","SD1.5-VAE"],"note":"benchmarks only the 3x3 convolution at the already-upsampled 256x256 shape; external interpolation is excluded","suite":"regular","purpose":"acceptance","priority":"P0"}, + {"case_id":"F051","owner_story":"CF1","model":"SDXL-VAE","variant":"dec_conv_out_3x3_1024_fp32","domain":"diffusion_vae","op":"conv2d","layout":"NHWC","N":1,"Cin":128,"Cout":3,"H":1024,"W":1024,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"fp32","capability":"dense_smallk","used_by":["SDXL-VAE"],"note":"decoder conv_out at 1024px; often kept fp32 for reconstruction stability","suite":"regular","purpose":"acceptance","priority":"P0"}, + {"case_id":"F052","owner_story":"CF1","model":"SD3-VAE","variant":"dec_conv_in_16ch_3x3_bf16","domain":"diffusion_vae","op":"conv2d","layout":"NHWC","N":1,"Cin":16,"Cout":512,"H":128,"W":128,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["SD3-VAE","Flux.1-VAE"],"note":"16-channel latent (12x compression) decoder conv_in","suite":"regular","purpose":"acceptance","priority":"P1"}, + {"case_id":"F053","owner_story":"CF1","model":"Flux.2-VAE","variant":"dec_conv_in_32ch_3x3_bf16","domain":"diffusion_vae","op":"conv2d","layout":"NHWC","N":1,"Cin":32,"Cout":512,"H":128,"W":128,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["Flux.2-VAE"],"note":"32-channel latent (~6x compression, lowest yet)","suite":"extended","purpose":"frontier","priority":"P2"}, + {"case_id":"F054","owner_story":"CF22","model":"VAE-transposed-decoder","variant":"dec_convtranspose_4x4_s2_bf16","domain":"diffusion_vae","op":"conv2d_transpose","layout":"NHWC","N":1,"Cin":512,"Cout":512,"H":128,"W":128,"Kh":4,"Kw":4,"stride":2,"pad":1,"output_padding":0,"dilation":1,"output_spatial":[256,256],"groups":1,"dtype":"bf16","capability":"transposed_upsample","used_by":["GAN-decoders","legacy-VAE-decoders"],"note":"genuine fractionally-strided transposed convolution; 4x4 s2 p1 with output_padding=0 maps 128x128 to 256x256","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + {"case_id":"F055","owner_story":"CF1","model":"SDXL-VAE","variant":"dec_conv_out_3x3_1536_fp32","domain":"diffusion_vae","op":"conv2d","layout":"NHWC","N":1,"Cin":128,"Cout":3,"H":1536,"W":1536,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"fp32","capability":"dense_smallk","used_by":["SDXL-VAE"],"note":"high-res 1536 decode sweep (VAE decode is the perf tail of image gen)","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + + {"case_id":"F056","owner_story":"CF16C","model":"HunyuanVideo-VAE","variant":"enc_causal_conv_in_3x3x3_bf16","domain":"video_vae","op":"conv3d","layout":"NDHWC","N":1,"Cin":3,"Cout":128,"D":17,"H":256,"W":256,"Kd":3,"Kh":3,"Kw":3,"strides":[1,1,1],"pads_before":[2,1,1],"pads_after":[0,1,1],"dilations":[1,1,1],"output_spatial":[17,256,256],"groups":1,"causal":1,"execution":"full_clip","dtype":"bf16","capability":"conv3d_causal","used_by":["HunyuanVideo-VAE","WAN-VAE","Cosmos-Tokenizer"],"note":"full-clip CausalConv3D encoder conv_in with temporal past-only padding","suite":"regular","purpose":"frontier","priority":"P0"}, + {"case_id":"F057","owner_story":"CF16C","model":"HunyuanVideo-VAE","variant":"enc_causal_3x3x3_128_bf16","domain":"video_vae","op":"conv3d","layout":"NDHWC","N":1,"Cin":128,"Cout":128,"D":17,"H":256,"W":256,"Kd":3,"Kh":3,"Kw":3,"strides":[1,1,1],"pads_before":[2,1,1],"pads_after":[0,1,1],"dilations":[1,1,1],"output_spatial":[17,256,256],"groups":1,"causal":1,"execution":"full_clip","dtype":"bf16","capability":"conv3d_causal","used_by":["HunyuanVideo-VAE","WAN-VAE"],"note":"ordinary full-clip causal 3D ResNet block","suite":"regular","purpose":"frontier","priority":"P1"}, + {"case_id":"F058","owner_story":"CF16C","model":"HunyuanVideo-VAE","variant":"enc_spatial_down_s122_bf16","domain":"video_vae","op":"conv3d","layout":"NDHWC","N":1,"Cin":128,"Cout":256,"D":17,"H":256,"W":256,"Kd":3,"Kh":3,"Kw":3,"strides":[1,2,2],"pads_before":[2,1,1],"pads_after":[0,1,1],"dilations":[1,1,1],"output_spatial":[17,128,128],"groups":1,"causal":1,"execution":"full_clip","dtype":"bf16","capability":"conv3d_causal","used_by":["HunyuanVideo-VAE"],"note":"full-clip spatial downsample uses stride [1,2,2]; temporal length is preserved","suite":"extended","purpose":"frontier","priority":"P1"}, + {"case_id":"F059","owner_story":"CF16C","model":"HunyuanVideo-VAE","variant":"enc_temporal_down_s2_bf16","domain":"video_vae","op":"conv3d","layout":"NDHWC","N":1,"Cin":256,"Cout":256,"D":17,"H":64,"W":64,"Kd":3,"Kh":3,"Kw":3,"strides":[2,1,1],"pads_before":[2,1,1],"pads_after":[0,1,1],"dilations":[1,1,1],"output_spatial":[9,64,64],"groups":1,"causal":1,"execution":"full_clip","dtype":"bf16","capability":"conv3d_causal","used_by":["HunyuanVideo-VAE"],"note":"full-clip temporal downsample uses stride [2,1,1], mapping 17 frames to 9 outputs","suite":"extended","purpose":"frontier","priority":"P1"}, + {"case_id":"F060","owner_story":"CF16C","model":"HunyuanVideo-VAE","variant":"dec_causal_3x3x3_512_bf16","domain":"video_vae","op":"conv3d","layout":"NDHWC","N":1,"Cin":512,"Cout":512,"D":5,"H":32,"W":32,"Kd":3,"Kh":3,"Kw":3,"strides":[1,1,1],"pads_before":[2,1,1],"pads_after":[0,1,1],"dilations":[1,1,1],"output_spatial":[5,32,32],"groups":1,"causal":1,"execution":"full_clip","dtype":"bf16","capability":"conv3d_causal","used_by":["HunyuanVideo-VAE"],"note":"full-clip decoder causal 3D block at latent resolution","suite":"regular","purpose":"frontier","priority":"P1"}, + {"case_id":"F061","owner_story":"CF16C","model":"HunyuanVideo-VAE","variant":"dec_upsample_conv3d_bf16","domain":"video_vae","op":"conv3d","layout":"NDHWC","N":1,"Cin":256,"Cout":256,"D":9,"H":128,"W":128,"Kd":3,"Kh":3,"Kw":3,"strides":[1,1,1],"pads_before":[2,1,1],"pads_after":[0,1,1],"dilations":[1,1,1],"output_spatial":[9,128,128],"groups":1,"causal":1,"execution":"full_clip","pre_op":{"type":"external_upsample","benchmarked":false},"dtype":"bf16","capability":"upsample_conv","used_by":["HunyuanVideo-VAE","WAN-VAE"],"note":"benchmarks only the causal 3D convolution at the already-upsampled [9,128,128] shape; external interpolation or pixel shuffle is excluded","suite":"extended","purpose":"frontier","priority":"P2"}, + {"case_id":"F062","owner_story":"CF16S","model":"WAN-VAE","variant":"enc_causal_conv_in_3x3x3_bf16","domain":"video_vae","op":"conv3d","layout":"NDHWC","N":1,"Cin":3,"Cout":96,"D":21,"H":256,"W":256,"Kd":3,"Kh":3,"Kw":3,"strides":[1,1,1],"pads_before":[2,1,1],"pads_after":[0,1,1],"dilations":[1,1,1],"output_spatial":[21,256,256],"groups":1,"causal":1,"execution":"streaming_equivalence","cache_semantics":"state carried across chunks; output must match full clip","dtype":"bf16","capability":"conv3d_causal","used_by":["WAN-VAE","WAN2.2"],"note":"Wan-VAE feature-cache streaming-equivalence probe for arbitrary-length input","suite":"extended","purpose":"frontier","priority":"P2"}, + {"case_id":"F063","owner_story":"CF14F","model":"HunyuanVideo-VAE","variant":"enc_causal_conv_in_3x3x3_fp8","domain":"video_vae","op":"conv3d","layout":"NDHWC","N":1,"Cin":128,"Cout":128,"D":17,"H":256,"W":256,"Kd":3,"Kh":3,"Kw":3,"strides":[1,1,1],"pads_before":[2,1,1],"pads_after":[0,1,1],"dilations":[1,1,1],"output_spatial":[17,256,256],"groups":1,"causal":1,"execution":"full_clip","dtype":"fp8_e4m3","capability":"conv3d_causal","used_by":["HunyuanVideo-VAE"],"note":"full-clip fp8 frontier probe for the heavy 3D-conv VAE workload","suite":"extended","purpose":"frontier","priority":"P2"}, + {"case_id":"F064","owner_story":"CF16S","model":"HunyuanVideo-VAE","variant":"enc_causal_conv_in_longclip_bf16","domain":"video_vae","op":"conv3d","layout":"NDHWC","N":1,"Cin":128,"Cout":128,"D":33,"H":256,"W":256,"Kd":3,"Kh":3,"Kw":3,"strides":[1,1,1],"pads_before":[2,1,1],"pads_after":[0,1,1],"dilations":[1,1,1],"output_spatial":[33,256,256],"groups":1,"causal":1,"execution":"streaming_equivalence","cache_semantics":"state carried across chunks; output must match full clip","dtype":"bf16","capability":"conv3d_causal","used_by":["HunyuanVideo-VAE"],"note":"33-frame long-clip streaming-equivalence probe against full-clip output","suite":"extended","purpose":"frontier","priority":"P2"}, + + {"case_id":"F065","owner_story":"CF19","model":"Mamba2-2.7B","variant":"causal_conv1d_w4_bf16","domain":"ssm","op":"conv1d","layout":"NCL","N":1,"Cin":5376,"Cout":5376,"L":4096,"Kl":4,"stride":1,"pad":3,"dilation":1,"groups":5376,"causal":1,"dtype":"bf16","capability":"causal_conv1d","used_by":["Mamba2-2.7B","Mamba2-1.3B"],"note":"depthwise causal conv1d over (d_inner + 2*ngroups*d_state) channels, width 4","suite":"regular","purpose":"acceptance","priority":"P0"}, + {"case_id":"F066","owner_story":"CF19","model":"Mamba2-2.7B","variant":"causal_conv1d_w4_longctx_bf16","domain":"ssm","op":"conv1d","layout":"NCL","N":1,"Cin":5376,"Cout":5376,"L":16384,"Kl":4,"stride":1,"pad":3,"dilation":1,"groups":5376,"causal":1,"dtype":"bf16","capability":"causal_conv1d","used_by":["Mamba2-2.7B"],"note":"long-sequence sweep (SSMs are marketed on long context)","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, + {"case_id":"F067","owner_story":"CF19","model":"Mamba-2.8B","variant":"causal_conv1d_w4_bf16","domain":"ssm","op":"conv1d","layout":"NCL","N":1,"Cin":5120,"Cout":5120,"L":2048,"Kl":4,"stride":1,"pad":3,"dilation":1,"groups":5120,"causal":1,"dtype":"bf16","capability":"causal_conv1d","used_by":["Mamba-2.8B","Jamba"],"note":"Mamba-v1 selective-SSM short causal conv","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, + {"case_id":"F068","owner_story":"CF19","model":"Mamba2-2.7B","variant":"causal_conv1d_w4_decode_bf16","domain":"ssm","op":"conv1d","layout":"NCL","N":64,"Cin":5376,"Cout":5376,"L":1,"Kl":4,"stride":1,"pad":3,"dilation":1,"groups":5376,"causal":1,"dtype":"bf16","capability":"causal_conv1d","used_by":["Mamba2-2.7B"],"note":"autoregressive decode step (L=1, conv-state cache), batch 64","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, + {"case_id":"F069","owner_story":"CF20A","model":"Whisper-large-v3","variant":"conv1d_stem1_k3_s1_bf16","domain":"audio","op":"conv1d","layout":"NCL","N":1,"Cin":128,"Cout":1280,"L":3000,"Kl":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"conv1d_stem","used_by":["Whisper-large-v3","Whisper-large-v2"],"note":"mel(128)->1280 conv1d stem over 3000 frames (encoder)","suite":"regular","purpose":"acceptance","priority":"P0"}, + {"case_id":"F070","owner_story":"CF20A","model":"Whisper-large-v3","variant":"conv1d_stem2_k3_s2_bf16","domain":"audio","op":"conv1d","layout":"NCL","N":1,"Cin":1280,"Cout":1280,"L":3000,"Kl":3,"stride":2,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"conv1d_stem","used_by":["Whisper-large-v3"],"note":"second conv1d, stride-2 temporal downsample 3000->1500","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, + {"case_id":"F071","owner_story":"CF20B","model":"Conformer-L","variant":"dw_conv1d_k31_bf16","domain":"audio","op":"conv1d","layout":"NCL","N":1,"Cin":512,"Cout":512,"L":1500,"Kl":31,"stride":1,"pad":15,"dilation":1,"groups":512,"dtype":"bf16","capability":"depthwise","used_by":["Conformer-L","ConMamba","FastConformer"],"note":"Conformer/ConMamba depthwise conv1d module, kernel 31 (local ASR context)","suite":"regular","purpose":"acceptance","priority":"P1"}, + {"case_id":"F072","owner_story":"CF24","model":"Hyena-long","variant":"fft_long_conv_global_bf16","domain":"ssm","op":"conv1d","layout":"NCL","N":1,"Cin":768,"Cout":768,"L":8192,"Kl":8192,"stride":1,"pad":8191,"dilation":1,"groups":768,"causal":1,"dtype":"bf16","capability":"long_conv","used_by":["Hyena","H3","FlashFFTConv"],"note":"forward-looking: implicit global (kernel=L) causal conv realized via FFT, subquadratic sequence mixer","suite":"extended","purpose":"frontier","priority":"P2"}, + + {"case_id":"F073","owner_story":"CF1","model":"ResNet-50","variant":"stage4_3x3_512_bf16","domain":"legacy_baseline","op":"conv2d","layout":"NHWC","N":1,"Cin":512,"Cout":512,"H":7,"W":7,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["ResNet-50"],"note":"deepest stage 3x3 (small spatial, wide channels)","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + {"case_id":"F074","owner_story":"CF1","model":"ResNet-152","variant":"bottleneck_3x3_s1_bf16","domain":"legacy_baseline","op":"conv2d","layout":"NHWC","N":1,"Cin":256,"Cout":256,"H":14,"W":14,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["ResNet-152","ResNet-101"],"note":"deeper-ResNet stage3 bottleneck","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + + {"case_id":"F075","owner_story":"CF5P","model":"ResNeXt-50-32x4d","variant":"grouped_3x3_g32_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":256,"Cout":256,"H":56,"W":56,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":32,"dtype":"bf16","capability":"grouped","used_by":["ResNeXt-50","ResNeXt-101","RegNetY"],"note":"cardinality-32 grouped 3x3 (between dense and depthwise)","suite":"regular","purpose":"acceptance","priority":"P1"}, + {"case_id":"F076","owner_story":"CF6B","model":"ResNeXt-101-32x8d","variant":"grouped_3x3_g32_int8","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":512,"Cout":512,"H":28,"W":28,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":32,"dtype":"int8","capability":"grouped","used_by":["ResNeXt-101"],"note":"quantized grouped conv","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + {"case_id":"F077","owner_story":"CF1","model":"RepVGG-B2","variant":"reparam_dense_3x3_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":256,"Cout":256,"H":28,"W":28,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["RepVGG-B2","MobileOne"],"note":"inference-fused plain 3x3 (multi-branch reparam at train time) -> a pure 3x3 GEMM at deploy","suite":"regular","purpose":"acceptance","priority":"P1"}, + {"case_id":"F078","owner_story":"CF23","runtime_gate":false,"model":"InternImage-B","variant":"dcnv3_deformable_dw3x3_bf16","domain":"vision_backbone","op":"dcnv3","layout":"NHWC","N":1,"Cin":112,"Cout":112,"H":28,"W":28,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"deform_groups":7,"channels_per_group":16,"offset_scale":1.0,"remove_center":false,"offset_tensor":{"layout":"NHWC","shape":[1,28,28,126]},"modulation_mask_tensor":{"layout":"NHWC","shape":[1,28,28,63],"activation":"softmax","normalization_axis":"sampling_points_per_deform_group"},"dtype":"bf16","capability":"deformable_dw","used_by":["InternImage-B","InternImage-L"],"note":"true DCNv3 operator; 3x3 sampling uses 7 deform groups, with reference mask logits softmax-normalized over 9 sampling points per group","suite":"extended","purpose":"research","priority":"P2"}, + {"case_id":"F079","owner_story":"CF13","model":"ConvNeXt-V2-XL","variant":"dw7x7_stage3_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":1024,"Cout":1024,"H":14,"W":14,"Kh":7,"Kw":7,"stride":1,"pad":3,"dilation":1,"groups":1024,"dtype":"bf16","capability":"large_kernel_dw","used_by":["ConvNeXt-V2-XL"],"note":"XL-width 7x7 DW","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + {"case_id":"F080","owner_story":"CF3","model":"ConvNeXt-V2-B","variant":"stem_patchify_4x4_s4_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":128,"H":224,"W":224,"Kh":4,"Kw":4,"stride":4,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"patchify_strided","used_by":["ConvNeXt-V2-B","ConvNeXt-V1-B"],"note":"base-width patchify stem (dim 128)","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + {"case_id":"F081","owner_story":"CF13","model":"ConvNeXt-V2-L","variant":"dw7x7_stage1_384_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":192,"Cout":192,"H":96,"W":96,"Kh":7,"Kw":7,"stride":1,"pad":3,"dilation":1,"groups":192,"dtype":"bf16","capability":"large_kernel_dw","used_by":["ConvNeXt-V2-L"],"note":"384px input resolution sweep (stage1 96x96)","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + {"case_id":"F082","owner_story":"CF13","model":"ConvNeXt-V2-L","variant":"dw7x7_stage1_fp16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":192,"Cout":192,"H":56,"W":56,"Kh":7,"Kw":7,"stride":1,"pad":3,"dilation":1,"groups":192,"dtype":"fp16","capability":"large_kernel_dw","used_by":["ConvNeXt-V2-L"],"note":"fp16 twin of the 7x7 DW","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + {"case_id":"F083","owner_story":"CF2","model":"ConvNeXt-V2-L","variant":"block_pw_project_1x1_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":3072,"Cout":768,"H":14,"W":14,"Kh":1,"Kw":1,"stride":1,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"pointwise_1x1","used_by":["ConvNeXt-V2-L"],"note":"pointwise MLP project (4x->1x)","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, + {"case_id":"F084","owner_story":"CF13","model":"RepLKNet-31L","variant":"dw31x31_stage1_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":192,"Cout":192,"H":56,"W":56,"Kh":31,"Kw":31,"stride":1,"pad":15,"dilation":1,"groups":192,"dtype":"bf16","capability":"large_kernel_dw","used_by":["RepLKNet-31L"],"note":"large-kernel DW at higher resolution (56x56)","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + {"case_id":"F085","owner_story":"CF10","model":"MobileNetV4-Conv-L","variant":"uib_dw3x3_384_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":144,"Cout":144,"H":96,"W":96,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":144,"dtype":"bf16","capability":"depthwise","used_by":["MobileNetV4"],"note":"384px depthwise sweep","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + {"case_id":"F086","owner_story":"CF6B","model":"GhostNetV2","variant":"cheap_dw3x3_int8","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":80,"Cout":80,"H":28,"W":28,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":80,"dtype":"int8","capability":"depthwise","used_by":["GhostNetV2","GhostNet"],"note":"Ghost cheap-operation depthwise, quantized mobile","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + {"case_id":"F087","owner_story":"CF2","model":"EfficientNetV2-M","variant":"ib_expand_1x1_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":80,"Cout":480,"H":24,"W":24,"Kh":1,"Kw":1,"stride":1,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"pointwise_1x1","used_by":["EfficientNetV2-M"],"note":"MBConv expand 1x1 (ratio 6)","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + + {"case_id":"F088","owner_story":"CF3","model":"CLIP-ViT-L/14","variant":"patchify14_336_bf16","domain":"mllm_vision","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":1024,"H":336,"W":336,"Kh":14,"Kw":14,"stride":14,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"patchify_strided","used_by":["CLIP-ViT-L/14-336","LLaVA-1.5"],"note":"336px LLaVA-style high-res patch-embed -> 24x24","suite":"regular","purpose":"acceptance","priority":"P1"}, + {"case_id":"F089","owner_story":"CF3","model":"InternViT-6B","variant":"patchify14_448_bf16","domain":"mllm_vision","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":3200,"H":448,"W":448,"Kh":14,"Kw":14,"stride":14,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"patchify_strided","used_by":["InternViT-6B","InternVL"],"note":"large VLM vision-encoder patch-embed @448 -> 32x32","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, + {"case_id":"F090","owner_story":"CF3","model":"DINOv2-ViT-g/14","variant":"patchify14_bf16","domain":"mllm_vision","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":1536,"H":224,"W":224,"Kh":14,"Kw":14,"stride":14,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"patchify_strided","used_by":["DINOv2-ViT-g","RADIO"],"note":"self-supervised vision-encoder patch-embed","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + {"case_id":"F091","owner_story":"CF14","model":"Qwen2.5-VL","variant":"patchify_conv3d_hires_bf16","domain":"mllm_vision","op":"conv3d","layout":"NDHWC","N":1,"Cin":3,"Cout":1280,"D":2,"H":392,"W":392,"Kd":2,"Kh":14,"Kw":14,"strides":[2,14,14],"pads_before":[0,0,0],"pads_after":[0,0,0],"dilations":[1,1,1],"output_spatial":[1,28,28],"groups":1,"dtype":"bf16","capability":"patchify_strided","used_by":["Qwen2.5-VL"],"note":"higher-res dynamic-resolution tile; Conv3d patchify [2,14,14] with no padding produces a [1,28,28] grid","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + {"case_id":"F092","owner_story":"CF3","model":"SigLIP2-g","variant":"patchify16_512_bf16","domain":"mllm_vision","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":1536,"H":512,"W":512,"Kh":16,"Kw":16,"stride":16,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"patchify_strided","used_by":["SigLIP2-g"],"note":"512px patch16 -> 32x32","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + + {"case_id":"F093","owner_story":"CF1","model":"YOLOv12-L","variant":"a2c2f_conv_3x3_bf16","domain":"detection","op":"conv2d","layout":"NHWC","N":1,"Cin":256,"Cout":256,"H":40,"W":40,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["YOLOv12-L"],"note":"YOLOv12 keeps Conv+BN (over Linear+LN) inside its attention-centric A2C2f blocks","suite":"regular","purpose":"acceptance","priority":"P1"}, + {"case_id":"F094","owner_story":"CF13","model":"YOLOv12-L","variant":"position_perceiver_dw7x7_bf16","domain":"detection","op":"conv2d","layout":"NHWC","N":1,"Cin":256,"Cout":256,"H":40,"W":40,"Kh":7,"Kw":7,"stride":1,"pad":3,"dilation":1,"groups":256,"dtype":"bf16","capability":"large_kernel_dw","used_by":["YOLOv12-L"],"note":"7x7 separable 'position perceiver' replacing positional encodings","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + {"case_id":"F095","owner_story":"CF6A","model":"YOLO11-N","variant":"stem_3x3_s2_int8","domain":"detection","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":16,"H":640,"W":640,"Kh":3,"Kw":3,"stride":2,"pad":1,"dilation":1,"groups":1,"dtype":"int8","capability":"stem","used_by":["YOLO11-N","YOLO26"],"note":"nano detector, quantized edge deploy","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + {"case_id":"F096","owner_story":"CF4","model":"RT-DETR-R50","variant":"hgnet_stem_3x3_s2_bf16","domain":"detection","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":32,"H":640,"W":640,"Kh":3,"Kw":3,"stride":2,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"stem","used_by":["RT-DETR-R50","RT-DETRv2"],"note":"real-time DETR conv backbone stem","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + {"case_id":"F097","owner_story":"CF2","model":"YOLO11-L","variant":"sppf_pw_1x1_bf16","domain":"detection","op":"conv2d","layout":"NHWC","N":1,"Cin":512,"Cout":512,"H":20,"W":20,"Kh":1,"Kw":1,"stride":1,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"pointwise_1x1","used_by":["YOLO11-L"],"note":"SPPF 1x1 at the deepest P5 scale","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + {"case_id":"F098","owner_story":"CF2","model":"YOLO11-L","variant":"neck_c3k2_pw_1x1_p4_bf16","domain":"detection","op":"conv2d","layout":"NHWC","N":1,"Cin":768,"Cout":256,"H":40,"W":40,"Kh":1,"Kw":1,"stride":1,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"pointwise_1x1","used_by":["YOLO11-L"],"note":"PAN neck 1x1 after concat","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + + {"case_id":"F099","owner_story":"CF1","model":"SD1.5-VAE","variant":"enc_conv_in_3x3_512_fp16","domain":"diffusion_vae","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":128,"H":512,"W":512,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"fp16","capability":"dense_smallk","used_by":["SD1.5-VAE"],"note":"512px generation (the classic SD resolution)","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, + {"case_id":"F100","owner_story":"CF1","model":"SDXL-VAE","variant":"enc_3x3_256_512_bf16","domain":"diffusion_vae","op":"conv2d","layout":"NHWC","N":1,"Cin":256,"Cout":256,"H":512,"W":512,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["SDXL-VAE"],"note":"mid-resolution encoder stage (256ch @512)","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, + {"case_id":"F101","owner_story":"CF1","model":"SD3-VAE","variant":"enc_conv_in_3x3_1024_bf16","domain":"diffusion_vae","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":128,"H":1024,"W":1024,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["SD3-VAE","Flux.1-VAE"],"note":"16ch-latent VAE encoder conv_in","suite":"regular","purpose":"acceptance","priority":"P1"}, + {"case_id":"F102","owner_story":"CF1","model":"SDXL-VAE","variant":"dec_upsample_conv_3x3_512_bf16","domain":"diffusion_vae","op":"conv2d","layout":"NHWC","N":1,"Cin":256,"Cout":256,"H":512,"W":512,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"pre_op":{"type":"external_upsample","benchmarked":false},"dtype":"bf16","capability":"upsample_conv","used_by":["SDXL-VAE"],"note":"benchmarks only the 3x3 convolution at the already-upsampled 512x512 shape; external interpolation is excluded","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + + {"case_id":"F103","owner_story":"CF16C","model":"Cosmos-Tokenizer","variant":"enc_causal_3x3x3_bf16","domain":"video_vae","op":"conv3d","layout":"NDHWC","N":1,"Cin":128,"Cout":128,"D":17,"H":128,"W":128,"Kd":3,"Kh":3,"Kw":3,"strides":[1,1,1],"pads_before":[2,1,1],"pads_after":[0,1,1],"dilations":[1,1,1],"output_spatial":[17,128,128],"groups":1,"causal":1,"execution":"full_clip","dtype":"bf16","capability":"conv3d_causal","used_by":["Cosmos-Tokenizer","Cosmos-Predict"],"note":"full-clip NVIDIA Cosmos causal video-tokenizer convolution","suite":"extended","purpose":"frontier","priority":"P2"}, + {"case_id":"F104","owner_story":"CF16C","model":"Mochi-1-VAE","variant":"enc_causal_3x3x3_bf16","domain":"video_vae","op":"conv3d","layout":"NDHWC","N":1,"Cin":128,"Cout":256,"D":17,"H":128,"W":128,"Kd":3,"Kh":3,"Kw":3,"strides":[1,1,1],"pads_before":[2,1,1],"pads_after":[0,1,1],"dilations":[1,1,1],"output_spatial":[17,128,128],"groups":1,"causal":1,"execution":"full_clip","dtype":"bf16","capability":"conv3d_causal","used_by":["Mochi-1-VAE","LTX-Video-VAE"],"note":"full-clip asymmetric high-compression causal video-VAE convolution","suite":"extended","purpose":"frontier","priority":"P2"}, + {"case_id":"F105","owner_story":"CF16S","model":"WAN-VAE","variant":"dec_upsample_conv3d_bf16","domain":"video_vae","op":"conv3d","layout":"NDHWC","N":1,"Cin":256,"Cout":256,"D":11,"H":128,"W":128,"Kd":3,"Kh":3,"Kw":3,"strides":[1,1,1],"pads_before":[2,1,1],"pads_after":[0,1,1],"dilations":[1,1,1],"output_spatial":[11,128,128],"groups":1,"causal":1,"execution":"streaming_equivalence","cache_semantics":"state carried across chunks; output must match full clip","pre_op":{"type":"external_upsample","benchmarked":false},"dtype":"bf16","capability":"upsample_conv","used_by":["WAN-VAE","WAN2.2"],"note":"benchmarks only the causal 3D convolution at the already-upsampled [11,128,128] shape as a streaming-equivalence probe; external upsample is excluded","suite":"extended","purpose":"frontier","priority":"P2"}, + {"case_id":"F106","owner_story":"CF16C","model":"HunyuanVideo-VAE","variant":"dec_causal_3x3x3_256hires_bf16","domain":"video_vae","op":"conv3d","layout":"NDHWC","N":1,"Cin":256,"Cout":256,"D":9,"H":256,"W":256,"Kd":3,"Kh":3,"Kw":3,"strides":[1,1,1],"pads_before":[2,1,1],"pads_after":[0,1,1],"dilations":[1,1,1],"output_spatial":[9,256,256],"groups":1,"causal":1,"execution":"full_clip","dtype":"bf16","capability":"conv3d_causal","used_by":["HunyuanVideo-VAE"],"note":"full-clip near-output high-resolution 3D convolution; the video-decode performance tail","suite":"extended","purpose":"frontier","priority":"P2"}, + + {"case_id":"F107","owner_story":"CF19","model":"Mamba2-1.3B","variant":"causal_conv1d_w4_bf16","domain":"ssm","op":"conv1d","layout":"NCL","N":1,"Cin":3328,"Cout":3328,"L":4096,"Kl":4,"stride":1,"pad":3,"dilation":1,"groups":3328,"causal":1,"dtype":"bf16","capability":"causal_conv1d","used_by":["Mamba2-1.3B"],"note":"smaller Mamba2 width","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + {"case_id":"F108","owner_story":"CF19","model":"Mamba2-8B","variant":"causal_conv1d_w4_bf16","domain":"ssm","op":"conv1d","layout":"NCL","N":1,"Cin":8448,"Cout":8448,"L":4096,"Kl":4,"stride":1,"pad":3,"dilation":1,"groups":8448,"causal":1,"dtype":"bf16","capability":"causal_conv1d","used_by":["Mamba2-8B","Codestral-Mamba"],"note":"larger SSM width","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + {"case_id":"F109","owner_story":"CF19","model":"Jamba","variant":"causal_conv1d_w4_bf16","domain":"ssm","op":"conv1d","layout":"NCL","N":1,"Cin":8192,"Cout":8192,"L":8192,"Kl":4,"stride":1,"pad":3,"dilation":1,"groups":8192,"causal":1,"dtype":"bf16","capability":"causal_conv1d","used_by":["Jamba","Zamba"],"note":"hybrid Transformer-Mamba MoE; Mamba-layer causal conv","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + {"case_id":"F110","owner_story":"CF20A","model":"Wav2Vec2","variant":"feat_conv1d_k10_s5_bf16","domain":"audio","op":"conv1d","layout":"NCL","N":1,"Cin":1,"Cout":512,"L":160000,"Kl":10,"stride":5,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"conv1d_stem","used_by":["Wav2Vec2","HuBERT","WavLM"],"note":"raw-waveform feature extractor first conv (16kHz, 10s clip): large strided conv1d","suite":"regular","purpose":"acceptance","priority":"P1"}, + {"case_id":"F111","owner_story":"CF20A","model":"Whisper-large-v3","variant":"conv1d_stem1_fp16","domain":"audio","op":"conv1d","layout":"NCL","N":1,"Cin":128,"Cout":1280,"L":3000,"Kl":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"fp16","capability":"conv1d_stem","used_by":["Whisper-large-v3"],"note":"fp16 twin of the mel conv stem","suite":"extended","purpose":"perf_diagnostic","priority":"P2"} +] diff --git a/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/bench_cases_conv_bwd.json b/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/bench_cases_conv_bwd.json new file mode 100644 index 000000000000..3740019459b1 --- /dev/null +++ b/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/bench_cases_conv_bwd.json @@ -0,0 +1,49 @@ +[ + {"case_id":"B001","owner_story":"CB2P","model":"ResNet-50","variant":"bwd_bottleneck_3x3_s1_bf16","domain":"legacy_baseline","op":"conv2d","stage":"backward","grads":["dInput","dWeight"],"layout":"NHWC","N":256,"Cin":64,"Cout":64,"H":56,"W":56,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","accum":"fp32","capability":"dense_smallk","used_by":["ResNet-50"],"note":"classic dense-conv training backward; dInput=transposed-conv, dWeight=correlation","suite":"regular","purpose":"acceptance","priority":"P0"}, + {"case_id":"B002","owner_story":"CB4","model":"ResNet-50","variant":"bwd_stem_7x7_s2_bf16","domain":"legacy_baseline","op":"conv2d","stage":"backward","grads":["dInput","dWeight"],"layout":"NHWC","N":256,"Cin":3,"Cout":64,"H":224,"W":224,"Kh":7,"Kw":7,"stride":2,"pad":3,"dilation":1,"groups":1,"dtype":"bf16","accum":"fp32","capability":"stem","used_by":["ResNet-50"],"note":"strided-conv backward (dInput needs a dilated/transposed pass)","suite":"regular","purpose":"acceptance","priority":"P1"}, + {"case_id":"B003","owner_story":"CB3","model":"ResNet-50","variant":"bwd_pointwise_1x1_bf16","domain":"legacy_baseline","op":"conv2d","stage":"backward","grads":["dInput","dWeight"],"layout":"NHWC","N":256,"Cin":256,"Cout":64,"H":56,"W":56,"Kh":1,"Kw":1,"stride":1,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","accum":"fp32","capability":"pointwise_1x1","used_by":["ResNet-50"],"note":"1x1 backward = two GEMMs","suite":"regular","purpose":"acceptance","priority":"P1"}, + + {"case_id":"B004","owner_story":"CB7P","model":"ConvNeXt-V2-L","variant":"bwd_dw7x7_stage1_bf16","domain":"vision_backbone","op":"conv2d","stage":"backward","grads":["dInput","dWeight"],"layout":"NHWC","N":64,"Cin":192,"Cout":192,"H":56,"W":56,"Kh":7,"Kw":7,"stride":1,"pad":3,"dilation":1,"groups":192,"dtype":"bf16","accum":"fp32","capability":"large_kernel_dw","used_by":["ConvNeXt-V2-L","ConvNeXt-V2-H"],"note":"depthwise weight-grad is the perf-sensitive path (poor reuse, atomics-prone)","suite":"regular","purpose":"acceptance","priority":"P0"}, + {"case_id":"B005","owner_story":"CB7P","model":"ConvNeXt-V2-L","variant":"bwd_dw7x7_stage3_bf16","domain":"vision_backbone","op":"conv2d","stage":"backward","grads":["dInput","dWeight"],"layout":"NHWC","N":64,"Cin":768,"Cout":768,"H":14,"W":14,"Kh":7,"Kw":7,"stride":1,"pad":3,"dilation":1,"groups":768,"dtype":"bf16","accum":"fp32","capability":"large_kernel_dw","used_by":["ConvNeXt-V2-L"],"note":"stage-3 7x7 DW backward","suite":"regular","purpose":"acceptance","priority":"P1"}, + {"case_id":"B006","owner_story":"CB3","model":"ConvNeXt-V2-L","variant":"bwd_block_pw_expand_1x1_bf16","domain":"vision_backbone","op":"conv2d","stage":"backward","grads":["dInput","dWeight"],"layout":"NHWC","N":64,"Cin":768,"Cout":3072,"H":14,"W":14,"Kh":1,"Kw":1,"stride":1,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","accum":"fp32","capability":"pointwise_1x1","used_by":["ConvNeXt-V2-L"],"note":"4x pointwise-MLP backward dominates block training FLOPs","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, + {"case_id":"B007","owner_story":"CB5A","model":"ConvNeXt-V2-L","variant":"bwd_stem_patchify_4x4_s4_bf16","domain":"vision_backbone","op":"conv2d","stage":"backward","grads":["dInput","dWeight"],"layout":"NHWC","N":64,"Cin":3,"Cout":192,"H":224,"W":224,"Kh":4,"Kw":4,"stride":4,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","accum":"fp32","capability":"patchify_strided","used_by":["ConvNeXt-V2-L"],"note":"patchify backward (stride=kernel -> non-overlapping, dInput is cheap scatter)","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + + {"case_id":"B008","owner_story":"CB7P","model":"RepLKNet-31B","variant":"bwd_dw31x31_stage2_bf16","domain":"vision_backbone","op":"conv2d","stage":"backward","grads":["dInput","dWeight"],"layout":"NHWC","N":32,"Cin":256,"Cout":256,"H":28,"W":28,"Kh":31,"Kw":31,"stride":1,"pad":15,"dilation":1,"groups":256,"dtype":"bf16","accum":"fp32","capability":"large_kernel_dw","used_by":["RepLKNet-31B"],"note":"large-kernel DW backward (training uses the un-fused multi-branch reparam form)","suite":"regular","purpose":"perf_diagnostic","priority":"P1"}, + {"case_id":"B009","owner_story":"CB7P","composition_id":"slak_dw51_stripes","branch":"vertical","composition_op":"sum","composition_timing":"both branch kernels plus output sum","model":"SLaK","variant":"bwd_dw51x5_stripe_vertical_bf16","domain":"vision_backbone","op":"conv2d","stage":"backward","grads":["dInput","dWeight"],"layout":"NHWC","N":32,"Cin":512,"Cout":512,"H":14,"W":14,"Kh":51,"Kw":5,"stride":1,"pads_before":[25,2],"pads_after":[25,2],"dilation":1,"groups":512,"dtype":"bf16","accum":"fp32","capability":"large_kernel_dw","used_by":["SLaK-T"],"note":"backward for the executable 51x5 depthwise stripe branch; the paired 5x51 branch is a separate row","suite":"extended","purpose":"frontier","priority":"P2"}, + {"case_id":"B010","owner_story":"CB7P","composition_id":"slak_dw51_stripes","branch":"horizontal","composition_op":"sum","composition_timing":"both branch kernels plus output sum","model":"SLaK","variant":"bwd_dw5x51_stripe_horizontal_bf16","domain":"vision_backbone","op":"conv2d","stage":"backward","grads":["dInput","dWeight"],"layout":"NHWC","N":32,"Cin":512,"Cout":512,"H":14,"W":14,"Kh":5,"Kw":51,"stride":1,"pads_before":[2,25],"pads_after":[2,25],"dilation":1,"groups":512,"dtype":"bf16","accum":"fp32","capability":"large_kernel_dw","used_by":["SLaK-T"],"note":"backward for the executable 5x51 depthwise stripe branch; the paired 51x5 branch is a separate row","suite":"extended","purpose":"frontier","priority":"P2"}, + + {"case_id":"B011","owner_story":"CB6P","model":"MobileNetV4-Conv-L","variant":"bwd_uib_dw3x3_bf16","domain":"vision_backbone","op":"conv2d","stage":"backward","grads":["dInput","dWeight"],"layout":"NHWC","N":128,"Cin":144,"Cout":144,"H":56,"W":56,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":144,"dtype":"bf16","accum":"fp32","capability":"depthwise","used_by":["MobileNetV4","EfficientNetV2-S"],"note":"small depthwise backward (dominates efficient-net training kernel count)","suite":"regular","purpose":"acceptance","priority":"P0"}, + {"case_id":"B012","owner_story":"CB2P","model":"EfficientNetV2-S","variant":"bwd_fused_mbconv_3x3_s2_bf16","domain":"vision_backbone","op":"conv2d","stage":"backward","grads":["dInput","dWeight"],"layout":"NHWC","N":128,"Cin":24,"Cout":48,"H":192,"W":192,"Kh":3,"Kw":3,"stride":2,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","accum":"fp32","capability":"dense_smallk","used_by":["EfficientNetV2-S"],"note":"fused-MBConv full-3x3 strided backward","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, + + {"case_id":"B013","owner_story":"CB5A","model":"ViT-L/14","variant":"bwd_patchify_conv2d_bf16","domain":"mllm_vision","op":"conv2d","stage":"backward","grads":["dInput","dWeight"],"layout":"NHWC","N":64,"Cin":3,"Cout":1024,"H":224,"W":224,"Kh":14,"Kw":14,"stride":14,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","accum":"fp32","capability":"patchify_strided","used_by":["CLIP-ViT-L/14","ViT-L/14"],"note":"patch-embed backward (dWeight only when the encoder is trained/unfrozen)","suite":"regular","purpose":"acceptance","priority":"P1"}, + {"case_id":"B014","owner_story":"CB5B","model":"Qwen2-VL","variant":"bwd_patchify_conv3d_bf16","domain":"mllm_vision","op":"conv3d","stage":"backward","grads":["dInput","dWeight"],"layout":"NDHWC","N":64,"Cin":3,"Cout":1280,"D":2,"H":224,"W":224,"Kd":2,"Kh":14,"Kw":14,"strides":[2,14,14],"pads_before":[0,0,0],"pads_after":[0,0,0],"dilations":[1,1,1],"output_spatial":[1,16,16],"groups":1,"dtype":"bf16","accum":"fp32","capability":"patchify_strided","used_by":["Qwen2-VL","Qwen2.5-VL"],"note":"Conv3d patch-embed backward for no-padding [2,14,14] patchification during VLM vision-encoder finetuning","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + + {"case_id":"B015","owner_story":"CB2P","model":"YOLO11-L","variant":"bwd_down_3x3_s2_bf16","domain":"detection","op":"conv2d","stage":"backward","grads":["dInput","dWeight"],"layout":"NHWC","N":16,"Cin":64,"Cout":128,"H":320,"W":320,"Kh":3,"Kw":3,"stride":2,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","accum":"fp32","capability":"dense_smallk","used_by":["YOLO11-L","YOLOv8-L"],"note":"detector training backward at 640-input scale","suite":"regular","purpose":"acceptance","priority":"P1"}, + + {"case_id":"B016","owner_story":"CB2P","model":"SDXL-VAE","variant":"bwd_enc_resnet_3x3_128_bf16","domain":"diffusion_vae","op":"conv2d","stage":"backward","grads":["dInput","dWeight"],"layout":"NHWC","N":1,"Cin":128,"Cout":128,"H":512,"W":512,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","accum":"fp32","capability":"dense_smallk","used_by":["SDXL-VAE","SD3-VAE"],"note":"VAE training backward (high-res 3x3; often fp32-accumulated)","suite":"regular","purpose":"acceptance","priority":"P1"}, + {"case_id":"B017","owner_story":"CB2P","model":"SDXL-VAE","variant":"bwd_dec_upsample_conv_3x3_bf16","domain":"diffusion_vae","op":"conv2d","stage":"backward","grads":["dInput","dWeight"],"layout":"NHWC","N":1,"Cin":512,"Cout":512,"H":256,"W":256,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"pre_op":{"type":"external_upsample","benchmarked":false},"dtype":"bf16","accum":"fp32","capability":"upsample_conv","used_by":["SDXL-VAE"],"note":"benchmarks only convolution backward at the already-upsampled 256x256 shape; interpolation gradient is outside this row","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + + {"case_id":"B018","owner_story":"CB9P","model":"HunyuanVideo-VAE","variant":"bwd_enc_causal_3x3x3_128_bf16","domain":"video_vae","op":"conv3d","stage":"backward","grads":["dInput","dWeight"],"layout":"NDHWC","N":1,"Cin":128,"Cout":128,"D":17,"H":256,"W":256,"Kd":3,"Kh":3,"Kw":3,"strides":[1,1,1],"pads_before":[2,1,1],"pads_after":[0,1,1],"dilations":[1,1,1],"output_spatial":[17,256,256],"groups":1,"causal":1,"execution":"full_clip","dtype":"bf16","accum":"fp32","capability":"conv3d_causal","used_by":["HunyuanVideo-VAE","WAN-VAE"],"note":"full-clip causal 3D-convolution backward with temporal past-only padding","suite":"regular","purpose":"frontier","priority":"P0"}, + {"case_id":"B019","owner_story":"CB9P","model":"HunyuanVideo-VAE","variant":"bwd_enc_temporal_down_s2_bf16","domain":"video_vae","op":"conv3d","stage":"backward","grads":["dInput","dWeight"],"layout":"NDHWC","N":1,"Cin":256,"Cout":256,"D":17,"H":64,"W":64,"Kd":3,"Kh":3,"Kw":3,"strides":[2,1,1],"pads_before":[2,1,1],"pads_after":[0,1,1],"dilations":[1,1,1],"output_spatial":[9,64,64],"groups":1,"causal":1,"execution":"full_clip","dtype":"bf16","accum":"fp32","capability":"conv3d_causal","used_by":["HunyuanVideo-VAE"],"note":"full-clip temporal-downsample backward uses stride [2,1,1], mapping 17 frames to 9 outputs","suite":"extended","purpose":"frontier","priority":"P2"}, + + {"case_id":"B020","owner_story":"CB10","model":"Mamba2-2.7B","variant":"bwd_causal_conv1d_w4_bf16","domain":"ssm","op":"conv1d","stage":"backward","grads":["dInput","dWeight"],"layout":"NCL","N":8,"Cin":5376,"Cout":5376,"L":4096,"Kl":4,"stride":1,"pad":3,"dilation":1,"groups":5376,"causal":1,"dtype":"bf16","accum":"fp32","capability":"causal_conv1d","used_by":["Mamba2-2.7B","Mamba-2.8B"],"note":"depthwise causal conv1d backward inside the Mamba block (pretraining)","suite":"regular","purpose":"acceptance","priority":"P1"}, + {"case_id":"B021","owner_story":"CB11B","model":"Conformer-L","variant":"bwd_dw_conv1d_k31_bf16","domain":"audio","op":"conv1d","stage":"backward","grads":["dInput","dWeight"],"layout":"NCL","N":16,"Cin":512,"Cout":512,"L":1500,"Kl":31,"stride":1,"pad":15,"dilation":1,"groups":512,"dtype":"bf16","accum":"fp32","capability":"depthwise","used_by":["Conformer-L","FastConformer"],"note":"ASR depthwise conv1d backward (kernel 31)","suite":"regular","purpose":"acceptance","priority":"P1"}, + + {"case_id":"B022","owner_story":"CB2P","model":"ResNet-50","variant":"bwd_downsample_3x3_s2_bf16","domain":"legacy_baseline","op":"conv2d","stage":"backward","grads":["dInput","dWeight"],"layout":"NHWC","N":256,"Cin":128,"Cout":128,"H":56,"W":56,"Kh":3,"Kw":3,"stride":2,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","accum":"fp32","capability":"dense_smallk","used_by":["ResNet-50"],"note":"strided-conv backward stage transition","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + {"case_id":"B023","owner_story":"CB8","model":"ResNeXt-50-32x4d","variant":"bwd_grouped_3x3_g32_bf16","domain":"vision_backbone","op":"conv2d","stage":"backward","grads":["dInput","dWeight"],"layout":"NHWC","N":64,"Cin":256,"Cout":256,"H":56,"W":56,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":32,"dtype":"bf16","accum":"fp32","capability":"grouped","used_by":["ResNeXt-50","ResNeXt-101"],"note":"grouped-conv backward (per-group GEMMs)","suite":"regular","purpose":"acceptance","priority":"P1"}, + {"case_id":"B024","owner_story":"CB2P","model":"RepVGG-B2","variant":"bwd_multibranch_3x3_bf16","domain":"vision_backbone","op":"conv2d","stage":"backward","grads":["dInput","dWeight"],"layout":"NHWC","N":64,"Cin":256,"Cout":256,"H":28,"W":28,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","accum":"fp32","capability":"dense_smallk","used_by":["RepVGG-B2","MobileOne"],"note":"training runs the un-fused multi-branch form (3x3 + 1x1 + identity); backward per branch","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + {"case_id":"B025","owner_story":"CB3","model":"MobileNetV4-Conv-L","variant":"bwd_ib_expand_1x1_bf16","domain":"vision_backbone","op":"conv2d","stage":"backward","grads":["dInput","dWeight"],"layout":"NHWC","N":128,"Cin":24,"Cout":144,"H":56,"W":56,"Kh":1,"Kw":1,"stride":1,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","accum":"fp32","capability":"pointwise_1x1","used_by":["MobileNetV4"],"note":"pointwise backward (two GEMMs)","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + {"case_id":"B026","owner_story":"CB6P","model":"EfficientNetV2-S","variant":"bwd_mbconv_dw3x3_bf16","domain":"vision_backbone","op":"conv2d","stage":"backward","grads":["dInput","dWeight"],"layout":"NHWC","N":128,"Cin":256,"Cout":256,"H":24,"W":24,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":256,"dtype":"bf16","accum":"fp32","capability":"depthwise","used_by":["EfficientNetV2-S"],"note":"deep MBConv depthwise backward","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + {"case_id":"B027","owner_story":"CB7P","model":"ConvNeXt-V2-XL","variant":"bwd_dw7x7_stage3_bf16","domain":"vision_backbone","op":"conv2d","stage":"backward","grads":["dInput","dWeight"],"layout":"NHWC","N":32,"Cin":1024,"Cout":1024,"H":14,"W":14,"Kh":7,"Kw":7,"stride":1,"pad":3,"dilation":1,"groups":1024,"dtype":"bf16","accum":"fp32","capability":"large_kernel_dw","used_by":["ConvNeXt-V2-XL"],"note":"XL-width 7x7 DW backward","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + {"case_id":"B028","owner_story":"CB7P","model":"RepLKNet-31B","variant":"bwd_dw31x31_stage3_bf16","domain":"vision_backbone","op":"conv2d","stage":"backward","grads":["dInput","dWeight"],"layout":"NHWC","N":32,"Cin":512,"Cout":512,"H":14,"W":14,"Kh":31,"Kw":31,"stride":1,"pad":15,"dilation":1,"groups":512,"dtype":"bf16","accum":"fp32","capability":"large_kernel_dw","used_by":["RepLKNet-31B"],"note":"deep large-kernel DW backward","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + {"case_id":"B029","owner_story":"CB12S","runtime_gate":false,"model":"InternImage-B","variant":"bwd_dcnv3_deformable_bf16","domain":"vision_backbone","op":"dcnv3","stage":"backward","grads":["dInput","dWeight","dOffset","dMask"],"layout":"NHWC","N":32,"Cin":112,"Cout":112,"H":28,"W":28,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"deform_groups":7,"channels_per_group":16,"offset_scale":1.0,"remove_center":false,"offset_tensor":{"layout":"NHWC","shape":[32,28,28,126]},"modulation_mask_tensor":{"layout":"NHWC","shape":[32,28,28,63],"activation":"softmax","normalization_axis":"sampling_points_per_deform_group"},"dtype":"bf16","accum":"fp32","capability":"deformable_dw","used_by":["InternImage-B"],"note":"true DCNv3 backward; dOffset and dMask are distinct gradients, and the reference modulation mask is softmax-normalized over 9 sampling points per deform group","suite":"extended","purpose":"research","priority":"P2"}, + {"case_id":"B030","owner_story":"CB5A","model":"SigLIP-so400m","variant":"bwd_patchify14_384_bf16","domain":"mllm_vision","op":"conv2d","stage":"backward","grads":["dInput","dWeight"],"layout":"NHWC","N":64,"Cin":3,"Cout":1152,"H":384,"W":384,"Kh":14,"Kw":14,"stride":14,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","accum":"fp32","capability":"patchify_strided","used_by":["SigLIP-so400m"],"note":"VLM vision-encoder patch-embed backward (finetuning)","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + {"case_id":"B031","owner_story":"CB3","model":"YOLO11-L","variant":"bwd_c3k2_pw_1x1_bf16","domain":"detection","op":"conv2d","stage":"backward","grads":["dInput","dWeight"],"layout":"NHWC","N":16,"Cin":512,"Cout":256,"H":40,"W":40,"Kh":1,"Kw":1,"stride":1,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","accum":"fp32","capability":"pointwise_1x1","used_by":["YOLO11-L"],"note":"detector pointwise backward","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + {"case_id":"B032","owner_story":"CB2P","model":"SD3-VAE","variant":"bwd_dec_conv_in_16ch_3x3_bf16","domain":"diffusion_vae","op":"conv2d","stage":"backward","grads":["dInput","dWeight"],"layout":"NHWC","N":1,"Cin":16,"Cout":512,"H":128,"W":128,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","accum":"fp32","capability":"dense_smallk","used_by":["SD3-VAE","Flux.1-VAE"],"note":"16ch-latent VAE decoder training backward","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + {"case_id":"B033","owner_story":"CB-T1","model":"VAE-transposed-decoder","variant":"bwd_convtranspose_4x4_s2_bf16","domain":"diffusion_vae","op":"conv2d_transpose","stage":"backward","grads":["dInput","dWeight"],"layout":"NHWC","N":1,"Cin":512,"Cout":512,"H":128,"W":128,"Kh":4,"Kw":4,"stride":2,"pad":1,"output_padding":0,"dilation":1,"output_spatial":[256,256],"groups":1,"dtype":"bf16","accum":"fp32","capability":"transposed_upsample","used_by":["GAN-decoders"],"note":"transposed-convolution backward preserves dInput and dWeight; 4x4 s2 p1 with output_padding=0 has 256x256 forward output","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + {"case_id":"B034","owner_story":"CB9P","model":"HunyuanVideo-VAE","variant":"bwd_dec_causal_3x3x3_512_bf16","domain":"video_vae","op":"conv3d","stage":"backward","grads":["dInput","dWeight"],"layout":"NDHWC","N":1,"Cin":512,"Cout":512,"D":5,"H":32,"W":32,"Kd":3,"Kh":3,"Kw":3,"strides":[1,1,1],"pads_before":[2,1,1],"pads_after":[0,1,1],"dilations":[1,1,1],"output_spatial":[5,32,32],"groups":1,"causal":1,"execution":"full_clip","dtype":"bf16","accum":"fp32","capability":"conv3d_causal","used_by":["HunyuanVideo-VAE"],"note":"full-clip causal 3D decoder backward","suite":"extended","purpose":"frontier","priority":"P2"}, + {"case_id":"B035","owner_story":"CB9S","runtime_gate":false,"model":"WAN-VAE","variant":"bwd_enc_causal_3x3x3_bf16","domain":"video_vae","op":"conv3d","stage":"backward","grads":["dInput","dWeight"],"layout":"NDHWC","N":1,"Cin":96,"Cout":96,"D":21,"H":256,"W":256,"Kd":3,"Kh":3,"Kw":3,"strides":[1,1,1],"pads_before":[2,1,1],"pads_after":[0,1,1],"dilations":[1,1,1],"output_spatial":[21,256,256],"groups":1,"causal":1,"execution":"streaming_equivalence","cache_semantics":"state carried across chunks; output must match full clip","dtype":"bf16","accum":"fp32","capability":"conv3d_causal","used_by":["WAN-VAE"],"note":"Wan-VAE feature-cache streaming-equivalence backward; requested gradients must match full-clip execution","suite":"extended","purpose":"research","priority":"P2"}, + {"case_id":"B036","owner_story":"CB10","model":"Mamba-2.8B","variant":"bwd_causal_conv1d_w4_bf16","domain":"ssm","op":"conv1d","stage":"backward","grads":["dInput","dWeight"],"layout":"NCL","N":8,"Cin":5120,"Cout":5120,"L":2048,"Kl":4,"stride":1,"pad":3,"dilation":1,"groups":5120,"causal":1,"dtype":"bf16","accum":"fp32","capability":"causal_conv1d","used_by":["Mamba-2.8B"],"note":"Mamba-v1 causal conv backward","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + {"case_id":"B037","owner_story":"CB11A","model":"Whisper-large-v3","variant":"bwd_conv1d_stem1_k3_bf16","domain":"audio","op":"conv1d","stage":"backward","grads":["dInput","dWeight"],"layout":"NCL","N":16,"Cin":128,"Cout":1280,"L":3000,"Kl":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","accum":"fp32","capability":"conv1d_stem","used_by":["Whisper-large-v3"],"note":"ASR dense Conv1d stem backward (encoder finetuning)","suite":"regular","purpose":"acceptance","priority":"P1"}, + {"case_id":"B038","owner_story":"CB11A","model":"Wav2Vec2","variant":"bwd_feat_conv1d_k10_s5_bf16","domain":"audio","op":"conv1d","stage":"backward","grads":["dInput","dWeight"],"layout":"NCL","N":8,"Cin":1,"Cout":512,"L":160000,"Kl":10,"stride":5,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","accum":"fp32","capability":"conv1d_stem","used_by":["Wav2Vec2","HuBERT"],"note":"raw-waveform feature-extractor backward (large strided conv1d)","suite":"extended","purpose":"perf_diagnostic","priority":"P2"} +] From 06d5d7cc47a79ffcc4bf280979a73c3cf7e9e955 Mon Sep 17 00:00:00 2001 From: Bartlomiej Kocot Date: Thu, 30 Jul 2026 11:08:24 +0000 Subject: [PATCH 2/4] add ck comparision --- .../benchmark/benchmark_implicit_gemm_conv.py | 336 +++++++++++++++++- 1 file changed, 334 insertions(+), 2 deletions(-) diff --git a/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/benchmark_implicit_gemm_conv.py b/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/benchmark_implicit_gemm_conv.py index 4b48e1fe609f..4374871b6530 100644 --- a/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/benchmark_implicit_gemm_conv.py +++ b/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/benchmark_implicit_gemm_conv.py @@ -31,6 +31,10 @@ --N 8 --Hi 56 --Wi 56 --C 64 --K 64 --Y 3 --X 3 \\ --dtype fp16 --top 10 + # Run from bench_cases_conv.json or bench_cases_conv_bwd.json: + python benchmark_implicit_gemm_conv.py --json-file bench_cases_conv.json + python benchmark_implicit_gemm_conv.py --json-file bench_cases_conv_bwd.json + Shape / dtype parameters mirror bake_off_implicit_gemm.py exactly. """ @@ -230,6 +234,166 @@ def _save(name, t): } +def parse_json_case(entry: dict): + """Parse a single JSON benchmark-case entry into a ``(ConvProblem, dtype)`` tuple. + + Supports entries from bench_cases_conv.json and bench_cases_conv_bwd.json. + Fields: N, Cin, Cout, H, W, Kh, Kw, stride (int or [sH,sW]), pad (int or [pH,pW]), + dilation (int or [dH,dW]), groups, dtype, layout, Di/D/Kd for 3-D. + + Raises ``ValueError`` for unsupported layouts (NCHW) or unsupported op types. + """ + op = entry.get("op", "conv2d") + layout = entry.get("layout", "NHWC").upper() + + if op not in ("conv2d", "conv3d", "conv1d"): + raise ValueError(f"op={op!r} is not supported") + + dtype = entry.get("dtype", "fp16") + if dtype not in ("fp16", "bf16", "fp32"): + raise ValueError(f"dtype={dtype!r} is not supported (only fp16, bf16, fp32)") + + from rocke.instances.common.conv_implicit_gemm import ConvProblem + + def _scalar_or_pair(val, idx_h=0, idx_w=1): + if isinstance(val, (list, tuple)): + return int(val[idx_h]), int(val[idx_w]) + return int(val), int(val) + + if op == "conv1d": + N = int(entry.get("N", 1)) + C = int(entry.get("Cin", entry.get("C", 1))) + K = int(entry.get("Cout", entry.get("K", 1))) + L = int(entry.get("L", 1)) + Kl = int(entry.get("Kl", 1)) + stride = int(entry.get("stride", 1)) + pad = int(entry.get("pad", 0)) + dilation = int(entry.get("dilation", 1)) + groups = int(entry.get("groups", 1)) + problem = ConvProblem( + N=N, + Hi=1, + Wi=L, + C=C, + K=K, + Y=1, + X=Kl, + sH=1, + sW=stride, + pH=0, + pW=pad, + dH=1, + dW=dilation, + groups=groups, + ) + return problem, dtype + + if op == "conv3d": + N = int(entry.get("N", 1)) + C = int(entry.get("Cin", entry.get("C", 1))) + K = int(entry.get("Cout", entry.get("K", 1))) + Di = int(entry.get("D", entry.get("Di", 1))) + Hi = int(entry.get("H", entry.get("Hi", 1))) + Wi = int(entry.get("W", entry.get("Wi", 1))) + Kd = int(entry.get("Kd", entry.get("Z", 1))) + Kh = int(entry.get("Kh", entry.get("Y", 1))) + Kw = int(entry.get("Kw", entry.get("X", 1))) + strides = entry.get("strides", entry.get("stride", 1)) + if isinstance(strides, (list, tuple)): + sD, sH, sW = int(strides[0]), int(strides[1]), int(strides[2]) + else: + sD = sH = sW = int(strides) + pads_before = entry.get("pads_before", entry.get("pad", 0)) + if isinstance(pads_before, (list, tuple)): + pD, pH, pW = int(pads_before[0]), int(pads_before[1]), int(pads_before[2]) + else: + pD = pH = pW = int(pads_before) + dilations = entry.get("dilations", entry.get("dilation", 1)) + if isinstance(dilations, (list, tuple)): + dD, dH, dW = int(dilations[0]), int(dilations[1]), int(dilations[2]) + else: + dD = dH = dW = int(dilations) + groups = int(entry.get("groups", 1)) + problem = ConvProblem( + N=N, + Di=Di, + Hi=Hi, + Wi=Wi, + C=C, + K=K, + Z=Kd, + Y=Kh, + X=Kw, + sD=sD, + sH=sH, + sW=sW, + pD=pD, + pH=pH, + pW=pW, + dD=dD, + dH=dH, + dW=dW, + groups=groups, + ) + return problem, dtype + + # conv2d + if layout not in ("NHWC", "NWC"): + raise ValueError( + f"layout={layout!r} is not supported; only NHWC/NWC inputs are accepted" + ) + N = int(entry.get("N", 1)) + C = int(entry.get("Cin", entry.get("C", 1))) + K = int(entry.get("Cout", entry.get("K", 1))) + Hi = int(entry.get("H", entry.get("Hi", 1))) + Wi = int(entry.get("W", entry.get("Wi", 1))) + Kh = int(entry.get("Kh", entry.get("Y", 1))) + Kw = int(entry.get("Kw", entry.get("X", 1))) + + stride = entry.get("stride", 1) + sH, sW = _scalar_or_pair(stride) + + # Support both symmetric pad and pads_before/pads_after + if "pads_before" in entry: + pads_before = entry["pads_before"] + pH = ( + int(pads_before[0]) + if isinstance(pads_before, (list, tuple)) + else int(pads_before) + ) + pW = ( + int(pads_before[1]) + if isinstance(pads_before, (list, tuple)) + else int(pads_before) + ) + else: + pad = entry.get("pad", 0) + pH, pW = _scalar_or_pair(pad) + + dilation = entry.get("dilation", 1) + dH, dW = _scalar_or_pair(dilation) + + groups = int(entry.get("groups", 1)) + + problem = ConvProblem( + N=N, + Hi=Hi, + Wi=Wi, + C=C, + K=K, + Y=Kh, + X=Kw, + sH=sH, + sW=sW, + pH=pH, + pW=pW, + dH=dH, + dW=dW, + groups=groups, + ) + return problem, dtype + + def parse_miopen_cmd(cmd: str): """Parse a MIOpenDriver command string into a ``(ConvProblem, dtype)`` tuple. @@ -325,6 +489,81 @@ def parse_miopen_cmd(cmd: str): return problem, dtype +# --------------------------------------------------------------------------- +# CK Profiler comparison +# --------------------------------------------------------------------------- + +_CK_DTYPE_STR = {"fp32": "fp32", "fp16": "fp16", "bf16": "bfp16"} + + +def _run_ckprofiler( + problem, dtype: str, ckprofiler: str, converter_script: str, forw: int, verify: int +) -> None: + """Delegate to convert_miopen_driver_to_profiler.py for the given ConvProblem. + + Builds a synthetic args namespace that mirrors what the converter script's + argparse produces, then calls its init_const_args / run_ck_profiler functions + directly — no logic is duplicated here. + + ``forw`` follows MIOpenDriver -F convention: + 0 fwd+bwd_data+bwd_weight 1 fwd 2 bwd_data 4 bwd_weight + 3 fwd+bwd_data 5 fwd+bwd_weight 6 bwd_data+bwd_weight + """ + import importlib.util + import types + + ck_dtype_str = _CK_DTYPE_STR.get(dtype) + if ck_dtype_str is None: + print( + f"[ckprofiler] dtype={dtype!r} is not supported by ckProfiler; skipping", + file=sys.stderr, + ) + return + + # Load the converter script as a module without executing its __main__ block. + spec = importlib.util.spec_from_file_location("_ck_converter", converter_script) + mod = importlib.util.module_from_spec(spec) + spec.loader.exec_module(mod) + + p = problem + + # Build a namespace that matches the attributes the converter's argparse produces. + args = types.SimpleNamespace( + ck_profiler_cmd=ckprofiler, + data_type=ck_dtype_str, + in_layout="NHWC" if not p.is_3d else "NDHWC", + spatial_dim=3 if p.is_3d else 2, + batchsize=p.N, + in_channels=p.C, + out_channels=p.K, + group_count=p.groups, + in_h=p.Hi, + in_w=p.Wi, + fil_h=p.Y, + fil_w=p.X, + conv_stride_h=p.sH, + conv_stride_w=p.sW, + pad_h=p.pH, + pad_w=p.pW, + dilation_h=p.dH, + dilation_w=p.dW, + # 3-D fields + in_d=p.Di if p.is_3d else 1, + fil_d=p.Z if p.is_3d else 1, + conv_stride_d=p.sD if p.is_3d else 1, + pad_d=p.pD if p.is_3d else 0, + dilation_d=p.dD if p.is_3d else 1, + forw=forw, + verify=verify, + time=1, + instance=-1, + list_instances=False, + ) + + mod.init_const_args(args) + mod.run_ck_profiler(args) + + # --------------------------------------------------------------------------- # Main # --------------------------------------------------------------------------- @@ -425,6 +664,27 @@ def main() -> int: ).replace("%(auto)s", str(list(_SPLIT_K_AUTO))), ) + ck_grp = parser.add_argument_group( + "ckProfiler comparison", + "Run ckProfiler on the same conv problem(s) for side-by-side comparison " + "via convert_miopen_driver_to_profiler.py. " + "Uses --direction and --verify to control direction and verification. " + "Requires a built ckProfiler binary.", + ) + ck_grp.add_argument( + "--ckprofiler", + default=None, + metavar="PATH", + help="Path to the ckProfiler binary. When set, ckProfiler is run for each case " + "before the rocke sweep.", + ) + ck_grp.add_argument( + "--ckprofiler-script", + default=None, + metavar="PATH", + help="Path to convert_miopen_driver_to_profiler.py (default: auto-detected from CK repo).", + ) + miopen_grp = parser.add_argument_group( "MIOpen input", "Load the conv problem from a MIOpenDriver command instead of explicit shape flags. " @@ -447,6 +707,37 @@ def main() -> int: "the benchmark is run once per line (blank lines and # comments ignored).", ) + json_grp = parser.add_argument_group( + "JSON input", + "Load benchmark cases from a JSON file (bench_cases_conv.json or " + "bench_cases_conv_bwd.json). Each entry in the array becomes one sweep. " + "When set, --dtype / shape flags and MIOpen flags are ignored.", + ) + json_grp.add_argument( + "--json-file", + default=None, + metavar="FILE", + help="Path to a JSON file containing an array of benchmark case objects, " + "e.g. bench_cases_conv.json or bench_cases_conv_bwd.json. " + "Supported fields: N, Cin, Cout, H, W, Kh, Kw, stride, pad, dilation, " + "groups, dtype, layout, op (conv2d/conv3d/conv1d). " + "Entries with unsupported dtypes or layouts are skipped with a warning.", + ) + json_grp.add_argument( + "--json-filter-suite", + default=None, + metavar="SUITE", + help='Only run JSON entries whose "suite" field matches SUITE ' + '(e.g. "regular", "extended").', + ) + json_grp.add_argument( + "--json-filter-priority", + default=None, + metavar="PRIORITY", + help='Only run JSON entries whose "priority" field matches PRIORITY ' + '(e.g. "P0", "P1").', + ) + conv = parser.add_argument_group("ConvProblem", "convolution shape parameters") conv.add_argument("--N", type=int, default=8, help="batch size") conv.add_argument("--Di", type=int, default=None, help="input depth (3-D only)") @@ -476,7 +767,7 @@ def main() -> int: args = parser.parse_args() - if args.miopen_cmd is None and args.miopen_file is None: + if args.miopen_cmd is None and args.miopen_file is None and args.json_file is None: if args.Di is not None and args.Z is None: print("--Z (filter depth) is required when --Di is set", file=sys.stderr) return 2 @@ -513,7 +804,37 @@ def _u8(t): # Build the list of (problem, dtype) cases to sweep. cases: list # List[Tuple[ConvProblem, str]] - if args.miopen_file is not None: + if args.json_file is not None: + import json + + path = args.json_file + with open(path) as f: + entries = json.load(f) + if not isinstance(entries, list): + print(f"error: {path}: expected a JSON array at top level", file=sys.stderr) + return 2 + cases = [] + for idx, entry in enumerate(entries): + case_id = entry.get("case_id", f"#{idx + 1}") + if args.json_filter_suite is not None: + if entry.get("suite") != args.json_filter_suite: + continue + if args.json_filter_priority is not None: + if entry.get("priority") != args.json_filter_priority: + continue + try: + prob, dt = parse_json_case(entry) + cases.append((prob, dt)) + except ValueError as e: + print(f"[warn] {path} case {case_id}: skipping — {e}", file=sys.stderr) + if not cases: + print( + f"error: {path}: no valid cases found " + f"(check --json-filter-suite / --json-filter-priority)", + file=sys.stderr, + ) + return 2 + elif args.miopen_file is not None: path = args.miopen_file lines = open(path).readlines() cases = [] @@ -564,6 +885,17 @@ def _u8(t): ) print(f"{'#'*72}", flush=True) + if args.ckprofiler is not None: + _ck_forw = {"fwd": 1, "wgrad": 4}[args.direction] + _run_ckprofiler( + problem=problem, + dtype=dtype, + ckprofiler=args.ckprofiler, + converter_script=args.ckprofiler_script, + forw=_ck_forw, + verify=int(args.verify), + ) + _common = dict( args=args, problem=problem, From 6634cc8979d24519e8d0386204c238b6cc768839 Mon Sep 17 00:00:00 2001 From: bartekxk Date: Thu, 6 Aug 2026 10:14:14 +0000 Subject: [PATCH 3/4] improvements --- .../benchmark/benchmark_implicit_gemm_conv.py | 337 ++++++++++++++---- .../instances/common/conv_implicit_gemm.py | 15 +- 2 files changed, 276 insertions(+), 76 deletions(-) diff --git a/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/benchmark_implicit_gemm_conv.py b/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/benchmark_implicit_gemm_conv.py index 4374871b6530..962eca352ad3 100644 --- a/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/benchmark_implicit_gemm_conv.py +++ b/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/benchmark_implicit_gemm_conv.py @@ -41,9 +41,11 @@ from __future__ import annotations import argparse +import csv import itertools import os import random +import re import sys from dataclasses import dataclass from typing import List @@ -498,7 +500,7 @@ def parse_miopen_cmd(cmd: str): def _run_ckprofiler( problem, dtype: str, ckprofiler: str, converter_script: str, forw: int, verify: int -) -> None: +) -> "list[dict]": """Delegate to convert_miopen_driver_to_profiler.py for the given ConvProblem. Builds a synthetic args namespace that mirrors what the converter script's @@ -508,8 +510,12 @@ def _run_ckprofiler( ``forw`` follows MIOpenDriver -F convention: 0 fwd+bwd_data+bwd_weight 1 fwd 2 bwd_data 4 bwd_weight 3 fwd+bwd_data 5 fwd+bwd_weight 6 bwd_data+bwd_weight + + Returns a list of dicts with keys ``direction``, ``ms``, ``tflops``, ``gbps`` + parsed from ckProfiler's "Best Perf:" output lines. """ import importlib.util + import subprocess import types ck_dtype_str = _CK_DTYPE_STR.get(dtype) @@ -518,7 +524,7 @@ def _run_ckprofiler( f"[ckprofiler] dtype={dtype!r} is not supported by ckProfiler; skipping", file=sys.stderr, ) - return + return [] # Load the converter script as a module without executing its __main__ block. spec = importlib.util.spec_from_file_location("_ck_converter", converter_script) @@ -528,7 +534,7 @@ def _run_ckprofiler( p = problem # Build a namespace that matches the attributes the converter's argparse produces. - args = types.SimpleNamespace( + ck_args = types.SimpleNamespace( ck_profiler_cmd=ckprofiler, data_type=ck_dtype_str, in_layout="NHWC" if not p.is_3d else "NDHWC", @@ -560,8 +566,73 @@ def _run_ckprofiler( list_instances=False, ) - mod.init_const_args(args) - mod.run_ck_profiler(args) + # Patch run_ck_profiler_cmd to capture stdout while still printing it. + # ckProfiler (grouped_conv) prints: + # Best configuration parameters: + # name: ... + # avg_time: + # tflops: + # GB/s: + _best_cfg_re = re.compile( + r"Best configuration parameters:.*?avg_time:\s*([\d.]+).*?tflops:\s*([\d.]+).*?GB/s:\s*([\d.]+)", + re.DOTALL, + ) + # Also accept the compact single-line format used by other CK profilers: + # Best Perf: ms, TFlops, GB/s + _best_perf_re = re.compile( + r"Best Perf:\s*([\d.]+)\s*ms,\s*([\d.]+)\s*TFlops,\s*([\d.]+)\s*GB/s" + ) + captured_rows: list[dict] = [] + _orig_run_cmd = mod.run_ck_profiler_cmd + + def _patched_run_cmd(cmd): + print("ckProfiler command:") + print(" ".join(cmd)) + result = subprocess.run( + cmd, text=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE + ) + output = result.stdout + result.stderr + print(result.stdout, end="") + print(result.stderr, end="", file=sys.stderr) + # Infer direction from the op name embedded in the command. + direction = "fwd" + for token in cmd: + if "bwd_weight" in token: + direction = "wgrad" + break + if "bwd_data" in token: + direction = "bwd_data" + break + for m in _best_cfg_re.finditer(output): + captured_rows.append( + { + "direction": direction, + "ms": float(m.group(1)), + "tflops": float(m.group(2)), + "gbps": float(m.group(3)), + } + ) + for m in _best_perf_re.finditer(output): + captured_rows.append( + { + "direction": direction, + "ms": float(m.group(1)), + "tflops": float(m.group(2)), + "gbps": float(m.group(3)), + } + ) + + mod.run_ck_profiler_cmd = _patched_run_cmd + try: + mod.init_const_args(ck_args) + # init_const_args overwrites ck_profiler_cmd with a hardcoded relative + # path ("../build/bin/ckProfiler"); restore the user-supplied binary. + ck_args.ck_profiler_cmd = ckprofiler + mod.run_ck_profiler(ck_args) + finally: + mod.run_ck_profiler_cmd = _orig_run_cmd + + return captured_rows # --------------------------------------------------------------------------- @@ -664,6 +735,17 @@ def main() -> int: ).replace("%(auto)s", str(list(_SPLIT_K_AUTO))), ) + parser.add_argument( + "--csv", + default=None, + metavar="FILE", + help=( + "write combined rocke + ckProfiler results to FILE (CSV format). " + "Each row is one rocke kernel; ck_tflops, ck_ms, ck_gbps, and " + "speedup_rocke_vs_ck columns are populated when --ckprofiler is also set." + ), + ) + ck_grp = parser.add_argument_group( "ckProfiler comparison", "Run ckProfiler on the same conv problem(s) for side-by-side comparison " @@ -793,7 +875,7 @@ def main() -> int: is_valid_wgrad_spec, ) from rocke.runtime import synchronize_and_release, time_launches - from rocke.runtime.hip_module import Runtime + from rocke.runtime.hip_module import HipError, Runtime from rocke.runtime.launcher import KernelLauncher, LaunchConfig def _u8(t): @@ -874,59 +956,148 @@ def _u8(t): ) cases = [(problem, args.dtype)] - all_rc = 0 - for case_idx, (problem, dtype) in enumerate(cases): - if len(cases) > 1: - print(f"\n{'#'*72}", flush=True) - print( - f"# Case {case_idx + 1}/{len(cases)}: {problem.short()} " - f"dtype={dtype} direction={args.direction}", - flush=True, - ) - print(f"{'#'*72}", flush=True) + _csv_fields = [ + "shape", + "dtype", + "direction", + "tile_m", + "tile_n", + "tile_k", + "warp_m", + "warp_n", + "warp_tile_mn", + "warp_tile_k", + "pipeline", + "epilogue", + "split_k", + "rocke_ms", + "rocke_tflops", + "rocke_gbps", + "passed", + "kernel_name", + "ck_tflops", + "ck_ms", + "ck_gbps", + "speedup_rocke_vs_ck", + ] - if args.ckprofiler is not None: - _ck_forw = {"fwd": 1, "wgrad": 4}[args.direction] - _run_ckprofiler( + all_rc = 0 + # Maps (shape, dtype, direction) -> best CK tflops/ms/gbps for that case. + # Populated before the rocke sweep so the CSV join is available immediately. + ck_best: dict[tuple, dict] = {} + + _csv_file = None + _csv_writer = None + if args.csv is not None: + _csv_file = open(args.csv, "w", newline="") + _csv_writer = csv.DictWriter(_csv_file, fieldnames=_csv_fields) + _csv_writer.writeheader() + _csv_file.flush() + + n_csv_rows = 0 + try: + for case_idx, (problem, dtype) in enumerate(cases): + if len(cases) > 1: + print(f"\n{'#'*72}", flush=True) + print( + f"# Case {case_idx + 1}/{len(cases)}: {problem.short()} " + f"dtype={dtype} direction={args.direction}", + flush=True, + ) + print(f"{'#'*72}", flush=True) + + if args.ckprofiler is not None: + _ck_forw = {"fwd": 1, "wgrad": 4}[args.direction] + ck_rows = _run_ckprofiler( + problem=problem, + dtype=dtype, + ckprofiler=args.ckprofiler, + converter_script=args.ckprofiler_script, + forw=_ck_forw, + verify=int(args.verify), + ) + # Keep the best (highest tflops) CK result for this case. + _key = (problem.short(), dtype, args.direction) + for row in ck_rows: + if row["direction"] == args.direction: + prev = ck_best.get(_key) + if prev is None or row["tflops"] > prev["tflops"]: + ck_best[_key] = row + + _common = dict( + args=args, problem=problem, dtype=dtype, - ckprofiler=args.ckprofiler, - converter_script=args.ckprofiler_script, - forw=_ck_forw, - verify=int(args.verify), + arch=arch, + target=target, + compile_kernel=compile_kernel, + ConvDataSpec=ConvDataSpec, + synchronize_and_release=synchronize_and_release, + time_launches=time_launches, + Runtime=Runtime, + KernelLauncher=KernelLauncher, + LaunchConfig=LaunchConfig, + u8=_u8, ) - _common = dict( - args=args, - problem=problem, - dtype=dtype, - arch=arch, - target=target, - compile_kernel=compile_kernel, - ConvDataSpec=ConvDataSpec, - synchronize_and_release=synchronize_and_release, - time_launches=time_launches, - Runtime=Runtime, - KernelLauncher=KernelLauncher, - LaunchConfig=LaunchConfig, - u8=_u8, - ) + if args.direction == "wgrad": + rc, rocke_results = _run_wgrad_sweep( + **_common, + WgradConvSpec=WgradConvSpec, + build_implicit_gemm_conv_wgrad=build_implicit_gemm_conv_wgrad, + is_valid_wgrad_spec=is_valid_wgrad_spec, + ) + else: + rc, rocke_results = _run_sweep( + **_common, + ImplicitGemmConvSpec=ImplicitGemmConvSpec, + build_implicit_gemm_conv=build_implicit_gemm_conv, + is_valid_spec_for_problem=is_valid_spec_for_problem, + ) + all_rc = all_rc or rc + + if _csv_writer is not None and rocke_results: + _shape = problem.short() + _key = (_shape, dtype, args.direction) + _ck = ck_best.get(_key) + r = rocke_results[0] # already sorted by tflops desc; [0] is best + speedup = (r.tflops / _ck["tflops"]) if _ck else None + _csv_writer.writerow( + { + "shape": _shape, + "dtype": dtype, + "direction": args.direction, + "tile_m": r.tile_m, + "tile_n": r.tile_n, + "tile_k": r.tile_k, + "warp_m": r.warp_m, + "warp_n": r.warp_n, + "warp_tile_mn": r.warp_tile_mn, + "warp_tile_k": r.warp_tile_k, + "pipeline": r.pipeline, + "epilogue": r.epilogue, + "split_k": r.split_k, + "rocke_ms": r.ms, + "rocke_tflops": r.tflops, + "rocke_gbps": r.gbps, + "passed": r.passed, + "kernel_name": r.kernel_name, + "ck_tflops": _ck["tflops"] if _ck else "", + "ck_ms": _ck["ms"] if _ck else "", + "ck_gbps": _ck["gbps"] if _ck else "", + "speedup_rocke_vs_ck": ( + f"{speedup:.4f}" if speedup is not None else "" + ), + } + ) + _csv_file.flush() + n_csv_rows += 1 + finally: + if _csv_file is not None: + _csv_file.close() + if n_csv_rows: + print(f"\nResults written to {args.csv} ({n_csv_rows} rows).") - if args.direction == "wgrad": - rc = _run_wgrad_sweep( - **_common, - WgradConvSpec=WgradConvSpec, - build_implicit_gemm_conv_wgrad=build_implicit_gemm_conv_wgrad, - is_valid_wgrad_spec=is_valid_wgrad_spec, - ) - else: - rc = _run_sweep( - **_common, - ImplicitGemmConvSpec=ImplicitGemmConvSpec, - build_implicit_gemm_conv=build_implicit_gemm_conv, - is_valid_spec_for_problem=is_valid_spec_for_problem, - ) - all_rc = all_rc or rc return all_rc @@ -1009,7 +1180,7 @@ def _make(*shape): f"{dtype} convolution is not supported on this target.", file=sys.stderr, ) - return 2 + return 2, [] _tile_mn = _TILE_MN_GFX1250 if arch == "gfx1250" else _TILE_MN _warp_mn = _WARP_MN_GFX1250 if arch == "gfx1250" else _WARP_MN @@ -1130,11 +1301,24 @@ def _make(*shape): artifact = compile_kernel(kernel, arch=arch) n_built += 1 - launcher = KernelLauncher( - hsaco=artifact.hsaco, - kernel_name=artifact.kernel_name, - signature=sig, - ) + try: + launcher = KernelLauncher( + hsaco=artifact.hsaco, + kernel_name=artifact.kernel_name, + signature=sig, + ) + except HipError as e: + n_skipped += 1 + print( + f"[skip] kernel load failed for {artifact.kernel_name} " + f"tile={tile_m}x{tile_n}x{tile_k} " + f"warp={warp_m}x{warp_n} " + f"atom={warp_tile_mn}x{warp_tile_mn}x{warp_tile_k} " + f"{pipeline}/{epilogue}: {e}", + file=sys.stderr, + flush=True, + ) + continue grid = _grid_for_spec(spec, p) block = (spec.block_size, 1, 1) stream = 0 @@ -1170,7 +1354,7 @@ def _make(*shape): rt.free(A_dev) rt.free(B_dev) rt.free(D_dev) - return 1 + return 1, [] rt.memset(D_dev, 0, D_t.nbytes) ms = time_launches( @@ -1225,7 +1409,7 @@ def _make(*shape): if not results: print("No valid configurations found.", file=sys.stderr) - return 1 + return 1, [] results.sort(key=lambda r: r.tflops, reverse=True) top_n = min(args.top, len(results)) @@ -1261,7 +1445,7 @@ def _make(*shape): best = results[0] print(f"\nBest: {best.tflops:.1f} TFLOPS — {best.kernel_name}") - return 0 + return 0, results def _run_wgrad_sweep( @@ -1475,11 +1659,24 @@ def _make(*shape): artifact = compile_kernel(kernel, arch=arch) n_built += 1 - launcher = KernelLauncher( - hsaco=artifact.hsaco, - kernel_name=artifact.kernel_name, - signature=sig, - ) + try: + launcher = KernelLauncher( + hsaco=artifact.hsaco, + kernel_name=artifact.kernel_name, + signature=sig, + ) + except HipError as e: + n_skipped += 1 + print( + f"[skip] kernel load failed for {artifact.kernel_name} " + f"tile={tile_m}x{tile_n}x{tile_k} " + f"warp={warp_m}x{warp_n} " + f"atom={warp_tile_mn}x{warp_tile_mn}x{warp_tile_k} " + f"{pipeline}/{epilogue}: {e}", + file=sys.stderr, + flush=True, + ) + continue grid = _grid_for_wgrad_spec(spec, resolved_split_k) block = (spec.block_size, 1, 1) stream = 0 @@ -1515,7 +1712,7 @@ def _make(*shape): rt.free(dY_dev) rt.free(X_dev) rt.free(dW_dev) - return 1 + return 1, [] # For split_k > 1 the timed loop must zero-init dW before every launch # so the atomic accumulation starts from zero each iteration. @@ -1576,7 +1773,7 @@ def _launch_spk(): if not results: print("No valid wgrad configurations found.", file=sys.stderr) - return 1 + return 1, [] results.sort(key=lambda r: r.tflops, reverse=True) top_n = min(args.top, len(results)) @@ -1598,7 +1795,7 @@ def _launch_spk(): best = results[0] print(f"\nBest: {best.tflops:.1f} TFLOPS — {best.kernel_name}") - return 0 + return 0, results if __name__ == "__main__": diff --git a/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/instances/common/conv_implicit_gemm.py b/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/instances/common/conv_implicit_gemm.py index a5f980434aac..a705768f760f 100644 --- a/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/instances/common/conv_implicit_gemm.py +++ b/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/instances/common/conv_implicit_gemm.py @@ -398,13 +398,16 @@ def is_valid_spec(spec: ImplicitGemmConvSpec, arch: str = "gfx950") -> Tuple[boo # Check global store vector size and disable default epilogue for # vec_size_c > 1 - if ( - spec.vector_size_c is not None - and spec.vector_size_c > 1 - and spec.epilogue == "default" - ): + _eff_vec_c = ( + spec.vector_size_c + if spec.vector_size_c is not None + else ImplicitGemmConvSpec.default_vector_sizes( + spec.problem.C, spec.problem.K, spec.data.dtype_d + )[2] + ) + if _eff_vec_c > 1 and spec.epilogue == "default": return False, ( - f"default epilogue is not supported with vector size c: {spec.vector_size_c}" + f"default epilogue is not supported with vector size c: {_eff_vec_c}" ) # The MMA *family* is selected from the target's wave size: CDNA (wave64) From 5ce5b363c958f9376371c9b0a511312216f28c4f Mon Sep 17 00:00:00 2001 From: bartekxk Date: Fri, 7 Aug 2026 08:39:05 +0000 Subject: [PATCH 4/4] results --- .../rocke/benchmark/bench_cases_conv.json | 127 -------- .../benchmark/benchmark_implicit_gemm_conv.py | 296 ++++++++++++------ .../grouped_conv_shapes/bench_cases_conv.json | 113 +++++++ .../bench_cases_conv_bwd.json | 10 +- ...ench_cases_results_bwd_gfx950_5percent.csv | 21 ++ .../bench_cases_results_gfx950_5percent.csv | 101 ++++++ 6 files changed, 446 insertions(+), 222 deletions(-) delete mode 100644 dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/bench_cases_conv.json create mode 100644 dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/grouped_conv_shapes/bench_cases_conv.json rename dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/{ => grouped_conv_shapes}/bench_cases_conv_bwd.json (98%) create mode 100644 dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/grouped_conv_shapes/bench_cases_results_bwd_gfx950_5percent.csv create mode 100644 dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/grouped_conv_shapes/bench_cases_results_gfx950_5percent.csv diff --git a/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/bench_cases_conv.json b/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/bench_cases_conv.json deleted file mode 100644 index a92db289c6b8..000000000000 --- a/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/bench_cases_conv.json +++ /dev/null @@ -1,127 +0,0 @@ -[ - {"case_id":"F001","owner_story":"CF4","model":"ResNet-50","variant":"stem_7x7_s2_nchw_bf16","domain":"legacy_baseline","op":"conv2d","layout":"NCHW","N":1,"Cin":3,"Cout":64,"H":224,"W":224,"Kh":7,"Kw":7,"stride":2,"pad":3,"dilation":1,"groups":1,"dtype":"bf16","capability":"stem","used_by":["ResNet-50","ResNet-101"],"note":"classic MLPerf baseline stem; RGB->64, 224->112","suite":"regular","purpose":"acceptance","priority":"P0"}, - {"case_id":"F002","owner_story":"CF4","model":"ResNet-50","variant":"stem_7x7_s2_nhwc_fp16","domain":"legacy_baseline","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":64,"H":224,"W":224,"Kh":7,"Kw":7,"stride":2,"pad":3,"dilation":1,"groups":1,"dtype":"fp16","capability":"stem","used_by":["ResNet-50"],"note":"channels-last twin of the stem","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, - {"case_id":"F003","owner_story":"CF6A","model":"ResNet-50","variant":"stem_7x7_s2_int8","domain":"legacy_baseline","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":64,"H":224,"W":224,"Kh":7,"Kw":7,"stride":2,"pad":3,"dilation":1,"groups":1,"dtype":"int8","capability":"stem","used_by":["ResNet-50"],"note":"quantized deployed-vision path","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, - {"case_id":"F004","owner_story":"CF1","model":"ResNet-50","variant":"bottleneck_3x3_s1_nhwc_bf16","domain":"legacy_baseline","op":"conv2d","layout":"NHWC","N":1,"Cin":64,"Cout":64,"H":56,"W":56,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["ResNet-50"],"note":"canonical dense 3x3 (implicit-GEMM / Winograd territory)","suite":"regular","purpose":"acceptance","priority":"P0"}, - {"case_id":"F005","owner_story":"CF2","model":"ResNet-50","variant":"reduce_1x1_nhwc_bf16","domain":"legacy_baseline","op":"conv2d","layout":"NHWC","N":1,"Cin":256,"Cout":64,"H":56,"W":56,"Kh":1,"Kw":1,"stride":1,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"pointwise_1x1","used_by":["ResNet-50"],"note":"1x1 channel reduce = pure GEMM","suite":"regular","purpose":"acceptance","priority":"P0"}, - {"case_id":"F006","owner_story":"CF2","model":"ResNet-50","variant":"expand_1x1_nhwc_bf16","domain":"legacy_baseline","op":"conv2d","layout":"NHWC","N":1,"Cin":64,"Cout":256,"H":56,"W":56,"Kh":1,"Kw":1,"stride":1,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"pointwise_1x1","used_by":["ResNet-50"],"note":"1x1 channel expand","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, - {"case_id":"F007","owner_story":"CF1","model":"ResNet-50","variant":"downsample_3x3_s2_nhwc_bf16","domain":"legacy_baseline","op":"conv2d","layout":"NHWC","N":1,"Cin":128,"Cout":128,"H":56,"W":56,"Kh":3,"Kw":3,"stride":2,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["ResNet-50"],"note":"stage transition 56->28","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, - {"case_id":"F008","owner_story":"CF4","model":"ResNet-50","variant":"stem_7x7_s2_train_n256_bf16","domain":"legacy_baseline","op":"conv2d","layout":"NHWC","N":256,"Cin":3,"Cout":64,"H":224,"W":224,"Kh":7,"Kw":7,"stride":2,"pad":3,"dilation":1,"groups":1,"dtype":"bf16","capability":"stem","used_by":["ResNet-50"],"note":"MLPerf-scale training batch","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, - - {"case_id":"F009","owner_story":"CF2","model":"MobileNetV4-Conv-L","variant":"ib_expand_1x1_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":24,"Cout":144,"H":56,"W":56,"Kh":1,"Kw":1,"stride":1,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"pointwise_1x1","used_by":["MobileNetV4","EfficientNetV2-S","MobileNetV3"],"note":"inverted-bottleneck expand (ratio 6)","suite":"regular","purpose":"acceptance","priority":"P0"}, - {"case_id":"F010","owner_story":"CF10","model":"MobileNetV4-Conv-L","variant":"uib_dw3x3_s1_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":144,"Cout":144,"H":56,"W":56,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":144,"dtype":"bf16","capability":"depthwise","used_by":["MobileNetV4","EfficientNetV2-S","MobileNetV3"],"note":"depthwise 3x3, memory-bound low-AI kernel","suite":"regular","purpose":"acceptance","priority":"P0"}, - {"case_id":"F011","owner_story":"CF10","model":"MobileNetV4-Conv-L","variant":"uib_dw5x5_s2_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":144,"Cout":144,"H":56,"W":56,"Kh":5,"Kw":5,"stride":2,"pad":2,"dilation":1,"groups":144,"dtype":"bf16","capability":"depthwise","used_by":["MobileNetV4","EfficientNet-B x"],"note":"depthwise 5x5 stride-2 downsample 56->28","suite":"regular","purpose":"acceptance","priority":"P1"}, - {"case_id":"F012","owner_story":"CF2","model":"MobileNetV4-Conv-L","variant":"ib_project_1x1_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":144,"Cout":40,"H":28,"W":28,"Kh":1,"Kw":1,"stride":1,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"pointwise_1x1","used_by":["MobileNetV4"],"note":"inverted-bottleneck linear project","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, - {"case_id":"F013","owner_story":"CF6B","model":"MobileNetV4-Conv-S","variant":"uib_dw3x3_int8","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":96,"Cout":96,"H":56,"W":56,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":96,"dtype":"int8","capability":"depthwise","used_by":["MobileNetV4","MobileNetV3"],"note":"quantized on-device mobile inference","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, - {"case_id":"F014","owner_story":"CF1","model":"EfficientNetV2-S","variant":"fused_mbconv_3x3_s2_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":24,"Cout":48,"H":192,"W":192,"Kh":3,"Kw":3,"stride":2,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["EfficientNetV2-S","EfficientNetV2-M"],"note":"fused-MBConv uses a full (non-DW) 3x3 in early stages","suite":"regular","purpose":"acceptance","priority":"P1"}, - {"case_id":"F015","owner_story":"CF10","model":"EfficientNetV2-S","variant":"mbconv_dw3x3_se_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":256,"Cout":256,"H":24,"W":24,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":256,"dtype":"bf16","capability":"depthwise","used_by":["EfficientNetV2-S"],"note":"deep MBConv depthwise (SE block around it)","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, - - {"case_id":"F016","owner_story":"CF3","model":"ConvNeXt-V2-L","variant":"stem_patchify_4x4_s4_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":192,"H":224,"W":224,"Kh":4,"Kw":4,"stride":4,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"patchify_strided","used_by":["ConvNeXt-V2-L","ConvNeXt-V2-B","ConvNeXt-V1"],"note":"non-overlap patchify stem (stride=kernel), 224->56","suite":"regular","purpose":"acceptance","priority":"P0"}, - {"case_id":"F017","owner_story":"CF13","model":"ConvNeXt-V2-L","variant":"dw7x7_stage1_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":192,"Cout":192,"H":56,"W":56,"Kh":7,"Kw":7,"stride":1,"pad":3,"dilation":1,"groups":192,"dtype":"bf16","capability":"large_kernel_dw","used_by":["ConvNeXt-V2-L","ConvNeXt-V2-H"],"note":"7x7 depthwise token-mixer (the ViT-competitive move)","suite":"regular","purpose":"acceptance","priority":"P0"}, - {"case_id":"F018","owner_story":"CF13","model":"ConvNeXt-V2-L","variant":"dw7x7_stage3_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":768,"Cout":768,"H":14,"W":14,"Kh":7,"Kw":7,"stride":1,"pad":3,"dilation":1,"groups":768,"dtype":"bf16","capability":"large_kernel_dw","used_by":["ConvNeXt-V2-L","ConvNeXt-V2-H"],"note":"stage-3 7x7 depthwise","suite":"regular","purpose":"acceptance","priority":"P0"}, - {"case_id":"F019","owner_story":"CF13","model":"ConvNeXt-V2-L","variant":"dw7x7_stage4_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":1536,"Cout":1536,"H":7,"W":7,"Kh":7,"Kw":7,"stride":1,"pad":3,"dilation":1,"groups":1536,"dtype":"bf16","capability":"large_kernel_dw","used_by":["ConvNeXt-V2-L"],"note":"deepest stage, kernel ~= feature-map size","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, - {"case_id":"F020","owner_story":"CF2","model":"ConvNeXt-V2-L","variant":"block_pw_expand_1x1_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":768,"Cout":3072,"H":14,"W":14,"Kh":1,"Kw":1,"stride":1,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"pointwise_1x1","used_by":["ConvNeXt-V2-L"],"note":"4x pointwise MLP expand (dominates block FLOPs)","suite":"regular","purpose":"acceptance","priority":"P0"}, - {"case_id":"F021","owner_story":"CF3","model":"ConvNeXt-V2-L","variant":"downsample_2x2_s2_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":384,"Cout":768,"H":28,"W":28,"Kh":2,"Kw":2,"stride":2,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"patchify_strided","used_by":["ConvNeXt-V2-L","ConvNeXt-V1"],"note":"2x2 stride-2 downsample layer (stride=kernel)","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, - {"case_id":"F022","owner_story":"CF13","model":"ConvNeXt-V2-L","variant":"dw7x7_stage3_fp16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":768,"Cout":768,"H":14,"W":14,"Kh":7,"Kw":7,"stride":1,"pad":3,"dilation":1,"groups":768,"dtype":"fp16","capability":"large_kernel_dw","used_by":["ConvNeXt-V2-L"],"note":"fp16 twin of the 7x7 DW","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, - {"case_id":"F023","owner_story":"CF13","model":"RepLKNet-31B","variant":"dw31x31_stage2_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":256,"Cout":256,"H":28,"W":28,"Kh":31,"Kw":31,"stride":1,"pad":15,"dilation":1,"groups":256,"dtype":"bf16","capability":"large_kernel_dw","used_by":["RepLKNet-31B","RepLKNet-31L"],"note":"31x31 reparameterized depthwise (large effective receptive field)","suite":"regular","purpose":"acceptance","priority":"P0"}, - {"case_id":"F024","owner_story":"CF13","model":"RepLKNet-31B","variant":"dw31x31_stage3_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":512,"Cout":512,"H":14,"W":14,"Kh":31,"Kw":31,"stride":1,"pad":15,"dilation":1,"groups":512,"dtype":"bf16","capability":"large_kernel_dw","used_by":["RepLKNet-31B"],"note":"31x31 DW at 14x14 (kernel >> feature map, heavy halo)","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, - {"case_id":"F025","owner_story":"CF13","composition_id":"slak_dw51_stripes","branch":"vertical","composition_op":"sum","composition_timing":"both branch kernels plus output sum","model":"SLaK","variant":"dw51x5_stripe_vertical_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":512,"Cout":512,"H":14,"W":14,"Kh":51,"Kw":5,"stride":1,"pads_before":[25,2],"pads_after":[25,2],"dilation":1,"groups":512,"dtype":"bf16","capability":"large_kernel_dw","used_by":["SLaK-T","SLaK-S"],"note":"executable 51x5 depthwise stripe branch; paired with the separate 5x51 branch, not a synthetic 51x51 convolution","suite":"extended","purpose":"frontier","priority":"P2"}, - {"case_id":"F026","owner_story":"CF13","composition_id":"slak_dw51_stripes","branch":"horizontal","composition_op":"sum","composition_timing":"both branch kernels plus output sum","model":"SLaK","variant":"dw5x51_stripe_horizontal_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":512,"Cout":512,"H":14,"W":14,"Kh":5,"Kw":51,"stride":1,"pads_before":[2,25],"pads_after":[2,25],"dilation":1,"groups":512,"dtype":"bf16","capability":"large_kernel_dw","used_by":["SLaK-T","SLaK-S"],"note":"executable 5x51 depthwise stripe branch; paired with the separate 51x5 branch, not a synthetic 51x51 convolution","suite":"extended","purpose":"frontier","priority":"P2"}, - {"case_id":"F027","owner_story":"CF13","model":"UniRepLKNet-L","variant":"dw13x13_dilated_reparam_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":384,"Cout":384,"H":28,"W":28,"Kh":13,"Kw":13,"stride":1,"pad":6,"dilation":1,"groups":384,"dtype":"bf16","capability":"large_kernel_dw","used_by":["UniRepLKNet-L","UniRepLKNet-B"],"note":"inference-fused single 13x13 depthwise convolution; training-time dilated branches are already reparameterized, so this runtime row has dilation=1","suite":"extended","purpose":"frontier","priority":"P2"}, - - {"case_id":"F028","owner_story":"CF3","model":"ViT-L/14","variant":"patchify_conv2d_bf16","domain":"mllm_vision","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":1024,"H":224,"W":224,"Kh":14,"Kw":14,"stride":14,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"patchify_strided","used_by":["CLIP-ViT-L/14","ViT-L/14","OpenCLIP-ViT-L"],"note":"the ubiquitous ViT patch-embed conv (stride=kernel), 224->16x16","suite":"regular","purpose":"acceptance","priority":"P0"}, - {"case_id":"F029","owner_story":"CF3","model":"SigLIP-so400m","variant":"patchify14_384_bf16","domain":"mllm_vision","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":1152,"H":384,"W":384,"Kh":14,"Kw":14,"stride":14,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"patchify_strided","used_by":["SigLIP-so400m","SigLIP2","DeepSeek-VL2"],"note":"384px SigLIP patch-embed -> 27x27 tokens; dominant VLM vision encoder","suite":"regular","purpose":"acceptance","priority":"P0"}, - {"case_id":"F030","owner_story":"CF3","model":"CLIP-ViT-B/16","variant":"patchify16_bf16","domain":"mllm_vision","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":768,"H":224,"W":224,"Kh":16,"Kw":16,"stride":16,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"patchify_strided","used_by":["CLIP-ViT-B/16","ViT-B/16"],"note":"16x16 patch-embed -> 14x14","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, - {"case_id":"F031","owner_story":"CF14","model":"Qwen2-VL","variant":"patchify_conv3d_bf16","domain":"mllm_vision","op":"conv3d","layout":"NDHWC","N":1,"Cin":3,"Cout":1280,"D":2,"H":224,"W":224,"Kd":2,"Kh":14,"Kw":14,"strides":[2,14,14],"pads_before":[0,0,0],"pads_after":[0,0,0],"dilations":[1,1,1],"output_spatial":[1,16,16],"groups":1,"dtype":"bf16","capability":"patchify_strided","used_by":["Qwen2-VL","Qwen2.5-VL"],"note":"spatiotemporal patch-embed Conv3d kernel=stride=[2,14,14], no padding; images duplicated to 2 frames","suite":"regular","purpose":"acceptance","priority":"P0"}, - {"case_id":"F032","owner_story":"CF3","model":"SAM-ViT-H","variant":"patchify16_bf16","domain":"mllm_vision","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":1280,"H":1024,"W":1024,"Kh":16,"Kw":16,"stride":16,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"patchify_strided","used_by":["SAM-ViT-H","SAM2"],"note":"high-res (1024px) segmentation patch-embed -> 64x64","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, - {"case_id":"F033","owner_story":"CF3","model":"SD3-MMDiT","variant":"latent_patchify_2x2_bf16","domain":"diffusion_vae","op":"conv2d","layout":"NHWC","N":2,"Cin":16,"Cout":1536,"H":128,"W":128,"Kh":2,"Kw":2,"stride":2,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"patchify_strided","used_by":["SD3-Medium","SD3.5"],"note":"MMDiT latent patch-embed on 16ch latent (2x2, stride=kernel)","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, - {"case_id":"F034","owner_story":"CF6A","model":"ViT-B/16-edge","variant":"patchify16_int8","domain":"mllm_vision","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":768,"H":224,"W":224,"Kh":16,"Kw":16,"stride":16,"pad":0,"dilation":1,"groups":1,"dtype":"int8","capability":"patchify_strided","used_by":["ViT-B/16"],"note":"quantized edge ViT patch-embed","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, - - {"case_id":"F035","owner_story":"CF4","model":"YOLO11-L","variant":"stem_3x3_s2_bf16","domain":"detection","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":64,"H":640,"W":640,"Kh":3,"Kw":3,"stride":2,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"stem","used_by":["YOLO11-L","YOLO11-M","YOLOv8-L"],"note":"detector stem at 640; modern nets use 3x3 s2, not 7x7","suite":"regular","purpose":"acceptance","priority":"P0"}, - {"case_id":"F036","owner_story":"CF1","model":"YOLO11-L","variant":"down_3x3_s2_128_bf16","domain":"detection","op":"conv2d","layout":"NHWC","N":1,"Cin":64,"Cout":128,"H":320,"W":320,"Kh":3,"Kw":3,"stride":2,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["YOLO11-L","YOLOv8-L"],"note":"P2 downsample 320->160","suite":"regular","purpose":"acceptance","priority":"P0"}, - {"case_id":"F037","owner_story":"CF1","model":"YOLO11-L","variant":"down_3x3_s2_256_bf16","domain":"detection","op":"conv2d","layout":"NHWC","N":1,"Cin":128,"Cout":256,"H":160,"W":160,"Kh":3,"Kw":3,"stride":2,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["YOLO11-L"],"note":"P3 downsample 160->80","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, - {"case_id":"F038","owner_story":"CF1","model":"YOLO11-L","variant":"down_3x3_s2_512_bf16","domain":"detection","op":"conv2d","layout":"NHWC","N":1,"Cin":256,"Cout":512,"H":80,"W":80,"Kh":3,"Kw":3,"stride":2,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["YOLO11-L"],"note":"P4 downsample 80->40","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, - {"case_id":"F039","owner_story":"CF2","model":"YOLO11-L","variant":"c3k2_pw_1x1_bf16","domain":"detection","op":"conv2d","layout":"NHWC","N":1,"Cin":512,"Cout":256,"H":40,"W":40,"Kh":1,"Kw":1,"stride":1,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"pointwise_1x1","used_by":["YOLO11-L"],"note":"C3k2 split/transition 1x1","suite":"regular","purpose":"acceptance","priority":"P0"}, - {"case_id":"F040","owner_story":"CF1","model":"YOLO11-L","variant":"c3k2_bottleneck_3x3_bf16","domain":"detection","op":"conv2d","layout":"NHWC","N":1,"Cin":256,"Cout":256,"H":40,"W":40,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["YOLO11-L"],"note":"C3k2 uses two small 3x3 convs (vs YOLOv8 one large conv)","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, - {"case_id":"F041","owner_story":"CF1","model":"YOLO11-L","variant":"detect_head_3x3_bf16","domain":"detection","op":"conv2d","layout":"NHWC","N":1,"Cin":256,"Cout":256,"H":80,"W":80,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["YOLO11-L"],"note":"detection head conv (P3 scale)","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, - {"case_id":"F042","owner_story":"CF6A","model":"YOLO11-L","variant":"stem_3x3_s2_int8","domain":"detection","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":64,"H":640,"W":640,"Kh":3,"Kw":3,"stride":2,"pad":1,"dilation":1,"groups":1,"dtype":"int8","capability":"stem","used_by":["YOLO11-L","YOLOv8"],"note":"quantized deployed detector","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, - {"case_id":"F043","owner_story":"CF10","model":"YOLO11-L","variant":"dwsep_dw3x3_p3_bf16","domain":"detection","op":"conv2d","layout":"NHWC","N":1,"Cin":256,"Cout":256,"H":80,"W":80,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":256,"dtype":"bf16","capability":"depthwise","used_by":["YOLO11-L"],"note":"depthwise-separable variant block","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, - {"case_id":"F044","owner_story":"CF4","model":"YOLO11-L","variant":"stem_3x3_s2_1280_bf16","domain":"detection","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":64,"H":1280,"W":1280,"Kh":3,"Kw":3,"stride":2,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"stem","used_by":["YOLO11-L"],"note":"high-res 1280 input sweep","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, - - {"case_id":"F045","owner_story":"CF1","model":"SDXL-VAE","variant":"enc_conv_in_3x3_fp16","domain":"diffusion_vae","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":128,"H":1024,"W":1024,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"fp16","capability":"dense_smallk","used_by":["SDXL-VAE","SD1.5-VAE"],"note":"encoder conv_in at full 1024px (bandwidth-heavy high-res)","suite":"regular","purpose":"acceptance","priority":"P0"}, - {"case_id":"F046","owner_story":"CF1","model":"SDXL-VAE","variant":"enc_resnet_3x3_128_bf16","domain":"diffusion_vae","op":"conv2d","layout":"NHWC","N":1,"Cin":128,"Cout":128,"H":1024,"W":1024,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["SDXL-VAE"],"note":"encoder ResNet block 3x3 at 1024px","suite":"regular","purpose":"acceptance","priority":"P1"}, - {"case_id":"F047","owner_story":"CF1","model":"SDXL-VAE","variant":"enc_downsample_3x3_s2_bf16","domain":"diffusion_vae","op":"conv2d","layout":"NHWC","N":1,"Cin":128,"Cout":128,"H":1024,"W":1024,"Kh":3,"Kw":3,"stride":2,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["SDXL-VAE"],"note":"encoder 8x downsample stage 1024->512","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, - {"case_id":"F048","owner_story":"CF1","model":"SDXL-VAE","variant":"mid_3x3_512_bf16","domain":"diffusion_vae","op":"conv2d","layout":"NHWC","N":1,"Cin":512,"Cout":512,"H":128,"W":128,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["SDXL-VAE","SD3-VAE"],"note":"mid-block 3x3 at latent resolution 128","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, - {"case_id":"F049","owner_story":"CF1","model":"SDXL-VAE","variant":"dec_resnet_3x3_512_bf16","domain":"diffusion_vae","op":"conv2d","layout":"NHWC","N":1,"Cin":512,"Cout":512,"H":128,"W":128,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["SDXL-VAE"],"note":"decoder ResNet block 3x3","suite":"regular","purpose":"acceptance","priority":"P1"}, - {"case_id":"F050","owner_story":"CF1","model":"SDXL-VAE","variant":"dec_upsample_conv_3x3_bf16","domain":"diffusion_vae","op":"conv2d","layout":"NHWC","N":1,"Cin":512,"Cout":512,"H":256,"W":256,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"pre_op":{"type":"external_upsample","benchmarked":false},"dtype":"bf16","capability":"upsample_conv","used_by":["SDXL-VAE","SD1.5-VAE"],"note":"benchmarks only the 3x3 convolution at the already-upsampled 256x256 shape; external interpolation is excluded","suite":"regular","purpose":"acceptance","priority":"P0"}, - {"case_id":"F051","owner_story":"CF1","model":"SDXL-VAE","variant":"dec_conv_out_3x3_1024_fp32","domain":"diffusion_vae","op":"conv2d","layout":"NHWC","N":1,"Cin":128,"Cout":3,"H":1024,"W":1024,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"fp32","capability":"dense_smallk","used_by":["SDXL-VAE"],"note":"decoder conv_out at 1024px; often kept fp32 for reconstruction stability","suite":"regular","purpose":"acceptance","priority":"P0"}, - {"case_id":"F052","owner_story":"CF1","model":"SD3-VAE","variant":"dec_conv_in_16ch_3x3_bf16","domain":"diffusion_vae","op":"conv2d","layout":"NHWC","N":1,"Cin":16,"Cout":512,"H":128,"W":128,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["SD3-VAE","Flux.1-VAE"],"note":"16-channel latent (12x compression) decoder conv_in","suite":"regular","purpose":"acceptance","priority":"P1"}, - {"case_id":"F053","owner_story":"CF1","model":"Flux.2-VAE","variant":"dec_conv_in_32ch_3x3_bf16","domain":"diffusion_vae","op":"conv2d","layout":"NHWC","N":1,"Cin":32,"Cout":512,"H":128,"W":128,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["Flux.2-VAE"],"note":"32-channel latent (~6x compression, lowest yet)","suite":"extended","purpose":"frontier","priority":"P2"}, - {"case_id":"F054","owner_story":"CF22","model":"VAE-transposed-decoder","variant":"dec_convtranspose_4x4_s2_bf16","domain":"diffusion_vae","op":"conv2d_transpose","layout":"NHWC","N":1,"Cin":512,"Cout":512,"H":128,"W":128,"Kh":4,"Kw":4,"stride":2,"pad":1,"output_padding":0,"dilation":1,"output_spatial":[256,256],"groups":1,"dtype":"bf16","capability":"transposed_upsample","used_by":["GAN-decoders","legacy-VAE-decoders"],"note":"genuine fractionally-strided transposed convolution; 4x4 s2 p1 with output_padding=0 maps 128x128 to 256x256","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, - {"case_id":"F055","owner_story":"CF1","model":"SDXL-VAE","variant":"dec_conv_out_3x3_1536_fp32","domain":"diffusion_vae","op":"conv2d","layout":"NHWC","N":1,"Cin":128,"Cout":3,"H":1536,"W":1536,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"fp32","capability":"dense_smallk","used_by":["SDXL-VAE"],"note":"high-res 1536 decode sweep (VAE decode is the perf tail of image gen)","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, - - {"case_id":"F056","owner_story":"CF16C","model":"HunyuanVideo-VAE","variant":"enc_causal_conv_in_3x3x3_bf16","domain":"video_vae","op":"conv3d","layout":"NDHWC","N":1,"Cin":3,"Cout":128,"D":17,"H":256,"W":256,"Kd":3,"Kh":3,"Kw":3,"strides":[1,1,1],"pads_before":[2,1,1],"pads_after":[0,1,1],"dilations":[1,1,1],"output_spatial":[17,256,256],"groups":1,"causal":1,"execution":"full_clip","dtype":"bf16","capability":"conv3d_causal","used_by":["HunyuanVideo-VAE","WAN-VAE","Cosmos-Tokenizer"],"note":"full-clip CausalConv3D encoder conv_in with temporal past-only padding","suite":"regular","purpose":"frontier","priority":"P0"}, - {"case_id":"F057","owner_story":"CF16C","model":"HunyuanVideo-VAE","variant":"enc_causal_3x3x3_128_bf16","domain":"video_vae","op":"conv3d","layout":"NDHWC","N":1,"Cin":128,"Cout":128,"D":17,"H":256,"W":256,"Kd":3,"Kh":3,"Kw":3,"strides":[1,1,1],"pads_before":[2,1,1],"pads_after":[0,1,1],"dilations":[1,1,1],"output_spatial":[17,256,256],"groups":1,"causal":1,"execution":"full_clip","dtype":"bf16","capability":"conv3d_causal","used_by":["HunyuanVideo-VAE","WAN-VAE"],"note":"ordinary full-clip causal 3D ResNet block","suite":"regular","purpose":"frontier","priority":"P1"}, - {"case_id":"F058","owner_story":"CF16C","model":"HunyuanVideo-VAE","variant":"enc_spatial_down_s122_bf16","domain":"video_vae","op":"conv3d","layout":"NDHWC","N":1,"Cin":128,"Cout":256,"D":17,"H":256,"W":256,"Kd":3,"Kh":3,"Kw":3,"strides":[1,2,2],"pads_before":[2,1,1],"pads_after":[0,1,1],"dilations":[1,1,1],"output_spatial":[17,128,128],"groups":1,"causal":1,"execution":"full_clip","dtype":"bf16","capability":"conv3d_causal","used_by":["HunyuanVideo-VAE"],"note":"full-clip spatial downsample uses stride [1,2,2]; temporal length is preserved","suite":"extended","purpose":"frontier","priority":"P1"}, - {"case_id":"F059","owner_story":"CF16C","model":"HunyuanVideo-VAE","variant":"enc_temporal_down_s2_bf16","domain":"video_vae","op":"conv3d","layout":"NDHWC","N":1,"Cin":256,"Cout":256,"D":17,"H":64,"W":64,"Kd":3,"Kh":3,"Kw":3,"strides":[2,1,1],"pads_before":[2,1,1],"pads_after":[0,1,1],"dilations":[1,1,1],"output_spatial":[9,64,64],"groups":1,"causal":1,"execution":"full_clip","dtype":"bf16","capability":"conv3d_causal","used_by":["HunyuanVideo-VAE"],"note":"full-clip temporal downsample uses stride [2,1,1], mapping 17 frames to 9 outputs","suite":"extended","purpose":"frontier","priority":"P1"}, - {"case_id":"F060","owner_story":"CF16C","model":"HunyuanVideo-VAE","variant":"dec_causal_3x3x3_512_bf16","domain":"video_vae","op":"conv3d","layout":"NDHWC","N":1,"Cin":512,"Cout":512,"D":5,"H":32,"W":32,"Kd":3,"Kh":3,"Kw":3,"strides":[1,1,1],"pads_before":[2,1,1],"pads_after":[0,1,1],"dilations":[1,1,1],"output_spatial":[5,32,32],"groups":1,"causal":1,"execution":"full_clip","dtype":"bf16","capability":"conv3d_causal","used_by":["HunyuanVideo-VAE"],"note":"full-clip decoder causal 3D block at latent resolution","suite":"regular","purpose":"frontier","priority":"P1"}, - {"case_id":"F061","owner_story":"CF16C","model":"HunyuanVideo-VAE","variant":"dec_upsample_conv3d_bf16","domain":"video_vae","op":"conv3d","layout":"NDHWC","N":1,"Cin":256,"Cout":256,"D":9,"H":128,"W":128,"Kd":3,"Kh":3,"Kw":3,"strides":[1,1,1],"pads_before":[2,1,1],"pads_after":[0,1,1],"dilations":[1,1,1],"output_spatial":[9,128,128],"groups":1,"causal":1,"execution":"full_clip","pre_op":{"type":"external_upsample","benchmarked":false},"dtype":"bf16","capability":"upsample_conv","used_by":["HunyuanVideo-VAE","WAN-VAE"],"note":"benchmarks only the causal 3D convolution at the already-upsampled [9,128,128] shape; external interpolation or pixel shuffle is excluded","suite":"extended","purpose":"frontier","priority":"P2"}, - {"case_id":"F062","owner_story":"CF16S","model":"WAN-VAE","variant":"enc_causal_conv_in_3x3x3_bf16","domain":"video_vae","op":"conv3d","layout":"NDHWC","N":1,"Cin":3,"Cout":96,"D":21,"H":256,"W":256,"Kd":3,"Kh":3,"Kw":3,"strides":[1,1,1],"pads_before":[2,1,1],"pads_after":[0,1,1],"dilations":[1,1,1],"output_spatial":[21,256,256],"groups":1,"causal":1,"execution":"streaming_equivalence","cache_semantics":"state carried across chunks; output must match full clip","dtype":"bf16","capability":"conv3d_causal","used_by":["WAN-VAE","WAN2.2"],"note":"Wan-VAE feature-cache streaming-equivalence probe for arbitrary-length input","suite":"extended","purpose":"frontier","priority":"P2"}, - {"case_id":"F063","owner_story":"CF14F","model":"HunyuanVideo-VAE","variant":"enc_causal_conv_in_3x3x3_fp8","domain":"video_vae","op":"conv3d","layout":"NDHWC","N":1,"Cin":128,"Cout":128,"D":17,"H":256,"W":256,"Kd":3,"Kh":3,"Kw":3,"strides":[1,1,1],"pads_before":[2,1,1],"pads_after":[0,1,1],"dilations":[1,1,1],"output_spatial":[17,256,256],"groups":1,"causal":1,"execution":"full_clip","dtype":"fp8_e4m3","capability":"conv3d_causal","used_by":["HunyuanVideo-VAE"],"note":"full-clip fp8 frontier probe for the heavy 3D-conv VAE workload","suite":"extended","purpose":"frontier","priority":"P2"}, - {"case_id":"F064","owner_story":"CF16S","model":"HunyuanVideo-VAE","variant":"enc_causal_conv_in_longclip_bf16","domain":"video_vae","op":"conv3d","layout":"NDHWC","N":1,"Cin":128,"Cout":128,"D":33,"H":256,"W":256,"Kd":3,"Kh":3,"Kw":3,"strides":[1,1,1],"pads_before":[2,1,1],"pads_after":[0,1,1],"dilations":[1,1,1],"output_spatial":[33,256,256],"groups":1,"causal":1,"execution":"streaming_equivalence","cache_semantics":"state carried across chunks; output must match full clip","dtype":"bf16","capability":"conv3d_causal","used_by":["HunyuanVideo-VAE"],"note":"33-frame long-clip streaming-equivalence probe against full-clip output","suite":"extended","purpose":"frontier","priority":"P2"}, - - {"case_id":"F065","owner_story":"CF19","model":"Mamba2-2.7B","variant":"causal_conv1d_w4_bf16","domain":"ssm","op":"conv1d","layout":"NCL","N":1,"Cin":5376,"Cout":5376,"L":4096,"Kl":4,"stride":1,"pad":3,"dilation":1,"groups":5376,"causal":1,"dtype":"bf16","capability":"causal_conv1d","used_by":["Mamba2-2.7B","Mamba2-1.3B"],"note":"depthwise causal conv1d over (d_inner + 2*ngroups*d_state) channels, width 4","suite":"regular","purpose":"acceptance","priority":"P0"}, - {"case_id":"F066","owner_story":"CF19","model":"Mamba2-2.7B","variant":"causal_conv1d_w4_longctx_bf16","domain":"ssm","op":"conv1d","layout":"NCL","N":1,"Cin":5376,"Cout":5376,"L":16384,"Kl":4,"stride":1,"pad":3,"dilation":1,"groups":5376,"causal":1,"dtype":"bf16","capability":"causal_conv1d","used_by":["Mamba2-2.7B"],"note":"long-sequence sweep (SSMs are marketed on long context)","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, - {"case_id":"F067","owner_story":"CF19","model":"Mamba-2.8B","variant":"causal_conv1d_w4_bf16","domain":"ssm","op":"conv1d","layout":"NCL","N":1,"Cin":5120,"Cout":5120,"L":2048,"Kl":4,"stride":1,"pad":3,"dilation":1,"groups":5120,"causal":1,"dtype":"bf16","capability":"causal_conv1d","used_by":["Mamba-2.8B","Jamba"],"note":"Mamba-v1 selective-SSM short causal conv","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, - {"case_id":"F068","owner_story":"CF19","model":"Mamba2-2.7B","variant":"causal_conv1d_w4_decode_bf16","domain":"ssm","op":"conv1d","layout":"NCL","N":64,"Cin":5376,"Cout":5376,"L":1,"Kl":4,"stride":1,"pad":3,"dilation":1,"groups":5376,"causal":1,"dtype":"bf16","capability":"causal_conv1d","used_by":["Mamba2-2.7B"],"note":"autoregressive decode step (L=1, conv-state cache), batch 64","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, - {"case_id":"F069","owner_story":"CF20A","model":"Whisper-large-v3","variant":"conv1d_stem1_k3_s1_bf16","domain":"audio","op":"conv1d","layout":"NCL","N":1,"Cin":128,"Cout":1280,"L":3000,"Kl":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"conv1d_stem","used_by":["Whisper-large-v3","Whisper-large-v2"],"note":"mel(128)->1280 conv1d stem over 3000 frames (encoder)","suite":"regular","purpose":"acceptance","priority":"P0"}, - {"case_id":"F070","owner_story":"CF20A","model":"Whisper-large-v3","variant":"conv1d_stem2_k3_s2_bf16","domain":"audio","op":"conv1d","layout":"NCL","N":1,"Cin":1280,"Cout":1280,"L":3000,"Kl":3,"stride":2,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"conv1d_stem","used_by":["Whisper-large-v3"],"note":"second conv1d, stride-2 temporal downsample 3000->1500","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, - {"case_id":"F071","owner_story":"CF20B","model":"Conformer-L","variant":"dw_conv1d_k31_bf16","domain":"audio","op":"conv1d","layout":"NCL","N":1,"Cin":512,"Cout":512,"L":1500,"Kl":31,"stride":1,"pad":15,"dilation":1,"groups":512,"dtype":"bf16","capability":"depthwise","used_by":["Conformer-L","ConMamba","FastConformer"],"note":"Conformer/ConMamba depthwise conv1d module, kernel 31 (local ASR context)","suite":"regular","purpose":"acceptance","priority":"P1"}, - {"case_id":"F072","owner_story":"CF24","model":"Hyena-long","variant":"fft_long_conv_global_bf16","domain":"ssm","op":"conv1d","layout":"NCL","N":1,"Cin":768,"Cout":768,"L":8192,"Kl":8192,"stride":1,"pad":8191,"dilation":1,"groups":768,"causal":1,"dtype":"bf16","capability":"long_conv","used_by":["Hyena","H3","FlashFFTConv"],"note":"forward-looking: implicit global (kernel=L) causal conv realized via FFT, subquadratic sequence mixer","suite":"extended","purpose":"frontier","priority":"P2"}, - - {"case_id":"F073","owner_story":"CF1","model":"ResNet-50","variant":"stage4_3x3_512_bf16","domain":"legacy_baseline","op":"conv2d","layout":"NHWC","N":1,"Cin":512,"Cout":512,"H":7,"W":7,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["ResNet-50"],"note":"deepest stage 3x3 (small spatial, wide channels)","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, - {"case_id":"F074","owner_story":"CF1","model":"ResNet-152","variant":"bottleneck_3x3_s1_bf16","domain":"legacy_baseline","op":"conv2d","layout":"NHWC","N":1,"Cin":256,"Cout":256,"H":14,"W":14,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["ResNet-152","ResNet-101"],"note":"deeper-ResNet stage3 bottleneck","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, - - {"case_id":"F075","owner_story":"CF5P","model":"ResNeXt-50-32x4d","variant":"grouped_3x3_g32_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":256,"Cout":256,"H":56,"W":56,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":32,"dtype":"bf16","capability":"grouped","used_by":["ResNeXt-50","ResNeXt-101","RegNetY"],"note":"cardinality-32 grouped 3x3 (between dense and depthwise)","suite":"regular","purpose":"acceptance","priority":"P1"}, - {"case_id":"F076","owner_story":"CF6B","model":"ResNeXt-101-32x8d","variant":"grouped_3x3_g32_int8","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":512,"Cout":512,"H":28,"W":28,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":32,"dtype":"int8","capability":"grouped","used_by":["ResNeXt-101"],"note":"quantized grouped conv","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, - {"case_id":"F077","owner_story":"CF1","model":"RepVGG-B2","variant":"reparam_dense_3x3_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":256,"Cout":256,"H":28,"W":28,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["RepVGG-B2","MobileOne"],"note":"inference-fused plain 3x3 (multi-branch reparam at train time) -> a pure 3x3 GEMM at deploy","suite":"regular","purpose":"acceptance","priority":"P1"}, - {"case_id":"F078","owner_story":"CF23","runtime_gate":false,"model":"InternImage-B","variant":"dcnv3_deformable_dw3x3_bf16","domain":"vision_backbone","op":"dcnv3","layout":"NHWC","N":1,"Cin":112,"Cout":112,"H":28,"W":28,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"deform_groups":7,"channels_per_group":16,"offset_scale":1.0,"remove_center":false,"offset_tensor":{"layout":"NHWC","shape":[1,28,28,126]},"modulation_mask_tensor":{"layout":"NHWC","shape":[1,28,28,63],"activation":"softmax","normalization_axis":"sampling_points_per_deform_group"},"dtype":"bf16","capability":"deformable_dw","used_by":["InternImage-B","InternImage-L"],"note":"true DCNv3 operator; 3x3 sampling uses 7 deform groups, with reference mask logits softmax-normalized over 9 sampling points per group","suite":"extended","purpose":"research","priority":"P2"}, - {"case_id":"F079","owner_story":"CF13","model":"ConvNeXt-V2-XL","variant":"dw7x7_stage3_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":1024,"Cout":1024,"H":14,"W":14,"Kh":7,"Kw":7,"stride":1,"pad":3,"dilation":1,"groups":1024,"dtype":"bf16","capability":"large_kernel_dw","used_by":["ConvNeXt-V2-XL"],"note":"XL-width 7x7 DW","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, - {"case_id":"F080","owner_story":"CF3","model":"ConvNeXt-V2-B","variant":"stem_patchify_4x4_s4_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":128,"H":224,"W":224,"Kh":4,"Kw":4,"stride":4,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"patchify_strided","used_by":["ConvNeXt-V2-B","ConvNeXt-V1-B"],"note":"base-width patchify stem (dim 128)","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, - {"case_id":"F081","owner_story":"CF13","model":"ConvNeXt-V2-L","variant":"dw7x7_stage1_384_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":192,"Cout":192,"H":96,"W":96,"Kh":7,"Kw":7,"stride":1,"pad":3,"dilation":1,"groups":192,"dtype":"bf16","capability":"large_kernel_dw","used_by":["ConvNeXt-V2-L"],"note":"384px input resolution sweep (stage1 96x96)","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, - {"case_id":"F082","owner_story":"CF13","model":"ConvNeXt-V2-L","variant":"dw7x7_stage1_fp16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":192,"Cout":192,"H":56,"W":56,"Kh":7,"Kw":7,"stride":1,"pad":3,"dilation":1,"groups":192,"dtype":"fp16","capability":"large_kernel_dw","used_by":["ConvNeXt-V2-L"],"note":"fp16 twin of the 7x7 DW","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, - {"case_id":"F083","owner_story":"CF2","model":"ConvNeXt-V2-L","variant":"block_pw_project_1x1_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":3072,"Cout":768,"H":14,"W":14,"Kh":1,"Kw":1,"stride":1,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"pointwise_1x1","used_by":["ConvNeXt-V2-L"],"note":"pointwise MLP project (4x->1x)","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, - {"case_id":"F084","owner_story":"CF13","model":"RepLKNet-31L","variant":"dw31x31_stage1_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":192,"Cout":192,"H":56,"W":56,"Kh":31,"Kw":31,"stride":1,"pad":15,"dilation":1,"groups":192,"dtype":"bf16","capability":"large_kernel_dw","used_by":["RepLKNet-31L"],"note":"large-kernel DW at higher resolution (56x56)","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, - {"case_id":"F085","owner_story":"CF10","model":"MobileNetV4-Conv-L","variant":"uib_dw3x3_384_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":144,"Cout":144,"H":96,"W":96,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":144,"dtype":"bf16","capability":"depthwise","used_by":["MobileNetV4"],"note":"384px depthwise sweep","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, - {"case_id":"F086","owner_story":"CF6B","model":"GhostNetV2","variant":"cheap_dw3x3_int8","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":80,"Cout":80,"H":28,"W":28,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":80,"dtype":"int8","capability":"depthwise","used_by":["GhostNetV2","GhostNet"],"note":"Ghost cheap-operation depthwise, quantized mobile","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, - {"case_id":"F087","owner_story":"CF2","model":"EfficientNetV2-M","variant":"ib_expand_1x1_bf16","domain":"vision_backbone","op":"conv2d","layout":"NHWC","N":1,"Cin":80,"Cout":480,"H":24,"W":24,"Kh":1,"Kw":1,"stride":1,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"pointwise_1x1","used_by":["EfficientNetV2-M"],"note":"MBConv expand 1x1 (ratio 6)","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, - - {"case_id":"F088","owner_story":"CF3","model":"CLIP-ViT-L/14","variant":"patchify14_336_bf16","domain":"mllm_vision","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":1024,"H":336,"W":336,"Kh":14,"Kw":14,"stride":14,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"patchify_strided","used_by":["CLIP-ViT-L/14-336","LLaVA-1.5"],"note":"336px LLaVA-style high-res patch-embed -> 24x24","suite":"regular","purpose":"acceptance","priority":"P1"}, - {"case_id":"F089","owner_story":"CF3","model":"InternViT-6B","variant":"patchify14_448_bf16","domain":"mllm_vision","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":3200,"H":448,"W":448,"Kh":14,"Kw":14,"stride":14,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"patchify_strided","used_by":["InternViT-6B","InternVL"],"note":"large VLM vision-encoder patch-embed @448 -> 32x32","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, - {"case_id":"F090","owner_story":"CF3","model":"DINOv2-ViT-g/14","variant":"patchify14_bf16","domain":"mllm_vision","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":1536,"H":224,"W":224,"Kh":14,"Kw":14,"stride":14,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"patchify_strided","used_by":["DINOv2-ViT-g","RADIO"],"note":"self-supervised vision-encoder patch-embed","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, - {"case_id":"F091","owner_story":"CF14","model":"Qwen2.5-VL","variant":"patchify_conv3d_hires_bf16","domain":"mllm_vision","op":"conv3d","layout":"NDHWC","N":1,"Cin":3,"Cout":1280,"D":2,"H":392,"W":392,"Kd":2,"Kh":14,"Kw":14,"strides":[2,14,14],"pads_before":[0,0,0],"pads_after":[0,0,0],"dilations":[1,1,1],"output_spatial":[1,28,28],"groups":1,"dtype":"bf16","capability":"patchify_strided","used_by":["Qwen2.5-VL"],"note":"higher-res dynamic-resolution tile; Conv3d patchify [2,14,14] with no padding produces a [1,28,28] grid","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, - {"case_id":"F092","owner_story":"CF3","model":"SigLIP2-g","variant":"patchify16_512_bf16","domain":"mllm_vision","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":1536,"H":512,"W":512,"Kh":16,"Kw":16,"stride":16,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"patchify_strided","used_by":["SigLIP2-g"],"note":"512px patch16 -> 32x32","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, - - {"case_id":"F093","owner_story":"CF1","model":"YOLOv12-L","variant":"a2c2f_conv_3x3_bf16","domain":"detection","op":"conv2d","layout":"NHWC","N":1,"Cin":256,"Cout":256,"H":40,"W":40,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["YOLOv12-L"],"note":"YOLOv12 keeps Conv+BN (over Linear+LN) inside its attention-centric A2C2f blocks","suite":"regular","purpose":"acceptance","priority":"P1"}, - {"case_id":"F094","owner_story":"CF13","model":"YOLOv12-L","variant":"position_perceiver_dw7x7_bf16","domain":"detection","op":"conv2d","layout":"NHWC","N":1,"Cin":256,"Cout":256,"H":40,"W":40,"Kh":7,"Kw":7,"stride":1,"pad":3,"dilation":1,"groups":256,"dtype":"bf16","capability":"large_kernel_dw","used_by":["YOLOv12-L"],"note":"7x7 separable 'position perceiver' replacing positional encodings","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, - {"case_id":"F095","owner_story":"CF6A","model":"YOLO11-N","variant":"stem_3x3_s2_int8","domain":"detection","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":16,"H":640,"W":640,"Kh":3,"Kw":3,"stride":2,"pad":1,"dilation":1,"groups":1,"dtype":"int8","capability":"stem","used_by":["YOLO11-N","YOLO26"],"note":"nano detector, quantized edge deploy","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, - {"case_id":"F096","owner_story":"CF4","model":"RT-DETR-R50","variant":"hgnet_stem_3x3_s2_bf16","domain":"detection","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":32,"H":640,"W":640,"Kh":3,"Kw":3,"stride":2,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"stem","used_by":["RT-DETR-R50","RT-DETRv2"],"note":"real-time DETR conv backbone stem","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, - {"case_id":"F097","owner_story":"CF2","model":"YOLO11-L","variant":"sppf_pw_1x1_bf16","domain":"detection","op":"conv2d","layout":"NHWC","N":1,"Cin":512,"Cout":512,"H":20,"W":20,"Kh":1,"Kw":1,"stride":1,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"pointwise_1x1","used_by":["YOLO11-L"],"note":"SPPF 1x1 at the deepest P5 scale","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, - {"case_id":"F098","owner_story":"CF2","model":"YOLO11-L","variant":"neck_c3k2_pw_1x1_p4_bf16","domain":"detection","op":"conv2d","layout":"NHWC","N":1,"Cin":768,"Cout":256,"H":40,"W":40,"Kh":1,"Kw":1,"stride":1,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"pointwise_1x1","used_by":["YOLO11-L"],"note":"PAN neck 1x1 after concat","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, - - {"case_id":"F099","owner_story":"CF1","model":"SD1.5-VAE","variant":"enc_conv_in_3x3_512_fp16","domain":"diffusion_vae","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":128,"H":512,"W":512,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"fp16","capability":"dense_smallk","used_by":["SD1.5-VAE"],"note":"512px generation (the classic SD resolution)","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, - {"case_id":"F100","owner_story":"CF1","model":"SDXL-VAE","variant":"enc_3x3_256_512_bf16","domain":"diffusion_vae","op":"conv2d","layout":"NHWC","N":1,"Cin":256,"Cout":256,"H":512,"W":512,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["SDXL-VAE"],"note":"mid-resolution encoder stage (256ch @512)","suite":"extended","purpose":"perf_diagnostic","priority":"P1"}, - {"case_id":"F101","owner_story":"CF1","model":"SD3-VAE","variant":"enc_conv_in_3x3_1024_bf16","domain":"diffusion_vae","op":"conv2d","layout":"NHWC","N":1,"Cin":3,"Cout":128,"H":1024,"W":1024,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","capability":"dense_smallk","used_by":["SD3-VAE","Flux.1-VAE"],"note":"16ch-latent VAE encoder conv_in","suite":"regular","purpose":"acceptance","priority":"P1"}, - {"case_id":"F102","owner_story":"CF1","model":"SDXL-VAE","variant":"dec_upsample_conv_3x3_512_bf16","domain":"diffusion_vae","op":"conv2d","layout":"NHWC","N":1,"Cin":256,"Cout":256,"H":512,"W":512,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":1,"pre_op":{"type":"external_upsample","benchmarked":false},"dtype":"bf16","capability":"upsample_conv","used_by":["SDXL-VAE"],"note":"benchmarks only the 3x3 convolution at the already-upsampled 512x512 shape; external interpolation is excluded","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, - - {"case_id":"F103","owner_story":"CF16C","model":"Cosmos-Tokenizer","variant":"enc_causal_3x3x3_bf16","domain":"video_vae","op":"conv3d","layout":"NDHWC","N":1,"Cin":128,"Cout":128,"D":17,"H":128,"W":128,"Kd":3,"Kh":3,"Kw":3,"strides":[1,1,1],"pads_before":[2,1,1],"pads_after":[0,1,1],"dilations":[1,1,1],"output_spatial":[17,128,128],"groups":1,"causal":1,"execution":"full_clip","dtype":"bf16","capability":"conv3d_causal","used_by":["Cosmos-Tokenizer","Cosmos-Predict"],"note":"full-clip NVIDIA Cosmos causal video-tokenizer convolution","suite":"extended","purpose":"frontier","priority":"P2"}, - {"case_id":"F104","owner_story":"CF16C","model":"Mochi-1-VAE","variant":"enc_causal_3x3x3_bf16","domain":"video_vae","op":"conv3d","layout":"NDHWC","N":1,"Cin":128,"Cout":256,"D":17,"H":128,"W":128,"Kd":3,"Kh":3,"Kw":3,"strides":[1,1,1],"pads_before":[2,1,1],"pads_after":[0,1,1],"dilations":[1,1,1],"output_spatial":[17,128,128],"groups":1,"causal":1,"execution":"full_clip","dtype":"bf16","capability":"conv3d_causal","used_by":["Mochi-1-VAE","LTX-Video-VAE"],"note":"full-clip asymmetric high-compression causal video-VAE convolution","suite":"extended","purpose":"frontier","priority":"P2"}, - {"case_id":"F105","owner_story":"CF16S","model":"WAN-VAE","variant":"dec_upsample_conv3d_bf16","domain":"video_vae","op":"conv3d","layout":"NDHWC","N":1,"Cin":256,"Cout":256,"D":11,"H":128,"W":128,"Kd":3,"Kh":3,"Kw":3,"strides":[1,1,1],"pads_before":[2,1,1],"pads_after":[0,1,1],"dilations":[1,1,1],"output_spatial":[11,128,128],"groups":1,"causal":1,"execution":"streaming_equivalence","cache_semantics":"state carried across chunks; output must match full clip","pre_op":{"type":"external_upsample","benchmarked":false},"dtype":"bf16","capability":"upsample_conv","used_by":["WAN-VAE","WAN2.2"],"note":"benchmarks only the causal 3D convolution at the already-upsampled [11,128,128] shape as a streaming-equivalence probe; external upsample is excluded","suite":"extended","purpose":"frontier","priority":"P2"}, - {"case_id":"F106","owner_story":"CF16C","model":"HunyuanVideo-VAE","variant":"dec_causal_3x3x3_256hires_bf16","domain":"video_vae","op":"conv3d","layout":"NDHWC","N":1,"Cin":256,"Cout":256,"D":9,"H":256,"W":256,"Kd":3,"Kh":3,"Kw":3,"strides":[1,1,1],"pads_before":[2,1,1],"pads_after":[0,1,1],"dilations":[1,1,1],"output_spatial":[9,256,256],"groups":1,"causal":1,"execution":"full_clip","dtype":"bf16","capability":"conv3d_causal","used_by":["HunyuanVideo-VAE"],"note":"full-clip near-output high-resolution 3D convolution; the video-decode performance tail","suite":"extended","purpose":"frontier","priority":"P2"}, - - {"case_id":"F107","owner_story":"CF19","model":"Mamba2-1.3B","variant":"causal_conv1d_w4_bf16","domain":"ssm","op":"conv1d","layout":"NCL","N":1,"Cin":3328,"Cout":3328,"L":4096,"Kl":4,"stride":1,"pad":3,"dilation":1,"groups":3328,"causal":1,"dtype":"bf16","capability":"causal_conv1d","used_by":["Mamba2-1.3B"],"note":"smaller Mamba2 width","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, - {"case_id":"F108","owner_story":"CF19","model":"Mamba2-8B","variant":"causal_conv1d_w4_bf16","domain":"ssm","op":"conv1d","layout":"NCL","N":1,"Cin":8448,"Cout":8448,"L":4096,"Kl":4,"stride":1,"pad":3,"dilation":1,"groups":8448,"causal":1,"dtype":"bf16","capability":"causal_conv1d","used_by":["Mamba2-8B","Codestral-Mamba"],"note":"larger SSM width","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, - {"case_id":"F109","owner_story":"CF19","model":"Jamba","variant":"causal_conv1d_w4_bf16","domain":"ssm","op":"conv1d","layout":"NCL","N":1,"Cin":8192,"Cout":8192,"L":8192,"Kl":4,"stride":1,"pad":3,"dilation":1,"groups":8192,"causal":1,"dtype":"bf16","capability":"causal_conv1d","used_by":["Jamba","Zamba"],"note":"hybrid Transformer-Mamba MoE; Mamba-layer causal conv","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, - {"case_id":"F110","owner_story":"CF20A","model":"Wav2Vec2","variant":"feat_conv1d_k10_s5_bf16","domain":"audio","op":"conv1d","layout":"NCL","N":1,"Cin":1,"Cout":512,"L":160000,"Kl":10,"stride":5,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","capability":"conv1d_stem","used_by":["Wav2Vec2","HuBERT","WavLM"],"note":"raw-waveform feature extractor first conv (16kHz, 10s clip): large strided conv1d","suite":"regular","purpose":"acceptance","priority":"P1"}, - {"case_id":"F111","owner_story":"CF20A","model":"Whisper-large-v3","variant":"conv1d_stem1_fp16","domain":"audio","op":"conv1d","layout":"NCL","N":1,"Cin":128,"Cout":1280,"L":3000,"Kl":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"fp16","capability":"conv1d_stem","used_by":["Whisper-large-v3"],"note":"fp16 twin of the mel conv stem","suite":"extended","purpose":"perf_diagnostic","priority":"P2"} -] diff --git a/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/benchmark_implicit_gemm_conv.py b/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/benchmark_implicit_gemm_conv.py index fa2369dfaafe..e6b9d4bc3f3f 100644 --- a/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/benchmark_implicit_gemm_conv.py +++ b/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/benchmark_implicit_gemm_conv.py @@ -60,7 +60,7 @@ _TILE_MN = (16, 32, 64, 128, 256) _TILE_MN_GFX1250 = (16, 32, 64, 128, 256, 512) -_TILE_K = (16, 32, 64, 128) +_TILE_K = (16, 32, 64) _WARP_MN = (1, 2, 4, 8) _WARP_MN_GFX1250 = (1, 2, 4, 8, 16) _WARP_TILE_MN = (16, 32) @@ -673,6 +673,18 @@ def main() -> int: parser.add_argument( "--iters", type=int, default=10, help="timed iterations (default: 10)" ) + parser.add_argument( + "--jobs", + type=int, + default=1, + metavar="N", + help=( + "number of parallel compile workers (default: 1, serial). " + "Uses multiprocessing (ProcessPoolExecutor) so each worker runs " + "libamd_comgr in its own process, bypassing the GIL. " + "Set to 0 to use os.cpu_count() workers." + ), + ) parser.add_argument( "--sample", type=float, @@ -1031,6 +1043,7 @@ def _u8(t): arch=arch, target=target, compile_kernel=compile_kernel, + jobs=args.jobs, ConvDataSpec=ConvDataSpec, synchronize_and_release=synchronize_and_release, time_launches=time_launches, @@ -1101,6 +1114,67 @@ def _u8(t): return all_rc +def _compile_one(args_tuple): + """Top-level picklable worker for ProcessPoolExecutor. + + Receives (kernel, arch) and returns (kernel_name, artifact). Must be + defined at module level so pickle can locate it by name. + """ + kernel, arch = args_tuple + from rocke import compile_kernel as _compile_kernel + + artifact = _compile_kernel(kernel, arch=arch) + return kernel.name, artifact + + +def _compile_kernels_parallel(kernels, compile_kernel, arch: str, jobs: int) -> dict: + """Compile *kernels* (a list of KernelDef) in parallel. + + Deduplicates by kernel name before submitting. Returns a + ``{name: KernelArtifact}`` dict covering every unique name in *kernels*. + + When *jobs* == 1 the compilation is serial (no subprocess overhead). + When *jobs* == 0 the worker count defaults to ``os.cpu_count()``. + """ + import os + from concurrent.futures import ProcessPoolExecutor, as_completed + + unique: dict = {} + for k in kernels: + if k.name not in unique: + unique[k.name] = k + + if not unique: + return {} + + artifact_map: dict = {} + + if jobs == 1: + for name, k in unique.items(): + artifact_map[name] = compile_kernel(k, arch=arch) + return artifact_map + + max_workers = os.cpu_count() if jobs == 0 else jobs + work = [(k, arch) for k in unique.values()] + + print( + f"Compiling {len(unique)} unique kernels with {max_workers} workers ...", + flush=True, + ) + + with ProcessPoolExecutor(max_workers=max_workers) as pool: + futures = {pool.submit(_compile_one, item): item[0].name for item in work} + done = 0 + for fut in as_completed(futures): + name, artifact = fut.result() + artifact_map[name] = artifact + done += 1 + if done % max(1, len(unique) // 10) == 0 or done == len(unique): + print(f" compiled {done}/{len(unique)}", flush=True) + + return artifact_map + + def _run_sweep( *, args, @@ -1109,6 +1183,7 @@ def _run_sweep( arch: str, target, compile_kernel, + jobs: int = 1, ConvDataSpec, ImplicitGemmConvSpec, build_implicit_gemm_conv, @@ -1211,50 +1286,16 @@ def _make(*shape): flush=True, ) - rt = Runtime() - results: List[Result] = [] - n_built = 0 + # --------------------------------------------------------------------------- + # Phase 1 – filter: validate every combo and build KernelDef IR (CPU only). + # --------------------------------------------------------------------------- n_skipped = 0 + # pending: list of (combo_tuple, spec, kernel) for every combo that passes + # validation. Ordering is preserved so the GPU run phase matches combos. + pending = [] - # Upload inputs once; reuse across all kernels. - A_dev = rt.alloc(A_t.nbytes) - B_dev = rt.alloc(B_t.nbytes) - D_dev = rt.alloc(D_t.nbytes) - rt.memcpy_h2d(A_dev, _u8(A_t), A_t.nbytes) - rt.memcpy_h2d(B_dev, _u8(B_t), B_t.nbytes) - rt.memset(D_dev, 0, D_t.nbytes) - - ref_out: torch.Tensor | None = None - if args.verify: - from rocke.benchmark.conv_reference import ( - conv_reference, - conv_reference_gfx1250, - ) - - if arch == "gfx1250" and not p.is_3d: - ref_out = conv_reference_gfx1250(A_t, B_t, p, out_dtype=_torch_dtype).cuda() - print( - f"Reference computed via gfx1250 hand-written conv " - f"({tuple(ref_out.shape)}, {ref_out.dtype}).", - flush=True, - ) - else: - ref_out = conv_reference(A_t, B_t, p, out_dtype=_torch_dtype) - print( - f"Reference computed via torch ({tuple(ref_out.shape)}, {ref_out.dtype}).", - flush=True, - ) - - for ( - tile_m, - tile_n, - tile_k, - warp_m, - warp_n, - warp_tile_mn, - pipeline, - epilogue, - ) in combos: + for combo in combos: + tile_m, tile_n, tile_k, warp_m, warp_n, warp_tile_mn, pipeline, epilogue = combo atom = target.mma.select_largest_k( family=_mma_family, a_dtype=dtype, @@ -1298,8 +1339,58 @@ def _make(*shape): n_skipped += 1 continue - artifact = compile_kernel(kernel, arch=arch) - n_built += 1 + pending.append((combo, spec, kernel)) + + # --------------------------------------------------------------------------- + # Phase 2 – compile: fan out compile_kernel across processes (or serial). + # --------------------------------------------------------------------------- + artifact_map = _compile_kernels_parallel( + [k for _, _, k in pending], compile_kernel, arch, jobs + ) + n_built = len(artifact_map) + + # --------------------------------------------------------------------------- + # Phase 3 – GPU run: load modules and time each kernel serially. + # --------------------------------------------------------------------------- + from rocke.runtime.hip_module import HipError + + rt = Runtime() + results: List[Result] = [] + + # Upload inputs once; reuse across all kernels. + A_dev = rt.alloc(A_t.nbytes) + B_dev = rt.alloc(B_t.nbytes) + D_dev = rt.alloc(D_t.nbytes) + rt.memcpy_h2d(A_dev, _u8(A_t), A_t.nbytes) + rt.memcpy_h2d(B_dev, _u8(B_t), B_t.nbytes) + rt.memset(D_dev, 0, D_t.nbytes) + + ref_out: torch.Tensor | None = None + if args.verify: + from rocke.benchmark.conv_reference import ( + conv_reference, + conv_reference_gfx1250, + ) + + if arch == "gfx1250" and not p.is_3d: + ref_out = conv_reference_gfx1250(A_t, B_t, p, out_dtype=_torch_dtype).cuda() + print( + f"Reference computed via gfx1250 hand-written conv " + f"({tuple(ref_out.shape)}, {ref_out.dtype}).", + flush=True, + ) + else: + ref_out = conv_reference(A_t, B_t, p, out_dtype=_torch_dtype) + print( + f"Reference computed via torch ({tuple(ref_out.shape)}, {ref_out.dtype}).", + flush=True, + ) + + n_run = 0 + for combo, spec, kernel in pending: + tile_m, tile_n, tile_k, warp_m, warp_n, warp_tile_mn, pipeline, epilogue = combo + warp_tile_k = spec.warp_tile_k + artifact = artifact_map[kernel.name] try: launcher = KernelLauncher( @@ -1319,6 +1410,7 @@ def _make(*shape): flush=True, ) continue + grid = _grid_for_spec(spec, p) block = (spec.block_size, 1, 1) stream = 0 @@ -1367,6 +1459,7 @@ def _make(*shape): cur_tflops = (flop / ms) * 1e-9 cur_gbps = (bytes_xfer / ms) * 1e-6 + n_run += 1 results.append( Result( @@ -1389,7 +1482,7 @@ def _make(*shape): ) print( - f"[{n_built:4d}] tile={tile_m}x{tile_n}x{tile_k} " + f"[{n_run:4d}] tile={tile_m}x{tile_n}x{tile_k} " f"warp={warp_m}x{warp_n} " f"atom={warp_tile_mn}x{warp_tile_mn}x{warp_tile_k} " f"{pipeline}/{epilogue:9s} " @@ -1403,7 +1496,7 @@ def _make(*shape): rt.free(D_dev) print( - f"\nSweep done: {n_built} built, {n_skipped} skipped.", + f"\nSweep done: {n_built} compiled, {n_skipped} skipped.", flush=True, ) @@ -1456,6 +1549,7 @@ def _run_wgrad_sweep( arch: str, target, compile_kernel, + jobs: int = 1, ConvDataSpec, WgradConvSpec, build_implicit_gemm_conv_wgrad, @@ -1559,41 +1653,26 @@ def _make(*shape): flush=True, ) - rt = Runtime() - results: List[Result] = [] - n_built = 0 + # --------------------------------------------------------------------------- + # Phase 1 – filter: validate every combo and build KernelDef IR (CPU only). + # --------------------------------------------------------------------------- n_skipped = 0 + # pending: list of (combo_tuple, spec, resolved_split_k, kernel) + pending = [] + + for combo in combos: + ( + tile_m, + tile_n, + tile_k, + warp_m, + warp_n, + warp_tile_mn, + pipeline, + epilogue, + split_k, + ) = combo - dY_dev = rt.alloc(dY_t.nbytes) - X_dev = rt.alloc(X_t.nbytes) - dW_dev = rt.alloc(dW_t.nbytes) - rt.memcpy_h2d(dY_dev, _u8(dY_t), dY_t.nbytes) - rt.memcpy_h2d(X_dev, _u8(X_t), X_t.nbytes) - rt.memset(dW_dev, 0, dW_t.nbytes) - - ref_out: torch.Tensor | None = None - if args.verify or args.dump_fail: - from rocke.benchmark.conv_reference import wgrad_reference - - ref_out = wgrad_reference(_X_f32, _dY_f32, p) - print( - f"Wgrad reference computed ({tuple(ref_out.shape)}, {ref_out.dtype}).", - flush=True, - ) - - for ( - tile_m, - tile_n, - tile_k, - warp_m, - warp_n, - warp_tile_mn, - pipeline, - epilogue, - split_k, - ) in combos: - # split_k > 1 requires dtype_d in fp32/bf16/fp16 (atomic accumulation). - # For split_k == 1 any dtype is fine; skip invalid split_k > 1 + cshuffle. if split_k > 1 and epilogue == "cshuffle": n_skipped += 1 continue @@ -1611,8 +1690,6 @@ def _make(*shape): continue warp_tile_k = atom.k - # Resolve split_k=-1 once here so the concrete value is used for the - # spec, the grid z-axis, the timing loop, and the result record. if split_k == -1: from rocke.helpers.split_k import select_split_k_wgrad @@ -1645,7 +1722,7 @@ def _make(*shape): split_k=resolved_split_k, ) - ok, reason = is_valid_wgrad_spec(spec, arch) + ok, _ = is_valid_wgrad_spec(spec, arch) if not ok: n_skipped += 1 continue @@ -1656,8 +1733,48 @@ def _make(*shape): n_skipped += 1 continue - artifact = compile_kernel(kernel, arch=arch) - n_built += 1 + pending.append((combo, spec, resolved_split_k, kernel)) + + # --------------------------------------------------------------------------- + # Phase 2 – compile: fan out compile_kernel across processes (or serial). + # --------------------------------------------------------------------------- + artifact_map = _compile_kernels_parallel( + [k for _, _, _, k in pending], compile_kernel, arch, jobs + ) + n_built = len(artifact_map) + + # --------------------------------------------------------------------------- + # Phase 3 – GPU run: load modules and time each kernel serially. + # --------------------------------------------------------------------------- + from rocke.runtime.hip_module import HipError + + rt = Runtime() + results: List[Result] = [] + + dY_dev = rt.alloc(dY_t.nbytes) + X_dev = rt.alloc(X_t.nbytes) + dW_dev = rt.alloc(dW_t.nbytes) + rt.memcpy_h2d(dY_dev, _u8(dY_t), dY_t.nbytes) + rt.memcpy_h2d(X_dev, _u8(X_t), X_t.nbytes) + rt.memset(dW_dev, 0, dW_t.nbytes) + + ref_out: torch.Tensor | None = None + if args.verify or args.dump_fail: + from rocke.benchmark.conv_reference import wgrad_reference + + ref_out = wgrad_reference(_X_f32, _dY_f32, p) + print( + f"Wgrad reference computed ({tuple(ref_out.shape)}, {ref_out.dtype}).", + flush=True, + ) + + n_run = 0 + for combo, spec, resolved_split_k, kernel in pending: + tile_m, tile_n, tile_k, warp_m, warp_n, warp_tile_mn, pipeline, epilogue, _ = ( + combo + ) + warp_tile_k = spec.warp_tile_k + artifact = artifact_map[kernel.name] try: launcher = KernelLauncher( @@ -1677,6 +1794,7 @@ def _make(*shape): flush=True, ) continue + grid = _grid_for_wgrad_spec(spec, resolved_split_k) block = (spec.block_size, 1, 1) stream = 0 @@ -1700,7 +1818,6 @@ def _make(*shape): block=block, out_dev=dW_dev, out_t=dW_t, - # Split-K atomic accumulation requires a zero-init buffer. zero_init_out=(resolved_split_k > 1), ref_out=ref_out, kernel_name=artifact.kernel_name, @@ -1714,8 +1831,6 @@ def _make(*shape): rt.free(dW_dev) return 1, [] - # For split_k > 1 the timed loop must zero-init dW before every launch - # so the atomic accumulation starts from zero each iteration. if resolved_split_k > 1: def _launch_spk(): @@ -1736,6 +1851,7 @@ def _launch_spk(): cur_tflops = (flop / ms) * 1e-9 cur_gbps = (bytes_xfer / ms) * 1e-6 + n_run += 1 results.append( Result( @@ -1757,7 +1873,7 @@ def _launch_spk(): ) print( - f"[{n_built:4d}] tile={tile_m}x{tile_n}x{tile_k} " + f"[{n_run:4d}] tile={tile_m}x{tile_n}x{tile_k} " f"warp={warp_m}x{warp_n} " f"atom={warp_tile_mn}x{warp_tile_mn}x{warp_tile_k} " f"{pipeline}/{epilogue:9s} spk{resolved_split_k:<3d} " @@ -1769,7 +1885,7 @@ def _launch_spk(): rt.free(X_dev) rt.free(dW_dev) - print(f"\nWgrad sweep done: {n_built} built, {n_skipped} skipped.", flush=True) + print(f"\nWgrad sweep done: {n_built} compiled, {n_skipped} skipped.", flush=True) if not results: print("No valid wgrad configurations found.", file=sys.stderr) diff --git a/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/grouped_conv_shapes/bench_cases_conv.json b/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/grouped_conv_shapes/bench_cases_conv.json new file mode 100644 index 000000000000..766429daab60 --- /dev/null +++ b/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/grouped_conv_shapes/bench_cases_conv.json @@ -0,0 +1,113 @@ +[ + {"case_id":"F001", "owner_story":"CF4", "model":"ResNet-50", "variant":"stem_7x7_s2_NHWC_bf16", "domain":"legacy_baseline", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":3, "Cout":64, "H":224, "W":224, "Kh":7, "Kw":7, "stride":2, "pad":3, "dilation":1, "groups":1, "dtype":"bf16", "capability":"stem", "used_by":["ResNet-50", "ResNet-101"], "note":"classic MLPerf baseline stem; RGB->64, 224->112", "suite":"regular", "purpose":"acceptance", "priority":"P0"}, + {"case_id":"F002", "owner_story":"CF4", "model":"ResNet-50", "variant":"stem_7x7_s2_nhwc_fp16", "domain":"legacy_baseline", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":3, "Cout":64, "H":224, "W":224, "Kh":7, "Kw":7, "stride":2, "pad":3, "dilation":1, "groups":1, "dtype":"fp16", "capability":"stem", "used_by":["ResNet-50"], "note":"channels-last twin of the stem", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P1"}, + {"case_id":"F003", "owner_story":"CF6A", "model":"ResNet-50", "variant":"stem_7x7_s2_int8", "domain":"legacy_baseline", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":3, "Cout":64, "H":224, "W":224, "Kh":7, "Kw":7, "stride":2, "pad":3, "dilation":1, "groups":1, "dtype":"int8", "capability":"stem", "used_by":["ResNet-50"], "note":"quantized deployed-vision path", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P1", "disabled":true}, + {"case_id":"F004", "owner_story":"CF1", "model":"ResNet-50", "variant":"bottleneck_3x3_s1_nhwc_bf16", "domain":"legacy_baseline", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":64, "Cout":64, "H":56, "W":56, "Kh":3, "Kw":3, "stride":1, "pad":1, "dilation":1, "groups":1, "dtype":"bf16", "capability":"dense_smallk", "used_by":["ResNet-50"], "note":"canonical dense 3x3 (implicit-GEMM / Winograd territory)", "suite":"regular", "purpose":"acceptance", "priority":"P0"}, + {"case_id":"F005", "owner_story":"CF2", "model":"ResNet-50", "variant":"reduce_1x1_nhwc_bf16", "domain":"legacy_baseline", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":256, "Cout":64, "H":56, "W":56, "Kh":1, "Kw":1, "stride":1, "pad":0, "dilation":1, "groups":1, "dtype":"bf16", "capability":"pointwise_1x1", "used_by":["ResNet-50"], "note":"1x1 channel reduce = pure GEMM", "suite":"regular", "purpose":"acceptance", "priority":"P0"}, + {"case_id":"F006", "owner_story":"CF2", "model":"ResNet-50", "variant":"expand_1x1_nhwc_bf16", "domain":"legacy_baseline", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":64, "Cout":256, "H":56, "W":56, "Kh":1, "Kw":1, "stride":1, "pad":0, "dilation":1, "groups":1, "dtype":"bf16", "capability":"pointwise_1x1", "used_by":["ResNet-50"], "note":"1x1 channel expand", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P1"}, + {"case_id":"F007", "owner_story":"CF1", "model":"ResNet-50", "variant":"downsample_3x3_s2_nhwc_bf16", "domain":"legacy_baseline", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":128, "Cout":128, "H":56, "W":56, "Kh":3, "Kw":3, "stride":2, "pad":1, "dilation":1, "groups":1, "dtype":"bf16", "capability":"dense_smallk", "used_by":["ResNet-50"], "note":"stage transition 56->28", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P1"}, + {"case_id":"F008", "owner_story":"CF4", "model":"ResNet-50", "variant":"stem_7x7_s2_train_n256_bf16", "domain":"legacy_baseline", "op":"conv2d", "layout":"NHWC", "N":256, "Cin":3, "Cout":64, "H":224, "W":224, "Kh":7, "Kw":7, "stride":2, "pad":3, "dilation":1, "groups":1, "dtype":"bf16", "capability":"stem", "used_by":["ResNet-50"], "note":"MLPerf-scale training batch", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P2"}, + {"case_id":"F009", "owner_story":"CF2", "model":"MobileNetV4-Conv-L", "variant":"ib_expand_1x1_bf16", "domain":"vision_backbone", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":24, "Cout":144, "H":56, "W":56, "Kh":1, "Kw":1, "stride":1, "pad":0, "dilation":1, "groups":1, "dtype":"bf16", "capability":"pointwise_1x1", "used_by":["MobileNetV4", "EfficientNetV2-S", "MobileNetV3"], "note":"inverted-bottleneck expand (ratio 6)", "suite":"regular", "purpose":"acceptance", "priority":"P0"}, + {"case_id":"F010", "owner_story":"CF10", "model":"MobileNetV4-Conv-L", "variant":"uib_dw3x3_s1_bf16", "domain":"vision_backbone", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":144, "Cout":144, "H":56, "W":56, "Kh":3, "Kw":3, "stride":1, "pad":1, "dilation":1, "groups":144, "dtype":"bf16", "capability":"depthwise", "used_by":["MobileNetV4", "EfficientNetV2-S", "MobileNetV3"], "note":"depthwise 3x3, memory-bound low-AI kernel", "suite":"regular", "purpose":"acceptance", "priority":"P0"}, + {"case_id":"F011", "owner_story":"CF10", "model":"MobileNetV4-Conv-L", "variant":"uib_dw5x5_s2_bf16", "domain":"vision_backbone", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":144, "Cout":144, "H":56, "W":56, "Kh":5, "Kw":5, "stride":2, "pad":2, "dilation":1, "groups":144, "dtype":"bf16", "capability":"depthwise", "used_by":["MobileNetV4", "EfficientNet-B x"], "note":"depthwise 5x5 stride-2 downsample 56->28", "suite":"regular", "purpose":"acceptance", "priority":"P1"}, + {"case_id":"F012", "owner_story":"CF2", "model":"MobileNetV4-Conv-L", "variant":"ib_project_1x1_bf16", "domain":"vision_backbone", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":144, "Cout":40, "H":28, "W":28, "Kh":1, "Kw":1, "stride":1, "pad":0, "dilation":1, "groups":1, "dtype":"bf16", "capability":"pointwise_1x1", "used_by":["MobileNetV4"], "note":"inverted-bottleneck linear project", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P1"}, + {"case_id":"F013", "owner_story":"CF6B", "model":"MobileNetV4-Conv-S", "variant":"uib_dw3x3_int8", "domain":"vision_backbone", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":96, "Cout":96, "H":56, "W":56, "Kh":3, "Kw":3, "stride":1, "pad":1, "dilation":1, "groups":96, "dtype":"int8", "capability":"depthwise", "used_by":["MobileNetV4", "MobileNetV3"], "note":"quantized on-device mobile inference", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P1", "disabled":true}, + {"case_id":"F014", "owner_story":"CF1", "model":"EfficientNetV2-S", "variant":"fused_mbconv_3x3_s2_bf16", "domain":"vision_backbone", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":24, "Cout":48, "H":192, "W":192, "Kh":3, "Kw":3, "stride":2, "pad":1, "dilation":1, "groups":1, "dtype":"bf16", "capability":"dense_smallk", "used_by":["EfficientNetV2-S", "EfficientNetV2-M"], "note":"fused-MBConv uses a full (non-DW) 3x3 in early stages", "suite":"regular", "purpose":"acceptance", "priority":"P1"}, + {"case_id":"F015", "owner_story":"CF10", "model":"EfficientNetV2-S", "variant":"mbconv_dw3x3_se_bf16", "domain":"vision_backbone", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":256, "Cout":256, "H":24, "W":24, "Kh":3, "Kw":3, "stride":1, "pad":1, "dilation":1, "groups":256, "dtype":"bf16", "capability":"depthwise", "used_by":["EfficientNetV2-S"], "note":"deep MBConv depthwise (SE block around it)", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P1"}, + {"case_id":"F016", "owner_story":"CF3", "model":"ConvNeXt-V2-L", "variant":"stem_patchify_4x4_s4_bf16", "domain":"vision_backbone", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":3, "Cout":192, "H":224, "W":224, "Kh":4, "Kw":4, "stride":4, "pad":0, "dilation":1, "groups":1, "dtype":"bf16", "capability":"patchify_strided", "used_by":["ConvNeXt-V2-L", "ConvNeXt-V2-B", "ConvNeXt-V1"], "note":"non-overlap patchify stem (stride=kernel), 224->56", "suite":"regular", "purpose":"acceptance", "priority":"P0"}, + {"case_id":"F017", "owner_story":"CF13", "model":"ConvNeXt-V2-L", "variant":"dw7x7_stage1_bf16", "domain":"vision_backbone", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":192, "Cout":192, "H":56, "W":56, "Kh":7, "Kw":7, "stride":1, "pad":3, "dilation":1, "groups":192, "dtype":"bf16", "capability":"large_kernel_dw", "used_by":["ConvNeXt-V2-L", "ConvNeXt-V2-H"], "note":"7x7 depthwise token-mixer (the ViT-competitive move)", "suite":"regular", "purpose":"acceptance", "priority":"P0"}, + {"case_id":"F018", "owner_story":"CF13", "model":"ConvNeXt-V2-L", "variant":"dw7x7_stage3_bf16", "domain":"vision_backbone", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":768, "Cout":768, "H":14, "W":14, "Kh":7, "Kw":7, "stride":1, "pad":3, "dilation":1, "groups":768, "dtype":"bf16", "capability":"large_kernel_dw", "used_by":["ConvNeXt-V2-L", "ConvNeXt-V2-H"], "note":"stage-3 7x7 depthwise", "suite":"regular", "purpose":"acceptance", "priority":"P0"}, + {"case_id":"F019", "owner_story":"CF13", "model":"ConvNeXt-V2-L", "variant":"dw7x7_stage4_bf16", "domain":"vision_backbone", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":1536, "Cout":1536, "H":7, "W":7, "Kh":7, "Kw":7, "stride":1, "pad":3, "dilation":1, "groups":1536, "dtype":"bf16", "capability":"large_kernel_dw", "used_by":["ConvNeXt-V2-L"], "note":"deepest stage, kernel ~= feature-map size", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P1"}, + {"case_id":"F020", "owner_story":"CF2", "model":"ConvNeXt-V2-L", "variant":"block_pw_expand_1x1_bf16", "domain":"vision_backbone", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":768, "Cout":3072, "H":14, "W":14, "Kh":1, "Kw":1, "stride":1, "pad":0, "dilation":1, "groups":1, "dtype":"bf16", "capability":"pointwise_1x1", "used_by":["ConvNeXt-V2-L"], "note":"4x pointwise MLP expand (dominates block FLOPs)", "suite":"regular", "purpose":"acceptance", "priority":"P0"}, + {"case_id":"F021", "owner_story":"CF3", "model":"ConvNeXt-V2-L", "variant":"downsample_2x2_s2_bf16", "domain":"vision_backbone", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":384, "Cout":768, "H":28, "W":28, "Kh":2, "Kw":2, "stride":2, "pad":0, "dilation":1, "groups":1, "dtype":"bf16", "capability":"patchify_strided", "used_by":["ConvNeXt-V2-L", "ConvNeXt-V1"], "note":"2x2 stride-2 downsample layer (stride=kernel)", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P1"}, + {"case_id":"F022", "owner_story":"CF13", "model":"ConvNeXt-V2-L", "variant":"dw7x7_stage3_fp16", "domain":"vision_backbone", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":768, "Cout":768, "H":14, "W":14, "Kh":7, "Kw":7, "stride":1, "pad":3, "dilation":1, "groups":768, "dtype":"fp16", "capability":"large_kernel_dw", "used_by":["ConvNeXt-V2-L"], "note":"fp16 twin of the 7x7 DW", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P2"}, + {"case_id":"F023", "owner_story":"CF13", "model":"RepLKNet-31B", "variant":"dw31x31_stage2_bf16", "domain":"vision_backbone", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":256, "Cout":256, "H":28, "W":28, "Kh":31, "Kw":31, "stride":1, "pad":15, "dilation":1, "groups":256, "dtype":"bf16", "capability":"large_kernel_dw", "used_by":["RepLKNet-31B", "RepLKNet-31L"], "note":"31x31 reparameterized depthwise (large effective receptive field)", "suite":"regular", "purpose":"acceptance", "priority":"P0"}, + {"case_id":"F024", "owner_story":"CF13", "model":"RepLKNet-31B", "variant":"dw31x31_stage3_bf16", "domain":"vision_backbone", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":512, "Cout":512, "H":14, "W":14, "Kh":31, "Kw":31, "stride":1, "pad":15, "dilation":1, "groups":512, "dtype":"bf16", "capability":"large_kernel_dw", "used_by":["RepLKNet-31B"], "note":"31x31 DW at 14x14 (kernel >> feature map, heavy halo)", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P1"}, + {"case_id":"F025", "owner_story":"CF13", "composition_id":"slak_dw51_stripes", "branch":"vertical", "composition_op":"sum", "composition_timing":"both branch kernels plus output sum", "model":"SLaK", "variant":"dw51x5_stripe_vertical_bf16", "domain":"vision_backbone", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":512, "Cout":512, "H":14, "W":14, "Kh":51, "Kw":5, "stride":1, "pads_before":[25, 2], "pads_after":[25, 2], "dilation":1, "groups":512, "dtype":"bf16", "capability":"large_kernel_dw", "used_by":["SLaK-T", "SLaK-S"], "note":"executable 51x5 depthwise stripe branch; paired with the separate 5x51 branch, not a synthetic 51x51 convolution", "suite":"extended", "purpose":"frontier", "priority":"P2"}, + {"case_id":"F026", "owner_story":"CF13", "composition_id":"slak_dw51_stripes", "branch":"horizontal", "composition_op":"sum", "composition_timing":"both branch kernels plus output sum", "model":"SLaK", "variant":"dw5x51_stripe_horizontal_bf16", "domain":"vision_backbone", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":512, "Cout":512, "H":14, "W":14, "Kh":5, "Kw":51, "stride":1, "pads_before":[2, 25], "pads_after":[2, 25], "dilation":1, "groups":512, "dtype":"bf16", "capability":"large_kernel_dw", "used_by":["SLaK-T", "SLaK-S"], "note":"executable 5x51 depthwise stripe branch; paired with the separate 51x5 branch, not a synthetic 51x51 convolution", "suite":"extended", "purpose":"frontier", "priority":"P2"}, + {"case_id":"F027", "owner_story":"CF13", "model":"UniRepLKNet-L", "variant":"dw13x13_dilated_reparam_bf16", "domain":"vision_backbone", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":384, "Cout":384, "H":28, "W":28, "Kh":13, "Kw":13, "stride":1, "pad":6, "dilation":1, "groups":384, "dtype":"bf16", "capability":"large_kernel_dw", "used_by":["UniRepLKNet-L", "UniRepLKNet-B"], "note":"inference-fused single 13x13 depthwise convolution; training-time dilated branches are already reparameterized, so this runtime row has dilation=1", "suite":"extended", "purpose":"frontier", "priority":"P2"}, + {"case_id":"F028", "owner_story":"CF3", "model":"ViT-L/14", "variant":"patchify_conv2d_bf16", "domain":"mllm_vision", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":3, "Cout":1024, "H":224, "W":224, "Kh":14, "Kw":14, "stride":14, "pad":0, "dilation":1, "groups":1, "dtype":"bf16", "capability":"patchify_strided", "used_by":["CLIP-ViT-L/14", "ViT-L/14", "OpeNWCIP-ViT-L"], "note":"the ubiquitous ViT patch-embed conv (stride=kernel), 224->16x16", "suite":"regular", "purpose":"acceptance", "priority":"P0"}, + {"case_id":"F029", "owner_story":"CF3", "model":"SigLIP-so400m", "variant":"patchify14_384_bf16", "domain":"mllm_vision", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":3, "Cout":1152, "H":384, "W":384, "Kh":14, "Kw":14, "stride":14, "pad":0, "dilation":1, "groups":1, "dtype":"bf16", "capability":"patchify_strided", "used_by":["SigLIP-so400m", "SigLIP2", "DeepSeek-VL2"], "note":"384px SigLIP patch-embed -> 27x27 tokens; dominant VLM vision encoder", "suite":"regular", "purpose":"acceptance", "priority":"P0"}, + {"case_id":"F030", "owner_story":"CF3", "model":"CLIP-ViT-B/16", "variant":"patchify16_bf16", "domain":"mllm_vision", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":3, "Cout":768, "H":224, "W":224, "Kh":16, "Kw":16, "stride":16, "pad":0, "dilation":1, "groups":1, "dtype":"bf16", "capability":"patchify_strided", "used_by":["CLIP-ViT-B/16", "ViT-B/16"], "note":"16x16 patch-embed -> 14x14", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P1"}, + {"case_id":"F031", "owner_story":"CF14", "model":"Qwen2-VL", "variant":"patchify_conv3d_bf16", "domain":"mllm_vision", "op":"conv3d", "layout":"NDHWC", "N":1, "Cin":3, "Cout":1280, "D":2, "H":224, "W":224, "Kd":2, "Kh":14, "Kw":14, "strides":[2, 14, 14], "pads_before":[0, 0, 0], "pads_after":[0, 0, 0], "dilations":[1, 1, 1], "output_spatial":[1, 16, 16], "groups":1, "dtype":"bf16", "capability":"patchify_strided", "used_by":["Qwen2-VL", "Qwen2.5-VL"], "note":"spatiotemporal patch-embed Conv3d kernel=stride=[2,14,14], no padding; images duplicated to 2 frames", "suite":"regular", "purpose":"acceptance", "priority":"P0"}, + {"case_id":"F032", "owner_story":"CF3", "model":"SAM-ViT-H", "variant":"patchify16_bf16", "domain":"mllm_vision", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":3, "Cout":1280, "H":1024, "W":1024, "Kh":16, "Kw":16, "stride":16, "pad":0, "dilation":1, "groups":1, "dtype":"bf16", "capability":"patchify_strided", "used_by":["SAM-ViT-H", "SAM2"], "note":"high-res (1024px) segmentation patch-embed -> 64x64", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P2"}, + {"case_id":"F033", "owner_story":"CF3", "model":"SD3-MMDiT", "variant":"latent_patchify_2x2_bf16", "domain":"diffusion_vae", "op":"conv2d", "layout":"NHWC", "N":2, "Cin":16, "Cout":1536, "H":128, "W":128, "Kh":2, "Kw":2, "stride":2, "pad":0, "dilation":1, "groups":1, "dtype":"bf16", "capability":"patchify_strided", "used_by":["SD3-Medium", "SD3.5"], "note":"MMDiT latent patch-embed on 16ch latent (2x2, stride=kernel)", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P1"}, + {"case_id":"F034", "owner_story":"CF6A", "model":"ViT-B/16-edge", "variant":"patchify16_int8", "domain":"mllm_vision", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":3, "Cout":768, "H":224, "W":224, "Kh":16, "Kw":16, "stride":16, "pad":0, "dilation":1, "groups":1, "dtype":"int8", "capability":"patchify_strided", "used_by":["ViT-B/16"], "note":"quantized edge ViT patch-embed", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P2", "disabled":true}, + {"case_id":"F035", "owner_story":"CF4", "model":"YOLO11-L", "variant":"stem_3x3_s2_bf16", "domain":"detection", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":3, "Cout":64, "H":640, "W":640, "Kh":3, "Kw":3, "stride":2, "pad":1, "dilation":1, "groups":1, "dtype":"bf16", "capability":"stem", "used_by":["YOLO11-L", "YOLO11-M", "YOLOv8-L"], "note":"detector stem at 640; modern nets use 3x3 s2, not 7x7", "suite":"regular", "purpose":"acceptance", "priority":"P0"}, + {"case_id":"F036", "owner_story":"CF1", "model":"YOLO11-L", "variant":"down_3x3_s2_128_bf16", "domain":"detection", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":64, "Cout":128, "H":320, "W":320, "Kh":3, "Kw":3, "stride":2, "pad":1, "dilation":1, "groups":1, "dtype":"bf16", "capability":"dense_smallk", "used_by":["YOLO11-L", "YOLOv8-L"], "note":"P2 downsample 320->160", "suite":"regular", "purpose":"acceptance", "priority":"P0"}, + {"case_id":"F037", "owner_story":"CF1", "model":"YOLO11-L", "variant":"down_3x3_s2_256_bf16", "domain":"detection", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":128, "Cout":256, "H":160, "W":160, "Kh":3, "Kw":3, "stride":2, "pad":1, "dilation":1, "groups":1, "dtype":"bf16", "capability":"dense_smallk", "used_by":["YOLO11-L"], "note":"P3 downsample 160->80", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P1"}, + {"case_id":"F038", "owner_story":"CF1", "model":"YOLO11-L", "variant":"down_3x3_s2_512_bf16", "domain":"detection", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":256, "Cout":512, "H":80, "W":80, "Kh":3, "Kw":3, "stride":2, "pad":1, "dilation":1, "groups":1, "dtype":"bf16", "capability":"dense_smallk", "used_by":["YOLO11-L"], "note":"P4 downsample 80->40", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P1"}, + {"case_id":"F039", "owner_story":"CF2", "model":"YOLO11-L", "variant":"c3k2_pw_1x1_bf16", "domain":"detection", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":512, "Cout":256, "H":40, "W":40, "Kh":1, "Kw":1, "stride":1, "pad":0, "dilation":1, "groups":1, "dtype":"bf16", "capability":"pointwise_1x1", "used_by":["YOLO11-L"], "note":"C3k2 split/transition 1x1", "suite":"regular", "purpose":"acceptance", "priority":"P0"}, + {"case_id":"F040", "owner_story":"CF1", "model":"YOLO11-L", "variant":"c3k2_bottleneck_3x3_bf16", "domain":"detection", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":256, "Cout":256, "H":40, "W":40, "Kh":3, "Kw":3, "stride":1, "pad":1, "dilation":1, "groups":1, "dtype":"bf16", "capability":"dense_smallk", "used_by":["YOLO11-L"], "note":"C3k2 uses two small 3x3 convs (vs YOLOv8 one large conv)", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P1"}, + {"case_id":"F041", "owner_story":"CF1", "model":"YOLO11-L", "variant":"detect_head_3x3_bf16", "domain":"detection", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":256, "Cout":256, "H":80, "W":80, "Kh":3, "Kw":3, "stride":1, "pad":1, "dilation":1, "groups":1, "dtype":"bf16", "capability":"dense_smallk", "used_by":["YOLO11-L"], "note":"detection head conv (P3 scale)", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P1"}, + {"case_id":"F042", "owner_story":"CF6A", "model":"YOLO11-L", "variant":"stem_3x3_s2_int8", "domain":"detection", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":3, "Cout":64, "H":640, "W":640, "Kh":3, "Kw":3, "stride":2, "pad":1, "dilation":1, "groups":1, "dtype":"int8", "capability":"stem", "used_by":["YOLO11-L", "YOLOv8"], "note":"quantized deployed detector", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P1", "disabled":true}, + {"case_id":"F043", "owner_story":"CF10", "model":"YOLO11-L", "variant":"dwsep_dw3x3_p3_bf16", "domain":"detection", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":256, "Cout":256, "H":80, "W":80, "Kh":3, "Kw":3, "stride":1, "pad":1, "dilation":1, "groups":256, "dtype":"bf16", "capability":"depthwise", "used_by":["YOLO11-L"], "note":"depthwise-separable variant block", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P2"}, + {"case_id":"F044", "owner_story":"CF4", "model":"YOLO11-L", "variant":"stem_3x3_s2_1280_bf16", "domain":"detection", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":3, "Cout":64, "H":1280, "W":1280, "Kh":3, "Kw":3, "stride":2, "pad":1, "dilation":1, "groups":1, "dtype":"bf16", "capability":"stem", "used_by":["YOLO11-L"], "note":"high-res 1280 input sweep", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P2"}, + {"case_id":"F045", "owner_story":"CF1", "model":"SDXL-VAE", "variant":"enc_conv_in_3x3_fp16", "domain":"diffusion_vae", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":3, "Cout":128, "H":1024, "W":1024, "Kh":3, "Kw":3, "stride":1, "pad":1, "dilation":1, "groups":1, "dtype":"fp16", "capability":"dense_smallk", "used_by":["SDXL-VAE", "SD1.5-VAE"], "note":"encoder conv_in at full 1024px (bandwidth-heavy high-res)", "suite":"regular", "purpose":"acceptance", "priority":"P0"}, + {"case_id":"F046", "owner_story":"CF1", "model":"SDXL-VAE", "variant":"enc_resnet_3x3_128_bf16", "domain":"diffusion_vae", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":128, "Cout":128, "H":1024, "W":1024, "Kh":3, "Kw":3, "stride":1, "pad":1, "dilation":1, "groups":1, "dtype":"bf16", "capability":"dense_smallk", "used_by":["SDXL-VAE"], "note":"encoder ResNet block 3x3 at 1024px", "suite":"regular", "purpose":"acceptance", "priority":"P1"}, + {"case_id":"F047", "owner_story":"CF1", "model":"SDXL-VAE", "variant":"enc_downsample_3x3_s2_bf16", "domain":"diffusion_vae", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":128, "Cout":128, "H":1024, "W":1024, "Kh":3, "Kw":3, "stride":2, "pad":1, "dilation":1, "groups":1, "dtype":"bf16", "capability":"dense_smallk", "used_by":["SDXL-VAE"], "note":"encoder 8x downsample stage 1024->512", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P1"}, + {"case_id":"F048", "owner_story":"CF1", "model":"SDXL-VAE", "variant":"mid_3x3_512_bf16", "domain":"diffusion_vae", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":512, "Cout":512, "H":128, "W":128, "Kh":3, "Kw":3, "stride":1, "pad":1, "dilation":1, "groups":1, "dtype":"bf16", "capability":"dense_smallk", "used_by":["SDXL-VAE", "SD3-VAE"], "note":"mid-block 3x3 at latent resolution 128", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P1"}, + {"case_id":"F049", "owner_story":"CF1", "model":"SDXL-VAE", "variant":"dec_resnet_3x3_512_bf16", "domain":"diffusion_vae", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":512, "Cout":512, "H":128, "W":128, "Kh":3, "Kw":3, "stride":1, "pad":1, "dilation":1, "groups":1, "dtype":"bf16", "capability":"dense_smallk", "used_by":["SDXL-VAE"], "note":"decoder ResNet block 3x3", "suite":"regular", "purpose":"acceptance", "priority":"P1"}, + {"case_id":"F050", "owner_story":"CF1", "model":"SDXL-VAE", "variant":"dec_upsample_conv_3x3_bf16", "domain":"diffusion_vae", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":512, "Cout":512, "H":256, "W":256, "Kh":3, "Kw":3, "stride":1, "pad":1, "dilation":1, "groups":1, "pre_op":{"type":"external_upsample", "benchmarked":false}, "dtype":"bf16", "capability":"upsample_conv", "used_by":["SDXL-VAE", "SD1.5-VAE"], "note":"benchmarks only the 3x3 convolution at the already-upsampled 256x256 shape; external interpolation is excluded", "suite":"regular", "purpose":"acceptance", "priority":"P0"}, + {"case_id":"F051", "owner_story":"CF1", "model":"SDXL-VAE", "variant":"dec_conv_out_3x3_1024_fp32", "domain":"diffusion_vae", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":128, "Cout":3, "H":1024, "W":1024, "Kh":3, "Kw":3, "stride":1, "pad":1, "dilation":1, "groups":1, "dtype":"fp32", "capability":"dense_smallk", "used_by":["SDXL-VAE"], "note":"decoder conv_out at 1024px; often kept fp32 for reconstruction stability", "suite":"regular", "purpose":"acceptance", "priority":"P0"}, + {"case_id":"F052", "owner_story":"CF1", "model":"SD3-VAE", "variant":"dec_conv_in_16ch_3x3_bf16", "domain":"diffusion_vae", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":16, "Cout":512, "H":128, "W":128, "Kh":3, "Kw":3, "stride":1, "pad":1, "dilation":1, "groups":1, "dtype":"bf16", "capability":"dense_smallk", "used_by":["SD3-VAE", "Flux.1-VAE"], "note":"16-channel latent (12x compression) decoder conv_in", "suite":"regular", "purpose":"acceptance", "priority":"P1"}, + {"case_id":"F053", "owner_story":"CF1", "model":"Flux.2-VAE", "variant":"dec_conv_in_32ch_3x3_bf16", "domain":"diffusion_vae", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":32, "Cout":512, "H":128, "W":128, "Kh":3, "Kw":3, "stride":1, "pad":1, "dilation":1, "groups":1, "dtype":"bf16", "capability":"dense_smallk", "used_by":["Flux.2-VAE"], "note":"32-channel latent (~6x compression, lowest yet)", "suite":"extended", "purpose":"frontier", "priority":"P2"}, + {"case_id":"F054", "owner_story":"CF22", "model":"VAE-transposed-decoder", "variant":"dec_convtranspose_4x4_s2_bf16", "domain":"diffusion_vae", "op":"conv2d_transpose", "layout":"NHWC", "N":1, "Cin":512, "Cout":512, "H":128, "W":128, "Kh":4, "Kw":4, "stride":2, "pad":1, "output_padding":0, "dilation":1, "output_spatial":[256, 256], "groups":1, "dtype":"bf16", "capability":"transposed_upsample", "used_by":["GAN-decoders", "legacy-VAE-decoders"], "note":"genuine fractionally-strided transposed convolution; 4x4 s2 p1 with output_padding=0 maps 128x128 to 256x256", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P2", "disabled":true}, + {"case_id":"F055", "owner_story":"CF1", "model":"SDXL-VAE", "variant":"dec_conv_out_3x3_1536_fp32", "domain":"diffusion_vae", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":128, "Cout":3, "H":1536, "W":1536, "Kh":3, "Kw":3, "stride":1, "pad":1, "dilation":1, "groups":1, "dtype":"fp32", "capability":"dense_smallk", "used_by":["SDXL-VAE"], "note":"high-res 1536 decode sweep (VAE decode is the perf tail of image gen)", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P2"}, + {"case_id":"F056", "owner_story":"CF16C", "model":"HunyuanVideo-VAE", "variant":"enc_causal_conv_in_3x3x3_bf16", "domain":"video_vae", "op":"conv3d", "layout":"NDHWC", "N":1, "Cin":3, "Cout":128, "D":17, "H":256, "W":256, "Kd":3, "Kh":3, "Kw":3, "strides":[1, 1, 1], "pads_before":[2, 1, 1], "pads_after":[0, 1, 1], "dilations":[1, 1, 1], "output_spatial":[17, 256, 256], "groups":1, "causal":1, "execution":"full_clip", "dtype":"bf16", "capability":"conv3d_causal", "used_by":["HunyuanVideo-VAE", "WAN-VAE", "Cosmos-Tokenizer"], "note":"full-clip CausalConv3D encoder conv_in with temporal past-only padding", "suite":"regular", "purpose":"frontier", "priority":"P0"}, + {"case_id":"F057", "owner_story":"CF16C", "model":"HunyuanVideo-VAE", "variant":"enc_causal_3x3x3_128_bf16", "domain":"video_vae", "op":"conv3d", "layout":"NDHWC", "N":1, "Cin":128, "Cout":128, "D":17, "H":256, "W":256, "Kd":3, "Kh":3, "Kw":3, "strides":[1, 1, 1], "pads_before":[2, 1, 1], "pads_after":[0, 1, 1], "dilations":[1, 1, 1], "output_spatial":[17, 256, 256], "groups":1, "causal":1, "execution":"full_clip", "dtype":"bf16", "capability":"conv3d_causal", "used_by":["HunyuanVideo-VAE", "WAN-VAE"], "note":"ordinary full-clip causal 3D ResNet block", "suite":"regular", "purpose":"frontier", "priority":"P1"}, + {"case_id":"F058", "owner_story":"CF16C", "model":"HunyuanVideo-VAE", "variant":"enc_spatial_down_s122_bf16", "domain":"video_vae", "op":"conv3d", "layout":"NDHWC", "N":1, "Cin":128, "Cout":256, "D":17, "H":256, "W":256, "Kd":3, "Kh":3, "Kw":3, "strides":[1, 2, 2], "pads_before":[2, 1, 1], "pads_after":[0, 1, 1], "dilations":[1, 1, 1], "output_spatial":[17, 128, 128], "groups":1, "causal":1, "execution":"full_clip", "dtype":"bf16", "capability":"conv3d_causal", "used_by":["HunyuanVideo-VAE"], "note":"full-clip spatial downsample uses stride [1,2,2]; temporal length is preserved", "suite":"extended", "purpose":"frontier", "priority":"P1"}, + {"case_id":"F059", "owner_story":"CF16C", "model":"HunyuanVideo-VAE", "variant":"enc_temporal_down_s2_bf16", "domain":"video_vae", "op":"conv3d", "layout":"NDHWC", "N":1, "Cin":256, "Cout":256, "D":17, "H":64, "W":64, "Kd":3, "Kh":3, "Kw":3, "strides":[2, 1, 1], "pads_before":[2, 1, 1], "pads_after":[0, 1, 1], "dilations":[1, 1, 1], "output_spatial":[9, 64, 64], "groups":1, "causal":1, "execution":"full_clip", "dtype":"bf16", "capability":"conv3d_causal", "used_by":["HunyuanVideo-VAE"], "note":"full-clip temporal downsample uses stride [2,1,1], mapping 17 frames to 9 outputs", "suite":"extended", "purpose":"frontier", "priority":"P1"}, + {"case_id":"F060", "owner_story":"CF16C", "model":"HunyuanVideo-VAE", "variant":"dec_causal_3x3x3_512_bf16", "domain":"video_vae", "op":"conv3d", "layout":"NDHWC", "N":1, "Cin":512, "Cout":512, "D":5, "H":32, "W":32, "Kd":3, "Kh":3, "Kw":3, "strides":[1, 1, 1], "pads_before":[2, 1, 1], "pads_after":[0, 1, 1], "dilations":[1, 1, 1], "output_spatial":[5, 32, 32], "groups":1, "causal":1, "execution":"full_clip", "dtype":"bf16", "capability":"conv3d_causal", "used_by":["HunyuanVideo-VAE"], "note":"full-clip decoder causal 3D block at latent resolution", "suite":"regular", "purpose":"frontier", "priority":"P1"}, + {"case_id":"F061", "owner_story":"CF16C", "model":"HunyuanVideo-VAE", "variant":"dec_upsample_conv3d_bf16", "domain":"video_vae", "op":"conv3d", "layout":"NDHWC", "N":1, "Cin":256, "Cout":256, "D":9, "H":128, "W":128, "Kd":3, "Kh":3, "Kw":3, "strides":[1, 1, 1], "pads_before":[2, 1, 1], "pads_after":[0, 1, 1], "dilations":[1, 1, 1], "output_spatial":[9, 128, 128], "groups":1, "causal":1, "execution":"full_clip", "pre_op":{"type":"external_upsample", "benchmarked":false}, "dtype":"bf16", "capability":"upsample_conv", "used_by":["HunyuanVideo-VAE", "WAN-VAE"], "note":"benchmarks only the causal 3D convolution at the already-upsampled [9,128,128] shape; external interpolation or pixel shuffle is excluded", "suite":"extended", "purpose":"frontier", "priority":"P2"}, + {"case_id":"F062", "owner_story":"CF16S", "model":"WAN-VAE", "variant":"enc_causal_conv_in_3x3x3_bf16", "domain":"video_vae", "op":"conv3d", "layout":"NDHWC", "N":1, "Cin":3, "Cout":96, "D":21, "H":256, "W":256, "Kd":3, "Kh":3, "Kw":3, "strides":[1, 1, 1], "pads_before":[2, 1, 1], "pads_after":[0, 1, 1], "dilations":[1, 1, 1], "output_spatial":[21, 256, 256], "groups":1, "causal":1, "execution":"streaming_equivalence", "cache_semantics":"state carried across chunks; output must match full clip", "dtype":"bf16", "capability":"conv3d_causal", "used_by":["WAN-VAE", "WAN2.2"], "note":"Wan-VAE feature-cache streaming-equivalence probe for arbitrary-length input", "suite":"extended", "purpose":"frontier", "priority":"P2"}, + {"case_id":"F063", "owner_story":"CF14F", "model":"HunyuanVideo-VAE", "variant":"enc_causal_conv_in_3x3x3_fp8", "domain":"video_vae", "op":"conv3d", "layout":"NDHWC", "N":1, "Cin":128, "Cout":128, "D":17, "H":256, "W":256, "Kd":3, "Kh":3, "Kw":3, "strides":[1, 1, 1], "pads_before":[2, 1, 1], "pads_after":[0, 1, 1], "dilations":[1, 1, 1], "output_spatial":[17, 256, 256], "groups":1, "causal":1, "execution":"full_clip", "dtype":"fp8_e4m3", "capability":"conv3d_causal", "used_by":["HunyuanVideo-VAE"], "note":"full-clip fp8 frontier probe for the heavy 3D-conv VAE workload", "suite":"extended", "purpose":"frontier", "priority":"P2", "disabled":true}, + {"case_id":"F064", "owner_story":"CF16S", "model":"HunyuanVideo-VAE", "variant":"enc_causal_conv_in_longclip_bf16", "domain":"video_vae", "op":"conv3d", "layout":"NDHWC", "N":1, "Cin":128, "Cout":128, "D":33, "H":256, "W":256, "Kd":3, "Kh":3, "Kw":3, "strides":[1, 1, 1], "pads_before":[2, 1, 1], "pads_after":[0, 1, 1], "dilations":[1, 1, 1], "output_spatial":[33, 256, 256], "groups":1, "causal":1, "execution":"streaming_equivalence", "cache_semantics":"state carried across chunks; output must match full clip", "dtype":"bf16", "capability":"conv3d_causal", "used_by":["HunyuanVideo-VAE"], "note":"33-frame long-clip streaming-equivalence probe against full-clip output", "suite":"extended", "purpose":"frontier", "priority":"P2"}, + {"case_id":"F065", "owner_story":"CF19", "model":"Mamba2-2.7B", "variant":"causal_conv1d_w4_bf16", "domain":"ssm", "op":"conv1d", "layout":"NWC", "N":1, "Cin":5376, "Cout":5376, "L":4096, "Kl":4, "stride":1, "pad":3, "dilation":1, "groups":5376, "causal":1, "dtype":"bf16", "capability":"causal_conv1d", "used_by":["Mamba2-2.7B", "Mamba2-1.3B"], "note":"depthwise causal conv1d over (d_inner + 2*ngroups*d_state) channels, width 4", "suite":"regular", "purpose":"acceptance", "priority":"P0"}, + {"case_id":"F066", "owner_story":"CF19", "model":"Mamba2-2.7B", "variant":"causal_conv1d_w4_longctx_bf16", "domain":"ssm", "op":"conv1d", "layout":"NWC", "N":1, "Cin":5376, "Cout":5376, "L":16384, "Kl":4, "stride":1, "pad":3, "dilation":1, "groups":5376, "causal":1, "dtype":"bf16", "capability":"causal_conv1d", "used_by":["Mamba2-2.7B"], "note":"long-sequence sweep (SSMs are marketed on long context)", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P1"}, + {"case_id":"F067", "owner_story":"CF19", "model":"Mamba-2.8B", "variant":"causal_conv1d_w4_bf16", "domain":"ssm", "op":"conv1d", "layout":"NWC", "N":1, "Cin":5120, "Cout":5120, "L":2048, "Kl":4, "stride":1, "pad":3, "dilation":1, "groups":5120, "causal":1, "dtype":"bf16", "capability":"causal_conv1d", "used_by":["Mamba-2.8B", "Jamba"], "note":"Mamba-v1 selective-SSM short causal conv", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P1"}, + {"case_id":"F068", "owner_story":"CF19", "model":"Mamba2-2.7B", "variant":"causal_conv1d_w4_decode_bf16", "domain":"ssm", "op":"conv1d", "layout":"NWC", "N":64, "Cin":5376, "Cout":5376, "L":1, "Kl":4, "stride":1, "pad":3, "dilation":1, "groups":5376, "causal":1, "dtype":"bf16", "capability":"causal_conv1d", "used_by":["Mamba2-2.7B"], "note":"autoregressive decode step (L=1, conv-state cache), batch 64", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P1"}, + {"case_id":"F069", "owner_story":"CF20A", "model":"Whisper-large-v3", "variant":"conv1d_stem1_k3_s1_bf16", "domain":"audio", "op":"conv1d", "layout":"NWC", "N":1, "Cin":128, "Cout":1280, "L":3000, "Kl":3, "stride":1, "pad":1, "dilation":1, "groups":1, "dtype":"bf16", "capability":"conv1d_stem", "used_by":["Whisper-large-v3", "Whisper-large-v2"], "note":"mel(128)->1280 conv1d stem over 3000 frames (encoder)", "suite":"regular", "purpose":"acceptance", "priority":"P0"}, + {"case_id":"F070", "owner_story":"CF20A", "model":"Whisper-large-v3", "variant":"conv1d_stem2_k3_s2_bf16", "domain":"audio", "op":"conv1d", "layout":"NWC", "N":1, "Cin":1280, "Cout":1280, "L":3000, "Kl":3, "stride":2, "pad":1, "dilation":1, "groups":1, "dtype":"bf16", "capability":"conv1d_stem", "used_by":["Whisper-large-v3"], "note":"second conv1d, stride-2 temporal downsample 3000->1500", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P1"}, + {"case_id":"F071", "owner_story":"CF20B", "model":"Conformer-L", "variant":"dw_conv1d_k31_bf16", "domain":"audio", "op":"conv1d", "layout":"NWC", "N":1, "Cin":512, "Cout":512, "L":1500, "Kl":31, "stride":1, "pad":15, "dilation":1, "groups":512, "dtype":"bf16", "capability":"depthwise", "used_by":["Conformer-L", "ConMamba", "FastConformer"], "note":"Conformer/ConMamba depthwise conv1d module, kernel 31 (local ASR context)", "suite":"regular", "purpose":"acceptance", "priority":"P1"}, + {"case_id":"F072", "owner_story":"CF24", "model":"Hyena-long", "variant":"fft_long_conv_global_bf16", "domain":"ssm", "op":"conv1d", "layout":"NWC", "N":1, "Cin":768, "Cout":768, "L":8192, "Kl":8192, "stride":1, "pad":8191, "dilation":1, "groups":768, "causal":1, "dtype":"bf16", "capability":"long_conv", "used_by":["Hyena", "H3", "FlashFFTConv"], "note":"forward-looking: implicit global (kernel=L) causal conv realized via FFT, subquadratic sequence mixer", "suite":"extended", "purpose":"frontier", "priority":"P2"}, + {"case_id":"F073", "owner_story":"CF1", "model":"ResNet-50", "variant":"stage4_3x3_512_bf16", "domain":"legacy_baseline", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":512, "Cout":512, "H":7, "W":7, "Kh":3, "Kw":3, "stride":1, "pad":1, "dilation":1, "groups":1, "dtype":"bf16", "capability":"dense_smallk", "used_by":["ResNet-50"], "note":"deepest stage 3x3 (small spatial, wide channels)", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P2"}, + {"case_id":"F074", "owner_story":"CF1", "model":"ResNet-152", "variant":"bottleneck_3x3_s1_bf16", "domain":"legacy_baseline", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":256, "Cout":256, "H":14, "W":14, "Kh":3, "Kw":3, "stride":1, "pad":1, "dilation":1, "groups":1, "dtype":"bf16", "capability":"dense_smallk", "used_by":["ResNet-152", "ResNet-101"], "note":"deeper-ResNet stage3 bottleneck", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P2"}, + {"case_id":"F075", "owner_story":"CF5P", "model":"ResNeXt-50-32x4d", "variant":"grouped_3x3_g32_bf16", "domain":"vision_backbone", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":256, "Cout":256, "H":56, "W":56, "Kh":3, "Kw":3, "stride":1, "pad":1, "dilation":1, "groups":32, "dtype":"bf16", "capability":"grouped", "used_by":["ResNeXt-50", "ResNeXt-101", "RegNetY"], "note":"cardinality-32 grouped 3x3 (between dense and depthwise)", "suite":"regular", "purpose":"acceptance", "priority":"P1"}, + {"case_id":"F076", "owner_story":"CF6B", "model":"ResNeXt-101-32x8d", "variant":"grouped_3x3_g32_int8", "domain":"vision_backbone", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":512, "Cout":512, "H":28, "W":28, "Kh":3, "Kw":3, "stride":1, "pad":1, "dilation":1, "groups":32, "dtype":"int8", "capability":"grouped", "used_by":["ResNeXt-101"], "note":"quantized grouped conv", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P2", "disabled":true}, + {"case_id":"F077", "owner_story":"CF1", "model":"RepVGG-B2", "variant":"reparam_dense_3x3_bf16", "domain":"vision_backbone", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":256, "Cout":256, "H":28, "W":28, "Kh":3, "Kw":3, "stride":1, "pad":1, "dilation":1, "groups":1, "dtype":"bf16", "capability":"dense_smallk", "used_by":["RepVGG-B2", "MobileOne"], "note":"inference-fused plain 3x3 (multi-branch reparam at train time) -> a pure 3x3 GEMM at deploy", "suite":"regular", "purpose":"acceptance", "priority":"P1"}, + {"case_id":"F078", "owner_story":"CF23", "runtime_gate":false, "model":"InternImage-B", "variant":"dcnv3_deformable_dw3x3_bf16", "domain":"vision_backbone", "op":"dcnv3", "layout":"NHWC", "N":1, "Cin":112, "Cout":112, "H":28, "W":28, "Kh":3, "Kw":3, "stride":1, "pad":1, "dilation":1, "deform_groups":7, "channels_per_group":16, "offset_scale":1.0, "remove_center":false, "offset_tensor":{"layout":"NHWC", "shape":[1, 28, 28, 126]}, "modulation_mask_tensor":{"layout":"NHWC", "shape":[1, 28, 28, 63], "activation":"softmax", "normalization_axis":"sampling_points_per_deform_group"}, "dtype":"bf16", "capability":"deformable_dw", "used_by":["InternImage-B", "InternImage-L"], "note":"true DCNv3 operator; 3x3 sampling uses 7 deform groups, with reference mask logits softmax-normalized over 9 sampling points per group", "suite":"extended", "purpose":"research", "priority":"P2"}, + {"case_id":"F079", "owner_story":"CF13", "model":"ConvNeXt-V2-XL", "variant":"dw7x7_stage3_bf16", "domain":"vision_backbone", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":1024, "Cout":1024, "H":14, "W":14, "Kh":7, "Kw":7, "stride":1, "pad":3, "dilation":1, "groups":1024, "dtype":"bf16", "capability":"large_kernel_dw", "used_by":["ConvNeXt-V2-XL"], "note":"XL-width 7x7 DW", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P2"}, + {"case_id":"F080", "owner_story":"CF3", "model":"ConvNeXt-V2-B", "variant":"stem_patchify_4x4_s4_bf16", "domain":"vision_backbone", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":3, "Cout":128, "H":224, "W":224, "Kh":4, "Kw":4, "stride":4, "pad":0, "dilation":1, "groups":1, "dtype":"bf16", "capability":"patchify_strided", "used_by":["ConvNeXt-V2-B", "ConvNeXt-V1-B"], "note":"base-width patchify stem (dim 128)", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P2"}, + {"case_id":"F081", "owner_story":"CF13", "model":"ConvNeXt-V2-L", "variant":"dw7x7_stage1_384_bf16", "domain":"vision_backbone", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":192, "Cout":192, "H":96, "W":96, "Kh":7, "Kw":7, "stride":1, "pad":3, "dilation":1, "groups":192, "dtype":"bf16", "capability":"large_kernel_dw", "used_by":["ConvNeXt-V2-L"], "note":"384px input resolution sweep (stage1 96x96)", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P2"}, + {"case_id":"F082", "owner_story":"CF13", "model":"ConvNeXt-V2-L", "variant":"dw7x7_stage1_fp16", "domain":"vision_backbone", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":192, "Cout":192, "H":56, "W":56, "Kh":7, "Kw":7, "stride":1, "pad":3, "dilation":1, "groups":192, "dtype":"fp16", "capability":"large_kernel_dw", "used_by":["ConvNeXt-V2-L"], "note":"fp16 twin of the 7x7 DW", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P2"}, + {"case_id":"F083", "owner_story":"CF2", "model":"ConvNeXt-V2-L", "variant":"block_pw_project_1x1_bf16", "domain":"vision_backbone", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":3072, "Cout":768, "H":14, "W":14, "Kh":1, "Kw":1, "stride":1, "pad":0, "dilation":1, "groups":1, "dtype":"bf16", "capability":"pointwise_1x1", "used_by":["ConvNeXt-V2-L"], "note":"pointwise MLP project (4x->1x)", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P1"}, + {"case_id":"F084", "owner_story":"CF13", "model":"RepLKNet-31L", "variant":"dw31x31_stage1_bf16", "domain":"vision_backbone", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":192, "Cout":192, "H":56, "W":56, "Kh":31, "Kw":31, "stride":1, "pad":15, "dilation":1, "groups":192, "dtype":"bf16", "capability":"large_kernel_dw", "used_by":["RepLKNet-31L"], "note":"large-kernel DW at higher resolution (56x56)", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P2"}, + {"case_id":"F085", "owner_story":"CF10", "model":"MobileNetV4-Conv-L", "variant":"uib_dw3x3_384_bf16", "domain":"vision_backbone", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":144, "Cout":144, "H":96, "W":96, "Kh":3, "Kw":3, "stride":1, "pad":1, "dilation":1, "groups":144, "dtype":"bf16", "capability":"depthwise", "used_by":["MobileNetV4"], "note":"384px depthwise sweep", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P2"}, + {"case_id":"F086", "owner_story":"CF6B", "model":"GhostNetV2", "variant":"cheap_dw3x3_int8", "domain":"vision_backbone", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":80, "Cout":80, "H":28, "W":28, "Kh":3, "Kw":3, "stride":1, "pad":1, "dilation":1, "groups":80, "dtype":"int8", "capability":"depthwise", "used_by":["GhostNetV2", "GhostNet"], "note":"Ghost cheap-operation depthwise, quantized mobile", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P2", "disabled":true}, + {"case_id":"F087", "owner_story":"CF2", "model":"EfficientNetV2-M", "variant":"ib_expand_1x1_bf16", "domain":"vision_backbone", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":80, "Cout":480, "H":24, "W":24, "Kh":1, "Kw":1, "stride":1, "pad":0, "dilation":1, "groups":1, "dtype":"bf16", "capability":"pointwise_1x1", "used_by":["EfficientNetV2-M"], "note":"MBConv expand 1x1 (ratio 6)", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P2"}, + {"case_id":"F088", "owner_story":"CF3", "model":"CLIP-ViT-L/14", "variant":"patchify14_336_bf16", "domain":"mllm_vision", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":3, "Cout":1024, "H":336, "W":336, "Kh":14, "Kw":14, "stride":14, "pad":0, "dilation":1, "groups":1, "dtype":"bf16", "capability":"patchify_strided", "used_by":["CLIP-ViT-L/14-336", "LLaVA-1.5"], "note":"336px LLaVA-style high-res patch-embed -> 24x24", "suite":"regular", "purpose":"acceptance", "priority":"P1"}, + {"case_id":"F089", "owner_story":"CF3", "model":"InternViT-6B", "variant":"patchify14_448_bf16", "domain":"mllm_vision", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":3, "Cout":3200, "H":448, "W":448, "Kh":14, "Kw":14, "stride":14, "pad":0, "dilation":1, "groups":1, "dtype":"bf16", "capability":"patchify_strided", "used_by":["InternViT-6B", "InternVL"], "note":"large VLM vision-encoder patch-embed @448 -> 32x32", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P1"}, + {"case_id":"F090", "owner_story":"CF3", "model":"DINOv2-ViT-g/14", "variant":"patchify14_bf16", "domain":"mllm_vision", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":3, "Cout":1536, "H":224, "W":224, "Kh":14, "Kw":14, "stride":14, "pad":0, "dilation":1, "groups":1, "dtype":"bf16", "capability":"patchify_strided", "used_by":["DINOv2-ViT-g", "RADIO"], "note":"self-supervised vision-encoder patch-embed", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P2"}, + {"case_id":"F091", "owner_story":"CF14", "model":"Qwen2.5-VL", "variant":"patchify_conv3d_hires_bf16", "domain":"mllm_vision", "op":"conv3d", "layout":"NDHWC", "N":1, "Cin":3, "Cout":1280, "D":2, "H":392, "W":392, "Kd":2, "Kh":14, "Kw":14, "strides":[2, 14, 14], "pads_before":[0, 0, 0], "pads_after":[0, 0, 0], "dilations":[1, 1, 1], "output_spatial":[1, 28, 28], "groups":1, "dtype":"bf16", "capability":"patchify_strided", "used_by":["Qwen2.5-VL"], "note":"higher-res dynamic-resolution tile; Conv3d patchify [2,14,14] with no padding produces a [1,28,28] grid", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P2"}, + {"case_id":"F092", "owner_story":"CF3", "model":"SigLIP2-g", "variant":"patchify16_512_bf16", "domain":"mllm_vision", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":3, "Cout":1536, "H":512, "W":512, "Kh":16, "Kw":16, "stride":16, "pad":0, "dilation":1, "groups":1, "dtype":"bf16", "capability":"patchify_strided", "used_by":["SigLIP2-g"], "note":"512px patch16 -> 32x32", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P2"}, + {"case_id":"F093", "owner_story":"CF1", "model":"YOLOv12-L", "variant":"a2c2f_conv_3x3_bf16", "domain":"detection", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":256, "Cout":256, "H":40, "W":40, "Kh":3, "Kw":3, "stride":1, "pad":1, "dilation":1, "groups":1, "dtype":"bf16", "capability":"dense_smallk", "used_by":["YOLOv12-L"], "note":"YOLOv12 keeps Conv+BN (over Linear+LN) inside its attention-centric A2C2f blocks", "suite":"regular", "purpose":"acceptance", "priority":"P1"}, + {"case_id":"F094", "owner_story":"CF13", "model":"YOLOv12-L", "variant":"position_perceiver_dw7x7_bf16", "domain":"detection", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":256, "Cout":256, "H":40, "W":40, "Kh":7, "Kw":7, "stride":1, "pad":3, "dilation":1, "groups":256, "dtype":"bf16", "capability":"large_kernel_dw", "used_by":["YOLOv12-L"], "note":"7x7 separable 'position perceiver' replacing positional encodings", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P2"}, + {"case_id":"F095", "owner_story":"CF6A", "model":"YOLO11-N", "variant":"stem_3x3_s2_int8", "domain":"detection", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":3, "Cout":16, "H":640, "W":640, "Kh":3, "Kw":3, "stride":2, "pad":1, "dilation":1, "groups":1, "dtype":"int8", "capability":"stem", "used_by":["YOLO11-N", "YOLO26"], "note":"nano detector, quantized edge deploy", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P2", "disabled":true}, + {"case_id":"F096", "owner_story":"CF4", "model":"RT-DETR-R50", "variant":"hgnet_stem_3x3_s2_bf16", "domain":"detection", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":3, "Cout":32, "H":640, "W":640, "Kh":3, "Kw":3, "stride":2, "pad":1, "dilation":1, "groups":1, "dtype":"bf16", "capability":"stem", "used_by":["RT-DETR-R50", "RT-DETRv2"], "note":"real-time DETR conv backbone stem", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P2"}, + {"case_id":"F097", "owner_story":"CF2", "model":"YOLO11-L", "variant":"sppf_pw_1x1_bf16", "domain":"detection", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":512, "Cout":512, "H":20, "W":20, "Kh":1, "Kw":1, "stride":1, "pad":0, "dilation":1, "groups":1, "dtype":"bf16", "capability":"pointwise_1x1", "used_by":["YOLO11-L"], "note":"SPPF 1x1 at the deepest P5 scale", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P2"}, + {"case_id":"F098", "owner_story":"CF2", "model":"YOLO11-L", "variant":"neck_c3k2_pw_1x1_p4_bf16", "domain":"detection", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":768, "Cout":256, "H":40, "W":40, "Kh":1, "Kw":1, "stride":1, "pad":0, "dilation":1, "groups":1, "dtype":"bf16", "capability":"pointwise_1x1", "used_by":["YOLO11-L"], "note":"PAN neck 1x1 after concat", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P2"}, + {"case_id":"F099", "owner_story":"CF1", "model":"SD1.5-VAE", "variant":"enc_conv_in_3x3_512_fp16", "domain":"diffusion_vae", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":3, "Cout":128, "H":512, "W":512, "Kh":3, "Kw":3, "stride":1, "pad":1, "dilation":1, "groups":1, "dtype":"fp16", "capability":"dense_smallk", "used_by":["SD1.5-VAE"], "note":"512px generation (the classic SD resolution)", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P1"}, + {"case_id":"F100", "owner_story":"CF1", "model":"SDXL-VAE", "variant":"enc_3x3_256_512_bf16", "domain":"diffusion_vae", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":256, "Cout":256, "H":512, "W":512, "Kh":3, "Kw":3, "stride":1, "pad":1, "dilation":1, "groups":1, "dtype":"bf16", "capability":"dense_smallk", "used_by":["SDXL-VAE"], "note":"mid-resolution encoder stage (256ch @512)", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P1"}, + {"case_id":"F101", "owner_story":"CF1", "model":"SD3-VAE", "variant":"enc_conv_in_3x3_1024_bf16", "domain":"diffusion_vae", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":3, "Cout":128, "H":1024, "W":1024, "Kh":3, "Kw":3, "stride":1, "pad":1, "dilation":1, "groups":1, "dtype":"bf16", "capability":"dense_smallk", "used_by":["SD3-VAE", "Flux.1-VAE"], "note":"16ch-latent VAE encoder conv_in", "suite":"regular", "purpose":"acceptance", "priority":"P1"}, + {"case_id":"F102", "owner_story":"CF1", "model":"SDXL-VAE", "variant":"dec_upsample_conv_3x3_512_bf16", "domain":"diffusion_vae", "op":"conv2d", "layout":"NHWC", "N":1, "Cin":256, "Cout":256, "H":512, "W":512, "Kh":3, "Kw":3, "stride":1, "pad":1, "dilation":1, "groups":1, "pre_op":{"type":"external_upsample", "benchmarked":false}, "dtype":"bf16", "capability":"upsample_conv", "used_by":["SDXL-VAE"], "note":"benchmarks only the 3x3 convolution at the already-upsampled 512x512 shape; external interpolation is excluded", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P2"}, + {"case_id":"F103", "owner_story":"CF16C", "model":"Cosmos-Tokenizer", "variant":"enc_causal_3x3x3_bf16", "domain":"video_vae", "op":"conv3d", "layout":"NDHWC", "N":1, "Cin":128, "Cout":128, "D":17, "H":128, "W":128, "Kd":3, "Kh":3, "Kw":3, "strides":[1, 1, 1], "pads_before":[2, 1, 1], "pads_after":[0, 1, 1], "dilations":[1, 1, 1], "output_spatial":[17, 128, 128], "groups":1, "causal":1, "execution":"full_clip", "dtype":"bf16", "capability":"conv3d_causal", "used_by":["Cosmos-Tokenizer", "Cosmos-Predict"], "note":"full-clip NVIDIA Cosmos causal video-tokenizer convolution", "suite":"extended", "purpose":"frontier", "priority":"P2"}, + {"case_id":"F104", "owner_story":"CF16C", "model":"Mochi-1-VAE", "variant":"enc_causal_3x3x3_bf16", "domain":"video_vae", "op":"conv3d", "layout":"NDHWC", "N":1, "Cin":128, "Cout":256, "D":17, "H":128, "W":128, "Kd":3, "Kh":3, "Kw":3, "strides":[1, 1, 1], "pads_before":[2, 1, 1], "pads_after":[0, 1, 1], "dilations":[1, 1, 1], "output_spatial":[17, 128, 128], "groups":1, "causal":1, "execution":"full_clip", "dtype":"bf16", "capability":"conv3d_causal", "used_by":["Mochi-1-VAE", "LTX-Video-VAE"], "note":"full-clip asymmetric high-compression causal video-VAE convolution", "suite":"extended", "purpose":"frontier", "priority":"P2"}, + {"case_id":"F105", "owner_story":"CF16S", "model":"WAN-VAE", "variant":"dec_upsample_conv3d_bf16", "domain":"video_vae", "op":"conv3d", "layout":"NDHWC", "N":1, "Cin":256, "Cout":256, "D":11, "H":128, "W":128, "Kd":3, "Kh":3, "Kw":3, "strides":[1, 1, 1], "pads_before":[2, 1, 1], "pads_after":[0, 1, 1], "dilations":[1, 1, 1], "output_spatial":[11, 128, 128], "groups":1, "causal":1, "execution":"streaming_equivalence", "cache_semantics":"state carried across chunks; output must match full clip", "pre_op":{"type":"external_upsample", "benchmarked":false}, "dtype":"bf16", "capability":"upsample_conv", "used_by":["WAN-VAE", "WAN2.2"], "note":"benchmarks only the causal 3D convolution at the already-upsampled [11,128,128] shape as a streaming-equivalence probe; external upsample is excluded", "suite":"extended", "purpose":"frontier", "priority":"P2"}, + {"case_id":"F106", "owner_story":"CF16C", "model":"HunyuanVideo-VAE", "variant":"dec_causal_3x3x3_256hires_bf16", "domain":"video_vae", "op":"conv3d", "layout":"NDHWC", "N":1, "Cin":256, "Cout":256, "D":9, "H":256, "W":256, "Kd":3, "Kh":3, "Kw":3, "strides":[1, 1, 1], "pads_before":[2, 1, 1], "pads_after":[0, 1, 1], "dilations":[1, 1, 1], "output_spatial":[9, 256, 256], "groups":1, "causal":1, "execution":"full_clip", "dtype":"bf16", "capability":"conv3d_causal", "used_by":["HunyuanVideo-VAE"], "note":"full-clip near-output high-resolution 3D convolution; the video-decode performance tail", "suite":"extended", "purpose":"frontier", "priority":"P2"}, + {"case_id":"F107", "owner_story":"CF19", "model":"Mamba2-1.3B", "variant":"causal_conv1d_w4_bf16", "domain":"ssm", "op":"conv1d", "layout":"NWC", "N":1, "Cin":3328, "Cout":3328, "L":4096, "Kl":4, "stride":1, "pad":3, "dilation":1, "groups":3328, "causal":1, "dtype":"bf16", "capability":"causal_conv1d", "used_by":["Mamba2-1.3B"], "note":"smaller Mamba2 width", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P2"}, + {"case_id":"F108", "owner_story":"CF19", "model":"Mamba2-8B", "variant":"causal_conv1d_w4_bf16", "domain":"ssm", "op":"conv1d", "layout":"NWC", "N":1, "Cin":8448, "Cout":8448, "L":4096, "Kl":4, "stride":1, "pad":3, "dilation":1, "groups":8448, "causal":1, "dtype":"bf16", "capability":"causal_conv1d", "used_by":["Mamba2-8B", "Codestral-Mamba"], "note":"larger SSM width", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P2"}, + {"case_id":"F109", "owner_story":"CF19", "model":"Jamba", "variant":"causal_conv1d_w4_bf16", "domain":"ssm", "op":"conv1d", "layout":"NWC", "N":1, "Cin":8192, "Cout":8192, "L":8192, "Kl":4, "stride":1, "pad":3, "dilation":1, "groups":8192, "causal":1, "dtype":"bf16", "capability":"causal_conv1d", "used_by":["Jamba", "Zamba"], "note":"hybrid Transformer-Mamba MoE; Mamba-layer causal conv", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P2"}, + {"case_id":"F110", "owner_story":"CF20A", "model":"Wav2Vec2", "variant":"feat_conv1d_k10_s5_bf16", "domain":"audio", "op":"conv1d", "layout":"NWC", "N":1, "Cin":1, "Cout":512, "L":160000, "Kl":10, "stride":5, "pad":0, "dilation":1, "groups":1, "dtype":"bf16", "capability":"conv1d_stem", "used_by":["Wav2Vec2", "HuBERT", "WavLM"], "note":"raw-waveform feature extractor first conv (16kHz, 10s clip): large strided conv1d", "suite":"regular", "purpose":"acceptance", "priority":"P1"}, + {"case_id":"F111", "owner_story":"CF20A", "model":"Whisper-large-v3", "variant":"conv1d_stem1_fp16", "domain":"audio", "op":"conv1d", "layout":"NWC", "N":1, "Cin":128, "Cout":1280, "L":3000, "Kl":3, "stride":1, "pad":1, "dilation":1, "groups":1, "dtype":"fp16", "capability":"conv1d_stem", "used_by":["Whisper-large-v3"], "note":"fp16 twin of the mel conv stem", "suite":"extended", "purpose":"perf_diagnostic", "priority":"P2"} +] diff --git a/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/bench_cases_conv_bwd.json b/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/grouped_conv_shapes/bench_cases_conv_bwd.json similarity index 98% rename from dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/bench_cases_conv_bwd.json rename to dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/grouped_conv_shapes/bench_cases_conv_bwd.json index 3740019459b1..4cae66240272 100644 --- a/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/bench_cases_conv_bwd.json +++ b/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/grouped_conv_shapes/bench_cases_conv_bwd.json @@ -26,8 +26,8 @@ {"case_id":"B018","owner_story":"CB9P","model":"HunyuanVideo-VAE","variant":"bwd_enc_causal_3x3x3_128_bf16","domain":"video_vae","op":"conv3d","stage":"backward","grads":["dInput","dWeight"],"layout":"NDHWC","N":1,"Cin":128,"Cout":128,"D":17,"H":256,"W":256,"Kd":3,"Kh":3,"Kw":3,"strides":[1,1,1],"pads_before":[2,1,1],"pads_after":[0,1,1],"dilations":[1,1,1],"output_spatial":[17,256,256],"groups":1,"causal":1,"execution":"full_clip","dtype":"bf16","accum":"fp32","capability":"conv3d_causal","used_by":["HunyuanVideo-VAE","WAN-VAE"],"note":"full-clip causal 3D-convolution backward with temporal past-only padding","suite":"regular","purpose":"frontier","priority":"P0"}, {"case_id":"B019","owner_story":"CB9P","model":"HunyuanVideo-VAE","variant":"bwd_enc_temporal_down_s2_bf16","domain":"video_vae","op":"conv3d","stage":"backward","grads":["dInput","dWeight"],"layout":"NDHWC","N":1,"Cin":256,"Cout":256,"D":17,"H":64,"W":64,"Kd":3,"Kh":3,"Kw":3,"strides":[2,1,1],"pads_before":[2,1,1],"pads_after":[0,1,1],"dilations":[1,1,1],"output_spatial":[9,64,64],"groups":1,"causal":1,"execution":"full_clip","dtype":"bf16","accum":"fp32","capability":"conv3d_causal","used_by":["HunyuanVideo-VAE"],"note":"full-clip temporal-downsample backward uses stride [2,1,1], mapping 17 frames to 9 outputs","suite":"extended","purpose":"frontier","priority":"P2"}, - {"case_id":"B020","owner_story":"CB10","model":"Mamba2-2.7B","variant":"bwd_causal_conv1d_w4_bf16","domain":"ssm","op":"conv1d","stage":"backward","grads":["dInput","dWeight"],"layout":"NCL","N":8,"Cin":5376,"Cout":5376,"L":4096,"Kl":4,"stride":1,"pad":3,"dilation":1,"groups":5376,"causal":1,"dtype":"bf16","accum":"fp32","capability":"causal_conv1d","used_by":["Mamba2-2.7B","Mamba-2.8B"],"note":"depthwise causal conv1d backward inside the Mamba block (pretraining)","suite":"regular","purpose":"acceptance","priority":"P1"}, - {"case_id":"B021","owner_story":"CB11B","model":"Conformer-L","variant":"bwd_dw_conv1d_k31_bf16","domain":"audio","op":"conv1d","stage":"backward","grads":["dInput","dWeight"],"layout":"NCL","N":16,"Cin":512,"Cout":512,"L":1500,"Kl":31,"stride":1,"pad":15,"dilation":1,"groups":512,"dtype":"bf16","accum":"fp32","capability":"depthwise","used_by":["Conformer-L","FastConformer"],"note":"ASR depthwise conv1d backward (kernel 31)","suite":"regular","purpose":"acceptance","priority":"P1"}, + {"case_id":"B020","owner_story":"CB10","model":"Mamba2-2.7B","variant":"bwd_causal_conv1d_w4_bf16","domain":"ssm","op":"conv1d","stage":"backward","grads":["dInput","dWeight"],"layout":"NWC","N":8,"Cin":5376,"Cout":5376,"L":4096,"Kl":4,"stride":1,"pad":3,"dilation":1,"groups":5376,"causal":1,"dtype":"bf16","accum":"fp32","capability":"causal_conv1d","used_by":["Mamba2-2.7B","Mamba-2.8B"],"note":"depthwise causal conv1d backward inside the Mamba block (pretraining)","suite":"regular","purpose":"acceptance","priority":"P1"}, + {"case_id":"B021","owner_story":"CB11B","model":"Conformer-L","variant":"bwd_dw_conv1d_k31_bf16","domain":"audio","op":"conv1d","stage":"backward","grads":["dInput","dWeight"],"layout":"NWC","N":16,"Cin":512,"Cout":512,"L":1500,"Kl":31,"stride":1,"pad":15,"dilation":1,"groups":512,"dtype":"bf16","accum":"fp32","capability":"depthwise","used_by":["Conformer-L","FastConformer"],"note":"ASR depthwise conv1d backward (kernel 31)","suite":"regular","purpose":"acceptance","priority":"P1"}, {"case_id":"B022","owner_story":"CB2P","model":"ResNet-50","variant":"bwd_downsample_3x3_s2_bf16","domain":"legacy_baseline","op":"conv2d","stage":"backward","grads":["dInput","dWeight"],"layout":"NHWC","N":256,"Cin":128,"Cout":128,"H":56,"W":56,"Kh":3,"Kw":3,"stride":2,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","accum":"fp32","capability":"dense_smallk","used_by":["ResNet-50"],"note":"strided-conv backward stage transition","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, {"case_id":"B023","owner_story":"CB8","model":"ResNeXt-50-32x4d","variant":"bwd_grouped_3x3_g32_bf16","domain":"vision_backbone","op":"conv2d","stage":"backward","grads":["dInput","dWeight"],"layout":"NHWC","N":64,"Cin":256,"Cout":256,"H":56,"W":56,"Kh":3,"Kw":3,"stride":1,"pad":1,"dilation":1,"groups":32,"dtype":"bf16","accum":"fp32","capability":"grouped","used_by":["ResNeXt-50","ResNeXt-101"],"note":"grouped-conv backward (per-group GEMMs)","suite":"regular","purpose":"acceptance","priority":"P1"}, @@ -43,7 +43,7 @@ {"case_id":"B033","owner_story":"CB-T1","model":"VAE-transposed-decoder","variant":"bwd_convtranspose_4x4_s2_bf16","domain":"diffusion_vae","op":"conv2d_transpose","stage":"backward","grads":["dInput","dWeight"],"layout":"NHWC","N":1,"Cin":512,"Cout":512,"H":128,"W":128,"Kh":4,"Kw":4,"stride":2,"pad":1,"output_padding":0,"dilation":1,"output_spatial":[256,256],"groups":1,"dtype":"bf16","accum":"fp32","capability":"transposed_upsample","used_by":["GAN-decoders"],"note":"transposed-convolution backward preserves dInput and dWeight; 4x4 s2 p1 with output_padding=0 has 256x256 forward output","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, {"case_id":"B034","owner_story":"CB9P","model":"HunyuanVideo-VAE","variant":"bwd_dec_causal_3x3x3_512_bf16","domain":"video_vae","op":"conv3d","stage":"backward","grads":["dInput","dWeight"],"layout":"NDHWC","N":1,"Cin":512,"Cout":512,"D":5,"H":32,"W":32,"Kd":3,"Kh":3,"Kw":3,"strides":[1,1,1],"pads_before":[2,1,1],"pads_after":[0,1,1],"dilations":[1,1,1],"output_spatial":[5,32,32],"groups":1,"causal":1,"execution":"full_clip","dtype":"bf16","accum":"fp32","capability":"conv3d_causal","used_by":["HunyuanVideo-VAE"],"note":"full-clip causal 3D decoder backward","suite":"extended","purpose":"frontier","priority":"P2"}, {"case_id":"B035","owner_story":"CB9S","runtime_gate":false,"model":"WAN-VAE","variant":"bwd_enc_causal_3x3x3_bf16","domain":"video_vae","op":"conv3d","stage":"backward","grads":["dInput","dWeight"],"layout":"NDHWC","N":1,"Cin":96,"Cout":96,"D":21,"H":256,"W":256,"Kd":3,"Kh":3,"Kw":3,"strides":[1,1,1],"pads_before":[2,1,1],"pads_after":[0,1,1],"dilations":[1,1,1],"output_spatial":[21,256,256],"groups":1,"causal":1,"execution":"streaming_equivalence","cache_semantics":"state carried across chunks; output must match full clip","dtype":"bf16","accum":"fp32","capability":"conv3d_causal","used_by":["WAN-VAE"],"note":"Wan-VAE feature-cache streaming-equivalence backward; requested gradients must match full-clip execution","suite":"extended","purpose":"research","priority":"P2"}, - {"case_id":"B036","owner_story":"CB10","model":"Mamba-2.8B","variant":"bwd_causal_conv1d_w4_bf16","domain":"ssm","op":"conv1d","stage":"backward","grads":["dInput","dWeight"],"layout":"NCL","N":8,"Cin":5120,"Cout":5120,"L":2048,"Kl":4,"stride":1,"pad":3,"dilation":1,"groups":5120,"causal":1,"dtype":"bf16","accum":"fp32","capability":"causal_conv1d","used_by":["Mamba-2.8B"],"note":"Mamba-v1 causal conv backward","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, - {"case_id":"B037","owner_story":"CB11A","model":"Whisper-large-v3","variant":"bwd_conv1d_stem1_k3_bf16","domain":"audio","op":"conv1d","stage":"backward","grads":["dInput","dWeight"],"layout":"NCL","N":16,"Cin":128,"Cout":1280,"L":3000,"Kl":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","accum":"fp32","capability":"conv1d_stem","used_by":["Whisper-large-v3"],"note":"ASR dense Conv1d stem backward (encoder finetuning)","suite":"regular","purpose":"acceptance","priority":"P1"}, - {"case_id":"B038","owner_story":"CB11A","model":"Wav2Vec2","variant":"bwd_feat_conv1d_k10_s5_bf16","domain":"audio","op":"conv1d","stage":"backward","grads":["dInput","dWeight"],"layout":"NCL","N":8,"Cin":1,"Cout":512,"L":160000,"Kl":10,"stride":5,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","accum":"fp32","capability":"conv1d_stem","used_by":["Wav2Vec2","HuBERT"],"note":"raw-waveform feature-extractor backward (large strided conv1d)","suite":"extended","purpose":"perf_diagnostic","priority":"P2"} + {"case_id":"B036","owner_story":"CB10","model":"Mamba-2.8B","variant":"bwd_causal_conv1d_w4_bf16","domain":"ssm","op":"conv1d","stage":"backward","grads":["dInput","dWeight"],"layout":"NWC","N":8,"Cin":5120,"Cout":5120,"L":2048,"Kl":4,"stride":1,"pad":3,"dilation":1,"groups":5120,"causal":1,"dtype":"bf16","accum":"fp32","capability":"causal_conv1d","used_by":["Mamba-2.8B"],"note":"Mamba-v1 causal conv backward","suite":"extended","purpose":"perf_diagnostic","priority":"P2"}, + {"case_id":"B037","owner_story":"CB11A","model":"Whisper-large-v3","variant":"bwd_conv1d_stem1_k3_bf16","domain":"audio","op":"conv1d","stage":"backward","grads":["dInput","dWeight"],"layout":"NWC","N":16,"Cin":128,"Cout":1280,"L":3000,"Kl":3,"stride":1,"pad":1,"dilation":1,"groups":1,"dtype":"bf16","accum":"fp32","capability":"conv1d_stem","used_by":["Whisper-large-v3"],"note":"ASR dense Conv1d stem backward (encoder finetuning)","suite":"regular","purpose":"acceptance","priority":"P1"}, + {"case_id":"B038","owner_story":"CB11A","model":"Wav2Vec2","variant":"bwd_feat_conv1d_k10_s5_bf16","domain":"audio","op":"conv1d","stage":"backward","grads":["dInput","dWeight"],"layout":"NWC","N":8,"Cin":1,"Cout":512,"L":160000,"Kl":10,"stride":5,"pad":0,"dilation":1,"groups":1,"dtype":"bf16","accum":"fp32","capability":"conv1d_stem","used_by":["Wav2Vec2","HuBERT"],"note":"raw-waveform feature-extractor backward (large strided conv1d)","suite":"extended","purpose":"perf_diagnostic","priority":"P2"} ] diff --git a/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/grouped_conv_shapes/bench_cases_results_bwd_gfx950_5percent.csv b/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/grouped_conv_shapes/bench_cases_results_bwd_gfx950_5percent.csv new file mode 100644 index 000000000000..ba78861d644a --- /dev/null +++ b/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/grouped_conv_shapes/bench_cases_results_bwd_gfx950_5percent.csv @@ -0,0 +1,21 @@ +shape,dtype,direction,tile_m,tile_n,tile_k,warp_m,warp_n,warp_tile_mn,warp_tile_k,pipeline,epilogue,split_k,rocke_ms,rocke_tflops,rocke_gbps,passed,kernel_name,ck_tflops,ck_ms,ck_gbps,speedup_rocke_vs_ck +N256H56W56C64_K64Y3X3,bf16,wgrad,64,64,32,2,1,16,32,compv3,default,56,2.1749195098876952,27.214808538388787,94.5297621660565,,rocke_bench_igemm_wgrad_N256H56W56C64_K64Y3X3_t64x64x32_w2x1_a16x16x32_compv3_default_spk56,288.816,0.204941,1003.19,0.0942 +N256H56W56C256_K64Y1X1,bf16,wgrad,64,64,32,2,1,16,32,compv3,default,128,1.264685821533203,20.800956443164605,406.2945905229394,,rocke_bench_igemm_wgrad_N256H56W56C256_K64Y1X1_t64x64x32_w2x1_a16x16x32_compv3_default_spk128,157.873,0.166632,3083.65,0.1318 +N64H14W14C768_K3072Y1X1,bf16,wgrad,128,64,16,4,2,32,16,compv3,cshuffle,1,2.2090478897094727,26.79435711816302,45.74663703342829,,rocke_bench_igemm_wgrad_N64H14W14C768_K3072Y1X1_t128x64x16_w4x2_a32x32x16_compv3_cshuffle,306.258,0.193269,522.881,0.0875 +N128H192W192C24_K48Y3X3,bf16,wgrad,64,64,32,1,2,16,32,compv3,cshuffle,128,1.468007755279541,16.662841759539653,231.44248303736128,,rocke_bench_igemm_wgrad_N128H192W192C24_K48Y3X3_t64x64x32_w1x2_a16x16x32_compv3_cshuffle_spk128,105.281,0.232342,1462.33,0.1583 +N64H224W224C3_K1024Y14X14,bf16,wgrad,32,64,16,2,2,16,16,compv3,default,1,0.839745044708252,23.495233631125135,64.33647967374435,,rocke_bench_igemm_wgrad_N64H224W224C3_K1024Y14X14_t32x64x16_w2x2_a16x16x16_compv3_default,106.1,0.185957,290.53,0.2214 +N64D2H224W224C3_K1280Z2Y14X14,bf16,wgrad,32,64,32,1,2,16,32,basic,default,1,1.3823187828063965,35.682807506861685,60.39762248654418,,rocke_bench_igemm_wgrad_N64D2H224W224C3_K1280Z2Y14X14_t32x64x32_w1x2_a16x16x32_basic_default,101.868,0.484204,172.425,0.3503 +N16H320W320C64_K128Y3X3,bf16,wgrad,64,64,32,1,2,32,16,mem,default,28,2.2148715972900392,27.26929076787057,142.09413149957294,,rocke_bench_igemm_wgrad_N16H320W320C64_K128Y3X3_t64x64x32_w1x2_a32x32x16_mem_default_spk28,251.081,0.240552,1308.32,0.1086 +N1H512W512C128_K128Y3X3,bf16,wgrad,128,64,64,1,2,16,32,compv4,cshuffle,28,2.630340003967285,29.39141373791825,51.138879307282515,,rocke_bench_igemm_wgrad_N1H512W512C128_K128Y3X3_t128x64x64_w1x2_a16x16x32_compv4_cshuffle_spk28,324.53,0.238219,564.659,0.0906 +N1H256W256C512_K512Y3X3,bf16,wgrad,128,128,16,4,2,32,16,mem,default,3,6.5394142150878904,47.288279215976196,21.245988620730408,,rocke_bench_igemm_wgrad_N1H256W256C512_K512Y3X3_t128x128x16_w4x2_a32x32x16_mem_default_spk3,354.468,0.8724,159.258,0.1334 +N1D17H256W256C128_K128Z3Y3X3,bf16,wgrad,128,128,64,1,2,16,32,basic,default,56,21.368013000488283,51.55646018180661,28.307007861993444,,rocke_bench_igemm_wgrad_N1D17H256W256C128_K128Z3Y3X3_t128x128x64_w1x2_a16x16x32_basic_default_spk56,316.446,3.48135,173.744,0.1629 +N1D17H64W64C256_K256Z3Y3X3,bf16,wgrad,64,64,64,1,4,16,32,compv4,cshuffle,3,5.157767486572266,28.10424211974974,11.664358301653941,,rocke_bench_igemm_wgrad_N1D17H64W64C256_K256Z3Y3X3_t64x64x64_w1x4_a16x16x32_compv4_cshuffle_spk3,281.515,0.514912,116.84,0.0998 +N256H56W56C128_K128Y3X3,bf16,wgrad,64,64,64,4,2,16,32,mem,cshuffle,14,2.2354801177978514,26.4775417042436,115.05180920748299,,rocke_bench_igemm_wgrad_N256H56W56C128_K128Y3X3_t64x64x64_w4x2_a16x16x32_mem_cshuffle_spk14,316.062,0.187273,1373.37,0.0838 +N64H28W28C256_K256Y3X3,bf16,wgrad,64,128,16,1,2,32,16,basic,default,7,2.2167360305786135,26.701428240217755,23.71047850306326,,rocke_bench_igemm_wgrad_N64H28W28C256_K256Y3X3_t64x128x16_w1x2_a32x32x16_basic_default_spk7,337.361,0.17545,299.572,0.0791 +N128H56W56C24_K144Y1X1,bf16,wgrad,32,32,32,2,2,16,32,compv4,default,102,0.2879951953887939,9.63395272012916,468.34114651778066,,rocke_bench_igemm_wgrad_N128H56W56C24_K144Y1X1_t32x32x32_w2x2_a16x16x32_compv4_default_spk102,36.309,0.0764144,1765.11,0.2653 +N64H384W384C3_K1152Y14X14,bf16,wgrad,32,64,16,2,2,16,16,compv3,default,1,2.6413726806640625,23.929720245349543,62.64669927546864,,rocke_bench_igemm_wgrad_N64H384W384C3_K1152Y14X14_t32x64x16_w2x2_a16x16x16_compv3_default,114.898,0.550119,300.796,0.2083 +N16H40W40C512_K256Y1X1,bf16,wgrad,32,32,16,2,2,16,16,basic,cshuffle,4,0.509933614730835,13.16031382544235,77.6252885797576,,rocke_bench_igemm_wgrad_N16H40W40C512_K256Y1X1_t32x32x16_w2x2_a16x16x16_basic_cshuffle_spk4,188.832,0.0355389,1113.81,0.0697 +N1H128W128C16_K512Y3X3,bf16,wgrad,32,32,32,2,2,16,32,compv4,default,6,0.26919500827789306,8.974605879415192,64.81903253565252,,rocke_bench_igemm_wgrad_N1H128W128C16_K512Y3X3_t32x32x32_w2x2_a16x16x32_compv4_default_spk6,81.4814,0.0296499,588.499,0.1101 +N1D5H32W32C512_K512Z3Y3X3,bf16,wgrad,64,128,16,1,2,16,16,compv4,default,1,2.1563034057617188,47.05673705141509,12.400243828652906,,rocke_bench_igemm_wgrad_N1D5H32W32C512_K512Z3Y3X3_t64x128x16_w1x2_a16x16x16_compv4_default,284.99,0.356042,75.0997,0.1651 +N1D21H256W256C96_K96Z3Y3X3,bf16,wgrad,128,128,32,4,4,32,16,mem,default,73,18.862516784667967,39.7689709361446,29.37814705884989,,rocke_bench_igemm_wgrad_N1D21H256W256C96_K96Z3Y3X3_t128x128x32_w4x4_a32x32x16_mem_default_spk73,233.08,3.21839,172.181,0.1706 +N16H1W3000C128_K1280Y1X3,bf16,wgrad,64,64,32,1,2,32,16,mem,default,4,1.8675722122192382,25.265914587543,72.90269104947303,,rocke_bench_igemm_wgrad_N16H1W3000C128_K1280Y1X3_t64x64x32_w1x2_a32x32x16_mem_default_spk4,308.505,0.15295,890.165,0.0819 diff --git a/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/grouped_conv_shapes/bench_cases_results_gfx950_5percent.csv b/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/grouped_conv_shapes/bench_cases_results_gfx950_5percent.csv new file mode 100644 index 000000000000..150645ceb6d5 --- /dev/null +++ b/dnn-providers/hip-kernel-provider/rocke/platform/python/rocke/benchmark/grouped_conv_shapes/bench_cases_results_gfx950_5percent.csv @@ -0,0 +1,101 @@ +shape,dtype,direction,tile_m,tile_n,tile_k,warp_m,warp_n,warp_tile_mn,warp_tile_k,pipeline,epilogue,split_k,rocke_ms,rocke_tflops,rocke_gbps,passed,kernel_name,ck_tflops,ck_ms,ck_gbps,speedup_rocke_vs_ck +N1H224W224C3_K64Y7X7,bf16,fwd,64,64,64,4,2,16,32,mem,cshuffle,1,0.015152199566364289,15.577138023178373,127.07752373288052,,rocke_bench_igemm_conv_N1H224W224C3_K64Y7X7_t64x64x64_w4x2_a16x16x32_mem_cshuffle,23.0314,0.0102481,187.889,0.6763 +N1H224W224C3_K64Y7X7,fp16,fwd,32,64,16,2,2,16,16,mem,cshuffle,1,0.015584200620651245,15.14533274727162,123.55487758855195,,rocke_bench_igemm_conv_N1H224W224C3_K64Y7X7_t32x64x16_w2x2_a16x16x16_mem_cshuffle,22.8653,0.0103225,186.534,0.6624 +N1H56W56C64_K64Y3X3,bf16,fwd,32,16,32,1,1,16,32,basic,cshuffle,1,0.015272200107574463,15.139338561005866,57.39474298567275,,rocke_bench_igemm_conv_N1H56W56C64_K64Y3X3_t32x16x32_w1x1_a16x16x32_basic_cshuffle,39.2836,0.00588568,148.928,0.3854 +N1H56W56C256_K64Y1X1,bf16,fwd,32,16,32,2,1,16,32,compv4,cshuffle,1,0.014824199676513671,6.931939007999589,137.5998734846857,,rocke_bench_igemm_conv_N1H56W56C256_K64Y1X1_t32x16x32_w2x1_a16x16x32_compv4_cshuffle,26.861,0.00382564,533.194,0.2581 +N1H56W56C64_K256Y1X1,bf16,fwd,128,64,16,2,2,32,16,compv3,cshuffle,1,0.014600199460983277,7.038290694220381,139.7109680214345,,rocke_bench_igemm_conv_N1H56W56C64_K256Y1X1_t128x64x16_w2x2_a32x32x16_compv3_cshuffle,27.8149,0.00369444,552.129,0.2530 +N1H56W56C128_K128Y3X3,bf16,fwd,16,16,32,1,1,16,32,mem,cshuffle,1,0.016072200238704683,14.385771989276444,80.7874454471484,,rocke_bench_igemm_conv_N1H56W56C128_K128Y3X3_t16x16x32_w1x1_a16x16x32_mem_cshuffle,31.7908,0.00727288,178.531,0.4525 +N256H224W224C3_K64Y7X7,bf16,fwd,128,64,16,4,2,32,16,compv3,cshuffle,1,0.3708597898483276,162.92718994612912,1316.214260380273,,rocke_bench_igemm_conv_N256H224W224C3_K64Y7X7_t128x64x16_w4x2_a32x32x16_compv3_cshuffle,164.326,0.367704,1327.51,0.9915 +N1H56W56C24_K144Y1X1,bf16,fwd,256,32,16,8,1,32,16,compv4,cshuffle,1,0.014280200004577637,1.5179081520603053,74.27122867046774,,rocke_bench_igemm_conv_N1H56W56C24_K144Y1X1_t256x32x16_w8x1_a32x32x16_compv4_cshuffle,6.45423,0.00335842,315.806,0.2352 +N1H56W56C144_K144Y3X3G144,bf16,fwd,64,32,16,2,1,16,16,compv4,cshuffle,1,0.014767999947071075,0.5504138697950173,147.58829955387935,,rocke_bench_igemm_conv_N1H56W56C144_K144Y3X3G144_t64x32x16_w2x1_a16x16x16_compv4_cshuffle,0.4641,0.0175146,103.281,1.1860 +N1H56W56C144_K144Y5X5G144,bf16,fwd,64,32,16,2,1,16,16,compv4,cshuffle,1,0.014488199353218078,0.38961363399145893,149.484414674274,,rocke_bench_igemm_conv_N1H56W56C144_K144Y5X5G144_t64x32x16_w2x1_a16x16x16_compv4_cshuffle,0.750872,0.00751766,151.132,0.5189 +N1H28W28C144_K40Y1X1,bf16,fwd,64,128,64,1,8,16,32,mem,cshuffle,1,0.01501619964838028,0.6014624346696271,19.98055480251709,,rocke_bench_igemm_conv_N1H28W28C144_K40Y1X1_t64x128x64_w1x8_a16x16x32_mem_cshuffle,2.72232,0.00331764,90.4354,0.2209 +N1H192W192C24_K48Y3X3,bf16,fwd,64,64,32,1,2,16,32,compv3,cshuffle,1,0.015255999565124512,12.526414620308776,175.33718381291578,,rocke_bench_igemm_conv_N1H192W192C24_K48Y3X3_t64x64x32_w1x2_a16x16x32_compv3_cshuffle,39.6147,0.00482404,554.503,0.3162 +N1H24W24C256_K256Y3X3G256,bf16,fwd,32,32,16,1,1,32,16,mem,cshuffle,1,0.014232200384140015,0.18649315835643931,124.32877223762618,,rocke_bench_igemm_conv_N1H24W24C256_K256Y3X3G256_t32x32x16_w1x1_a32x32x16_mem_cshuffle,0.32927,0.00806088,73.7428,0.5664 +N1H224W224C3_K192Y4X4,bf16,fwd,16,16,16,1,1,16,16,basic,cshuffle,1,0.014847999811172486,3.892965566749664,102.62069096023774,,rocke_bench_igemm_conv_N1H224W224C3_K192Y4X4_t16x16x16_w1x1_a16x16x16_basic_cshuffle,9.73231,0.00593926,256.549,0.4000 +N1H56W56C192_K192Y7X7G192,bf16,fwd,128,16,64,2,1,16,32,compv3,cshuffle,1,0.015448200702667236,3.819666583553129,389.76189628093147,,rocke_bench_igemm_conv_N1H56W56C192_K192Y7X7G192_t128x16x64_w2x1_a16x16x32_compv3_cshuffle,1.83509,0.0321548,75.4869,2.0815 +N1H14W14C768_K768Y7X7G768,bf16,fwd,128,16,64,2,1,16,32,compv3,cshuffle,1,0.014968200027942658,0.985538940718418,3901.929683660675,,rocke_bench_igemm_conv_N1H14W14C768_K768Y7X7G768_t128x16x64_w2x1_a16x16x32_compv3_cshuffle,1.1799,0.0125025,54.1791,0.8353 +N1H7W7C1536_K1536Y7X7G1536,bf16,fwd,64,64,32,2,1,16,32,mem,cshuffle,1,0.014816200733184815,0.49782478874491604,15625.602552850627,,rocke_bench_igemm_conv_N1H7W7C1536_K1536Y7X7G1536_t64x64x32_w2x1_a16x16x32_mem_cshuffle,0.744127,0.00991212,45.5588,0.6690 +N1H14W14C768_K3072Y1X1,bf16,fwd,64,32,64,2,1,16,32,basic,cshuffle,1,0.015936200320720673,58.034162057908695,390.5493075352193,,rocke_bench_igemm_conv_N1H14W14C768_K3072Y1X1_t64x32x64_w2x1_a16x16x32_basic_cshuffle,138.118,0.00669606,929.483,0.4202 +N1H28W28C384_K768Y2X2,bf16,fwd,32,16,32,1,1,16,32,basic,cshuffle,1,0.01658419966697693,27.88328802630083,196.72122052994445,,rocke_bench_igemm_conv_N1H28W28C384_K768Y2X2_t32x16x32_w1x1_a16x16x32_basic_cshuffle,46.7088,0.0099001,329.538,0.5970 +N1H14W14C768_K768Y7X7G768,fp16,fwd,256,32,32,2,1,32,16,basic,cshuffle,1,0.015112200379371643,0.9761479883588845,3864.749178400481,,rocke_bench_igemm_conv_N1H14W14C768_K768Y7X7G768_t256x32x32_w2x1_a32x32x16_basic_cshuffle,1.17599,0.0125441,53.9994,0.8301 +N1H28W28C256_K256Y31X31G256,bf16,fwd,128,16,64,2,1,16,32,compv3,cshuffle,1,0.02799220085144043,13.780734499843724,4528.511661971624,,rocke_bench_igemm_conv_N1H28W28C256_K256Y31X31G256_t128x16x64_w2x1_a16x16x32_compv3_cshuffle,3.49398,0.110405,11.7281,3.9441 +N1H14W14C512_K512Y31X31G512,bf16,fwd,128,16,64,2,1,16,32,compv3,cshuffle,1,0.01968020051717758,9.800537541863482,25621.80073113988,,rocke_bench_igemm_conv_N1H14W14C512_K512Y31X31G512_t128x16x64_w2x1_a16x16x32_compv3_cshuffle,3.34206,0.0577118,24.0067,2.9325 +N1H14W14C512_K512Y51X5G512,bf16,fwd,128,16,64,2,1,16,32,compv3,cshuffle,1,0.015408200025558472,3.3215768172210622,8702.823676845388,,rocke_bench_igemm_conv_N1H14W14C512_K512Y51X5G512_t128x16x64_w2x1_a16x16x32_compv3_cshuffle,2.48153,0.0206242,32.1238,1.3385 +N1H14W14C512_K512Y5X51G512,bf16,fwd,16,16,32,1,1,16,32,mem,cshuffle,1,0.015080200135707855,3.39382233255737,8892.113287175924,,rocke_bench_igemm_conv_N1H14W14C512_K512Y5X51G512_t16x16x32_w1x1_a16x16x32_mem_cshuffle,2.37415,0.021557,30.7337,1.4295 +N1H28W28C384_K384Y13X13G384,bf16,fwd,32,16,32,1,1,16,32,basic,cshuffle,1,0.016240200400352477,6.265743370863298,3143.086337708747,,rocke_bench_igemm_conv_N1H28W28C384_K384Y13X13G384_t32x16x32_w1x1_a16x16x32_basic_cshuffle,2.96727,0.0342932,38.9004,2.1116 +N1H224W224C3_K1024Y14X14,bf16,fwd,16,16,16,1,1,16,16,basic,cshuffle,1,0.016880199313163757,18.26289715427659,120.23365141294708,,rocke_bench_igemm_conv_N1H224W224C3_K1024Y14X14_t16x16x16_w1x1_a16x16x16_basic_cshuffle,11.6939,0.0263627,76.9865,1.5617 +N1H384W384C3_K1152Y14X14,bf16,fwd,64,32,32,4,2,16,32,mem,cshuffle,1,0.017360199987888337,56.889563984805896,225.752238034944,,rocke_bench_igemm_conv_N1H384W384C3_K1152Y14X14_t64x32x32_w4x2_a16x16x32_mem_cshuffle,37.2985,0.0264787,148.01,1.5253 +N1H224W224C3_K768Y16X16,bf16,fwd,64,32,32,4,2,16,32,mem,cshuffle,1,0.017264199256896973,13.392512711392172,103.20548167261185,,rocke_bench_igemm_conv_N1H224W224C3_K768Y16X16_t64x32x32_w4x2_a16x16x32_mem_cshuffle,7.28555,0.0317355,56.144,1.8382 +N1D2H224W224C3_K1280Z2Y14X14,bf16,fwd,32,64,64,2,2,16,32,compv3,cshuffle,1,0.025016200542449952,30.808170037340194,170.61072055117174,,rocke_bench_igemm_conv_N1D2H224W224C3_K1280Z2Y14X14_t32x64x64_w2x2_a16x16x32_compv3_cshuffle,5.56459,0.138501,30.8158,5.5365 +N1H1024W1024C3_K1280Y16X16,bf16,fwd,128,256,64,4,4,32,16,basic,cshuffle,1,0.03249639868736267,247.81403494817744,576.7807128513895,,rocke_bench_igemm_conv_N1H1024W1024C3_K1280Y16X16_t128x256x64_w4x4_a32x32x16_basic_cshuffle,175.376,0.0459189,408.182,1.4130 +N2H128W128C16_K1536Y2X2,bf16,fwd,256,32,64,2,2,16,32,basic,cshuffle,1,0.015696200728416442,102.61162964641136,1682.6369933066312,,rocke_bench_igemm_conv_N2H128W128C16_K1536Y2X2_t256x32x64_w2x2_a16x16x32_basic_cshuffle,170.397,0.0094521,2794.19,0.6022 +N1H640W640C3_K64Y3X3,bf16,fwd,256,64,32,8,2,32,16,compv4,cshuffle,1,0.015728199481964113,22.500630183754907,989.8307824651179,,rocke_bench_igemm_conv_N1H640W640C3_K64Y3X3_t256x64x32_w8x2_a32x32x16_compv4_cshuffle,35.1026,0.0100817,1544.21,0.6410 +N1H320W320C64_K128Y3X3,bf16,fwd,64,128,32,2,4,32,16,basic,cshuffle,1,0.017072199285030364,221.11232050284062,1160.2638693052704,,rocke_bench_igemm_conv_N1H320W320C64_K128Y3X3_t64x128x32_w2x4_a32x32x16_basic_cshuffle,321.996,0.0117233,1689.64,0.6867 +N1H160W160C128_K256Y3X3,bf16,fwd,32,128,32,1,2,16,32,basic,cshuffle,1,0.019672200083732605,191.88873557266888,529.692863820388,,rocke_bench_igemm_conv_N1H160W160C128_K256Y3X3_t32x128x32_w1x2_a16x16x32_basic_cshuffle,276.213,0.0136665,762.463,0.6947 +N1H80W80C256_K512Y3X3,bf16,fwd,32,64,64,2,2,16,32,compv3,cshuffle,1,0.024136200547218323,156.3988330563922,301.39358453575574,,rocke_bench_igemm_conv_N1H80W80C256_K512Y3X3_t32x64x64_w2x2_a16x16x32_compv3_cshuffle,213.673,0.0176666,411.766,0.7320 +N1H40W40C512_K256Y1X1,bf16,fwd,32,16,32,1,1,16,32,basic,cshuffle,1,0.014752200245857239,28.43171818507452,184.36192260634255,,rocke_bench_igemm_conv_N1H40W40C512_K256Y1X1_t32x16x32_w1x1_a16x16x32_basic_cshuffle,77.4077,0.00541846,501.94,0.3673 +N1H40W40C256_K256Y3X3,bf16,fwd,32,16,32,1,1,16,32,basic,cshuffle,1,0.01952019929885864,96.6914717981573,144.36573914308204,,rocke_bench_igemm_conv_N1H40W40C256_K256Y3X3_t32x16x32_w1x1_a16x16x32_basic_cshuffle,128.528,0.014685,191.9,0.7523 +N1H80W80C256_K256Y3X3,bf16,fwd,64,32,64,2,1,16,32,basic,cshuffle,1,0.029344400763511656,257.2806737763664,263.53402348620864,,rocke_bench_igemm_conv_N1H80W80C256_K256Y3X3_t64x32x64_w2x1_a16x16x32_basic_cshuffle,336.69,0.0224234,344.873,0.7641 +N1H80W80C256_K256Y3X3G256,bf16,fwd,256,32,16,2,1,32,16,compv3,cshuffle,1,0.01689620018005371,1.745433865941937,457.691547069219,,rocke_bench_igemm_conv_N1H80W80C256_K256Y3X3G256_t256x32x16_w2x1_a32x32x16_compv3_cshuffle,0.618155,0.0477085,137.464,2.8236 +N1H1280W1280C3_K64Y3X3,bf16,fwd,128,64,32,4,2,16,32,compv4,cshuffle,1,0.02336840033531189,60.576572623198636,2664.3952990618345,,rocke_bench_igemm_conv_N1H1280W1280C3_K64Y3X3_t128x64x32_w4x2_a16x16x32_compv4_cshuffle,68.5462,0.0206514,3014.93,0.8837 +N1H1024W1024C3_K128Y3X3,fp16,fwd,256,128,16,4,4,32,16,mem,cshuffle,1,0.06674460172653199,108.58941584063581,4116.195420951761,,rocke_bench_igemm_conv_N1H1024W1024C3_K128Y3X3_t256x128x16_w4x4_a32x32x16_mem_cshuffle,109.589,0.0661359,4154.08,0.9909 +N1H1024W1024C128_K128Y3X3,bf16,fwd,256,128,64,8,1,32,16,mem,cshuffle,1,0.4787330150604248,645.950113285938,1122.057194931918,,rocke_bench_igemm_conv_N1H1024W1024C128_K128Y3X3_t256x128x64_w8x1_a32x32x16_mem_cshuffle,598.234,0.516917,1039.17,1.0798 +N1H1024W1024C128_K128Y3X3,bf16,fwd,256,128,64,4,4,16,32,mem,cshuffle,1,0.13766560554504395,561.5739023695683,2439.5289634643996,,rocke_bench_igemm_conv_N1H1024W1024C128_K128Y3X3_t256x128x64_w4x4_a16x16x32_mem_cshuffle,598.234,0.516917,1039.17,0.9387 +N1H128W128C512_K512Y3X3,bf16,fwd,128,256,64,4,4,32,16,basic,cshuffle,1,0.10944919586181641,706.3497426295022,349.68757603592707,,rocke_bench_igemm_conv_N1H128W128C512_K512Y3X3_t128x256x64_w4x4_a32x32x16_basic_cshuffle,731.28,0.105718,362.03,0.9659 +N1H128W128C512_K512Y3X3,bf16,fwd,128,256,64,4,4,32,16,basic,cshuffle,1,0.1080731987953186,715.3430470251687,354.1398276966506,,rocke_bench_igemm_conv_N1H128W128C512_K512Y3X3_t128x256x64_w4x4_a32x32x16_basic_cshuffle,765.844,0.100947,379.141,0.9341 +N1H256W256C512_K512Y3X3,bf16,fwd,256,256,64,8,2,32,16,compv4,cshuffle,1,0.3751960039138794,824.2029288323147,370.3033042747725,,rocke_bench_igemm_conv_N1H256W256C512_K512Y3X3_t256x256x64_w8x2_a32x32x16_compv4_cshuffle,940.403,0.328835,422.51,0.8764 +N1H1024W1024C128_K3Y3X3,fp32,fwd,128,16,64,4,1,16,4,basic,cshuffle,1,0.6587187767028808,11.002809648568961,834.1460232092954,,rocke_bench_igemm_conv_N1H1024W1024C128_K3Y3X3_t128x16x64_w4x1_a16x16x4_basic_cshuffle,7.85003,0.923277,595.127,1.4016 +N1H128W128C16_K512Y3X3,bf16,fwd,128,128,32,1,4,32,16,compv4,cshuffle,1,0.015928199887275694,151.67558927546904,1095.4759560707905,,rocke_bench_igemm_conv_N1H128W128C16_K512Y3X3_t128x128x32_w1x4_a32x32x16_compv4_cshuffle,243.636,0.0099161,1759.66,0.6225 +N1H128W128C32_K512Y3X3,bf16,fwd,64,64,32,1,1,32,16,basic,cshuffle,1,0.01679999977350235,287.60942102040826,1078.6133478752017,,rocke_bench_igemm_conv_N1H128W128C32_K512Y3X3_t64x64x32_w1x1_a32x32x16_basic_cshuffle,377.577,0.012797,1416.02,0.7617 +N1H1536W1536C128_K3Y3X3,fp32,fwd,128,16,64,4,1,16,4,basic,cshuffle,1,1.51663179397583,10.752414670966528,815.1516623287288,,rocke_bench_igemm_conv_N1H1536W1536C128_K3Y3X3_t128x16x64_w4x1_a16x16x4_basic_cshuffle,7.88121,2.06916,597.483,1.3643 +N1D17H256W256C3_K128Z3Y3X3,bf16,fwd,256,128,16,4,4,32,16,mem,cshuffle,1,0.1486736059188843,173.6699346492434,2189.174803344559,,rocke_bench_igemm_conv_N1D17H256W256C3_K128Z3Y3X3_t256x128x16_w4x4_a32x32x16_mem_cshuffle,85.9859,0.300283,1083.89,2.0197 +N1D17H256W256C128_K128Z3Y3X3,bf16,fwd,256,128,64,8,1,32,16,mem,cshuffle,1,1.449679183959961,759.9330414710756,417.240254735358,,rocke_bench_igemm_conv_N1D17H256W256C128_K128Z3Y3X3_t256x128x64_w8x1_a32x32x16_mem_cshuffle,716.108,1.5384,393.178,1.0612 +N1D17H256W256C128_K256Z3Y3X3,bf16,fwd,256,256,64,8,2,32,16,compv4,cshuffle,1,0.7366715908050537,747.7274304959137,605.9222339661559,,rocke_bench_igemm_conv_N1D17H256W256C128_K256Z3Y3X3_t256x256x64_w8x2_a32x32x16_compv4_cshuffle,729.675,0.754897,591.293,1.0247 +N1D17H64W64C256_K256Z3Y3X3,bf16,fwd,256,256,64,8,2,32,16,compv4,cshuffle,1,0.21344220638275146,679.1306588166623,281.8657519502749,,rocke_bench_igemm_conv_N1D17H64W64C256_K256Z3Y3X3_t256x256x64_w8x2_a32x32x16_compv4_cshuffle,744.103,0.194805,308.832,0.9127 +N1D5H32W32C512_K512Z3Y3X3,bf16,fwd,128,128,64,4,2,32,16,basic,cshuffle,1,0.20292220115661622,500.03696879715056,131.7681744412134,,rocke_bench_igemm_conv_N1D5H32W32C512_K512Z3Y3X3_t128x128x64_w4x2_a32x32x16_basic_cshuffle,554.902,0.182859,146.226,0.9011 +N1D9H128W128C256_K256Z3Y3X3,bf16,fwd,256,256,64,8,2,32,16,compv4,cshuffle,1,0.7972643852233887,799.9888810752427,214.87364439589214,,rocke_bench_igemm_conv_N1D9H128W128C256_K256Z3Y3X3_t256x256x64_w8x2_a32x32x16_compv4_cshuffle,753.031,0.84698,202.261,1.0624 +N1D21H256W256C3_K96Z3Y3X3,bf16,fwd,256,128,16,4,4,32,16,mem,cshuffle,1,0.1734097957611084,135.18247313026052,1716.627729670404,,rocke_bench_igemm_conv_N1D21H256W256C3_K96Z3Y3X3_t256x128x16_w4x4_a32x32x16_mem_cshuffle,69.7673,0.336002,885.947,1.9376 +N1D33H256W256C128_K128Z3Y3X3,bf16,fwd,256,128,64,8,1,32,16,mem,cshuffle,1,2.7288288116455077,743.678767498893,418.39759941244665,,rocke_bench_igemm_conv_N1D33H256W256C128_K128Z3Y3X3_t256x128x64_w8x1_a32x32x16_mem_cshuffle,666.88,3.04308,375.19,1.1152 +N1H1W4096C5376_K5376Y1X4G5376,bf16,fwd,256,32,16,2,1,32,16,compv3,cshuffle,1,0.14962559938430786,1.1782060872298072,2134.151170080388,,rocke_bench_igemm_conv_N1H1W4096C5376_K5376Y1X4G5376_t256x32x16_w2x1_a32x32x16_compv3_cshuffle,0.290238,0.607398,145.137,4.0594 +N1H1W16384C5376_K5376Y1X4G5376,bf16,fwd,256,16,32,1,1,16,32,mem,cshuffle,1,0.6020864009857178,1.1705497663560718,969.2376360678554,,rocke_bench_igemm_conv_N1H1W16384C5376_K5376Y1X4G5376_t256x16x32_w1x1_a16x16x32_mem_cshuffle,0.292298,2.41114,146.154,4.0046 +N1H1W2048C5120_K5120Y1X4G5120,bf16,fwd,256,32,16,2,1,32,16,compv3,cshuffle,1,0.07720080018043518,1.0881876846308933,3260.1858971895076,,rocke_bench_igemm_conv_N1H1W2048C5120_K5120Y1X4G5120_t256x32x16_w2x1_a32x32x16_compv3_cshuffle,0.28522,0.294541,142.645,3.8153 +N64H1W1C5376_K5376Y1X4G5376,bf16,fwd,64,32,16,1,1,32,16,compv4,cshuffle,1,0.01672019958496094,0.6584878334767631,14034.02195097351,,rocke_bench_igemm_conv_N64H1W1C5376_K5376Y1X4G5376_t64x32x16_w1x1_a32x32x16_compv4_cshuffle,0.236025,0.0466477,74.6799,2.7899 +N1H1W3000C128_K1280Y1X3,bf16,fwd,128,128,64,4,2,32,16,basic,cshuffle,1,0.015728199481964113,187.5052515312909,599.6261689594406,,rocke_bench_igemm_conv_N1H1W3000C128_K1280Y1X3_t128x128x64_w4x2_a32x32x16_basic_cshuffle,292.151,0.0100945,934.275,0.6418 +N1H1W3000C1280_K1280Y1X3,bf16,fwd,64,32,64,2,1,16,32,basic,cshuffle,1,0.04907259941101074,300.48540686620794,435.07782869169694,,rocke_bench_igemm_conv_N1H1W3000C1280_K1280Y1X3_t64x32x64_w2x1_a16x16x32_basic_cshuffle,398.5,0.0370028,576.994,0.7540 +N1H1W1500C512_K512Y1X31G512,bf16,fwd,256,32,32,2,1,32,16,basic,cshuffle,1,0.016096200048923492,2.958213730897594,1200.5894522472988,,rocke_bench_igemm_conv_N1H1W1500C512_K512Y1X31G512_t256x32x32_w2x1_a32x32x16_basic_cshuffle,1.60646,0.0296403,104.714,1.8414 +N1H7W7C512_K512Y3X3,bf16,fwd,32,16,32,1,1,16,32,basic,cshuffle,1,0.0283841997385025,8.145764549647236,169.77558093572796,,rocke_bench_igemm_conv_N1H7W7C512_K512Y3X3_t32x16x32_w1x1_a16x16x32_basic_cshuffle,11.4365,0.020217,238.361,0.7123 +N1H14W14C256_K256Y3X3,bf16,fwd,32,16,32,1,1,16,32,basic,cshuffle,1,0.017608200013637543,13.130871288429663,78.39256703870457,,rocke_bench_igemm_conv_N1H14W14C256_K256Y3X3_t32x16x32_w1x1_a16x16x32_basic_cshuffle,20.0452,0.0115345,119.672,0.6551 +N1H56W56C256_K256Y3X3G32,bf16,fwd,256,32,16,8,1,32,16,compv4,cshuffle,1,0.015072000026702882,7.670216546920324,291.329086532688,,rocke_bench_igemm_conv_N1H56W56C256_K256Y3X3G32_t256x32x16_w8x1_a32x32x16_compv4_cshuffle,16.1134,0.00717448,452.734,0.4760 +N1H28W28C256_K256Y3X3,bf16,fwd,32,16,32,1,1,16,32,basic,cshuffle,1,0.01785620003938675,51.794000400981325,111.02384581417836,,rocke_bench_igemm_conv_N1H28W28C256_K256Y3X3_t32x16x32_w1x1_a16x16x32_basic_cshuffle,67.6324,0.0136746,144.975,0.7658 +N1H14W14C1024_K1024Y7X7G1024,bf16,fwd,256,16,32,1,1,16,32,compv4,cshuffle,1,0.015192000567913056,1.2946940011009989,6816.960250695055,,rocke_bench_igemm_conv_N1H14W14C1024_K1024Y7X7G1024_t256x16x32_w1x1_a16x16x32_compv4_cshuffle,1.27726,0.0153994,58.6497,1.0136 +N1H224W224C3_K128Y4X4,bf16,fwd,16,64,16,1,2,16,16,compv3,cshuffle,1,0.014847999811172486,2.5953103778331097,75.17241474909888,,rocke_bench_igemm_conv_N1H224W224C3_K128Y4X4_t16x64x16_w1x2_a16x16x16_compv3_cshuffle,6.36726,0.00605208,184.426,0.4076 +N1H96W96C192_K192Y7X7G192,bf16,fwd,128,16,64,2,1,16,32,compv3,cshuffle,1,0.02083220034837723,8.324048977068715,513.1747881271104,,rocke_bench_igemm_conv_N1H96W96C192_K192Y7X7G192_t128x16x64_w2x1_a16x16x32_compv3_cshuffle,2.18764,0.0792672,89.5288,3.8050 +N1H56W56C192_K192Y7X7G192,fp16,fwd,128,16,64,4,1,16,32,basic,cshuffle,1,0.0162321999669075,3.6351804512202417,370.9367807367594,,rocke_bench_igemm_conv_N1H56W56C192_K192Y7X7G192_t128x16x64_w4x1_a16x16x32_basic_cshuffle,1.84275,0.0320212,75.8019,1.9727 +N1H14W14C3072_K768Y1X1,bf16,fwd,32,16,32,1,1,16,32,basic,cshuffle,1,0.02188040018081665,42.26814977592799,284.4496420799788,,rocke_bench_igemm_conv_N1H14W14C3072_K768Y1X1_t32x16x32_w1x1_a16x16x32_basic_cshuffle,69.6788,0.013273,468.914,0.6066 +N1H56W56C192_K192Y31X31G192,bf16,fwd,128,16,64,2,1,16,32,compv3,cshuffle,1,0.07342479825019836,15.761150068898877,997.7699325827168,,rocke_bench_igemm_conv_N1H56W56C192_K192Y31X31G192_t128x16x64_w2x1_a16x16x32_compv3_cshuffle,3.97809,0.290909,9.54758,3.9620 +N1H96W96C144_K144Y3X3G144,bf16,fwd,64,32,16,1,1,32,16,compv4,cshuffle,1,0.016776199638843536,1.4239143855137568,338.6740812767095,,rocke_bench_igemm_conv_N1H96W96C144_K144Y3X3G144_t64x32x16_w1x1_a32x32x16_compv4_cshuffle,0.601255,0.03973,133.677,2.3682 +N1H24W24C80_K480Y1X1,bf16,fwd,16,256,32,1,4,16,32,mem,cshuffle,1,0.014632199704647065,3.023250153286984,49.33776291822509,,rocke_bench_igemm_conv_N1H24W24C80_K480Y1X1_t16x256x32_w1x4_a16x16x32_mem_cshuffle,12.2416,0.00361364,199.776,0.2470 +N1H336W336C3_K1024Y14X14,bf16,fwd,64,32,32,4,2,16,32,mem,cshuffle,1,0.01748020052909851,39.68106789423497,175.12659508133657,,rocke_bench_igemm_conv_N1H336W336C3_K1024Y14X14_t64x32x32_w4x2_a16x16x32_mem_cshuffle,26.1643,0.0265107,115.472,1.5166 +N1H448W448C3_K3200Y14X14,bf16,fwd,128,128,64,4,2,32,16,basic,cshuffle,1,0.0266402006149292,144.65044222829482,432.4676141343922,,rocke_bench_igemm_conv_N1H448W448C3_K3200Y14X14_t128x128x64_w4x2_a32x32x16_basic_cshuffle,119.643,0.0322084,357.703,1.2090 +N1H224W224C3_K1536Y14X14,bf16,fwd,64,32,32,4,2,16,32,mem,cshuffle,1,0.017184199392795564,26.909721275340264,168.40028062134968,,rocke_bench_igemm_conv_N1H224W224C3_K1536Y14X14_t64x32x32_w4x2_a16x16x32_mem_cshuffle,17.545,0.0263563,109.796,1.5338 +N1D2H392W392C3_K1280Z2Y14X14,bf16,fwd,32,64,64,2,2,16,32,compv3,cshuffle,1,0.027152198553085326,86.92773203559973,252.70763936794776,,rocke_bench_igemm_conv_N1D2H392W392C3_K1280Z2Y14X14_t32x64x64_w2x2_a16x16x32_compv3_cshuffle,16.9022,0.139643,49.1365,5.1430 +N1H512W512C3_K1536Y16X16,bf16,fwd,128,64,64,8,2,16,32,compv4,cshuffle,1,0.019640199840068817,123.00888604357169,360.37759583077644,,rocke_bench_igemm_conv_N1H512W512C3_K1536Y16X16_t128x64x64_w8x2_a16x16x32_compv4_cshuffle,74.9216,0.032246,219.497,1.6418 +N1H40W40C256_K256Y3X3,bf16,fwd,64,32,64,2,1,16,32,basic,cshuffle,1,0.019584199786186217,96.37548741365016,143.89395690232487,,rocke_bench_igemm_conv_N1H40W40C256_K256Y3X3_t64x32x64_w2x1_a16x16x32_basic_cshuffle,127.232,0.0148346,189.965,0.7575 +N1H40W40C256_K256Y7X7G256,bf16,fwd,32,16,32,2,1,16,32,compv4,cshuffle,1,0.01552020013332367,2.5863584009985185,519.3829931801106,,rocke_bench_igemm_conv_N1H40W40C256_K256Y7X7G256_t32x16x32_w2x1_a16x16x32_compv4_cshuffle,1.67391,0.0239802,69.3691,1.5451 +N1H640W640C3_K32Y3X3,bf16,fwd,64,32,32,4,2,16,32,mem,cshuffle,1,0.0157601997256279,11.227471928053264,571.8790470240007,,rocke_bench_igemm_conv_N1H640W640C3_K32Y3X3_t64x32x32_w4x2_a16x16x32_mem_cshuffle,20.6,0.00858968,1049.27,0.5450 +N1H20W20C512_K512Y1X1,bf16,fwd,32,32,16,2,1,16,16,basic,cshuffle,1,0.015112200379371643,13.877211440781588,88.90088579250704,,rocke_bench_igemm_conv_N1H20W20C512_K512Y1X1_t32x32x16_w2x1_a16x16x16_basic_cshuffle,44.7188,0.00468964,286.48,0.3103 +N1H40W40C768_K256Y1X1,bf16,fwd,32,16,32,2,1,16,32,compv4,cshuffle,1,0.015584200620651245,40.37073285403515,235.4959416485383,,rocke_bench_igemm_conv_N1H40W40C768_K256Y1X1_t32x16x32_w2x1_a16x16x32_compv4_cshuffle,97.7651,0.00643528,570.296,0.4129 +N1H512W512C3_K128Y3X3,fp16,fwd,64,128,32,2,4,32,16,basic,cshuffle,1,0.022648200392723083,80.00367784551129,3032.852006293171,,rocke_bench_igemm_conv_N1H512W512C3_K128Y3X3_t64x128x32_w2x4_a32x32x16_basic_cshuffle,85.704,0.0211418,3248.95,0.9335 +N1H512W512C256_K256Y3X3,bf16,fwd,256,256,64,8,2,32,16,compv4,cshuffle,1,0.37860379219055174,816.7843315112923,712.1299616151293,,rocke_bench_igemm_conv_N1H512W512C256_K256Y3X3_t256x256x64_w8x2_a32x32x16_compv4_cshuffle,862.614,0.358489,752.088,0.9469 +N1H1024W1024C3_K128Y3X3,bf16,fwd,256,128,16,4,4,32,16,mem,cshuffle,1,0.0665287971496582,108.94165568176422,4129.5474406666235,,rocke_bench_igemm_conv_N1H1024W1024C3_K128Y3X3_t256x128x16_w4x4_a32x32x16_mem_cshuffle,110.291,0.0657151,4180.68,0.9878 +N1H512W512C256_K256Y3X3,bf16,fwd,256,256,64,8,2,32,16,compv4,cshuffle,1,0.38338799476623536,806.5918848099369,703.2434705327522,,rocke_bench_igemm_conv_N1H512W512C256_K256Y3X3_t256x256x64_w8x2_a32x32x16_compv4_cshuffle,881.637,0.350754,768.673,0.9149 +N1D17H128W128C128_K128Z3Y3X3,bf16,fwd,256,128,64,8,1,32,16,mem,cshuffle,1,0.38848400115966797,708.9475423282717,390.9547871897485,,rocke_bench_igemm_conv_N1D17H128W128C128_K128Z3Y3X3_t256x128x64_w8x1_a32x32x16_mem_cshuffle,664.111,0.414712,366.229,1.0675 +N1D17H128W128C128_K256Z3Y3X3,bf16,fwd,256,256,64,8,2,32,16,compv4,cshuffle,1,0.6745828151702881,816.548455318939,344.5925196616816,,rocke_bench_igemm_conv_N1D17H128W128C128_K256Z3Y3X3_t256x256x64_w8x2_a32x32x16_compv4_cshuffle,766.336,0.718783,323.402,1.0655 +N1D11H128W128C256_K256Z3Y3X3,bf16,fwd,256,256,64,8,2,32,16,compv4,cshuffle,1,0.991970157623291,759.868383796934,206.5238902860215,,rocke_bench_igemm_conv_N1D11H128W128C256_K256Z3Y3X3_t256x256x64_w8x2_a32x32x16_compv4_cshuffle,752.394,1.00182,204.492,1.0099 +N1D9H256W256C256_K256Z3Y3X3,bf16,fwd,256,256,64,8,2,32,16,compv4,cshuffle,1,3.0298229217529298,842.0328975357992,222.66238041716593,,rocke_bench_igemm_conv_N1D9H256W256C256_K256Z3Y3X3_t256x256x64_w8x2_a32x32x16_compv4_cshuffle,936.531,2.72411,247.651,0.8991 +N1H1W4096C3328_K3328Y1X4G3328,bf16,fwd,256,32,16,2,1,32,16,compv3,cshuffle,1,0.09171299934387207,1.1899270199507632,1560.8538922957468,,rocke_bench_igemm_conv_N1H1W4096C3328_K3328Y1X4G3328_t256x32x16_w2x1_a32x32x16_compv3_cshuffle,0.288346,0.378474,144.191,4.1267 +N1H1W4096C8448_K8448Y1X4G8448,bf16,fwd,256,32,16,2,1,32,16,compv3,cshuffle,1,0.22769041061401368,1.2166819641325282,3115.6883159326944,,rocke_bench_igemm_conv_N1H1W4096C8448_K8448Y1X4G8448_t256x32x16_w2x1_a32x32x16_compv3_cshuffle,0.292416,0.947371,146.226,4.1608 +N1H1W8192C8192_K8192Y1X4G8192,bf16,fwd,256,32,16,1,2,16,16,mem,cshuffle,1,0.7659517765045166,0.7011766751830663,1051.4441570660042,,rocke_bench_igemm_conv_N1H1W8192C8192_K8192Y1X4G8192_t256x32x16_w1x2_a16x16x16_mem_cshuffle,0.293251,1.83142,146.635,2.3910 +N1H1W160000C1_K512Y1X10,bf16,fwd,128,256,16,2,4,32,16,compv3,cshuffle,1,0.01597619950771332,20.509869061274607,2071.6576545016633,,rocke_bench_igemm_conv_N1H1W160000C1_K512Y1X10_t128x256x16_w2x4_a32x32x16_compv3_cshuffle,27.6074,0.0118689,2788.56,0.7429 +N1H1W3000C128_K1280Y1X3,fp16,fwd,128,128,64,4,2,32,16,basic,cshuffle,1,0.01577620059251785,186.93474279216971,597.801729554126,,rocke_bench_igemm_conv_N1H1W3000C128_K1280Y1X3_t128x128x64_w4x2_a32x32x16_basic_cshuffle,273.753,0.0107729,875.44,0.6829