@@ -3547,6 +3547,243 @@ structured_op: !LinalgStructuredOpConfig
35473547 - !ScalarExpression
35483548 scalar_arg : K
35493549--- !LinalgOpConfig
3550+ metadata : !LinalgOpMetadata
3551+ name : conv_2d_nhwgc_gfhwc
3552+ cpp_class_name : Conv2DNhwgcGfhwcOp
3553+ doc : |-
3554+ Performs 2-D grouped convolution.
3555+
3556+ Layout:
3557+ * Input: NHWGC.
3558+ * Kernel: GFHWC.
3559+
3560+ Numeric casting is performed on the operands to the inner multiply, promoting
3561+ them to the same data type as the accumulator/output.
3562+ implements :
3563+ - LinalgConvolutionOpInterface
3564+ structured_op : !LinalgStructuredOpConfig
3565+ args :
3566+ - !LinalgOperandDefConfig
3567+ name : I
3568+ kind : input_tensor
3569+ type_var : T1
3570+ shape_map : affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11] ->
3571+ (s0, s1 * s2 + s3 * s4, s5 * s6 + s7 * s8, s9, s10)>
3572+ - !LinalgOperandDefConfig
3573+ name : K
3574+ kind : input_tensor
3575+ type_var : T2
3576+ shape_map : affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11] ->
3577+ (s9, s11, s3, s7, s10)>
3578+ - !LinalgOperandDefConfig
3579+ name : O
3580+ kind : output_tensor
3581+ type_var : U
3582+ shape_map : affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11] ->
3583+ (s0, s1, s5, s9, s11)>
3584+ - !LinalgOperandDefConfig
3585+ name : strides
3586+ kind : index_attr
3587+ index_attr_map : affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11]
3588+ -> (s2, s6)>
3589+ default_indices :
3590+ - 1
3591+ - 1
3592+ - !LinalgOperandDefConfig
3593+ name : dilations
3594+ kind : index_attr
3595+ index_attr_map : affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11]
3596+ -> (s4, s8)>
3597+ default_indices :
3598+ - 1
3599+ - 1
3600+ indexing_maps : !LinalgIndexingMapsConfig
3601+ static_indexing_maps :
3602+ - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7,
3603+ s8, s9, s10, s11] -> (d0, d1 * s2 + d5 * s4, d2 * s6 + d6 * s8, d3, d7)>
3604+ - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7,
3605+ s8, s9, s10, s11] -> (d3, d4, d5, d6, d7)>
3606+ - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7,
3607+ s8, s9, s10, s11] -> (d0, d1, d2, d3, d4)>
3608+ iterator_types :
3609+ - parallel
3610+ - parallel
3611+ - parallel
3612+ - parallel
3613+ - parallel
3614+ - reduction
3615+ - reduction
3616+ - reduction
3617+ assignments :
3618+ - !ScalarAssign
3619+ arg : O
3620+ value : !ScalarExpression
3621+ scalar_fn :
3622+ kind : binary
3623+ fn_name : add
3624+ operands :
3625+ - !ScalarExpression
3626+ scalar_arg : O
3627+ - !ScalarExpression
3628+ scalar_fn :
3629+ kind : binary
3630+ fn_name : mul
3631+ operands :
3632+ - !ScalarExpression
3633+ scalar_fn :
3634+ kind : type
3635+ fn_name : cast_signed
3636+ type_var : U
3637+ operands :
3638+ - !ScalarExpression
3639+ scalar_arg : I
3640+ - !ScalarExpression
3641+ scalar_fn :
3642+ kind : type
3643+ fn_name : cast_signed
3644+ type_var : U
3645+ operands :
3646+ - !ScalarExpression
3647+ scalar_arg : K
3648+ --- !LinalgOpConfig
3649+ metadata : !LinalgOpMetadata
3650+ name : conv_2d_nhwgc_gfhwc_q
3651+ cpp_class_name : Conv2DNhwgcGfhwcQOp
3652+ doc : |-
3653+ Performs 2-D grouped convolution with zero point offsets.
3654+
3655+ Layout:
3656+ * Input: NHWGC.
3657+ * Kernel: GFHWC.
3658+
3659+ Numeric casting is performed on the operands to the inner multiply, promoting
3660+ them to the same data type as the accumulator/output. This includes the zero
3661+ point offsets common to quantized operations.
3662+ implements :
3663+ - LinalgConvolutionOpInterface
3664+ structured_op : !LinalgStructuredOpConfig
3665+ args :
3666+ - !LinalgOperandDefConfig
3667+ name : I
3668+ kind : input_tensor
3669+ type_var : T1
3670+ shape_map : affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11] ->
3671+ (s0, s1 * s2 + s3 * s4, s5 * s6 + s7 * s8, s9, s10)>
3672+ - !LinalgOperandDefConfig
3673+ name : K
3674+ kind : input_tensor
3675+ type_var : T2
3676+ shape_map : affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11] ->
3677+ (s9, s11, s3, s7, s10)>
3678+ - !LinalgOperandDefConfig
3679+ name : IZp
3680+ kind : scalar
3681+ type_var : I32
3682+ - !LinalgOperandDefConfig
3683+ name : KZp
3684+ kind : scalar
3685+ type_var : I32
3686+ - !LinalgOperandDefConfig
3687+ name : O
3688+ kind : output_tensor
3689+ type_var : U
3690+ shape_map : affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11] ->
3691+ (s0, s1, s5, s9, s11)>
3692+ - !LinalgOperandDefConfig
3693+ name : strides
3694+ kind : index_attr
3695+ index_attr_map : affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11]
3696+ -> (s2, s6)>
3697+ default_indices :
3698+ - 1
3699+ - 1
3700+ - !LinalgOperandDefConfig
3701+ name : dilations
3702+ kind : index_attr
3703+ index_attr_map : affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11]
3704+ -> (s4, s8)>
3705+ default_indices :
3706+ - 1
3707+ - 1
3708+ indexing_maps : !LinalgIndexingMapsConfig
3709+ static_indexing_maps :
3710+ - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7,
3711+ s8, s9, s10, s11] -> (d0, d1 * s2 + d5 * s4, d2 * s6 + d6 * s8, d3, d7)>
3712+ - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7,
3713+ s8, s9, s10, s11] -> (d3, d4, d5, d6, d7)>
3714+ - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7,
3715+ s8, s9, s10, s11] -> ()>
3716+ - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7,
3717+ s8, s9, s10, s11] -> ()>
3718+ - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7,
3719+ s8, s9, s10, s11] -> (d0, d1, d2, d3, d4)>
3720+ iterator_types :
3721+ - parallel
3722+ - parallel
3723+ - parallel
3724+ - parallel
3725+ - parallel
3726+ - reduction
3727+ - reduction
3728+ - reduction
3729+ assignments :
3730+ - !ScalarAssign
3731+ arg : O
3732+ value : !ScalarExpression
3733+ scalar_fn :
3734+ kind : binary
3735+ fn_name : add
3736+ operands :
3737+ - !ScalarExpression
3738+ scalar_arg : O
3739+ - !ScalarExpression
3740+ scalar_fn :
3741+ kind : binary
3742+ fn_name : mul
3743+ operands :
3744+ - !ScalarExpression
3745+ scalar_fn :
3746+ kind : binary
3747+ fn_name : sub
3748+ operands :
3749+ - !ScalarExpression
3750+ scalar_fn :
3751+ kind : type
3752+ fn_name : cast_signed
3753+ type_var : U
3754+ operands :
3755+ - !ScalarExpression
3756+ scalar_arg : I
3757+ - !ScalarExpression
3758+ scalar_fn :
3759+ kind : type
3760+ fn_name : cast_signed
3761+ type_var : U
3762+ operands :
3763+ - !ScalarExpression
3764+ scalar_arg : IZp
3765+ - !ScalarExpression
3766+ scalar_fn :
3767+ kind : binary
3768+ fn_name : sub
3769+ operands :
3770+ - !ScalarExpression
3771+ scalar_fn :
3772+ kind : type
3773+ fn_name : cast_signed
3774+ type_var : U
3775+ operands :
3776+ - !ScalarExpression
3777+ scalar_arg : K
3778+ - !ScalarExpression
3779+ scalar_fn :
3780+ kind : type
3781+ fn_name : cast_signed
3782+ type_var : U
3783+ operands :
3784+ - !ScalarExpression
3785+ scalar_arg : KZp
3786+ --- !LinalgOpConfig
35503787metadata : !LinalgOpMetadata
35513788 name : conv_2d_ngchw_gfchw_q
35523789 cpp_class_name : Conv2DNgchwGfchwQOp
0 commit comments