@@ -3475,6 +3475,243 @@ structured_op: !LinalgStructuredOpConfig
3475
3475
- !ScalarExpression
3476
3476
scalar_arg : K
3477
3477
--- !LinalgOpConfig
3478
+ metadata : !LinalgOpMetadata
3479
+ name : conv_2d_nhwgc_gfhwc
3480
+ cpp_class_name : Conv2DNhwgcGfhwcOp
3481
+ doc : |-
3482
+ Performs 2-D grouped convolution.
3483
+
3484
+ Layout:
3485
+ * Input: NHWGC.
3486
+ * Kernel: GFHWC.
3487
+
3488
+ Numeric casting is performed on the operands to the inner multiply, promoting
3489
+ them to the same data type as the accumulator/output.
3490
+ implements :
3491
+ - LinalgConvolutionOpInterface
3492
+ structured_op : !LinalgStructuredOpConfig
3493
+ args :
3494
+ - !LinalgOperandDefConfig
3495
+ name : I
3496
+ kind : input_tensor
3497
+ type_var : T1
3498
+ shape_map : affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11] ->
3499
+ (s0, s1 * s2 + s3 * s4, s5 * s6 + s7 * s8, s9, s10)>
3500
+ - !LinalgOperandDefConfig
3501
+ name : K
3502
+ kind : input_tensor
3503
+ type_var : T2
3504
+ shape_map : affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11] ->
3505
+ (s9, s11, s3, s7, s10)>
3506
+ - !LinalgOperandDefConfig
3507
+ name : O
3508
+ kind : output_tensor
3509
+ type_var : U
3510
+ shape_map : affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11] ->
3511
+ (s0, s1, s5, s9, s11)>
3512
+ - !LinalgOperandDefConfig
3513
+ name : strides
3514
+ kind : index_attr
3515
+ index_attr_map : affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11]
3516
+ -> (s2, s6)>
3517
+ default_indices :
3518
+ - 1
3519
+ - 1
3520
+ - !LinalgOperandDefConfig
3521
+ name : dilations
3522
+ kind : index_attr
3523
+ index_attr_map : affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11]
3524
+ -> (s4, s8)>
3525
+ default_indices :
3526
+ - 1
3527
+ - 1
3528
+ indexing_maps : !LinalgIndexingMapsConfig
3529
+ static_indexing_maps :
3530
+ - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7,
3531
+ s8, s9, s10, s11] -> (d0, d1 * s2 + d5 * s4, d2 * s6 + d6 * s8, d3, d7)>
3532
+ - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7,
3533
+ s8, s9, s10, s11] -> (d3, d4, d5, d6, d7)>
3534
+ - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7,
3535
+ s8, s9, s10, s11] -> (d0, d1, d2, d3, d4)>
3536
+ iterator_types :
3537
+ - parallel
3538
+ - parallel
3539
+ - parallel
3540
+ - parallel
3541
+ - parallel
3542
+ - reduction
3543
+ - reduction
3544
+ - reduction
3545
+ assignments :
3546
+ - !ScalarAssign
3547
+ arg : O
3548
+ value : !ScalarExpression
3549
+ scalar_fn :
3550
+ kind : binary
3551
+ fn_name : add
3552
+ operands :
3553
+ - !ScalarExpression
3554
+ scalar_arg : O
3555
+ - !ScalarExpression
3556
+ scalar_fn :
3557
+ kind : binary
3558
+ fn_name : mul
3559
+ operands :
3560
+ - !ScalarExpression
3561
+ scalar_fn :
3562
+ kind : type
3563
+ fn_name : cast_signed
3564
+ type_var : U
3565
+ operands :
3566
+ - !ScalarExpression
3567
+ scalar_arg : I
3568
+ - !ScalarExpression
3569
+ scalar_fn :
3570
+ kind : type
3571
+ fn_name : cast_signed
3572
+ type_var : U
3573
+ operands :
3574
+ - !ScalarExpression
3575
+ scalar_arg : K
3576
+ --- !LinalgOpConfig
3577
+ metadata : !LinalgOpMetadata
3578
+ name : conv_2d_nhwgc_gfhwc_q
3579
+ cpp_class_name : Conv2DNhwgcGfhwcQOp
3580
+ doc : |-
3581
+ Performs 2-D grouped convolution with zero point offsets.
3582
+
3583
+ Layout:
3584
+ * Input: NHWGC.
3585
+ * Kernel: GFHWC.
3586
+
3587
+ Numeric casting is performed on the operands to the inner multiply, promoting
3588
+ them to the same data type as the accumulator/output. This includes the zero
3589
+ point offsets common to quantized operations.
3590
+ implements :
3591
+ - LinalgConvolutionOpInterface
3592
+ structured_op : !LinalgStructuredOpConfig
3593
+ args :
3594
+ - !LinalgOperandDefConfig
3595
+ name : I
3596
+ kind : input_tensor
3597
+ type_var : T1
3598
+ shape_map : affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11] ->
3599
+ (s0, s1 * s2 + s3 * s4, s5 * s6 + s7 * s8, s9, s10)>
3600
+ - !LinalgOperandDefConfig
3601
+ name : K
3602
+ kind : input_tensor
3603
+ type_var : T2
3604
+ shape_map : affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11] ->
3605
+ (s9, s11, s3, s7, s10)>
3606
+ - !LinalgOperandDefConfig
3607
+ name : IZp
3608
+ kind : scalar
3609
+ type_var : I32
3610
+ - !LinalgOperandDefConfig
3611
+ name : KZp
3612
+ kind : scalar
3613
+ type_var : I32
3614
+ - !LinalgOperandDefConfig
3615
+ name : O
3616
+ kind : output_tensor
3617
+ type_var : U
3618
+ shape_map : affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11] ->
3619
+ (s0, s1, s5, s9, s11)>
3620
+ - !LinalgOperandDefConfig
3621
+ name : strides
3622
+ kind : index_attr
3623
+ index_attr_map : affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11]
3624
+ -> (s2, s6)>
3625
+ default_indices :
3626
+ - 1
3627
+ - 1
3628
+ - !LinalgOperandDefConfig
3629
+ name : dilations
3630
+ kind : index_attr
3631
+ index_attr_map : affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11]
3632
+ -> (s4, s8)>
3633
+ default_indices :
3634
+ - 1
3635
+ - 1
3636
+ indexing_maps : !LinalgIndexingMapsConfig
3637
+ static_indexing_maps :
3638
+ - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7,
3639
+ s8, s9, s10, s11] -> (d0, d1 * s2 + d5 * s4, d2 * s6 + d6 * s8, d3, d7)>
3640
+ - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7,
3641
+ s8, s9, s10, s11] -> (d3, d4, d5, d6, d7)>
3642
+ - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7,
3643
+ s8, s9, s10, s11] -> ()>
3644
+ - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7,
3645
+ s8, s9, s10, s11] -> ()>
3646
+ - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7,
3647
+ s8, s9, s10, s11] -> (d0, d1, d2, d3, d4)>
3648
+ iterator_types :
3649
+ - parallel
3650
+ - parallel
3651
+ - parallel
3652
+ - parallel
3653
+ - parallel
3654
+ - reduction
3655
+ - reduction
3656
+ - reduction
3657
+ assignments :
3658
+ - !ScalarAssign
3659
+ arg : O
3660
+ value : !ScalarExpression
3661
+ scalar_fn :
3662
+ kind : binary
3663
+ fn_name : add
3664
+ operands :
3665
+ - !ScalarExpression
3666
+ scalar_arg : O
3667
+ - !ScalarExpression
3668
+ scalar_fn :
3669
+ kind : binary
3670
+ fn_name : mul
3671
+ operands :
3672
+ - !ScalarExpression
3673
+ scalar_fn :
3674
+ kind : binary
3675
+ fn_name : sub
3676
+ operands :
3677
+ - !ScalarExpression
3678
+ scalar_fn :
3679
+ kind : type
3680
+ fn_name : cast_signed
3681
+ type_var : U
3682
+ operands :
3683
+ - !ScalarExpression
3684
+ scalar_arg : I
3685
+ - !ScalarExpression
3686
+ scalar_fn :
3687
+ kind : type
3688
+ fn_name : cast_signed
3689
+ type_var : U
3690
+ operands :
3691
+ - !ScalarExpression
3692
+ scalar_arg : IZp
3693
+ - !ScalarExpression
3694
+ scalar_fn :
3695
+ kind : binary
3696
+ fn_name : sub
3697
+ operands :
3698
+ - !ScalarExpression
3699
+ scalar_fn :
3700
+ kind : type
3701
+ fn_name : cast_signed
3702
+ type_var : U
3703
+ operands :
3704
+ - !ScalarExpression
3705
+ scalar_arg : K
3706
+ - !ScalarExpression
3707
+ scalar_fn :
3708
+ kind : type
3709
+ fn_name : cast_signed
3710
+ type_var : U
3711
+ operands :
3712
+ - !ScalarExpression
3713
+ scalar_arg : KZp
3714
+ --- !LinalgOpConfig
3478
3715
metadata : !LinalgOpMetadata
3479
3716
name : conv_2d_ngchw_gfchw_q
3480
3717
cpp_class_name : Conv2DNgchwGfchwQOp
0 commit comments