1### AUTOGENERATED from core_named_ops.py 2### To regenerate, run: bin/update_core_linalg_named_ops.sh 3--- !LinalgOpConfig 4metadata: !LinalgOpMetadata 5 name: copy 6 cpp_class_name: CopyOp 7 doc: |- 8 Copies the tensor elementwise. 9 10 Numeric casting is performed on the input operand, promoting it to the same 11 data type as the accumulator/output. 12 defines: 13 - hasCanonicalizer 14structured_op: !LinalgStructuredOpConfig 15 args: 16 - !LinalgOperandDefConfig 17 name: I 18 kind: input_tensor 19 type_var: T1 20 shape_map: affine_map<() -> ()> 21 - !LinalgOperandDefConfig 22 name: O 23 kind: output_tensor 24 type_var: U 25 shape_map: affine_map<() -> ()> 26 - !LinalgOperandDefConfig 27 name: cast 28 kind: type_fn_attr 29 default_fn: cast_signed 30 indexing_maps: !LinalgIndexingMapsConfig 31 static_indexing_maps: 32 - affine_map<() -> ()> 33 - affine_map<() -> ()> 34 iterator_types: [] 35 assignments: 36 - !ScalarAssign 37 arg: O 38 value: !ScalarExpression 39 scalar_fn: 40 kind: type 41 attr_name: cast 42 type_var: U 43 operands: 44 - !ScalarExpression 45 scalar_arg: I 46--- !LinalgOpConfig 47metadata: !LinalgOpMetadata 48 name: elemwise_unary 49 cpp_class_name: ElemwiseUnaryOp 50 doc: |- 51 Applies the unary function fun elementwise. 52 53 Numeric casting is performed on the input operand, promoting it to the same 54 data type as the accumulator/output. 55structured_op: !LinalgStructuredOpConfig 56 args: 57 - !LinalgOperandDefConfig 58 name: I 59 kind: input_tensor 60 type_var: T1 61 shape_map: affine_map<() -> ()> 62 - !LinalgOperandDefConfig 63 name: O 64 kind: output_tensor 65 type_var: U 66 shape_map: affine_map<() -> ()> 67 - !LinalgOperandDefConfig 68 name: fun 69 kind: unary_fn_attr 70 default_fn: exp 71 - !LinalgOperandDefConfig 72 name: cast 73 kind: type_fn_attr 74 default_fn: cast_signed 75 indexing_maps: !LinalgIndexingMapsConfig 76 static_indexing_maps: 77 - affine_map<() -> ()> 78 - affine_map<() -> ()> 79 iterator_types: [] 80 assignments: 81 - !ScalarAssign 82 arg: O 83 value: !ScalarExpression 84 scalar_fn: 85 kind: unary 86 attr_name: fun 87 operands: 88 - !ScalarExpression 89 scalar_fn: 90 kind: type 91 attr_name: cast 92 type_var: U 93 operands: 94 - !ScalarExpression 95 scalar_arg: I 96--- !LinalgOpConfig 97metadata: !LinalgOpMetadata 98 name: exp 99 cpp_class_name: ExpOp 100 doc: |- 101 Applies exp(x) elementwise. 102 103 No numeric casting is performed on the input operand. 104structured_op: !LinalgStructuredOpConfig 105 args: 106 - !LinalgOperandDefConfig 107 name: I 108 kind: input_tensor 109 type_var: T1 110 shape_map: affine_map<() -> ()> 111 - !LinalgOperandDefConfig 112 name: O 113 kind: output_tensor 114 type_var: T1 115 shape_map: affine_map<() -> ()> 116 indexing_maps: !LinalgIndexingMapsConfig 117 static_indexing_maps: 118 - affine_map<() -> ()> 119 - affine_map<() -> ()> 120 iterator_types: [] 121 assignments: 122 - !ScalarAssign 123 arg: O 124 value: !ScalarExpression 125 scalar_fn: 126 kind: unary 127 fn_name: exp 128 operands: 129 - !ScalarExpression 130 scalar_arg: I 131--- !LinalgOpConfig 132metadata: !LinalgOpMetadata 133 name: log 134 cpp_class_name: LogOp 135 doc: |- 136 Applies log(x) elementwise. 137 138 No numeric casting is performed on the input operand. 139structured_op: !LinalgStructuredOpConfig 140 args: 141 - !LinalgOperandDefConfig 142 name: I 143 kind: input_tensor 144 type_var: T1 145 shape_map: affine_map<() -> ()> 146 - !LinalgOperandDefConfig 147 name: O 148 kind: output_tensor 149 type_var: T1 150 shape_map: affine_map<() -> ()> 151 indexing_maps: !LinalgIndexingMapsConfig 152 static_indexing_maps: 153 - affine_map<() -> ()> 154 - affine_map<() -> ()> 155 iterator_types: [] 156 assignments: 157 - !ScalarAssign 158 arg: O 159 value: !ScalarExpression 160 scalar_fn: 161 kind: unary 162 fn_name: log 163 operands: 164 - !ScalarExpression 165 scalar_arg: I 166--- !LinalgOpConfig 167metadata: !LinalgOpMetadata 168 name: abs 169 cpp_class_name: AbsOp 170 doc: |- 171 Applies abs(x) elementwise. 172 173 No numeric casting is performed on the input operand. 174structured_op: !LinalgStructuredOpConfig 175 args: 176 - !LinalgOperandDefConfig 177 name: I 178 kind: input_tensor 179 type_var: T1 180 shape_map: affine_map<() -> ()> 181 - !LinalgOperandDefConfig 182 name: O 183 kind: output_tensor 184 type_var: T1 185 shape_map: affine_map<() -> ()> 186 indexing_maps: !LinalgIndexingMapsConfig 187 static_indexing_maps: 188 - affine_map<() -> ()> 189 - affine_map<() -> ()> 190 iterator_types: [] 191 assignments: 192 - !ScalarAssign 193 arg: O 194 value: !ScalarExpression 195 scalar_fn: 196 kind: unary 197 fn_name: abs 198 operands: 199 - !ScalarExpression 200 scalar_arg: I 201--- !LinalgOpConfig 202metadata: !LinalgOpMetadata 203 name: ceil 204 cpp_class_name: CeilOp 205 doc: |- 206 Applies ceil(x) elementwise. 207 208 No numeric casting is performed on the input operand. 209structured_op: !LinalgStructuredOpConfig 210 args: 211 - !LinalgOperandDefConfig 212 name: I 213 kind: input_tensor 214 type_var: T1 215 shape_map: affine_map<() -> ()> 216 - !LinalgOperandDefConfig 217 name: O 218 kind: output_tensor 219 type_var: T1 220 shape_map: affine_map<() -> ()> 221 indexing_maps: !LinalgIndexingMapsConfig 222 static_indexing_maps: 223 - affine_map<() -> ()> 224 - affine_map<() -> ()> 225 iterator_types: [] 226 assignments: 227 - !ScalarAssign 228 arg: O 229 value: !ScalarExpression 230 scalar_fn: 231 kind: unary 232 fn_name: ceil 233 operands: 234 - !ScalarExpression 235 scalar_arg: I 236--- !LinalgOpConfig 237metadata: !LinalgOpMetadata 238 name: floor 239 cpp_class_name: FloorOp 240 doc: |- 241 Applies floor(x) elementwise. 242 243 No numeric casting is performed on the input operand. 244structured_op: !LinalgStructuredOpConfig 245 args: 246 - !LinalgOperandDefConfig 247 name: I 248 kind: input_tensor 249 type_var: T1 250 shape_map: affine_map<() -> ()> 251 - !LinalgOperandDefConfig 252 name: O 253 kind: output_tensor 254 type_var: T1 255 shape_map: affine_map<() -> ()> 256 indexing_maps: !LinalgIndexingMapsConfig 257 static_indexing_maps: 258 - affine_map<() -> ()> 259 - affine_map<() -> ()> 260 iterator_types: [] 261 assignments: 262 - !ScalarAssign 263 arg: O 264 value: !ScalarExpression 265 scalar_fn: 266 kind: unary 267 fn_name: floor 268 operands: 269 - !ScalarExpression 270 scalar_arg: I 271--- !LinalgOpConfig 272metadata: !LinalgOpMetadata 273 name: negf 274 cpp_class_name: NegFOp 275 doc: |- 276 Applies negf(x) elementwise. 277 278 No numeric casting is performed on the input operand. 279structured_op: !LinalgStructuredOpConfig 280 args: 281 - !LinalgOperandDefConfig 282 name: I 283 kind: input_tensor 284 type_var: T1 285 shape_map: affine_map<() -> ()> 286 - !LinalgOperandDefConfig 287 name: O 288 kind: output_tensor 289 type_var: T1 290 shape_map: affine_map<() -> ()> 291 indexing_maps: !LinalgIndexingMapsConfig 292 static_indexing_maps: 293 - affine_map<() -> ()> 294 - affine_map<() -> ()> 295 iterator_types: [] 296 assignments: 297 - !ScalarAssign 298 arg: O 299 value: !ScalarExpression 300 scalar_fn: 301 kind: unary 302 fn_name: negf 303 operands: 304 - !ScalarExpression 305 scalar_arg: I 306--- !LinalgOpConfig 307metadata: !LinalgOpMetadata 308 name: reciprocal 309 cpp_class_name: ReciprocalOp 310 doc: |- 311 Applies reciprocal(x) elementwise. 312 313 No numeric casting is performed on the input operand. 314structured_op: !LinalgStructuredOpConfig 315 args: 316 - !LinalgOperandDefConfig 317 name: I 318 kind: input_tensor 319 type_var: T1 320 shape_map: affine_map<() -> ()> 321 - !LinalgOperandDefConfig 322 name: O 323 kind: output_tensor 324 type_var: T1 325 shape_map: affine_map<() -> ()> 326 indexing_maps: !LinalgIndexingMapsConfig 327 static_indexing_maps: 328 - affine_map<() -> ()> 329 - affine_map<() -> ()> 330 iterator_types: [] 331 assignments: 332 - !ScalarAssign 333 arg: O 334 value: !ScalarExpression 335 scalar_fn: 336 kind: unary 337 fn_name: reciprocal 338 operands: 339 - !ScalarExpression 340 scalar_arg: I 341--- !LinalgOpConfig 342metadata: !LinalgOpMetadata 343 name: round 344 cpp_class_name: RoundOp 345 doc: |- 346 Applies round(x) elementwise. 347 348 No numeric casting is performed on the input operand. 349structured_op: !LinalgStructuredOpConfig 350 args: 351 - !LinalgOperandDefConfig 352 name: I 353 kind: input_tensor 354 type_var: T1 355 shape_map: affine_map<() -> ()> 356 - !LinalgOperandDefConfig 357 name: O 358 kind: output_tensor 359 type_var: T1 360 shape_map: affine_map<() -> ()> 361 indexing_maps: !LinalgIndexingMapsConfig 362 static_indexing_maps: 363 - affine_map<() -> ()> 364 - affine_map<() -> ()> 365 iterator_types: [] 366 assignments: 367 - !ScalarAssign 368 arg: O 369 value: !ScalarExpression 370 scalar_fn: 371 kind: unary 372 fn_name: round 373 operands: 374 - !ScalarExpression 375 scalar_arg: I 376--- !LinalgOpConfig 377metadata: !LinalgOpMetadata 378 name: sqrt 379 cpp_class_name: SqrtOp 380 doc: |- 381 Applies sqrt(x) elementwise. 382 383 No numeric casting is performed on the input operand. 384structured_op: !LinalgStructuredOpConfig 385 args: 386 - !LinalgOperandDefConfig 387 name: I 388 kind: input_tensor 389 type_var: T1 390 shape_map: affine_map<() -> ()> 391 - !LinalgOperandDefConfig 392 name: O 393 kind: output_tensor 394 type_var: T1 395 shape_map: affine_map<() -> ()> 396 indexing_maps: !LinalgIndexingMapsConfig 397 static_indexing_maps: 398 - affine_map<() -> ()> 399 - affine_map<() -> ()> 400 iterator_types: [] 401 assignments: 402 - !ScalarAssign 403 arg: O 404 value: !ScalarExpression 405 scalar_fn: 406 kind: unary 407 fn_name: sqrt 408 operands: 409 - !ScalarExpression 410 scalar_arg: I 411--- !LinalgOpConfig 412metadata: !LinalgOpMetadata 413 name: rsqrt 414 cpp_class_name: RsqrtOp 415 doc: |- 416 Applies rsqrt(x) elementwise. 417 418 No numeric casting is performed on the input operand. 419structured_op: !LinalgStructuredOpConfig 420 args: 421 - !LinalgOperandDefConfig 422 name: I 423 kind: input_tensor 424 type_var: T1 425 shape_map: affine_map<() -> ()> 426 - !LinalgOperandDefConfig 427 name: O 428 kind: output_tensor 429 type_var: T1 430 shape_map: affine_map<() -> ()> 431 indexing_maps: !LinalgIndexingMapsConfig 432 static_indexing_maps: 433 - affine_map<() -> ()> 434 - affine_map<() -> ()> 435 iterator_types: [] 436 assignments: 437 - !ScalarAssign 438 arg: O 439 value: !ScalarExpression 440 scalar_fn: 441 kind: unary 442 fn_name: rsqrt 443 operands: 444 - !ScalarExpression 445 scalar_arg: I 446--- !LinalgOpConfig 447metadata: !LinalgOpMetadata 448 name: square 449 cpp_class_name: SquareOp 450 doc: |- 451 Applies square(x) elementwise. 452 453 No numeric casting is performed on the input operand. 454structured_op: !LinalgStructuredOpConfig 455 args: 456 - !LinalgOperandDefConfig 457 name: I 458 kind: input_tensor 459 type_var: T1 460 shape_map: affine_map<() -> ()> 461 - !LinalgOperandDefConfig 462 name: O 463 kind: output_tensor 464 type_var: T1 465 shape_map: affine_map<() -> ()> 466 indexing_maps: !LinalgIndexingMapsConfig 467 static_indexing_maps: 468 - affine_map<() -> ()> 469 - affine_map<() -> ()> 470 iterator_types: [] 471 assignments: 472 - !ScalarAssign 473 arg: O 474 value: !ScalarExpression 475 scalar_fn: 476 kind: unary 477 fn_name: square 478 operands: 479 - !ScalarExpression 480 scalar_arg: I 481--- !LinalgOpConfig 482metadata: !LinalgOpMetadata 483 name: tanh 484 cpp_class_name: TanhOp 485 doc: |- 486 Applies tanh(x) elementwise. 487 488 No numeric casting is performed on the input operand. 489structured_op: !LinalgStructuredOpConfig 490 args: 491 - !LinalgOperandDefConfig 492 name: I 493 kind: input_tensor 494 type_var: T1 495 shape_map: affine_map<() -> ()> 496 - !LinalgOperandDefConfig 497 name: O 498 kind: output_tensor 499 type_var: T1 500 shape_map: affine_map<() -> ()> 501 indexing_maps: !LinalgIndexingMapsConfig 502 static_indexing_maps: 503 - affine_map<() -> ()> 504 - affine_map<() -> ()> 505 iterator_types: [] 506 assignments: 507 - !ScalarAssign 508 arg: O 509 value: !ScalarExpression 510 scalar_fn: 511 kind: unary 512 fn_name: tanh 513 operands: 514 - !ScalarExpression 515 scalar_arg: I 516--- !LinalgOpConfig 517metadata: !LinalgOpMetadata 518 name: erf 519 cpp_class_name: ErfOp 520 doc: |- 521 Applies erf(x) elementwise. 522 523 No numeric casting is performed on the input operand. 524structured_op: !LinalgStructuredOpConfig 525 args: 526 - !LinalgOperandDefConfig 527 name: I 528 kind: input_tensor 529 type_var: T1 530 shape_map: affine_map<() -> ()> 531 - !LinalgOperandDefConfig 532 name: O 533 kind: output_tensor 534 type_var: T1 535 shape_map: affine_map<() -> ()> 536 indexing_maps: !LinalgIndexingMapsConfig 537 static_indexing_maps: 538 - affine_map<() -> ()> 539 - affine_map<() -> ()> 540 iterator_types: [] 541 assignments: 542 - !ScalarAssign 543 arg: O 544 value: !ScalarExpression 545 scalar_fn: 546 kind: unary 547 fn_name: erf 548 operands: 549 - !ScalarExpression 550 scalar_arg: I 551--- !LinalgOpConfig 552metadata: !LinalgOpMetadata 553 name: elemwise_binary 554 cpp_class_name: ElemwiseBinaryOp 555 doc: |- 556 Applies the binary function fun elementwise. 557 558 Numeric casting is performed on the input operand, promoting it to the same 559 data type as the accumulator/output. 560structured_op: !LinalgStructuredOpConfig 561 args: 562 - !LinalgOperandDefConfig 563 name: lhs 564 kind: input_tensor 565 type_var: T1 566 shape_map: affine_map<() -> ()> 567 - !LinalgOperandDefConfig 568 name: rhs 569 kind: input_tensor 570 type_var: T2 571 shape_map: affine_map<() -> ()> 572 - !LinalgOperandDefConfig 573 name: O 574 kind: output_tensor 575 type_var: U 576 shape_map: affine_map<() -> ()> 577 - !LinalgOperandDefConfig 578 name: fun 579 kind: binary_fn_attr 580 default_fn: add 581 - !LinalgOperandDefConfig 582 name: cast 583 kind: type_fn_attr 584 default_fn: cast_signed 585 indexing_maps: !LinalgIndexingMapsConfig 586 static_indexing_maps: 587 - affine_map<() -> ()> 588 - affine_map<() -> ()> 589 - affine_map<() -> ()> 590 iterator_types: [] 591 assignments: 592 - !ScalarAssign 593 arg: O 594 value: !ScalarExpression 595 scalar_fn: 596 kind: binary 597 attr_name: fun 598 operands: 599 - !ScalarExpression 600 scalar_fn: 601 kind: type 602 attr_name: cast 603 type_var: U 604 operands: 605 - !ScalarExpression 606 scalar_arg: lhs 607 - !ScalarExpression 608 scalar_fn: 609 kind: type 610 attr_name: cast 611 type_var: U 612 operands: 613 - !ScalarExpression 614 scalar_arg: rhs 615--- !LinalgOpConfig 616metadata: !LinalgOpMetadata 617 name: add 618 cpp_class_name: AddOp 619 doc: |- 620 Adds two tensors elementwise. 621 622 The shapes and element types must be identical. The appropriate casts, 623 broadcasts and reductions should be done previously to calling this op. 624 625 This means reduction/broadcast/element cast semantics is explicit. Further 626 passes can take that into account when lowering this code. For example, 627 a `linalg.broadcast` + `linalg.add` sequence can be lowered to a 628 `linalg.generic` with different affine maps for the two operands. 629structured_op: !LinalgStructuredOpConfig 630 args: 631 - !LinalgOperandDefConfig 632 name: lhs 633 kind: input_tensor 634 type_var: T1 635 shape_map: affine_map<() -> ()> 636 - !LinalgOperandDefConfig 637 name: rhs 638 kind: input_tensor 639 type_var: T1 640 shape_map: affine_map<() -> ()> 641 - !LinalgOperandDefConfig 642 name: O 643 kind: output_tensor 644 type_var: T1 645 shape_map: affine_map<() -> ()> 646 indexing_maps: !LinalgIndexingMapsConfig 647 static_indexing_maps: 648 - affine_map<() -> ()> 649 - affine_map<() -> ()> 650 - affine_map<() -> ()> 651 iterator_types: [] 652 assignments: 653 - !ScalarAssign 654 arg: O 655 value: !ScalarExpression 656 scalar_fn: 657 kind: binary 658 fn_name: add 659 operands: 660 - !ScalarExpression 661 scalar_arg: lhs 662 - !ScalarExpression 663 scalar_arg: rhs 664--- !LinalgOpConfig 665metadata: !LinalgOpMetadata 666 name: sub 667 cpp_class_name: SubOp 668 doc: |- 669 Subtracts two tensors elementwise. 670 671 The shapes and element types must be identical. The appropriate casts, 672 broadcasts and reductions should be done previously to calling this op. 673 674 This means reduction/broadcast/element cast semantics is explicit. Further 675 passes can take that into account when lowering this code. For example, 676 a `linalg.broadcast` + `linalg.sub` sequence can be lowered to a 677 `linalg.generic` with different affine maps for the two operands. 678structured_op: !LinalgStructuredOpConfig 679 args: 680 - !LinalgOperandDefConfig 681 name: lhs 682 kind: input_tensor 683 type_var: T1 684 shape_map: affine_map<() -> ()> 685 - !LinalgOperandDefConfig 686 name: rhs 687 kind: input_tensor 688 type_var: T1 689 shape_map: affine_map<() -> ()> 690 - !LinalgOperandDefConfig 691 name: O 692 kind: output_tensor 693 type_var: T1 694 shape_map: affine_map<() -> ()> 695 indexing_maps: !LinalgIndexingMapsConfig 696 static_indexing_maps: 697 - affine_map<() -> ()> 698 - affine_map<() -> ()> 699 - affine_map<() -> ()> 700 iterator_types: [] 701 assignments: 702 - !ScalarAssign 703 arg: O 704 value: !ScalarExpression 705 scalar_fn: 706 kind: binary 707 fn_name: sub 708 operands: 709 - !ScalarExpression 710 scalar_arg: lhs 711 - !ScalarExpression 712 scalar_arg: rhs 713--- !LinalgOpConfig 714metadata: !LinalgOpMetadata 715 name: mul 716 cpp_class_name: MulOp 717 doc: |- 718 Multiplies two tensors elementwise. 719 720 The shapes and element types must be identical. The appropriate casts, 721 broadcasts and reductions should be done previously to calling this op. 722 723 This means reduction/broadcast/element cast semantics is explicit. Further 724 passes can take that into account when lowering this code. For example, 725 a `linalg.broadcast` + `linalg.mul` sequence can be lowered to a 726 `linalg.generic` with different affine maps for the two operands. 727structured_op: !LinalgStructuredOpConfig 728 args: 729 - !LinalgOperandDefConfig 730 name: lhs 731 kind: input_tensor 732 type_var: T1 733 shape_map: affine_map<() -> ()> 734 - !LinalgOperandDefConfig 735 name: rhs 736 kind: input_tensor 737 type_var: T1 738 shape_map: affine_map<() -> ()> 739 - !LinalgOperandDefConfig 740 name: O 741 kind: output_tensor 742 type_var: T1 743 shape_map: affine_map<() -> ()> 744 indexing_maps: !LinalgIndexingMapsConfig 745 static_indexing_maps: 746 - affine_map<() -> ()> 747 - affine_map<() -> ()> 748 - affine_map<() -> ()> 749 iterator_types: [] 750 assignments: 751 - !ScalarAssign 752 arg: O 753 value: !ScalarExpression 754 scalar_fn: 755 kind: binary 756 fn_name: mul 757 operands: 758 - !ScalarExpression 759 scalar_arg: lhs 760 - !ScalarExpression 761 scalar_arg: rhs 762--- !LinalgOpConfig 763metadata: !LinalgOpMetadata 764 name: div 765 cpp_class_name: DivOp 766 doc: |- 767 Divides the first tensor by the second tensor, elementwise. 768 769 The shapes and element types must be identical. The appropriate casts, 770 broadcasts and reductions should be done previously to calling this op. 771 772 This means reduction/broadcast/element cast semantics is explicit. Further 773 passes can take that into account when lowering this code. For example, 774 a `linalg.broadcast` + `linalg.div` sequence can be lowered to a 775 `linalg.generic` with different affine maps for the two operands. 776structured_op: !LinalgStructuredOpConfig 777 args: 778 - !LinalgOperandDefConfig 779 name: lhs 780 kind: input_tensor 781 type_var: T1 782 shape_map: affine_map<() -> ()> 783 - !LinalgOperandDefConfig 784 name: rhs 785 kind: input_tensor 786 type_var: T1 787 shape_map: affine_map<() -> ()> 788 - !LinalgOperandDefConfig 789 name: O 790 kind: output_tensor 791 type_var: T1 792 shape_map: affine_map<() -> ()> 793 indexing_maps: !LinalgIndexingMapsConfig 794 static_indexing_maps: 795 - affine_map<() -> ()> 796 - affine_map<() -> ()> 797 - affine_map<() -> ()> 798 iterator_types: [] 799 assignments: 800 - !ScalarAssign 801 arg: O 802 value: !ScalarExpression 803 scalar_fn: 804 kind: binary 805 fn_name: div 806 operands: 807 - !ScalarExpression 808 scalar_arg: lhs 809 - !ScalarExpression 810 scalar_arg: rhs 811--- !LinalgOpConfig 812metadata: !LinalgOpMetadata 813 name: div_unsigned 814 cpp_class_name: DivUnsignedOp 815 doc: |- 816 Divides the first tensor by the second tensor, elementwise. For integer 817 types, performs an unsigned division. 818 819 The shapes and element types must be identical. The appropriate casts, 820 broadcasts and reductions should be done previously to calling this op. 821 822 This means reduction/broadcast/element cast semantics is explicit. Further 823 passes can take that into account when lowering this code. For example, 824 a `linalg.broadcast` + `linalg.div` sequence can be lowered to a 825 `linalg.generic` with different affine maps for the two operands. 826structured_op: !LinalgStructuredOpConfig 827 args: 828 - !LinalgOperandDefConfig 829 name: lhs 830 kind: input_tensor 831 type_var: T1 832 shape_map: affine_map<() -> ()> 833 - !LinalgOperandDefConfig 834 name: rhs 835 kind: input_tensor 836 type_var: T1 837 shape_map: affine_map<() -> ()> 838 - !LinalgOperandDefConfig 839 name: O 840 kind: output_tensor 841 type_var: T1 842 shape_map: affine_map<() -> ()> 843 indexing_maps: !LinalgIndexingMapsConfig 844 static_indexing_maps: 845 - affine_map<() -> ()> 846 - affine_map<() -> ()> 847 - affine_map<() -> ()> 848 iterator_types: [] 849 assignments: 850 - !ScalarAssign 851 arg: O 852 value: !ScalarExpression 853 scalar_fn: 854 kind: binary 855 fn_name: div_unsigned 856 operands: 857 - !ScalarExpression 858 scalar_arg: lhs 859 - !ScalarExpression 860 scalar_arg: rhs 861--- !LinalgOpConfig 862metadata: !LinalgOpMetadata 863 name: max 864 cpp_class_name: MaxOp 865 doc: |- 866 Takes the max (signed) between two inputs, elementwise. 867 868 The shapes and element types must be identical. The appropriate casts, 869 broadcasts and reductions should be done previously to calling this op. 870 871 This means reduction/broadcast/element cast semantics is explicit. Further 872 passes can take that into account when lowering this code. For example, 873 a `linalg.broadcast` + `linalg.max` sequence can be lowered to a 874 `linalg.generic` with different affine maps for the two operands. 875structured_op: !LinalgStructuredOpConfig 876 args: 877 - !LinalgOperandDefConfig 878 name: lhs 879 kind: input_tensor 880 type_var: T1 881 shape_map: affine_map<() -> ()> 882 - !LinalgOperandDefConfig 883 name: rhs 884 kind: input_tensor 885 type_var: T1 886 shape_map: affine_map<() -> ()> 887 - !LinalgOperandDefConfig 888 name: O 889 kind: output_tensor 890 type_var: T1 891 shape_map: affine_map<() -> ()> 892 indexing_maps: !LinalgIndexingMapsConfig 893 static_indexing_maps: 894 - affine_map<() -> ()> 895 - affine_map<() -> ()> 896 - affine_map<() -> ()> 897 iterator_types: [] 898 assignments: 899 - !ScalarAssign 900 arg: O 901 value: !ScalarExpression 902 scalar_fn: 903 kind: binary 904 fn_name: max_signed 905 operands: 906 - !ScalarExpression 907 scalar_arg: lhs 908 - !ScalarExpression 909 scalar_arg: rhs 910--- !LinalgOpConfig 911metadata: !LinalgOpMetadata 912 name: min 913 cpp_class_name: MinOp 914 doc: |- 915 Takes the min (signed) between two inputs, elementwise. 916 917 The shapes and element types must be identical. The appropriate casts, 918 broadcasts and reductions should be done previously to calling this op. 919 920 This means reduction/broadcast/element cast semantics is explicit. Further 921 passes can take that into account when lowering this code. For example, 922 a `linalg.broadcast` + `linalg.min` sequence can be lowered to a 923 `linalg.generic` with different affine maps for the two operands. 924structured_op: !LinalgStructuredOpConfig 925 args: 926 - !LinalgOperandDefConfig 927 name: lhs 928 kind: input_tensor 929 type_var: T1 930 shape_map: affine_map<() -> ()> 931 - !LinalgOperandDefConfig 932 name: rhs 933 kind: input_tensor 934 type_var: T1 935 shape_map: affine_map<() -> ()> 936 - !LinalgOperandDefConfig 937 name: O 938 kind: output_tensor 939 type_var: T1 940 shape_map: affine_map<() -> ()> 941 indexing_maps: !LinalgIndexingMapsConfig 942 static_indexing_maps: 943 - affine_map<() -> ()> 944 - affine_map<() -> ()> 945 - affine_map<() -> ()> 946 iterator_types: [] 947 assignments: 948 - !ScalarAssign 949 arg: O 950 value: !ScalarExpression 951 scalar_fn: 952 kind: binary 953 fn_name: min_signed 954 operands: 955 - !ScalarExpression 956 scalar_arg: lhs 957 - !ScalarExpression 958 scalar_arg: rhs 959--- !LinalgOpConfig 960metadata: !LinalgOpMetadata 961 name: powf 962 cpp_class_name: PowFOp 963 doc: |- 964 Takes the powf(lhs, rhs) between two inputs, elementwise. For powf(arg, 2) use `linalg.square`. 965 966 Only applies to floating point values. 967 968 The shapes and element types must be identical. The appropriate casts, 969 broadcasts and reductions should be done previously to calling this op. 970 971 This means reduction/broadcast/element cast semantics is explicit. Further 972 passes can take that into account when lowering this code. For example, 973 a `linalg.broadcast` + `linalg.powf` sequence can be lowered to a 974 `linalg.generic` with different affine maps for the two operands. 975structured_op: !LinalgStructuredOpConfig 976 args: 977 - !LinalgOperandDefConfig 978 name: lhs 979 kind: input_tensor 980 type_var: T1 981 shape_map: affine_map<() -> ()> 982 - !LinalgOperandDefConfig 983 name: rhs 984 kind: input_tensor 985 type_var: T1 986 shape_map: affine_map<() -> ()> 987 - !LinalgOperandDefConfig 988 name: O 989 kind: output_tensor 990 type_var: T1 991 shape_map: affine_map<() -> ()> 992 indexing_maps: !LinalgIndexingMapsConfig 993 static_indexing_maps: 994 - affine_map<() -> ()> 995 - affine_map<() -> ()> 996 - affine_map<() -> ()> 997 iterator_types: [] 998 assignments: 999 - !ScalarAssign 1000 arg: O 1001 value: !ScalarExpression 1002 scalar_fn: 1003 kind: binary 1004 fn_name: powf 1005 operands: 1006 - !ScalarExpression 1007 scalar_arg: lhs 1008 - !ScalarExpression 1009 scalar_arg: rhs 1010--- !LinalgOpConfig 1011metadata: !LinalgOpMetadata 1012 name: select 1013 cpp_class_name: SelectOp 1014 doc: |- 1015 Chooses one value based on a binary condition supplied as its first operand. 1016 1017 The shapes and element types must be identical. The appropriate casts, 1018 broadcasts and reductions should be done previously to calling this op. 1019 1020 This means reduction/broadcast/element cast semantics is explicit. Further 1021 passes can take that into account when lowering this code. For example, 1022 a `linalg.broadcast` + `linalg.select` sequence can be lowered to a 1023 `linalg.generic` with different affine maps for the two operands. 1024structured_op: !LinalgStructuredOpConfig 1025 args: 1026 - !LinalgOperandDefConfig 1027 name: cond 1028 kind: input_tensor 1029 type_var: U 1030 shape_map: affine_map<() -> ()> 1031 - !LinalgOperandDefConfig 1032 name: lhs 1033 kind: input_tensor 1034 type_var: T1 1035 shape_map: affine_map<() -> ()> 1036 - !LinalgOperandDefConfig 1037 name: rhs 1038 kind: input_tensor 1039 type_var: T1 1040 shape_map: affine_map<() -> ()> 1041 - !LinalgOperandDefConfig 1042 name: O 1043 kind: output_tensor 1044 type_var: T1 1045 shape_map: affine_map<() -> ()> 1046 indexing_maps: !LinalgIndexingMapsConfig 1047 static_indexing_maps: 1048 - affine_map<() -> ()> 1049 - affine_map<() -> ()> 1050 - affine_map<() -> ()> 1051 - affine_map<() -> ()> 1052 iterator_types: [] 1053 assignments: 1054 - !ScalarAssign 1055 arg: O 1056 value: !ScalarExpression 1057 scalar_fn: 1058 kind: ternary 1059 fn_name: select 1060 operands: 1061 - !ScalarExpression 1062 scalar_arg: cond 1063 - !ScalarExpression 1064 scalar_arg: lhs 1065 - !ScalarExpression 1066 scalar_arg: rhs 1067--- !LinalgOpConfig 1068metadata: !LinalgOpMetadata 1069 name: quantized_matmul 1070 cpp_class_name: QuantizedMatmulOp 1071 doc: |- 1072 Performs a matrix multiplication of two 2D inputs. 1073 1074 Numeric casting is performed on the operands to the inner multiply, promoting 1075 them to the same data type as the accumulator/output. The quantized variant 1076 includes zero-point adjustments for the left and right operands of the 1077 matmul. 1078structured_op: !LinalgStructuredOpConfig 1079 args: 1080 - !LinalgOperandDefConfig 1081 name: A 1082 kind: input_tensor 1083 type_var: T1 1084 shape_map: affine_map<()[s0, s1, s2] -> (s0, s1)> 1085 - !LinalgOperandDefConfig 1086 name: B 1087 kind: input_tensor 1088 type_var: T2 1089 shape_map: affine_map<()[s0, s1, s2] -> (s1, s2)> 1090 - !LinalgOperandDefConfig 1091 name: AZp 1092 kind: scalar 1093 type_var: I32 1094 - !LinalgOperandDefConfig 1095 name: BZp 1096 kind: scalar 1097 type_var: I32 1098 - !LinalgOperandDefConfig 1099 name: C 1100 kind: output_tensor 1101 type_var: U 1102 shape_map: affine_map<()[s0, s1, s2] -> (s0, s2)> 1103 indexing_maps: !LinalgIndexingMapsConfig 1104 static_indexing_maps: 1105 - affine_map<(d0, d1, d2)[s0, s1, s2] -> (d0, d2)> 1106 - affine_map<(d0, d1, d2)[s0, s1, s2] -> (d2, d1)> 1107 - affine_map<(d0, d1, d2)[s0, s1, s2] -> ()> 1108 - affine_map<(d0, d1, d2)[s0, s1, s2] -> ()> 1109 - affine_map<(d0, d1, d2)[s0, s1, s2] -> (d0, d1)> 1110 iterator_types: 1111 - parallel 1112 - parallel 1113 - reduction 1114 assignments: 1115 - !ScalarAssign 1116 arg: C 1117 value: !ScalarExpression 1118 scalar_fn: 1119 kind: binary 1120 fn_name: add 1121 operands: 1122 - !ScalarExpression 1123 scalar_arg: C 1124 - !ScalarExpression 1125 scalar_fn: 1126 kind: binary 1127 fn_name: mul 1128 operands: 1129 - !ScalarExpression 1130 scalar_fn: 1131 kind: binary 1132 fn_name: sub 1133 operands: 1134 - !ScalarExpression 1135 scalar_fn: 1136 kind: type 1137 fn_name: cast_signed 1138 type_var: U 1139 operands: 1140 - !ScalarExpression 1141 scalar_arg: A 1142 - !ScalarExpression 1143 scalar_fn: 1144 kind: type 1145 fn_name: cast_signed 1146 type_var: U 1147 operands: 1148 - !ScalarExpression 1149 scalar_arg: AZp 1150 - !ScalarExpression 1151 scalar_fn: 1152 kind: binary 1153 fn_name: sub 1154 operands: 1155 - !ScalarExpression 1156 scalar_fn: 1157 kind: type 1158 fn_name: cast_signed 1159 type_var: U 1160 operands: 1161 - !ScalarExpression 1162 scalar_arg: B 1163 - !ScalarExpression 1164 scalar_fn: 1165 kind: type 1166 fn_name: cast_signed 1167 type_var: U 1168 operands: 1169 - !ScalarExpression 1170 scalar_arg: BZp 1171--- !LinalgOpConfig 1172metadata: !LinalgOpMetadata 1173 name: matmul_transpose_a 1174 cpp_class_name: MatmulTransposeAOp 1175 doc: |- 1176 Performs a matrix multiplication of two 2D inputs with lhs operand 1177 transposed. 1178 1179 Numeric casting is performed on the operands to the inner multiply, promoting 1180 them to the same data type as the accumulator/output. 1181 implements: 1182 - LinalgContractionOpInterface 1183structured_op: !LinalgStructuredOpConfig 1184 args: 1185 - !LinalgOperandDefConfig 1186 name: A 1187 kind: input_tensor 1188 type_var: T1 1189 shape_map: affine_map<()[s0, s1, s2] -> (s0, s1)> 1190 - !LinalgOperandDefConfig 1191 name: B 1192 kind: input_tensor 1193 type_var: T2 1194 shape_map: affine_map<()[s0, s1, s2] -> (s0, s2)> 1195 - !LinalgOperandDefConfig 1196 name: C 1197 kind: output_tensor 1198 type_var: U 1199 shape_map: affine_map<()[s0, s1, s2] -> (s2, s1)> 1200 - !LinalgOperandDefConfig 1201 name: cast 1202 kind: type_fn_attr 1203 default_fn: cast_signed 1204 indexing_maps: !LinalgIndexingMapsConfig 1205 static_indexing_maps: 1206 - affine_map<(d0, d1, d2)[s0, s1, s2] -> (d2, d0)> 1207 - affine_map<(d0, d1, d2)[s0, s1, s2] -> (d2, d1)> 1208 - affine_map<(d0, d1, d2)[s0, s1, s2] -> (d0, d1)> 1209 iterator_types: 1210 - parallel 1211 - parallel 1212 - reduction 1213 assignments: 1214 - !ScalarAssign 1215 arg: C 1216 value: !ScalarExpression 1217 scalar_fn: 1218 kind: binary 1219 fn_name: add 1220 operands: 1221 - !ScalarExpression 1222 scalar_arg: C 1223 - !ScalarExpression 1224 scalar_fn: 1225 kind: binary 1226 fn_name: mul 1227 operands: 1228 - !ScalarExpression 1229 scalar_fn: 1230 kind: type 1231 attr_name: cast 1232 type_var: U 1233 operands: 1234 - !ScalarExpression 1235 scalar_arg: A 1236 - !ScalarExpression 1237 scalar_fn: 1238 kind: type 1239 attr_name: cast 1240 type_var: U 1241 operands: 1242 - !ScalarExpression 1243 scalar_arg: B 1244--- !LinalgOpConfig 1245metadata: !LinalgOpMetadata 1246 name: matmul_transpose_b 1247 cpp_class_name: MatmulTransposeBOp 1248 doc: |- 1249 Performs a matrix multiplication of two 2D inputs with rhs operand 1250 transposed. 1251 1252 Numeric casting is performed on the operands to the inner multiply, promoting 1253 them to the same data type as the accumulator/output. 1254 implements: 1255 - LinalgContractionOpInterface 1256structured_op: !LinalgStructuredOpConfig 1257 args: 1258 - !LinalgOperandDefConfig 1259 name: A 1260 kind: input_tensor 1261 type_var: T1 1262 shape_map: affine_map<()[s0, s1, s2] -> (s0, s1)> 1263 - !LinalgOperandDefConfig 1264 name: B 1265 kind: input_tensor 1266 type_var: T2 1267 shape_map: affine_map<()[s0, s1, s2] -> (s2, s1)> 1268 - !LinalgOperandDefConfig 1269 name: C 1270 kind: output_tensor 1271 type_var: U 1272 shape_map: affine_map<()[s0, s1, s2] -> (s0, s2)> 1273 - !LinalgOperandDefConfig 1274 name: cast 1275 kind: type_fn_attr 1276 default_fn: cast_signed 1277 indexing_maps: !LinalgIndexingMapsConfig 1278 static_indexing_maps: 1279 - affine_map<(d0, d1, d2)[s0, s1, s2] -> (d0, d2)> 1280 - affine_map<(d0, d1, d2)[s0, s1, s2] -> (d1, d2)> 1281 - affine_map<(d0, d1, d2)[s0, s1, s2] -> (d0, d1)> 1282 iterator_types: 1283 - parallel 1284 - parallel 1285 - reduction 1286 assignments: 1287 - !ScalarAssign 1288 arg: C 1289 value: !ScalarExpression 1290 scalar_fn: 1291 kind: binary 1292 fn_name: add 1293 operands: 1294 - !ScalarExpression 1295 scalar_arg: C 1296 - !ScalarExpression 1297 scalar_fn: 1298 kind: binary 1299 fn_name: mul 1300 operands: 1301 - !ScalarExpression 1302 scalar_fn: 1303 kind: type 1304 attr_name: cast 1305 type_var: U 1306 operands: 1307 - !ScalarExpression 1308 scalar_arg: A 1309 - !ScalarExpression 1310 scalar_fn: 1311 kind: type 1312 attr_name: cast 1313 type_var: U 1314 operands: 1315 - !ScalarExpression 1316 scalar_arg: B 1317--- !LinalgOpConfig 1318metadata: !LinalgOpMetadata 1319 name: mmt4d 1320 cpp_class_name: Mmt4DOp 1321 doc: |- 1322 Performs a matrix-matrix-transpose multiplication of two 4D inputs. 1323 1324 Differences from linalg.matmul: 1325 * The right hand side is transposed, whence the 't' in 'mmt'. 1326 * The input and output tensors have a 4D shape instead of a 2D shape. They 1327 are interpreted as 2D matrices with one level of 2D tile subdivision, 1328 whence the 2+2=4 dimensions. The inner tile dimensions are identified with 1329 '0' suffixes below, for instance the LHS matrix shape (M, K, M0, K0) reads 1330 as: MxK tiles, each of shape M0xK0. 1331 implements: 1332 - LinalgContractionOpInterface 1333structured_op: !LinalgStructuredOpConfig 1334 args: 1335 - !LinalgOperandDefConfig 1336 name: lhs 1337 kind: input_tensor 1338 type_var: LhsType 1339 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s0, s1, s2, s3)> 1340 - !LinalgOperandDefConfig 1341 name: rhs 1342 kind: input_tensor 1343 type_var: RhsType 1344 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s4, s1, s5, s3)> 1345 - !LinalgOperandDefConfig 1346 name: accum 1347 kind: output_tensor 1348 type_var: AccumType 1349 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s0, s4, s2, s5)> 1350 indexing_maps: !LinalgIndexingMapsConfig 1351 static_indexing_maps: 1352 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5] -> (d0, d2, d3, 1353 d5)> 1354 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5] -> (d1, d2, d4, 1355 d5)> 1356 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5] -> (d0, d1, d3, 1357 d4)> 1358 iterator_types: 1359 - parallel 1360 - parallel 1361 - reduction 1362 - parallel 1363 - parallel 1364 - reduction 1365 assignments: 1366 - !ScalarAssign 1367 arg: accum 1368 value: !ScalarExpression 1369 scalar_fn: 1370 kind: binary 1371 fn_name: add 1372 operands: 1373 - !ScalarExpression 1374 scalar_arg: accum 1375 - !ScalarExpression 1376 scalar_fn: 1377 kind: binary 1378 fn_name: mul 1379 operands: 1380 - !ScalarExpression 1381 scalar_fn: 1382 kind: type 1383 fn_name: cast_signed 1384 type_var: AccumType 1385 operands: 1386 - !ScalarExpression 1387 scalar_arg: lhs 1388 - !ScalarExpression 1389 scalar_fn: 1390 kind: type 1391 fn_name: cast_signed 1392 type_var: AccumType 1393 operands: 1394 - !ScalarExpression 1395 scalar_arg: rhs 1396--- !LinalgOpConfig 1397metadata: !LinalgOpMetadata 1398 name: batch_mmt4d 1399 cpp_class_name: BatchMmt4DOp 1400 doc: |- 1401 Performs a batched matrix-matrix-transpose multiplication of two 1402 batched-4D (5D) inputs. 1403 1404 Besides the outermost batch dimension has the same semantic as 1405 linalg.batch_matmul, the differences from linalg.batch_matmul in the 1406 non-batch dimensions are the same as linalg.mmt4d vs. linalg.matmul. See the 1407 description of lingalg.mmt4d. 1408 implements: 1409 - LinalgContractionOpInterface 1410structured_op: !LinalgStructuredOpConfig 1411 args: 1412 - !LinalgOperandDefConfig 1413 name: lhs 1414 kind: input_tensor 1415 type_var: LhsType 1416 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6] -> (s0, s1, s2, s3, s4)> 1417 - !LinalgOperandDefConfig 1418 name: rhs 1419 kind: input_tensor 1420 type_var: RhsType 1421 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6] -> (s0, s5, s2, s6, s4)> 1422 - !LinalgOperandDefConfig 1423 name: accum 1424 kind: output_tensor 1425 type_var: AccumType 1426 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6] -> (s0, s1, s5, s3, s6)> 1427 indexing_maps: !LinalgIndexingMapsConfig 1428 static_indexing_maps: 1429 - affine_map<(d0, d1, d2, d3, d4, d5, d6)[s0, s1, s2, s3, s4, s5, s6] -> (d0, 1430 d1, d3, d4, d6)> 1431 - affine_map<(d0, d1, d2, d3, d4, d5, d6)[s0, s1, s2, s3, s4, s5, s6] -> (d0, 1432 d2, d3, d5, d6)> 1433 - affine_map<(d0, d1, d2, d3, d4, d5, d6)[s0, s1, s2, s3, s4, s5, s6] -> (d0, 1434 d1, d2, d4, d5)> 1435 iterator_types: 1436 - parallel 1437 - parallel 1438 - parallel 1439 - reduction 1440 - parallel 1441 - parallel 1442 - reduction 1443 assignments: 1444 - !ScalarAssign 1445 arg: accum 1446 value: !ScalarExpression 1447 scalar_fn: 1448 kind: binary 1449 fn_name: add 1450 operands: 1451 - !ScalarExpression 1452 scalar_arg: accum 1453 - !ScalarExpression 1454 scalar_fn: 1455 kind: binary 1456 fn_name: mul 1457 operands: 1458 - !ScalarExpression 1459 scalar_fn: 1460 kind: type 1461 fn_name: cast_signed 1462 type_var: AccumType 1463 operands: 1464 - !ScalarExpression 1465 scalar_arg: lhs 1466 - !ScalarExpression 1467 scalar_fn: 1468 kind: type 1469 fn_name: cast_signed 1470 type_var: AccumType 1471 operands: 1472 - !ScalarExpression 1473 scalar_arg: rhs 1474--- !LinalgOpConfig 1475metadata: !LinalgOpMetadata 1476 name: batch_matmul 1477 cpp_class_name: BatchMatmulOp 1478 doc: |- 1479 Performs a batched matrix multiplication of two 3D inputs. 1480 1481 Numeric casting is performed on the operands to the inner multiply, promoting 1482 them to the same data type as the accumulator/output. 1483 implements: 1484 - LinalgContractionOpInterface 1485structured_op: !LinalgStructuredOpConfig 1486 args: 1487 - !LinalgOperandDefConfig 1488 name: A 1489 kind: input_tensor 1490 type_var: T1 1491 shape_map: affine_map<()[s0, s1, s2, s3] -> (s0, s1, s2)> 1492 - !LinalgOperandDefConfig 1493 name: B 1494 kind: input_tensor 1495 type_var: T2 1496 shape_map: affine_map<()[s0, s1, s2, s3] -> (s0, s2, s3)> 1497 - !LinalgOperandDefConfig 1498 name: C 1499 kind: output_tensor 1500 type_var: U 1501 shape_map: affine_map<()[s0, s1, s2, s3] -> (s0, s1, s3)> 1502 indexing_maps: !LinalgIndexingMapsConfig 1503 static_indexing_maps: 1504 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3] -> (d0, d1, d3)> 1505 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3] -> (d0, d3, d2)> 1506 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3] -> (d0, d1, d2)> 1507 iterator_types: 1508 - parallel 1509 - parallel 1510 - parallel 1511 - reduction 1512 assignments: 1513 - !ScalarAssign 1514 arg: C 1515 value: !ScalarExpression 1516 scalar_fn: 1517 kind: binary 1518 fn_name: add 1519 operands: 1520 - !ScalarExpression 1521 scalar_arg: C 1522 - !ScalarExpression 1523 scalar_fn: 1524 kind: binary 1525 fn_name: mul 1526 operands: 1527 - !ScalarExpression 1528 scalar_fn: 1529 kind: type 1530 fn_name: cast_signed 1531 type_var: U 1532 operands: 1533 - !ScalarExpression 1534 scalar_arg: A 1535 - !ScalarExpression 1536 scalar_fn: 1537 kind: type 1538 fn_name: cast_signed 1539 type_var: U 1540 operands: 1541 - !ScalarExpression 1542 scalar_arg: B 1543--- !LinalgOpConfig 1544metadata: !LinalgOpMetadata 1545 name: batch_matmul_transpose_a 1546 cpp_class_name: BatchMatmulTransposeAOp 1547 doc: |- 1548 Performs a batched matrix multiplication of two 3D inputs where lhs operand 1549 has its non-batch dimensions transposed. 1550 1551 Numeric casting is performed on the operands to the inner multiply, promoting 1552 them to the same data type as the accumulator/output. 1553 implements: 1554 - LinalgContractionOpInterface 1555structured_op: !LinalgStructuredOpConfig 1556 args: 1557 - !LinalgOperandDefConfig 1558 name: A 1559 kind: input_tensor 1560 type_var: T1 1561 shape_map: affine_map<()[s0, s1, s2, s3] -> (s0, s1, s2)> 1562 - !LinalgOperandDefConfig 1563 name: B 1564 kind: input_tensor 1565 type_var: T2 1566 shape_map: affine_map<()[s0, s1, s2, s3] -> (s0, s1, s3)> 1567 - !LinalgOperandDefConfig 1568 name: C 1569 kind: output_tensor 1570 type_var: U 1571 shape_map: affine_map<()[s0, s1, s2, s3] -> (s0, s2, s3)> 1572 indexing_maps: !LinalgIndexingMapsConfig 1573 static_indexing_maps: 1574 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3] -> (d0, d3, d1)> 1575 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3] -> (d0, d3, d2)> 1576 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3] -> (d0, d1, d2)> 1577 iterator_types: 1578 - parallel 1579 - parallel 1580 - parallel 1581 - reduction 1582 assignments: 1583 - !ScalarAssign 1584 arg: C 1585 value: !ScalarExpression 1586 scalar_fn: 1587 kind: binary 1588 fn_name: add 1589 operands: 1590 - !ScalarExpression 1591 scalar_arg: C 1592 - !ScalarExpression 1593 scalar_fn: 1594 kind: binary 1595 fn_name: mul 1596 operands: 1597 - !ScalarExpression 1598 scalar_fn: 1599 kind: type 1600 fn_name: cast_signed 1601 type_var: U 1602 operands: 1603 - !ScalarExpression 1604 scalar_arg: A 1605 - !ScalarExpression 1606 scalar_fn: 1607 kind: type 1608 fn_name: cast_signed 1609 type_var: U 1610 operands: 1611 - !ScalarExpression 1612 scalar_arg: B 1613--- !LinalgOpConfig 1614metadata: !LinalgOpMetadata 1615 name: batch_matmul_transpose_b 1616 cpp_class_name: BatchMatmulTransposeBOp 1617 doc: |- 1618 Performs a batched matrix multiplication of two 3D inputs where rhs operand 1619 has its non-batch dimensions transposed. 1620 1621 Numeric casting is performed on the operands to the inner multiply, promoting 1622 them to the same data type as the accumulator/output. 1623 implements: 1624 - LinalgContractionOpInterface 1625structured_op: !LinalgStructuredOpConfig 1626 args: 1627 - !LinalgOperandDefConfig 1628 name: A 1629 kind: input_tensor 1630 type_var: T1 1631 shape_map: affine_map<()[s0, s1, s2, s3] -> (s0, s1, s2)> 1632 - !LinalgOperandDefConfig 1633 name: B 1634 kind: input_tensor 1635 type_var: T2 1636 shape_map: affine_map<()[s0, s1, s2, s3] -> (s0, s3, s2)> 1637 - !LinalgOperandDefConfig 1638 name: C 1639 kind: output_tensor 1640 type_var: U 1641 shape_map: affine_map<()[s0, s1, s2, s3] -> (s0, s1, s3)> 1642 indexing_maps: !LinalgIndexingMapsConfig 1643 static_indexing_maps: 1644 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3] -> (d0, d1, d3)> 1645 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3] -> (d0, d2, d3)> 1646 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3] -> (d0, d1, d2)> 1647 iterator_types: 1648 - parallel 1649 - parallel 1650 - parallel 1651 - reduction 1652 assignments: 1653 - !ScalarAssign 1654 arg: C 1655 value: !ScalarExpression 1656 scalar_fn: 1657 kind: binary 1658 fn_name: add 1659 operands: 1660 - !ScalarExpression 1661 scalar_arg: C 1662 - !ScalarExpression 1663 scalar_fn: 1664 kind: binary 1665 fn_name: mul 1666 operands: 1667 - !ScalarExpression 1668 scalar_fn: 1669 kind: type 1670 fn_name: cast_signed 1671 type_var: U 1672 operands: 1673 - !ScalarExpression 1674 scalar_arg: A 1675 - !ScalarExpression 1676 scalar_fn: 1677 kind: type 1678 fn_name: cast_signed 1679 type_var: U 1680 operands: 1681 - !ScalarExpression 1682 scalar_arg: B 1683--- !LinalgOpConfig 1684metadata: !LinalgOpMetadata 1685 name: quantized_batch_matmul 1686 cpp_class_name: QuantizedBatchMatmulOp 1687 doc: |- 1688 Performs a batched matrix multiplication of two 3D inputs. 1689 1690 Numeric casting is performed on the operands to the inner multiply, promoting 1691 them to the same data type as the accumulator/output. The quantized variant 1692 includes zero-point adjustments for the left and right operands of the 1693 matmul. 1694structured_op: !LinalgStructuredOpConfig 1695 args: 1696 - !LinalgOperandDefConfig 1697 name: A 1698 kind: input_tensor 1699 type_var: T1 1700 shape_map: affine_map<()[s0, s1, s2, s3] -> (s0, s1, s2)> 1701 - !LinalgOperandDefConfig 1702 name: B 1703 kind: input_tensor 1704 type_var: T2 1705 shape_map: affine_map<()[s0, s1, s2, s3] -> (s0, s2, s3)> 1706 - !LinalgOperandDefConfig 1707 name: AZp 1708 kind: scalar 1709 type_var: I32 1710 - !LinalgOperandDefConfig 1711 name: BZp 1712 kind: scalar 1713 type_var: I32 1714 - !LinalgOperandDefConfig 1715 name: C 1716 kind: output_tensor 1717 type_var: U 1718 shape_map: affine_map<()[s0, s1, s2, s3] -> (s0, s1, s3)> 1719 indexing_maps: !LinalgIndexingMapsConfig 1720 static_indexing_maps: 1721 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3] -> (d0, d1, d3)> 1722 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3] -> (d0, d3, d2)> 1723 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3] -> ()> 1724 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3] -> ()> 1725 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3] -> (d0, d1, d2)> 1726 iterator_types: 1727 - parallel 1728 - parallel 1729 - parallel 1730 - reduction 1731 assignments: 1732 - !ScalarAssign 1733 arg: C 1734 value: !ScalarExpression 1735 scalar_fn: 1736 kind: binary 1737 fn_name: add 1738 operands: 1739 - !ScalarExpression 1740 scalar_arg: C 1741 - !ScalarExpression 1742 scalar_fn: 1743 kind: binary 1744 fn_name: mul 1745 operands: 1746 - !ScalarExpression 1747 scalar_fn: 1748 kind: binary 1749 fn_name: sub 1750 operands: 1751 - !ScalarExpression 1752 scalar_fn: 1753 kind: type 1754 fn_name: cast_signed 1755 type_var: U 1756 operands: 1757 - !ScalarExpression 1758 scalar_arg: A 1759 - !ScalarExpression 1760 scalar_fn: 1761 kind: type 1762 fn_name: cast_signed 1763 type_var: U 1764 operands: 1765 - !ScalarExpression 1766 scalar_arg: AZp 1767 - !ScalarExpression 1768 scalar_fn: 1769 kind: binary 1770 fn_name: sub 1771 operands: 1772 - !ScalarExpression 1773 scalar_fn: 1774 kind: type 1775 fn_name: cast_signed 1776 type_var: U 1777 operands: 1778 - !ScalarExpression 1779 scalar_arg: B 1780 - !ScalarExpression 1781 scalar_fn: 1782 kind: type 1783 fn_name: cast_signed 1784 type_var: U 1785 operands: 1786 - !ScalarExpression 1787 scalar_arg: BZp 1788--- !LinalgOpConfig 1789metadata: !LinalgOpMetadata 1790 name: batch_reduce_matmul 1791 cpp_class_name: BatchReduceMatmulOp 1792 doc: |- 1793 Performs a batch-reduce matrix multiplication of two 3D inputs. 1794 The partial multiplication results are reduced into a 2D output. 1795 1796 Numeric casting is performed on the operands to the inner multiply, promoting 1797 them to the same data type as the accumulator/output. 1798 implements: 1799 - LinalgContractionOpInterface 1800structured_op: !LinalgStructuredOpConfig 1801 args: 1802 - !LinalgOperandDefConfig 1803 name: A 1804 kind: input_tensor 1805 type_var: T1 1806 shape_map: affine_map<()[s0, s1, s2, s3] -> (s0, s1, s2)> 1807 - !LinalgOperandDefConfig 1808 name: B 1809 kind: input_tensor 1810 type_var: T2 1811 shape_map: affine_map<()[s0, s1, s2, s3] -> (s0, s2, s3)> 1812 - !LinalgOperandDefConfig 1813 name: C 1814 kind: output_tensor 1815 type_var: U 1816 shape_map: affine_map<()[s0, s1, s2, s3] -> (s1, s3)> 1817 indexing_maps: !LinalgIndexingMapsConfig 1818 static_indexing_maps: 1819 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3] -> (d0, d1, d3)> 1820 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3] -> (d0, d3, d2)> 1821 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3] -> (d1, d2)> 1822 iterator_types: 1823 - reduction 1824 - parallel 1825 - parallel 1826 - reduction 1827 assignments: 1828 - !ScalarAssign 1829 arg: C 1830 value: !ScalarExpression 1831 scalar_fn: 1832 kind: binary 1833 fn_name: add 1834 operands: 1835 - !ScalarExpression 1836 scalar_arg: C 1837 - !ScalarExpression 1838 scalar_fn: 1839 kind: binary 1840 fn_name: mul 1841 operands: 1842 - !ScalarExpression 1843 scalar_fn: 1844 kind: type 1845 fn_name: cast_signed 1846 type_var: U 1847 operands: 1848 - !ScalarExpression 1849 scalar_arg: A 1850 - !ScalarExpression 1851 scalar_fn: 1852 kind: type 1853 fn_name: cast_signed 1854 type_var: U 1855 operands: 1856 - !ScalarExpression 1857 scalar_arg: B 1858--- !LinalgOpConfig 1859metadata: !LinalgOpMetadata 1860 name: matvec 1861 cpp_class_name: MatvecOp 1862 doc: |- 1863 Performs a matrix-vector multiplication. 1864 1865 Numeric casting is performed on the operands to the inner multiply, promoting 1866 them to the same data type as the accumulator/output. 1867 implements: 1868 - LinalgContractionOpInterface 1869structured_op: !LinalgStructuredOpConfig 1870 args: 1871 - !LinalgOperandDefConfig 1872 name: A 1873 kind: input_tensor 1874 type_var: T1 1875 shape_map: affine_map<()[s0, s1] -> (s0, s1)> 1876 - !LinalgOperandDefConfig 1877 name: y 1878 kind: input_tensor 1879 type_var: T2 1880 shape_map: affine_map<()[s0, s1] -> (s1)> 1881 - !LinalgOperandDefConfig 1882 name: x 1883 kind: output_tensor 1884 type_var: U 1885 shape_map: affine_map<()[s0, s1] -> (s0)> 1886 indexing_maps: !LinalgIndexingMapsConfig 1887 static_indexing_maps: 1888 - affine_map<(d0, d1)[s0, s1] -> (d0, d1)> 1889 - affine_map<(d0, d1)[s0, s1] -> (d1)> 1890 - affine_map<(d0, d1)[s0, s1] -> (d0)> 1891 iterator_types: 1892 - parallel 1893 - reduction 1894 assignments: 1895 - !ScalarAssign 1896 arg: x 1897 value: !ScalarExpression 1898 scalar_fn: 1899 kind: binary 1900 fn_name: add 1901 operands: 1902 - !ScalarExpression 1903 scalar_arg: x 1904 - !ScalarExpression 1905 scalar_fn: 1906 kind: binary 1907 fn_name: mul 1908 operands: 1909 - !ScalarExpression 1910 scalar_fn: 1911 kind: type 1912 fn_name: cast_signed 1913 type_var: U 1914 operands: 1915 - !ScalarExpression 1916 scalar_arg: A 1917 - !ScalarExpression 1918 scalar_fn: 1919 kind: type 1920 fn_name: cast_signed 1921 type_var: U 1922 operands: 1923 - !ScalarExpression 1924 scalar_arg: y 1925--- !LinalgOpConfig 1926metadata: !LinalgOpMetadata 1927 name: vecmat 1928 cpp_class_name: VecmatOp 1929 doc: |- 1930 Performs a vector-matrix multiplication. 1931 1932 Numeric casting is performed on the operands to the inner multiply, promoting 1933 them to the same data type as the accumulator/output. 1934 implements: 1935 - LinalgContractionOpInterface 1936structured_op: !LinalgStructuredOpConfig 1937 args: 1938 - !LinalgOperandDefConfig 1939 name: y 1940 kind: input_tensor 1941 type_var: T1 1942 shape_map: affine_map<()[s0, s1] -> (s0)> 1943 - !LinalgOperandDefConfig 1944 name: A 1945 kind: input_tensor 1946 type_var: T2 1947 shape_map: affine_map<()[s0, s1] -> (s0, s1)> 1948 - !LinalgOperandDefConfig 1949 name: x 1950 kind: output_tensor 1951 type_var: U 1952 shape_map: affine_map<()[s0, s1] -> (s1)> 1953 indexing_maps: !LinalgIndexingMapsConfig 1954 static_indexing_maps: 1955 - affine_map<(d0, d1)[s0, s1] -> (d1)> 1956 - affine_map<(d0, d1)[s0, s1] -> (d1, d0)> 1957 - affine_map<(d0, d1)[s0, s1] -> (d0)> 1958 iterator_types: 1959 - parallel 1960 - reduction 1961 assignments: 1962 - !ScalarAssign 1963 arg: x 1964 value: !ScalarExpression 1965 scalar_fn: 1966 kind: binary 1967 fn_name: add 1968 operands: 1969 - !ScalarExpression 1970 scalar_arg: x 1971 - !ScalarExpression 1972 scalar_fn: 1973 kind: binary 1974 fn_name: mul 1975 operands: 1976 - !ScalarExpression 1977 scalar_fn: 1978 kind: type 1979 fn_name: cast_signed 1980 type_var: U 1981 operands: 1982 - !ScalarExpression 1983 scalar_arg: y 1984 - !ScalarExpression 1985 scalar_fn: 1986 kind: type 1987 fn_name: cast_signed 1988 type_var: U 1989 operands: 1990 - !ScalarExpression 1991 scalar_arg: A 1992--- !LinalgOpConfig 1993metadata: !LinalgOpMetadata 1994 name: batch_matvec 1995 cpp_class_name: BatchMatvecOp 1996 doc: |- 1997 Performs a batched matrix-vector multiplication. 1998 1999 Numeric casting is performed on the operands to the inner multiply, promoting 2000 them to the same data type as the accumulator/output. 2001 implements: 2002 - LinalgContractionOpInterface 2003structured_op: !LinalgStructuredOpConfig 2004 args: 2005 - !LinalgOperandDefConfig 2006 name: A 2007 kind: input_tensor 2008 type_var: T1 2009 shape_map: affine_map<()[s0, s1, s2] -> (s0, s1, s2)> 2010 - !LinalgOperandDefConfig 2011 name: B 2012 kind: input_tensor 2013 type_var: T2 2014 shape_map: affine_map<()[s0, s1, s2] -> (s0, s2)> 2015 - !LinalgOperandDefConfig 2016 name: C 2017 kind: output_tensor 2018 type_var: U 2019 shape_map: affine_map<()[s0, s1, s2] -> (s0, s1)> 2020 indexing_maps: !LinalgIndexingMapsConfig 2021 static_indexing_maps: 2022 - affine_map<(d0, d1, d2)[s0, s1, s2] -> (d0, d1, d2)> 2023 - affine_map<(d0, d1, d2)[s0, s1, s2] -> (d0, d2)> 2024 - affine_map<(d0, d1, d2)[s0, s1, s2] -> (d0, d1)> 2025 iterator_types: 2026 - parallel 2027 - parallel 2028 - reduction 2029 assignments: 2030 - !ScalarAssign 2031 arg: C 2032 value: !ScalarExpression 2033 scalar_fn: 2034 kind: binary 2035 fn_name: add 2036 operands: 2037 - !ScalarExpression 2038 scalar_arg: C 2039 - !ScalarExpression 2040 scalar_fn: 2041 kind: binary 2042 fn_name: mul 2043 operands: 2044 - !ScalarExpression 2045 scalar_fn: 2046 kind: type 2047 fn_name: cast_signed 2048 type_var: U 2049 operands: 2050 - !ScalarExpression 2051 scalar_arg: A 2052 - !ScalarExpression 2053 scalar_fn: 2054 kind: type 2055 fn_name: cast_signed 2056 type_var: U 2057 operands: 2058 - !ScalarExpression 2059 scalar_arg: B 2060--- !LinalgOpConfig 2061metadata: !LinalgOpMetadata 2062 name: batch_vecmat 2063 cpp_class_name: BatchVecmatOp 2064 doc: |- 2065 Performs a batched matrix-vector multiplication. 2066 2067 Numeric casting is performed on the operands to the inner multiply, promoting 2068 them to the same data type as the accumulator/output. 2069 implements: 2070 - LinalgContractionOpInterface 2071structured_op: !LinalgStructuredOpConfig 2072 args: 2073 - !LinalgOperandDefConfig 2074 name: A 2075 kind: input_tensor 2076 type_var: T1 2077 shape_map: affine_map<()[s0, s1, s2] -> (s0, s1)> 2078 - !LinalgOperandDefConfig 2079 name: B 2080 kind: input_tensor 2081 type_var: T2 2082 shape_map: affine_map<()[s0, s1, s2] -> (s0, s1, s2)> 2083 - !LinalgOperandDefConfig 2084 name: C 2085 kind: output_tensor 2086 type_var: U 2087 shape_map: affine_map<()[s0, s1, s2] -> (s0, s2)> 2088 indexing_maps: !LinalgIndexingMapsConfig 2089 static_indexing_maps: 2090 - affine_map<(d0, d1, d2)[s0, s1, s2] -> (d0, d2)> 2091 - affine_map<(d0, d1, d2)[s0, s1, s2] -> (d0, d2, d1)> 2092 - affine_map<(d0, d1, d2)[s0, s1, s2] -> (d0, d1)> 2093 iterator_types: 2094 - parallel 2095 - parallel 2096 - reduction 2097 assignments: 2098 - !ScalarAssign 2099 arg: C 2100 value: !ScalarExpression 2101 scalar_fn: 2102 kind: binary 2103 fn_name: add 2104 operands: 2105 - !ScalarExpression 2106 scalar_arg: C 2107 - !ScalarExpression 2108 scalar_fn: 2109 kind: binary 2110 fn_name: mul 2111 operands: 2112 - !ScalarExpression 2113 scalar_fn: 2114 kind: type 2115 fn_name: cast_signed 2116 type_var: U 2117 operands: 2118 - !ScalarExpression 2119 scalar_arg: A 2120 - !ScalarExpression 2121 scalar_fn: 2122 kind: type 2123 fn_name: cast_signed 2124 type_var: U 2125 operands: 2126 - !ScalarExpression 2127 scalar_arg: B 2128--- !LinalgOpConfig 2129metadata: !LinalgOpMetadata 2130 name: dot 2131 cpp_class_name: DotOp 2132 doc: |- 2133 Performs a dot product of two vectors to a scalar result. 2134 2135 Numeric casting is performed on the operands to the inner multiply, promoting 2136 them to the same data type as the accumulator/output. 2137 implements: 2138 - LinalgContractionOpInterface 2139structured_op: !LinalgStructuredOpConfig 2140 args: 2141 - !LinalgOperandDefConfig 2142 name: A 2143 kind: input_tensor 2144 type_var: T1 2145 shape_map: affine_map<()[s0] -> (s0)> 2146 - !LinalgOperandDefConfig 2147 name: B 2148 kind: input_tensor 2149 type_var: T2 2150 shape_map: affine_map<()[s0] -> (s0)> 2151 - !LinalgOperandDefConfig 2152 name: C 2153 kind: output_tensor 2154 type_var: U 2155 shape_map: affine_map<()[s0] -> ()> 2156 indexing_maps: !LinalgIndexingMapsConfig 2157 static_indexing_maps: 2158 - affine_map<(d0)[s0] -> (d0)> 2159 - affine_map<(d0)[s0] -> (d0)> 2160 - affine_map<(d0)[s0] -> ()> 2161 iterator_types: 2162 - reduction 2163 assignments: 2164 - !ScalarAssign 2165 arg: C 2166 value: !ScalarExpression 2167 scalar_fn: 2168 kind: binary 2169 fn_name: add 2170 operands: 2171 - !ScalarExpression 2172 scalar_arg: C 2173 - !ScalarExpression 2174 scalar_fn: 2175 kind: binary 2176 fn_name: mul 2177 operands: 2178 - !ScalarExpression 2179 scalar_fn: 2180 kind: type 2181 fn_name: cast_signed 2182 type_var: U 2183 operands: 2184 - !ScalarExpression 2185 scalar_arg: A 2186 - !ScalarExpression 2187 scalar_fn: 2188 kind: type 2189 fn_name: cast_signed 2190 type_var: U 2191 operands: 2192 - !ScalarExpression 2193 scalar_arg: B 2194--- !LinalgOpConfig 2195metadata: !LinalgOpMetadata 2196 name: conv_1d 2197 cpp_class_name: Conv1DOp 2198 doc: |- 2199 Performs 1-D convolution with no channels. 2200 2201 Numeric casting is performed on the operands to the inner multiply, promoting 2202 them to the same data type as the accumulator/output. 2203 implements: 2204 - LinalgConvolutionOpInterface 2205structured_op: !LinalgStructuredOpConfig 2206 args: 2207 - !LinalgOperandDefConfig 2208 name: I 2209 kind: input_tensor 2210 type_var: T1 2211 shape_map: affine_map<()[s0, s1] -> (s0 + s1)> 2212 - !LinalgOperandDefConfig 2213 name: K 2214 kind: input_tensor 2215 type_var: T2 2216 shape_map: affine_map<()[s0, s1] -> (s1)> 2217 - !LinalgOperandDefConfig 2218 name: O 2219 kind: output_tensor 2220 type_var: U 2221 shape_map: affine_map<()[s0, s1] -> (s0)> 2222 indexing_maps: !LinalgIndexingMapsConfig 2223 static_indexing_maps: 2224 - affine_map<(d0, d1)[s0, s1] -> (d0 + d1)> 2225 - affine_map<(d0, d1)[s0, s1] -> (d1)> 2226 - affine_map<(d0, d1)[s0, s1] -> (d0)> 2227 iterator_types: 2228 - parallel 2229 - reduction 2230 assignments: 2231 - !ScalarAssign 2232 arg: O 2233 value: !ScalarExpression 2234 scalar_fn: 2235 kind: binary 2236 fn_name: add 2237 operands: 2238 - !ScalarExpression 2239 scalar_arg: O 2240 - !ScalarExpression 2241 scalar_fn: 2242 kind: binary 2243 fn_name: mul 2244 operands: 2245 - !ScalarExpression 2246 scalar_fn: 2247 kind: type 2248 fn_name: cast_signed 2249 type_var: U 2250 operands: 2251 - !ScalarExpression 2252 scalar_arg: I 2253 - !ScalarExpression 2254 scalar_fn: 2255 kind: type 2256 fn_name: cast_signed 2257 type_var: U 2258 operands: 2259 - !ScalarExpression 2260 scalar_arg: K 2261--- !LinalgOpConfig 2262metadata: !LinalgOpMetadata 2263 name: conv_2d 2264 cpp_class_name: Conv2DOp 2265 doc: |- 2266 Performs 2-D convolution with no channels. 2267 2268 Numeric casting is performed on the operands to the inner multiply, promoting 2269 them to the same data type as the accumulator/output. 2270 implements: 2271 - LinalgConvolutionOpInterface 2272structured_op: !LinalgStructuredOpConfig 2273 args: 2274 - !LinalgOperandDefConfig 2275 name: I 2276 kind: input_tensor 2277 type_var: T1 2278 shape_map: affine_map<()[s0, s1, s2, s3] -> (s0 + s1, s2 + s3)> 2279 - !LinalgOperandDefConfig 2280 name: K 2281 kind: input_tensor 2282 type_var: T2 2283 shape_map: affine_map<()[s0, s1, s2, s3] -> (s1, s3)> 2284 - !LinalgOperandDefConfig 2285 name: O 2286 kind: output_tensor 2287 type_var: U 2288 shape_map: affine_map<()[s0, s1, s2, s3] -> (s0, s2)> 2289 indexing_maps: !LinalgIndexingMapsConfig 2290 static_indexing_maps: 2291 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3] -> (d0 + d2, d1 + d3)> 2292 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3] -> (d2, d3)> 2293 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3] -> (d0, d1)> 2294 iterator_types: 2295 - parallel 2296 - parallel 2297 - reduction 2298 - reduction 2299 assignments: 2300 - !ScalarAssign 2301 arg: O 2302 value: !ScalarExpression 2303 scalar_fn: 2304 kind: binary 2305 fn_name: add 2306 operands: 2307 - !ScalarExpression 2308 scalar_arg: O 2309 - !ScalarExpression 2310 scalar_fn: 2311 kind: binary 2312 fn_name: mul 2313 operands: 2314 - !ScalarExpression 2315 scalar_fn: 2316 kind: type 2317 fn_name: cast_signed 2318 type_var: U 2319 operands: 2320 - !ScalarExpression 2321 scalar_arg: I 2322 - !ScalarExpression 2323 scalar_fn: 2324 kind: type 2325 fn_name: cast_signed 2326 type_var: U 2327 operands: 2328 - !ScalarExpression 2329 scalar_arg: K 2330--- !LinalgOpConfig 2331metadata: !LinalgOpMetadata 2332 name: conv_3d 2333 cpp_class_name: Conv3DOp 2334 doc: |- 2335 Performs 3-D convolution with no channels. 2336 2337 Numeric casting is performed on the operands to the inner multiply, promoting 2338 them to the same data type as the accumulator/output. 2339 implements: 2340 - LinalgConvolutionOpInterface 2341structured_op: !LinalgStructuredOpConfig 2342 args: 2343 - !LinalgOperandDefConfig 2344 name: I 2345 kind: input_tensor 2346 type_var: T1 2347 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s0 + s1, s2 + s3, s4 + s5)> 2348 - !LinalgOperandDefConfig 2349 name: K 2350 kind: input_tensor 2351 type_var: T2 2352 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s1, s3, s5)> 2353 - !LinalgOperandDefConfig 2354 name: O 2355 kind: output_tensor 2356 type_var: U 2357 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s0, s2, s4)> 2358 indexing_maps: !LinalgIndexingMapsConfig 2359 static_indexing_maps: 2360 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5] -> (d0 + d3, d1 2361 + d4, d2 + d5)> 2362 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5] -> (d3, d4, d5)> 2363 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5] -> (d0, d1, d2)> 2364 iterator_types: 2365 - parallel 2366 - parallel 2367 - parallel 2368 - reduction 2369 - reduction 2370 - reduction 2371 assignments: 2372 - !ScalarAssign 2373 arg: O 2374 value: !ScalarExpression 2375 scalar_fn: 2376 kind: binary 2377 fn_name: add 2378 operands: 2379 - !ScalarExpression 2380 scalar_arg: O 2381 - !ScalarExpression 2382 scalar_fn: 2383 kind: binary 2384 fn_name: mul 2385 operands: 2386 - !ScalarExpression 2387 scalar_fn: 2388 kind: type 2389 fn_name: cast_signed 2390 type_var: U 2391 operands: 2392 - !ScalarExpression 2393 scalar_arg: I 2394 - !ScalarExpression 2395 scalar_fn: 2396 kind: type 2397 fn_name: cast_signed 2398 type_var: U 2399 operands: 2400 - !ScalarExpression 2401 scalar_arg: K 2402--- !LinalgOpConfig 2403metadata: !LinalgOpMetadata 2404 name: conv_1d_nwc_wcf 2405 cpp_class_name: Conv1DNwcWcfOp 2406 doc: |- 2407 Performs 1-D convolution. 2408 2409 Numeric casting is performed on the operands to the inner multiply, promoting 2410 them to the same data type as the accumulator/output. 2411 implements: 2412 - LinalgConvolutionOpInterface 2413structured_op: !LinalgStructuredOpConfig 2414 args: 2415 - !LinalgOperandDefConfig 2416 name: I 2417 kind: input_tensor 2418 type_var: T1 2419 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6] -> (s0, s1 * s2 + s3 * s4, 2420 s5)> 2421 - !LinalgOperandDefConfig 2422 name: K 2423 kind: input_tensor 2424 type_var: T2 2425 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6] -> (s3, s5, s6)> 2426 - !LinalgOperandDefConfig 2427 name: O 2428 kind: output_tensor 2429 type_var: U 2430 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6] -> (s0, s1, s6)> 2431 - !LinalgOperandDefConfig 2432 name: strides 2433 kind: index_attr 2434 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6] -> (s2)> 2435 default_indices: 2436 - 1 2437 - !LinalgOperandDefConfig 2438 name: dilations 2439 kind: index_attr 2440 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6] -> (s4)> 2441 default_indices: 2442 - 1 2443 indexing_maps: !LinalgIndexingMapsConfig 2444 static_indexing_maps: 2445 - affine_map<(d0, d1, d2, d3, d4)[s0, s1, s2, s3, s4, s5, s6] -> (d0, d1 * s2 2446 + d3 * s4, d4)> 2447 - affine_map<(d0, d1, d2, d3, d4)[s0, s1, s2, s3, s4, s5, s6] -> (d3, d4, d2)> 2448 - affine_map<(d0, d1, d2, d3, d4)[s0, s1, s2, s3, s4, s5, s6] -> (d0, d1, d2)> 2449 iterator_types: 2450 - parallel 2451 - parallel 2452 - parallel 2453 - reduction 2454 - reduction 2455 assignments: 2456 - !ScalarAssign 2457 arg: O 2458 value: !ScalarExpression 2459 scalar_fn: 2460 kind: binary 2461 fn_name: add 2462 operands: 2463 - !ScalarExpression 2464 scalar_arg: O 2465 - !ScalarExpression 2466 scalar_fn: 2467 kind: binary 2468 fn_name: mul 2469 operands: 2470 - !ScalarExpression 2471 scalar_fn: 2472 kind: type 2473 fn_name: cast_signed 2474 type_var: U 2475 operands: 2476 - !ScalarExpression 2477 scalar_arg: I 2478 - !ScalarExpression 2479 scalar_fn: 2480 kind: type 2481 fn_name: cast_signed 2482 type_var: U 2483 operands: 2484 - !ScalarExpression 2485 scalar_arg: K 2486--- !LinalgOpConfig 2487metadata: !LinalgOpMetadata 2488 name: conv_1d_ncw_fcw 2489 cpp_class_name: Conv1DNcwFcwOp 2490 doc: |- 2491 Performs 1-D convolution. 2492 2493 Layout: 2494 * Input: NCW. 2495 * Kernel: FCW. 2496 2497 Numeric casting is performed on the operands to the inner multiply, promoting 2498 them to the same data type as the accumulator/output. 2499 implements: 2500 - LinalgConvolutionOpInterface 2501structured_op: !LinalgStructuredOpConfig 2502 args: 2503 - !LinalgOperandDefConfig 2504 name: I 2505 kind: input_tensor 2506 type_var: T1 2507 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6] -> (s0, s1, s2 * s3 + s4 2508 * s5)> 2509 - !LinalgOperandDefConfig 2510 name: K 2511 kind: input_tensor 2512 type_var: T2 2513 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6] -> (s6, s1, s4)> 2514 - !LinalgOperandDefConfig 2515 name: O 2516 kind: output_tensor 2517 type_var: U 2518 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6] -> (s0, s6, s2)> 2519 - !LinalgOperandDefConfig 2520 name: strides 2521 kind: index_attr 2522 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6] -> (s3)> 2523 default_indices: 2524 - 1 2525 - !LinalgOperandDefConfig 2526 name: dilations 2527 kind: index_attr 2528 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6] -> (s5)> 2529 default_indices: 2530 - 1 2531 indexing_maps: !LinalgIndexingMapsConfig 2532 static_indexing_maps: 2533 - affine_map<(d0, d1, d2, d3, d4)[s0, s1, s2, s3, s4, s5, s6] -> (d0, d3, d2 * 2534 s3 + d4 * s5)> 2535 - affine_map<(d0, d1, d2, d3, d4)[s0, s1, s2, s3, s4, s5, s6] -> (d1, d3, d4)> 2536 - affine_map<(d0, d1, d2, d3, d4)[s0, s1, s2, s3, s4, s5, s6] -> (d0, d1, d2)> 2537 iterator_types: 2538 - parallel 2539 - parallel 2540 - parallel 2541 - reduction 2542 - reduction 2543 assignments: 2544 - !ScalarAssign 2545 arg: O 2546 value: !ScalarExpression 2547 scalar_fn: 2548 kind: binary 2549 fn_name: add 2550 operands: 2551 - !ScalarExpression 2552 scalar_arg: O 2553 - !ScalarExpression 2554 scalar_fn: 2555 kind: binary 2556 fn_name: mul 2557 operands: 2558 - !ScalarExpression 2559 scalar_fn: 2560 kind: type 2561 fn_name: cast_signed 2562 type_var: U 2563 operands: 2564 - !ScalarExpression 2565 scalar_arg: I 2566 - !ScalarExpression 2567 scalar_fn: 2568 kind: type 2569 fn_name: cast_signed 2570 type_var: U 2571 operands: 2572 - !ScalarExpression 2573 scalar_arg: K 2574--- !LinalgOpConfig 2575metadata: !LinalgOpMetadata 2576 name: conv_2d_nhwc_hwcf 2577 cpp_class_name: Conv2DNhwcHwcfOp 2578 doc: |- 2579 Performs 2-D convolution. 2580 2581 Layout: 2582 * Input: NHWC. 2583 * Kernel: HWCF. 2584 2585 Numeric casting is performed on the operands to the inner multiply, promoting 2586 them to the same data type as the accumulator/output. 2587 implements: 2588 - LinalgConvolutionOpInterface 2589structured_op: !LinalgStructuredOpConfig 2590 args: 2591 - !LinalgOperandDefConfig 2592 name: I 2593 kind: input_tensor 2594 type_var: T1 2595 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> (s0, 2596 s1 * s2 + s3 * s4, s5 * s6 + s7 * s8, s9)> 2597 - !LinalgOperandDefConfig 2598 name: K 2599 kind: input_tensor 2600 type_var: T2 2601 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> (s3, 2602 s7, s9, s10)> 2603 - !LinalgOperandDefConfig 2604 name: O 2605 kind: output_tensor 2606 type_var: U 2607 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> (s0, 2608 s1, s5, s10)> 2609 - !LinalgOperandDefConfig 2610 name: strides 2611 kind: index_attr 2612 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> 2613 (s2, s6)> 2614 default_indices: 2615 - 1 2616 - 1 2617 - !LinalgOperandDefConfig 2618 name: dilations 2619 kind: index_attr 2620 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> 2621 (s4, s8)> 2622 default_indices: 2623 - 1 2624 - 1 2625 indexing_maps: !LinalgIndexingMapsConfig 2626 static_indexing_maps: 2627 - affine_map<(d0, d1, d2, d3, d4, d5, d6)[s0, s1, s2, s3, s4, s5, s6, s7, s8, 2628 s9, s10] -> (d0, d1 * s2 + d4 * s4, d2 * s6 + d5 * s8, d6)> 2629 - affine_map<(d0, d1, d2, d3, d4, d5, d6)[s0, s1, s2, s3, s4, s5, s6, s7, s8, 2630 s9, s10] -> (d4, d5, d6, d3)> 2631 - affine_map<(d0, d1, d2, d3, d4, d5, d6)[s0, s1, s2, s3, s4, s5, s6, s7, s8, 2632 s9, s10] -> (d0, d1, d2, d3)> 2633 iterator_types: 2634 - parallel 2635 - parallel 2636 - parallel 2637 - parallel 2638 - reduction 2639 - reduction 2640 - reduction 2641 assignments: 2642 - !ScalarAssign 2643 arg: O 2644 value: !ScalarExpression 2645 scalar_fn: 2646 kind: binary 2647 fn_name: add 2648 operands: 2649 - !ScalarExpression 2650 scalar_arg: O 2651 - !ScalarExpression 2652 scalar_fn: 2653 kind: binary 2654 fn_name: mul 2655 operands: 2656 - !ScalarExpression 2657 scalar_fn: 2658 kind: type 2659 fn_name: cast_signed 2660 type_var: U 2661 operands: 2662 - !ScalarExpression 2663 scalar_arg: I 2664 - !ScalarExpression 2665 scalar_fn: 2666 kind: type 2667 fn_name: cast_signed 2668 type_var: U 2669 operands: 2670 - !ScalarExpression 2671 scalar_arg: K 2672--- !LinalgOpConfig 2673metadata: !LinalgOpMetadata 2674 name: conv_2d_nhwc_fhwc 2675 cpp_class_name: Conv2DNhwcFhwcOp 2676 doc: |- 2677 Performs 2-D convolution. 2678 2679 Layout: 2680 * Input: NHWC. 2681 * Kernel: FHWC. 2682 2683 Numeric casting is performed on the operands to the inner multiply, promoting 2684 them to the same data type as the accumulator/output. 2685 implements: 2686 - LinalgConvolutionOpInterface 2687structured_op: !LinalgStructuredOpConfig 2688 args: 2689 - !LinalgOperandDefConfig 2690 name: I 2691 kind: input_tensor 2692 type_var: T1 2693 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> (s0, 2694 s1 * s2 + s3 * s4, s5 * s6 + s7 * s8, s9)> 2695 - !LinalgOperandDefConfig 2696 name: K 2697 kind: input_tensor 2698 type_var: T2 2699 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> (s10, 2700 s3, s7, s9)> 2701 - !LinalgOperandDefConfig 2702 name: O 2703 kind: output_tensor 2704 type_var: U 2705 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> (s0, 2706 s1, s5, s10)> 2707 - !LinalgOperandDefConfig 2708 name: strides 2709 kind: index_attr 2710 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> 2711 (s2, s6)> 2712 default_indices: 2713 - 1 2714 - 1 2715 - !LinalgOperandDefConfig 2716 name: dilations 2717 kind: index_attr 2718 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> 2719 (s4, s8)> 2720 default_indices: 2721 - 1 2722 - 1 2723 indexing_maps: !LinalgIndexingMapsConfig 2724 static_indexing_maps: 2725 - affine_map<(d0, d1, d2, d3, d4, d5, d6)[s0, s1, s2, s3, s4, s5, s6, s7, s8, 2726 s9, s10] -> (d0, d1 * s2 + d4 * s4, d2 * s6 + d5 * s8, d6)> 2727 - affine_map<(d0, d1, d2, d3, d4, d5, d6)[s0, s1, s2, s3, s4, s5, s6, s7, s8, 2728 s9, s10] -> (d3, d4, d5, d6)> 2729 - affine_map<(d0, d1, d2, d3, d4, d5, d6)[s0, s1, s2, s3, s4, s5, s6, s7, s8, 2730 s9, s10] -> (d0, d1, d2, d3)> 2731 iterator_types: 2732 - parallel 2733 - parallel 2734 - parallel 2735 - parallel 2736 - reduction 2737 - reduction 2738 - reduction 2739 assignments: 2740 - !ScalarAssign 2741 arg: O 2742 value: !ScalarExpression 2743 scalar_fn: 2744 kind: binary 2745 fn_name: add 2746 operands: 2747 - !ScalarExpression 2748 scalar_arg: O 2749 - !ScalarExpression 2750 scalar_fn: 2751 kind: binary 2752 fn_name: mul 2753 operands: 2754 - !ScalarExpression 2755 scalar_fn: 2756 kind: type 2757 fn_name: cast_signed 2758 type_var: U 2759 operands: 2760 - !ScalarExpression 2761 scalar_arg: I 2762 - !ScalarExpression 2763 scalar_fn: 2764 kind: type 2765 fn_name: cast_signed 2766 type_var: U 2767 operands: 2768 - !ScalarExpression 2769 scalar_arg: K 2770--- !LinalgOpConfig 2771metadata: !LinalgOpMetadata 2772 name: conv_2d_nhwc_hwcf_q 2773 cpp_class_name: Conv2DNhwcHwcfQOp 2774 doc: |- 2775 Performs 2-D convolution with zero point offsets. 2776 2777 Layout: 2778 * Input: NHWC. 2779 * Kernel: HWCF. 2780 2781 Numeric casting is performed on the operands to the inner multiply, promoting 2782 them to the same data type as the accumulator/output. This includes the zero 2783 point offsets common to quantized operations. 2784 implements: 2785 - LinalgConvolutionOpInterface 2786structured_op: !LinalgStructuredOpConfig 2787 args: 2788 - !LinalgOperandDefConfig 2789 name: I 2790 kind: input_tensor 2791 type_var: T1 2792 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> (s0, 2793 s1 * s2 + s3 * s4, s5 * s6 + s7 * s8, s9)> 2794 - !LinalgOperandDefConfig 2795 name: K 2796 kind: input_tensor 2797 type_var: T2 2798 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> (s3, 2799 s7, s9, s10)> 2800 - !LinalgOperandDefConfig 2801 name: IZp 2802 kind: scalar 2803 type_var: I32 2804 - !LinalgOperandDefConfig 2805 name: KZp 2806 kind: scalar 2807 type_var: I32 2808 - !LinalgOperandDefConfig 2809 name: O 2810 kind: output_tensor 2811 type_var: U 2812 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> (s0, 2813 s1, s5, s10)> 2814 - !LinalgOperandDefConfig 2815 name: strides 2816 kind: index_attr 2817 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> 2818 (s2, s6)> 2819 default_indices: 2820 - 1 2821 - 1 2822 - !LinalgOperandDefConfig 2823 name: dilations 2824 kind: index_attr 2825 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> 2826 (s4, s8)> 2827 default_indices: 2828 - 1 2829 - 1 2830 indexing_maps: !LinalgIndexingMapsConfig 2831 static_indexing_maps: 2832 - affine_map<(d0, d1, d2, d3, d4, d5, d6)[s0, s1, s2, s3, s4, s5, s6, s7, s8, 2833 s9, s10] -> (d0, d1 * s2 + d4 * s4, d2 * s6 + d5 * s8, d6)> 2834 - affine_map<(d0, d1, d2, d3, d4, d5, d6)[s0, s1, s2, s3, s4, s5, s6, s7, s8, 2835 s9, s10] -> (d4, d5, d6, d3)> 2836 - affine_map<(d0, d1, d2, d3, d4, d5, d6)[s0, s1, s2, s3, s4, s5, s6, s7, s8, 2837 s9, s10] -> ()> 2838 - affine_map<(d0, d1, d2, d3, d4, d5, d6)[s0, s1, s2, s3, s4, s5, s6, s7, s8, 2839 s9, s10] -> ()> 2840 - affine_map<(d0, d1, d2, d3, d4, d5, d6)[s0, s1, s2, s3, s4, s5, s6, s7, s8, 2841 s9, s10] -> (d0, d1, d2, d3)> 2842 iterator_types: 2843 - parallel 2844 - parallel 2845 - parallel 2846 - parallel 2847 - reduction 2848 - reduction 2849 - reduction 2850 assignments: 2851 - !ScalarAssign 2852 arg: O 2853 value: !ScalarExpression 2854 scalar_fn: 2855 kind: binary 2856 fn_name: add 2857 operands: 2858 - !ScalarExpression 2859 scalar_arg: O 2860 - !ScalarExpression 2861 scalar_fn: 2862 kind: binary 2863 fn_name: mul 2864 operands: 2865 - !ScalarExpression 2866 scalar_fn: 2867 kind: binary 2868 fn_name: sub 2869 operands: 2870 - !ScalarExpression 2871 scalar_fn: 2872 kind: type 2873 fn_name: cast_signed 2874 type_var: U 2875 operands: 2876 - !ScalarExpression 2877 scalar_arg: I 2878 - !ScalarExpression 2879 scalar_fn: 2880 kind: type 2881 fn_name: cast_signed 2882 type_var: U 2883 operands: 2884 - !ScalarExpression 2885 scalar_arg: IZp 2886 - !ScalarExpression 2887 scalar_fn: 2888 kind: binary 2889 fn_name: sub 2890 operands: 2891 - !ScalarExpression 2892 scalar_fn: 2893 kind: type 2894 fn_name: cast_signed 2895 type_var: U 2896 operands: 2897 - !ScalarExpression 2898 scalar_arg: K 2899 - !ScalarExpression 2900 scalar_fn: 2901 kind: type 2902 fn_name: cast_signed 2903 type_var: U 2904 operands: 2905 - !ScalarExpression 2906 scalar_arg: KZp 2907--- !LinalgOpConfig 2908metadata: !LinalgOpMetadata 2909 name: conv_2d_nhwc_fhwc_q 2910 cpp_class_name: Conv2DNhwcFhwcQOp 2911 doc: |- 2912 Performs 2-D convolution with zero point offsets. 2913 2914 Layout: 2915 * Input: NHWC. 2916 * Kernel: FHWC. 2917 2918 Numeric casting is performed on the operands to the inner multiply, promoting 2919 them to the same data type as the accumulator/output. This includes the zero 2920 point offsets common to quantized operations. 2921 implements: 2922 - LinalgConvolutionOpInterface 2923structured_op: !LinalgStructuredOpConfig 2924 args: 2925 - !LinalgOperandDefConfig 2926 name: I 2927 kind: input_tensor 2928 type_var: T1 2929 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> (s0, 2930 s1 * s2 + s3 * s4, s5 * s6 + s7 * s8, s9)> 2931 - !LinalgOperandDefConfig 2932 name: K 2933 kind: input_tensor 2934 type_var: T2 2935 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> (s10, 2936 s3, s7, s9)> 2937 - !LinalgOperandDefConfig 2938 name: IZp 2939 kind: scalar 2940 type_var: I32 2941 - !LinalgOperandDefConfig 2942 name: KZp 2943 kind: scalar 2944 type_var: I32 2945 - !LinalgOperandDefConfig 2946 name: O 2947 kind: output_tensor 2948 type_var: U 2949 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> (s0, 2950 s1, s5, s10)> 2951 - !LinalgOperandDefConfig 2952 name: strides 2953 kind: index_attr 2954 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> 2955 (s2, s6)> 2956 default_indices: 2957 - 1 2958 - 1 2959 - !LinalgOperandDefConfig 2960 name: dilations 2961 kind: index_attr 2962 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> 2963 (s4, s8)> 2964 default_indices: 2965 - 1 2966 - 1 2967 indexing_maps: !LinalgIndexingMapsConfig 2968 static_indexing_maps: 2969 - affine_map<(d0, d1, d2, d3, d4, d5, d6)[s0, s1, s2, s3, s4, s5, s6, s7, s8, 2970 s9, s10] -> (d0, d1 * s2 + d4 * s4, d2 * s6 + d5 * s8, d6)> 2971 - affine_map<(d0, d1, d2, d3, d4, d5, d6)[s0, s1, s2, s3, s4, s5, s6, s7, s8, 2972 s9, s10] -> (d3, d4, d5, d6)> 2973 - affine_map<(d0, d1, d2, d3, d4, d5, d6)[s0, s1, s2, s3, s4, s5, s6, s7, s8, 2974 s9, s10] -> ()> 2975 - affine_map<(d0, d1, d2, d3, d4, d5, d6)[s0, s1, s2, s3, s4, s5, s6, s7, s8, 2976 s9, s10] -> ()> 2977 - affine_map<(d0, d1, d2, d3, d4, d5, d6)[s0, s1, s2, s3, s4, s5, s6, s7, s8, 2978 s9, s10] -> (d0, d1, d2, d3)> 2979 iterator_types: 2980 - parallel 2981 - parallel 2982 - parallel 2983 - parallel 2984 - reduction 2985 - reduction 2986 - reduction 2987 assignments: 2988 - !ScalarAssign 2989 arg: O 2990 value: !ScalarExpression 2991 scalar_fn: 2992 kind: binary 2993 fn_name: add 2994 operands: 2995 - !ScalarExpression 2996 scalar_arg: O 2997 - !ScalarExpression 2998 scalar_fn: 2999 kind: binary 3000 fn_name: mul 3001 operands: 3002 - !ScalarExpression 3003 scalar_fn: 3004 kind: binary 3005 fn_name: sub 3006 operands: 3007 - !ScalarExpression 3008 scalar_fn: 3009 kind: type 3010 fn_name: cast_signed 3011 type_var: U 3012 operands: 3013 - !ScalarExpression 3014 scalar_arg: I 3015 - !ScalarExpression 3016 scalar_fn: 3017 kind: type 3018 fn_name: cast_signed 3019 type_var: U 3020 operands: 3021 - !ScalarExpression 3022 scalar_arg: IZp 3023 - !ScalarExpression 3024 scalar_fn: 3025 kind: binary 3026 fn_name: sub 3027 operands: 3028 - !ScalarExpression 3029 scalar_fn: 3030 kind: type 3031 fn_name: cast_signed 3032 type_var: U 3033 operands: 3034 - !ScalarExpression 3035 scalar_arg: K 3036 - !ScalarExpression 3037 scalar_fn: 3038 kind: type 3039 fn_name: cast_signed 3040 type_var: U 3041 operands: 3042 - !ScalarExpression 3043 scalar_arg: KZp 3044--- !LinalgOpConfig 3045metadata: !LinalgOpMetadata 3046 name: conv_2d_nchw_fchw_q 3047 cpp_class_name: Conv2DNchwFchwQOp 3048 doc: |- 3049 Performs 2-D convolution with zero point offsets. 3050 3051 Layout: 3052 * Input: NCHW. 3053 * Kernel: FCHW. 3054 3055 Numeric casting is performed on the operands to the inner multiply, promoting 3056 them to the same data type as the accumulator/output. This includes the zero 3057 point offsets common to quantized operations. 3058 implements: 3059 - LinalgConvolutionOpInterface 3060structured_op: !LinalgStructuredOpConfig 3061 args: 3062 - !LinalgOperandDefConfig 3063 name: I 3064 kind: input_tensor 3065 type_var: T1 3066 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> (s0, 3067 s1, s2 * s3 + s4 * s5, s6 * s7 + s8 * s9)> 3068 - !LinalgOperandDefConfig 3069 name: K 3070 kind: input_tensor 3071 type_var: T2 3072 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> (s10, 3073 s1, s4, s8)> 3074 - !LinalgOperandDefConfig 3075 name: IZp 3076 kind: scalar 3077 type_var: I32 3078 - !LinalgOperandDefConfig 3079 name: KZp 3080 kind: scalar 3081 type_var: I32 3082 - !LinalgOperandDefConfig 3083 name: O 3084 kind: output_tensor 3085 type_var: U 3086 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> (s0, 3087 s10, s2, s6)> 3088 - !LinalgOperandDefConfig 3089 name: strides 3090 kind: index_attr 3091 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> 3092 (s3, s7)> 3093 default_indices: 3094 - 1 3095 - 1 3096 - !LinalgOperandDefConfig 3097 name: dilations 3098 kind: index_attr 3099 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> 3100 (s5, s9)> 3101 default_indices: 3102 - 1 3103 - 1 3104 indexing_maps: !LinalgIndexingMapsConfig 3105 static_indexing_maps: 3106 - affine_map<(d0, d1, d2, d3, d4, d5, d6)[s0, s1, s2, s3, s4, s5, s6, s7, s8, 3107 s9, s10] -> (d0, d4, d2 * s3 + d5 * s5, d3 * s7 + d6 * s9)> 3108 - affine_map<(d0, d1, d2, d3, d4, d5, d6)[s0, s1, s2, s3, s4, s5, s6, s7, s8, 3109 s9, s10] -> (d1, d4, d5, d6)> 3110 - affine_map<(d0, d1, d2, d3, d4, d5, d6)[s0, s1, s2, s3, s4, s5, s6, s7, s8, 3111 s9, s10] -> ()> 3112 - affine_map<(d0, d1, d2, d3, d4, d5, d6)[s0, s1, s2, s3, s4, s5, s6, s7, s8, 3113 s9, s10] -> ()> 3114 - affine_map<(d0, d1, d2, d3, d4, d5, d6)[s0, s1, s2, s3, s4, s5, s6, s7, s8, 3115 s9, s10] -> (d0, d1, d2, d3)> 3116 iterator_types: 3117 - parallel 3118 - parallel 3119 - parallel 3120 - parallel 3121 - reduction 3122 - reduction 3123 - reduction 3124 assignments: 3125 - !ScalarAssign 3126 arg: O 3127 value: !ScalarExpression 3128 scalar_fn: 3129 kind: binary 3130 fn_name: add 3131 operands: 3132 - !ScalarExpression 3133 scalar_arg: O 3134 - !ScalarExpression 3135 scalar_fn: 3136 kind: binary 3137 fn_name: mul 3138 operands: 3139 - !ScalarExpression 3140 scalar_fn: 3141 kind: binary 3142 fn_name: sub 3143 operands: 3144 - !ScalarExpression 3145 scalar_fn: 3146 kind: type 3147 fn_name: cast_signed 3148 type_var: U 3149 operands: 3150 - !ScalarExpression 3151 scalar_arg: I 3152 - !ScalarExpression 3153 scalar_fn: 3154 kind: type 3155 fn_name: cast_signed 3156 type_var: U 3157 operands: 3158 - !ScalarExpression 3159 scalar_arg: IZp 3160 - !ScalarExpression 3161 scalar_fn: 3162 kind: binary 3163 fn_name: sub 3164 operands: 3165 - !ScalarExpression 3166 scalar_fn: 3167 kind: type 3168 fn_name: cast_signed 3169 type_var: U 3170 operands: 3171 - !ScalarExpression 3172 scalar_arg: K 3173 - !ScalarExpression 3174 scalar_fn: 3175 kind: type 3176 fn_name: cast_signed 3177 type_var: U 3178 operands: 3179 - !ScalarExpression 3180 scalar_arg: KZp 3181--- !LinalgOpConfig 3182metadata: !LinalgOpMetadata 3183 name: conv_2d_nchw_fchw 3184 cpp_class_name: Conv2DNchwFchwOp 3185 doc: |- 3186 Performs 2-D convolution. 3187 3188 Layout: 3189 * Input: NCHW. 3190 * Kernel: FCHW. 3191 3192 Numeric casting is performed on the operands to the inner multiply, promoting 3193 them to the same data type as the accumulator/output. 3194 implements: 3195 - LinalgConvolutionOpInterface 3196structured_op: !LinalgStructuredOpConfig 3197 args: 3198 - !LinalgOperandDefConfig 3199 name: I 3200 kind: input_tensor 3201 type_var: T1 3202 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> (s0, 3203 s1, s2 * s3 + s4 * s5, s6 * s7 + s8 * s9)> 3204 - !LinalgOperandDefConfig 3205 name: K 3206 kind: input_tensor 3207 type_var: T2 3208 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> (s10, 3209 s1, s4, s8)> 3210 - !LinalgOperandDefConfig 3211 name: O 3212 kind: output_tensor 3213 type_var: U 3214 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> (s0, 3215 s10, s2, s6)> 3216 - !LinalgOperandDefConfig 3217 name: strides 3218 kind: index_attr 3219 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> 3220 (s3, s7)> 3221 default_indices: 3222 - 1 3223 - 1 3224 - !LinalgOperandDefConfig 3225 name: dilations 3226 kind: index_attr 3227 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> 3228 (s5, s9)> 3229 default_indices: 3230 - 1 3231 - 1 3232 indexing_maps: !LinalgIndexingMapsConfig 3233 static_indexing_maps: 3234 - affine_map<(d0, d1, d2, d3, d4, d5, d6)[s0, s1, s2, s3, s4, s5, s6, s7, s8, 3235 s9, s10] -> (d0, d4, d2 * s3 + d5 * s5, d3 * s7 + d6 * s9)> 3236 - affine_map<(d0, d1, d2, d3, d4, d5, d6)[s0, s1, s2, s3, s4, s5, s6, s7, s8, 3237 s9, s10] -> (d1, d4, d5, d6)> 3238 - affine_map<(d0, d1, d2, d3, d4, d5, d6)[s0, s1, s2, s3, s4, s5, s6, s7, s8, 3239 s9, s10] -> (d0, d1, d2, d3)> 3240 iterator_types: 3241 - parallel 3242 - parallel 3243 - parallel 3244 - parallel 3245 - reduction 3246 - reduction 3247 - reduction 3248 assignments: 3249 - !ScalarAssign 3250 arg: O 3251 value: !ScalarExpression 3252 scalar_fn: 3253 kind: binary 3254 fn_name: add 3255 operands: 3256 - !ScalarExpression 3257 scalar_arg: O 3258 - !ScalarExpression 3259 scalar_fn: 3260 kind: binary 3261 fn_name: mul 3262 operands: 3263 - !ScalarExpression 3264 scalar_fn: 3265 kind: type 3266 fn_name: cast_signed 3267 type_var: U 3268 operands: 3269 - !ScalarExpression 3270 scalar_arg: I 3271 - !ScalarExpression 3272 scalar_fn: 3273 kind: type 3274 fn_name: cast_signed 3275 type_var: U 3276 operands: 3277 - !ScalarExpression 3278 scalar_arg: K 3279--- !LinalgOpConfig 3280metadata: !LinalgOpMetadata 3281 name: conv_2d_ngchw_fgchw 3282 cpp_class_name: Conv2DNgchwFgchwOp 3283 doc: |- 3284 Performs 2-D grouped convolution. 3285 3286 Layout: 3287 * Input: NGCHW. 3288 * Kernel: FGCHW. 3289 3290 Numeric casting is performed on the operands to the inner multiply, promoting 3291 them to the same data type as the accumulator/output. 3292 implements: 3293 - LinalgConvolutionOpInterface 3294structured_op: !LinalgStructuredOpConfig 3295 args: 3296 - !LinalgOperandDefConfig 3297 name: I 3298 kind: input_tensor 3299 type_var: T1 3300 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11] -> 3301 (s0, s1, s2, s3 * s4 + s5 * s6, s7 * s8 + s9 * s10)> 3302 - !LinalgOperandDefConfig 3303 name: K 3304 kind: input_tensor 3305 type_var: T2 3306 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11] -> 3307 (s11, s1, s2, s5, s9)> 3308 - !LinalgOperandDefConfig 3309 name: O 3310 kind: output_tensor 3311 type_var: U 3312 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11] -> 3313 (s0, s1, s11, s3, s7)> 3314 - !LinalgOperandDefConfig 3315 name: strides 3316 kind: index_attr 3317 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11] 3318 -> (s4, s8)> 3319 default_indices: 3320 - 1 3321 - 1 3322 - !LinalgOperandDefConfig 3323 name: dilations 3324 kind: index_attr 3325 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11] 3326 -> (s6, s10)> 3327 default_indices: 3328 - 1 3329 - 1 3330 indexing_maps: !LinalgIndexingMapsConfig 3331 static_indexing_maps: 3332 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7, 3333 s8, s9, s10, s11] -> (d0, d1, d5, d3 * s4 + d6 * s6, d4 * s8 + d7 * s10)> 3334 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7, 3335 s8, s9, s10, s11] -> (d2, d1, d5, d6, d7)> 3336 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7, 3337 s8, s9, s10, s11] -> (d0, d1, d2, d3, d4)> 3338 iterator_types: 3339 - parallel 3340 - parallel 3341 - parallel 3342 - parallel 3343 - parallel 3344 - reduction 3345 - reduction 3346 - reduction 3347 assignments: 3348 - !ScalarAssign 3349 arg: O 3350 value: !ScalarExpression 3351 scalar_fn: 3352 kind: binary 3353 fn_name: add 3354 operands: 3355 - !ScalarExpression 3356 scalar_arg: O 3357 - !ScalarExpression 3358 scalar_fn: 3359 kind: binary 3360 fn_name: mul 3361 operands: 3362 - !ScalarExpression 3363 scalar_fn: 3364 kind: type 3365 fn_name: cast_signed 3366 type_var: U 3367 operands: 3368 - !ScalarExpression 3369 scalar_arg: I 3370 - !ScalarExpression 3371 scalar_fn: 3372 kind: type 3373 fn_name: cast_signed 3374 type_var: U 3375 operands: 3376 - !ScalarExpression 3377 scalar_arg: K 3378--- !LinalgOpConfig 3379metadata: !LinalgOpMetadata 3380 name: conv_2d_ngchw_gfchw 3381 cpp_class_name: Conv2DNgchwGfchwOp 3382 doc: |- 3383 Performs 2-D grouped convolution. 3384 3385 Layout: 3386 * Input: NGCHW. 3387 * Kernel: GFCHW. 3388 3389 Numeric casting is performed on the operands to the inner multiply, promoting 3390 them to the same data type as the accumulator/output. 3391 implements: 3392 - LinalgConvolutionOpInterface 3393structured_op: !LinalgStructuredOpConfig 3394 args: 3395 - !LinalgOperandDefConfig 3396 name: I 3397 kind: input_tensor 3398 type_var: T1 3399 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11] -> 3400 (s0, s1, s2, s3 * s4 + s5 * s6, s7 * s8 + s9 * s10)> 3401 - !LinalgOperandDefConfig 3402 name: K 3403 kind: input_tensor 3404 type_var: T2 3405 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11] -> 3406 (s1, s11, s2, s5, s9)> 3407 - !LinalgOperandDefConfig 3408 name: O 3409 kind: output_tensor 3410 type_var: U 3411 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11] -> 3412 (s0, s1, s11, s3, s7)> 3413 - !LinalgOperandDefConfig 3414 name: strides 3415 kind: index_attr 3416 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11] 3417 -> (s4, s8)> 3418 default_indices: 3419 - 1 3420 - 1 3421 - !LinalgOperandDefConfig 3422 name: dilations 3423 kind: index_attr 3424 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11] 3425 -> (s6, s10)> 3426 default_indices: 3427 - 1 3428 - 1 3429 indexing_maps: !LinalgIndexingMapsConfig 3430 static_indexing_maps: 3431 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7, 3432 s8, s9, s10, s11] -> (d0, d1, d5, d3 * s4 + d6 * s6, d4 * s8 + d7 * s10)> 3433 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7, 3434 s8, s9, s10, s11] -> (d1, d2, d5, d6, d7)> 3435 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7, 3436 s8, s9, s10, s11] -> (d0, d1, d2, d3, d4)> 3437 iterator_types: 3438 - parallel 3439 - parallel 3440 - parallel 3441 - parallel 3442 - parallel 3443 - reduction 3444 - reduction 3445 - reduction 3446 assignments: 3447 - !ScalarAssign 3448 arg: O 3449 value: !ScalarExpression 3450 scalar_fn: 3451 kind: binary 3452 fn_name: add 3453 operands: 3454 - !ScalarExpression 3455 scalar_arg: O 3456 - !ScalarExpression 3457 scalar_fn: 3458 kind: binary 3459 fn_name: mul 3460 operands: 3461 - !ScalarExpression 3462 scalar_fn: 3463 kind: type 3464 fn_name: cast_signed 3465 type_var: U 3466 operands: 3467 - !ScalarExpression 3468 scalar_arg: I 3469 - !ScalarExpression 3470 scalar_fn: 3471 kind: type 3472 fn_name: cast_signed 3473 type_var: U 3474 operands: 3475 - !ScalarExpression 3476 scalar_arg: K 3477--- !LinalgOpConfig 3478metadata: !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 3492structured_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 3577metadata: !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 3592structured_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 3715metadata: !LinalgOpMetadata 3716 name: conv_2d_ngchw_gfchw_q 3717 cpp_class_name: Conv2DNgchwGfchwQOp 3718 doc: |- 3719 Performs 2-D grouped convolution with zero-point offsets. 3720 3721 Layout: 3722 * Input: NGCHW. 3723 * Kernel: GFCHW. 3724 3725 Numeric casting is performed on the operands to the inner multiply, promoting 3726 them to the same data type as the accumulator/output. This includes the zero 3727 point offsets common to quantized operations. 3728 implements: 3729 - LinalgConvolutionOpInterface 3730structured_op: !LinalgStructuredOpConfig 3731 args: 3732 - !LinalgOperandDefConfig 3733 name: I 3734 kind: input_tensor 3735 type_var: T1 3736 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11] -> 3737 (s0, s1, s2, s3 * s4 + s5 * s6, s7 * s8 + s9 * s10)> 3738 - !LinalgOperandDefConfig 3739 name: K 3740 kind: input_tensor 3741 type_var: T2 3742 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11] -> 3743 (s1, s11, s2, s5, s9)> 3744 - !LinalgOperandDefConfig 3745 name: IZp 3746 kind: scalar 3747 type_var: I32 3748 - !LinalgOperandDefConfig 3749 name: KZp 3750 kind: scalar 3751 type_var: I32 3752 - !LinalgOperandDefConfig 3753 name: O 3754 kind: output_tensor 3755 type_var: U 3756 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11] -> 3757 (s0, s1, s11, s3, s7)> 3758 - !LinalgOperandDefConfig 3759 name: strides 3760 kind: index_attr 3761 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11] 3762 -> (s4, s8)> 3763 default_indices: 3764 - 1 3765 - 1 3766 - !LinalgOperandDefConfig 3767 name: dilations 3768 kind: index_attr 3769 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11] 3770 -> (s6, s10)> 3771 default_indices: 3772 - 1 3773 - 1 3774 indexing_maps: !LinalgIndexingMapsConfig 3775 static_indexing_maps: 3776 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7, 3777 s8, s9, s10, s11] -> (d0, d1, d5, d3 * s4 + d6 * s6, d4 * s8 + d7 * s10)> 3778 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7, 3779 s8, s9, s10, s11] -> (d1, d2, d5, d6, d7)> 3780 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7, 3781 s8, s9, s10, s11] -> ()> 3782 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7, 3783 s8, s9, s10, s11] -> ()> 3784 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7, 3785 s8, s9, s10, s11] -> (d0, d1, d2, d3, d4)> 3786 iterator_types: 3787 - parallel 3788 - parallel 3789 - parallel 3790 - parallel 3791 - parallel 3792 - reduction 3793 - reduction 3794 - reduction 3795 assignments: 3796 - !ScalarAssign 3797 arg: O 3798 value: !ScalarExpression 3799 scalar_fn: 3800 kind: binary 3801 fn_name: add 3802 operands: 3803 - !ScalarExpression 3804 scalar_arg: O 3805 - !ScalarExpression 3806 scalar_fn: 3807 kind: binary 3808 fn_name: mul 3809 operands: 3810 - !ScalarExpression 3811 scalar_fn: 3812 kind: binary 3813 fn_name: sub 3814 operands: 3815 - !ScalarExpression 3816 scalar_fn: 3817 kind: type 3818 fn_name: cast_signed 3819 type_var: U 3820 operands: 3821 - !ScalarExpression 3822 scalar_arg: I 3823 - !ScalarExpression 3824 scalar_fn: 3825 kind: type 3826 fn_name: cast_signed 3827 type_var: U 3828 operands: 3829 - !ScalarExpression 3830 scalar_arg: IZp 3831 - !ScalarExpression 3832 scalar_fn: 3833 kind: binary 3834 fn_name: sub 3835 operands: 3836 - !ScalarExpression 3837 scalar_fn: 3838 kind: type 3839 fn_name: cast_signed 3840 type_var: U 3841 operands: 3842 - !ScalarExpression 3843 scalar_arg: K 3844 - !ScalarExpression 3845 scalar_fn: 3846 kind: type 3847 fn_name: cast_signed 3848 type_var: U 3849 operands: 3850 - !ScalarExpression 3851 scalar_arg: KZp 3852--- !LinalgOpConfig 3853metadata: !LinalgOpMetadata 3854 name: conv_3d_ndhwc_dhwcf 3855 cpp_class_name: Conv3DNdhwcDhwcfOp 3856 doc: |- 3857 Performs 3-D convolution. 3858 3859 Numeric casting is performed on the operands to the inner multiply, promoting 3860 them to the same data type as the accumulator/output. 3861 implements: 3862 - LinalgConvolutionOpInterface 3863structured_op: !LinalgStructuredOpConfig 3864 args: 3865 - !LinalgOperandDefConfig 3866 name: I 3867 kind: input_tensor 3868 type_var: T1 3869 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, 3870 s13, s14] -> (s0, s1 * s2 + s3 * s4, s5 * s6 + s7 * s8, s9 * s10 + s11 * s12, 3871 s13)> 3872 - !LinalgOperandDefConfig 3873 name: K 3874 kind: input_tensor 3875 type_var: T2 3876 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, 3877 s13, s14] -> (s3, s7, s11, s13, s14)> 3878 - !LinalgOperandDefConfig 3879 name: O 3880 kind: output_tensor 3881 type_var: U 3882 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, 3883 s13, s14] -> (s0, s1, s5, s9, s14)> 3884 - !LinalgOperandDefConfig 3885 name: strides 3886 kind: index_attr 3887 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, 3888 s12, s13, s14] -> (s2, s6, s10)> 3889 default_indices: 3890 - 1 3891 - 1 3892 - 1 3893 - !LinalgOperandDefConfig 3894 name: dilations 3895 kind: index_attr 3896 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, 3897 s12, s13, s14] -> (s4, s8, s12)> 3898 default_indices: 3899 - 1 3900 - 1 3901 - 1 3902 indexing_maps: !LinalgIndexingMapsConfig 3903 static_indexing_maps: 3904 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7, d8)[s0, s1, s2, s3, s4, s5, s6, 3905 s7, s8, s9, s10, s11, s12, s13, s14] -> (d0, d1 * s2 + d5 * s4, d2 * s6 + d6 3906 * s8, d3 * s10 + d7 * s12, d8)> 3907 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7, d8)[s0, s1, s2, s3, s4, s5, s6, 3908 s7, s8, s9, s10, s11, s12, s13, s14] -> (d5, d6, d7, d8, d4)> 3909 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7, d8)[s0, s1, s2, s3, s4, s5, s6, 3910 s7, s8, s9, s10, s11, s12, s13, s14] -> (d0, d1, d2, d3, d4)> 3911 iterator_types: 3912 - parallel 3913 - parallel 3914 - parallel 3915 - parallel 3916 - parallel 3917 - reduction 3918 - reduction 3919 - reduction 3920 - reduction 3921 assignments: 3922 - !ScalarAssign 3923 arg: O 3924 value: !ScalarExpression 3925 scalar_fn: 3926 kind: binary 3927 fn_name: add 3928 operands: 3929 - !ScalarExpression 3930 scalar_arg: O 3931 - !ScalarExpression 3932 scalar_fn: 3933 kind: binary 3934 fn_name: mul 3935 operands: 3936 - !ScalarExpression 3937 scalar_fn: 3938 kind: type 3939 fn_name: cast_signed 3940 type_var: U 3941 operands: 3942 - !ScalarExpression 3943 scalar_arg: I 3944 - !ScalarExpression 3945 scalar_fn: 3946 kind: type 3947 fn_name: cast_signed 3948 type_var: U 3949 operands: 3950 - !ScalarExpression 3951 scalar_arg: K 3952--- !LinalgOpConfig 3953metadata: !LinalgOpMetadata 3954 name: conv_3d_ndhwc_dhwcf_q 3955 cpp_class_name: Conv3DNdhwcDhwcfQOp 3956 doc: |- 3957 Performs 3-D convolution with zero point offsets. 3958 3959 Numeric casting is performed on the operands to the inner multiply, promoting 3960 them to the same data type as the accumulator/output. This includes the zero 3961 point offsets common to quantized operations. 3962 implements: 3963 - LinalgConvolutionOpInterface 3964structured_op: !LinalgStructuredOpConfig 3965 args: 3966 - !LinalgOperandDefConfig 3967 name: I 3968 kind: input_tensor 3969 type_var: T1 3970 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, 3971 s13, s14] -> (s0, s1 * s2 + s3 * s4, s5 * s6 + s7 * s8, s9 * s10 + s11 * s12, 3972 s13)> 3973 - !LinalgOperandDefConfig 3974 name: K 3975 kind: input_tensor 3976 type_var: T2 3977 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, 3978 s13, s14] -> (s3, s7, s11, s13, s14)> 3979 - !LinalgOperandDefConfig 3980 name: IZp 3981 kind: scalar 3982 type_var: I32 3983 - !LinalgOperandDefConfig 3984 name: KZp 3985 kind: scalar 3986 type_var: I32 3987 - !LinalgOperandDefConfig 3988 name: O 3989 kind: output_tensor 3990 type_var: U 3991 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, 3992 s13, s14] -> (s0, s1, s5, s9, s14)> 3993 - !LinalgOperandDefConfig 3994 name: strides 3995 kind: index_attr 3996 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, 3997 s12, s13, s14] -> (s2, s6, s10)> 3998 default_indices: 3999 - 1 4000 - 1 4001 - 1 4002 - !LinalgOperandDefConfig 4003 name: dilations 4004 kind: index_attr 4005 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, 4006 s12, s13, s14] -> (s4, s8, s12)> 4007 default_indices: 4008 - 1 4009 - 1 4010 - 1 4011 indexing_maps: !LinalgIndexingMapsConfig 4012 static_indexing_maps: 4013 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7, d8)[s0, s1, s2, s3, s4, s5, s6, 4014 s7, s8, s9, s10, s11, s12, s13, s14] -> (d0, d1 * s2 + d5 * s4, d2 * s6 + d6 4015 * s8, d3 * s10 + d7 * s12, d8)> 4016 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7, d8)[s0, s1, s2, s3, s4, s5, s6, 4017 s7, s8, s9, s10, s11, s12, s13, s14] -> (d5, d6, d7, d8, d4)> 4018 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7, d8)[s0, s1, s2, s3, s4, s5, s6, 4019 s7, s8, s9, s10, s11, s12, s13, s14] -> ()> 4020 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7, d8)[s0, s1, s2, s3, s4, s5, s6, 4021 s7, s8, s9, s10, s11, s12, s13, s14] -> ()> 4022 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7, d8)[s0, s1, s2, s3, s4, s5, s6, 4023 s7, s8, s9, s10, s11, s12, s13, s14] -> (d0, d1, d2, d3, d4)> 4024 iterator_types: 4025 - parallel 4026 - parallel 4027 - parallel 4028 - parallel 4029 - parallel 4030 - reduction 4031 - reduction 4032 - reduction 4033 - reduction 4034 assignments: 4035 - !ScalarAssign 4036 arg: O 4037 value: !ScalarExpression 4038 scalar_fn: 4039 kind: binary 4040 fn_name: add 4041 operands: 4042 - !ScalarExpression 4043 scalar_arg: O 4044 - !ScalarExpression 4045 scalar_fn: 4046 kind: binary 4047 fn_name: mul 4048 operands: 4049 - !ScalarExpression 4050 scalar_fn: 4051 kind: binary 4052 fn_name: sub 4053 operands: 4054 - !ScalarExpression 4055 scalar_fn: 4056 kind: type 4057 fn_name: cast_signed 4058 type_var: U 4059 operands: 4060 - !ScalarExpression 4061 scalar_arg: I 4062 - !ScalarExpression 4063 scalar_fn: 4064 kind: type 4065 fn_name: cast_signed 4066 type_var: U 4067 operands: 4068 - !ScalarExpression 4069 scalar_arg: IZp 4070 - !ScalarExpression 4071 scalar_fn: 4072 kind: binary 4073 fn_name: sub 4074 operands: 4075 - !ScalarExpression 4076 scalar_fn: 4077 kind: type 4078 fn_name: cast_signed 4079 type_var: U 4080 operands: 4081 - !ScalarExpression 4082 scalar_arg: K 4083 - !ScalarExpression 4084 scalar_fn: 4085 kind: type 4086 fn_name: cast_signed 4087 type_var: U 4088 operands: 4089 - !ScalarExpression 4090 scalar_arg: KZp 4091--- !LinalgOpConfig 4092metadata: !LinalgOpMetadata 4093 name: conv_3d_ncdhw_fcdhw 4094 cpp_class_name: Conv3DNcdhwFcdhwOp 4095 doc: |- 4096 Performs 3-D convolution. 4097 4098 Numeric casting is performed on the operands to the inner multiply, promoting 4099 them to the same data type as the accumulator/output. 4100 implements: 4101 - LinalgConvolutionOpInterface 4102structured_op: !LinalgStructuredOpConfig 4103 args: 4104 - !LinalgOperandDefConfig 4105 name: I 4106 kind: input_tensor 4107 type_var: T1 4108 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, 4109 s13, s14] -> (s0, s1, s2 * s3 + s4 * s5, s6 * s7 + s8 * s9, s10 * s11 + s12 4110 * s13)> 4111 - !LinalgOperandDefConfig 4112 name: K 4113 kind: input_tensor 4114 type_var: T2 4115 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, 4116 s13, s14] -> (s14, s1, s4, s8, s12)> 4117 - !LinalgOperandDefConfig 4118 name: O 4119 kind: output_tensor 4120 type_var: U 4121 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, 4122 s13, s14] -> (s0, s14, s2, s6, s10)> 4123 - !LinalgOperandDefConfig 4124 name: strides 4125 kind: index_attr 4126 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, 4127 s12, s13, s14] -> (s3, s7, s11)> 4128 default_indices: 4129 - 1 4130 - 1 4131 - 1 4132 - !LinalgOperandDefConfig 4133 name: dilations 4134 kind: index_attr 4135 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, 4136 s12, s13, s14] -> (s5, s9, s13)> 4137 default_indices: 4138 - 1 4139 - 1 4140 - 1 4141 indexing_maps: !LinalgIndexingMapsConfig 4142 static_indexing_maps: 4143 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7, d8)[s0, s1, s2, s3, s4, s5, s6, 4144 s7, s8, s9, s10, s11, s12, s13, s14] -> (d0, d8, d1 * s3 + d5 * s5, d2 * s7 4145 + d6 * s9, d3 * s11 + d7 * s13)> 4146 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7, d8)[s0, s1, s2, s3, s4, s5, s6, 4147 s7, s8, s9, s10, s11, s12, s13, s14] -> (d4, d8, d5, d6, d7)> 4148 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7, d8)[s0, s1, s2, s3, s4, s5, s6, 4149 s7, s8, s9, s10, s11, s12, s13, s14] -> (d0, d4, d1, d2, d3)> 4150 iterator_types: 4151 - parallel 4152 - parallel 4153 - parallel 4154 - parallel 4155 - parallel 4156 - reduction 4157 - reduction 4158 - reduction 4159 - reduction 4160 assignments: 4161 - !ScalarAssign 4162 arg: O 4163 value: !ScalarExpression 4164 scalar_fn: 4165 kind: binary 4166 fn_name: add 4167 operands: 4168 - !ScalarExpression 4169 scalar_arg: O 4170 - !ScalarExpression 4171 scalar_fn: 4172 kind: binary 4173 fn_name: mul 4174 operands: 4175 - !ScalarExpression 4176 scalar_fn: 4177 kind: type 4178 fn_name: cast_signed 4179 type_var: U 4180 operands: 4181 - !ScalarExpression 4182 scalar_arg: I 4183 - !ScalarExpression 4184 scalar_fn: 4185 kind: type 4186 fn_name: cast_signed 4187 type_var: U 4188 operands: 4189 - !ScalarExpression 4190 scalar_arg: K 4191--- !LinalgOpConfig 4192metadata: !LinalgOpMetadata 4193 name: depthwise_conv_1d_nwc_wc 4194 cpp_class_name: DepthwiseConv1DNwcWcOp 4195 doc: |- 4196 Performs depth-wise 1-D convolution. 4197 4198 Numeric casting is performed on the operands to the inner multiply, promoting 4199 them to the same data type as the accumulator/output. Multiplier is set to 1 4200 which is a special case for most depthwise convolutions. 4201 implements: 4202 - LinalgConvolutionOpInterface 4203structured_op: !LinalgStructuredOpConfig 4204 args: 4205 - !LinalgOperandDefConfig 4206 name: I 4207 kind: input_tensor 4208 type_var: T1 4209 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s0, s1 * s2 + s3 * s4, s5)> 4210 - !LinalgOperandDefConfig 4211 name: K 4212 kind: input_tensor 4213 type_var: T2 4214 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s3, s5)> 4215 - !LinalgOperandDefConfig 4216 name: O 4217 kind: output_tensor 4218 type_var: U 4219 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s0, s1, s5)> 4220 - !LinalgOperandDefConfig 4221 name: strides 4222 kind: index_attr 4223 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s2)> 4224 default_indices: 4225 - 1 4226 - !LinalgOperandDefConfig 4227 name: dilations 4228 kind: index_attr 4229 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s4)> 4230 default_indices: 4231 - 1 4232 indexing_maps: !LinalgIndexingMapsConfig 4233 static_indexing_maps: 4234 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3, s4, s5] -> (d0, d1 * s2 + d3 * s4, 4235 d2)> 4236 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3, s4, s5] -> (d3, d2)> 4237 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3, s4, s5] -> (d0, d1, d2)> 4238 iterator_types: 4239 - parallel 4240 - parallel 4241 - parallel 4242 - reduction 4243 assignments: 4244 - !ScalarAssign 4245 arg: O 4246 value: !ScalarExpression 4247 scalar_fn: 4248 kind: binary 4249 fn_name: add 4250 operands: 4251 - !ScalarExpression 4252 scalar_arg: O 4253 - !ScalarExpression 4254 scalar_fn: 4255 kind: binary 4256 fn_name: mul 4257 operands: 4258 - !ScalarExpression 4259 scalar_fn: 4260 kind: type 4261 fn_name: cast_signed 4262 type_var: U 4263 operands: 4264 - !ScalarExpression 4265 scalar_arg: I 4266 - !ScalarExpression 4267 scalar_fn: 4268 kind: type 4269 fn_name: cast_signed 4270 type_var: U 4271 operands: 4272 - !ScalarExpression 4273 scalar_arg: K 4274--- !LinalgOpConfig 4275metadata: !LinalgOpMetadata 4276 name: depthwise_conv_1d_ncw_cw 4277 cpp_class_name: DepthwiseConv1DNcwCwOp 4278 doc: |- 4279 Performs depth-wise 1-D convolution. 4280 4281 Numeric casting is performed on the operands to the inner multiply, promoting 4282 them to the same data type as the accumulator/output. Multiplier is set to 1 4283 which is a special case for most depthwise convolutions. 4284 implements: 4285 - LinalgConvolutionOpInterface 4286structured_op: !LinalgStructuredOpConfig 4287 args: 4288 - !LinalgOperandDefConfig 4289 name: I 4290 kind: input_tensor 4291 type_var: T1 4292 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s0, s1, s2 * s3 + s4 * s5)> 4293 - !LinalgOperandDefConfig 4294 name: K 4295 kind: input_tensor 4296 type_var: T2 4297 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s1, s4)> 4298 - !LinalgOperandDefConfig 4299 name: O 4300 kind: output_tensor 4301 type_var: U 4302 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s0, s1, s2)> 4303 - !LinalgOperandDefConfig 4304 name: strides 4305 kind: index_attr 4306 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s3)> 4307 default_indices: 4308 - 1 4309 - !LinalgOperandDefConfig 4310 name: dilations 4311 kind: index_attr 4312 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s5)> 4313 default_indices: 4314 - 1 4315 indexing_maps: !LinalgIndexingMapsConfig 4316 static_indexing_maps: 4317 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3, s4, s5] -> (d0, d2, d1 * s3 + d3 4318 * s5)> 4319 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3, s4, s5] -> (d2, d3)> 4320 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3, s4, s5] -> (d0, d2, d1)> 4321 iterator_types: 4322 - parallel 4323 - parallel 4324 - parallel 4325 - reduction 4326 assignments: 4327 - !ScalarAssign 4328 arg: O 4329 value: !ScalarExpression 4330 scalar_fn: 4331 kind: binary 4332 fn_name: add 4333 operands: 4334 - !ScalarExpression 4335 scalar_arg: O 4336 - !ScalarExpression 4337 scalar_fn: 4338 kind: binary 4339 fn_name: mul 4340 operands: 4341 - !ScalarExpression 4342 scalar_fn: 4343 kind: type 4344 fn_name: cast_signed 4345 type_var: U 4346 operands: 4347 - !ScalarExpression 4348 scalar_arg: I 4349 - !ScalarExpression 4350 scalar_fn: 4351 kind: type 4352 fn_name: cast_signed 4353 type_var: U 4354 operands: 4355 - !ScalarExpression 4356 scalar_arg: K 4357--- !LinalgOpConfig 4358metadata: !LinalgOpMetadata 4359 name: depthwise_conv_1d_nwc_wcm 4360 cpp_class_name: DepthwiseConv1DNwcWcmOp 4361 doc: |- 4362 Performs depth-wise 1-D convolution. 4363 4364 Numeric casting is performed on the operands to the inner multiply, promoting 4365 them to the same data type as the accumulator/output. 4366 implements: 4367 - LinalgConvolutionOpInterface 4368structured_op: !LinalgStructuredOpConfig 4369 args: 4370 - !LinalgOperandDefConfig 4371 name: I 4372 kind: input_tensor 4373 type_var: T1 4374 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6] -> (s0, s1 * s2 + s3 * s4, 4375 s5)> 4376 - !LinalgOperandDefConfig 4377 name: K 4378 kind: input_tensor 4379 type_var: T2 4380 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6] -> (s3, s5, s6)> 4381 - !LinalgOperandDefConfig 4382 name: O 4383 kind: output_tensor 4384 type_var: U 4385 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6] -> (s0, s1, s5, s6)> 4386 - !LinalgOperandDefConfig 4387 name: strides 4388 kind: index_attr 4389 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6] -> (s2)> 4390 default_indices: 4391 - 1 4392 - !LinalgOperandDefConfig 4393 name: dilations 4394 kind: index_attr 4395 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6] -> (s4)> 4396 default_indices: 4397 - 1 4398 indexing_maps: !LinalgIndexingMapsConfig 4399 static_indexing_maps: 4400 - affine_map<(d0, d1, d2, d3, d4)[s0, s1, s2, s3, s4, s5, s6] -> (d0, d1 * s2 4401 + d4 * s4, d2)> 4402 - affine_map<(d0, d1, d2, d3, d4)[s0, s1, s2, s3, s4, s5, s6] -> (d4, d2, d3)> 4403 - affine_map<(d0, d1, d2, d3, d4)[s0, s1, s2, s3, s4, s5, s6] -> (d0, d1, d2, 4404 d3)> 4405 iterator_types: 4406 - parallel 4407 - parallel 4408 - parallel 4409 - parallel 4410 - reduction 4411 assignments: 4412 - !ScalarAssign 4413 arg: O 4414 value: !ScalarExpression 4415 scalar_fn: 4416 kind: binary 4417 fn_name: add 4418 operands: 4419 - !ScalarExpression 4420 scalar_arg: O 4421 - !ScalarExpression 4422 scalar_fn: 4423 kind: binary 4424 fn_name: mul 4425 operands: 4426 - !ScalarExpression 4427 scalar_fn: 4428 kind: type 4429 fn_name: cast_signed 4430 type_var: U 4431 operands: 4432 - !ScalarExpression 4433 scalar_arg: I 4434 - !ScalarExpression 4435 scalar_fn: 4436 kind: type 4437 fn_name: cast_signed 4438 type_var: U 4439 operands: 4440 - !ScalarExpression 4441 scalar_arg: K 4442--- !LinalgOpConfig 4443metadata: !LinalgOpMetadata 4444 name: depthwise_conv_2d_nhwc_hwc 4445 cpp_class_name: DepthwiseConv2DNhwcHwcOp 4446 doc: |- 4447 Performs depth-wise 2-D convolution. 4448 4449 Numeric casting is performed on the operands to the inner multiply, promoting 4450 them to the same data type as the accumulator/output. Multiplier is set to 1 4451 which is a special case for most depthwise convolutions. 4452 implements: 4453 - LinalgConvolutionOpInterface 4454structured_op: !LinalgStructuredOpConfig 4455 args: 4456 - !LinalgOperandDefConfig 4457 name: I 4458 kind: input_tensor 4459 type_var: T1 4460 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s0, s1 * 4461 s2 + s3 * s4, s5 * s6 + s7 * s8, s9)> 4462 - !LinalgOperandDefConfig 4463 name: K 4464 kind: input_tensor 4465 type_var: T2 4466 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s3, s7, s9)> 4467 - !LinalgOperandDefConfig 4468 name: O 4469 kind: output_tensor 4470 type_var: U 4471 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s0, s1, s5, 4472 s9)> 4473 - !LinalgOperandDefConfig 4474 name: strides 4475 kind: index_attr 4476 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s2, 4477 s6)> 4478 default_indices: 4479 - 1 4480 - 1 4481 - !LinalgOperandDefConfig 4482 name: dilations 4483 kind: index_attr 4484 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s4, 4485 s8)> 4486 default_indices: 4487 - 1 4488 - 1 4489 indexing_maps: !LinalgIndexingMapsConfig 4490 static_indexing_maps: 4491 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] 4492 -> (d0, d1 * s2 + d4 * s4, d2 * s6 + d5 * s8, d3)> 4493 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] 4494 -> (d4, d5, d3)> 4495 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] 4496 -> (d0, d1, d2, d3)> 4497 iterator_types: 4498 - parallel 4499 - parallel 4500 - parallel 4501 - parallel 4502 - reduction 4503 - reduction 4504 assignments: 4505 - !ScalarAssign 4506 arg: O 4507 value: !ScalarExpression 4508 scalar_fn: 4509 kind: binary 4510 fn_name: add 4511 operands: 4512 - !ScalarExpression 4513 scalar_arg: O 4514 - !ScalarExpression 4515 scalar_fn: 4516 kind: binary 4517 fn_name: mul 4518 operands: 4519 - !ScalarExpression 4520 scalar_fn: 4521 kind: type 4522 fn_name: cast_signed 4523 type_var: U 4524 operands: 4525 - !ScalarExpression 4526 scalar_arg: I 4527 - !ScalarExpression 4528 scalar_fn: 4529 kind: type 4530 fn_name: cast_signed 4531 type_var: U 4532 operands: 4533 - !ScalarExpression 4534 scalar_arg: K 4535--- !LinalgOpConfig 4536metadata: !LinalgOpMetadata 4537 name: depthwise_conv_2d_nchw_chw 4538 cpp_class_name: DepthwiseConv2DNchwChwOp 4539 doc: |- 4540 Performs depth-wise 2-D convolution. 4541 4542 Numeric casting is performed on the operands to the inner multiply, promoting 4543 them to the same data type as the accumulator/output. Multiplier is set to 1 4544 which is a special case for most depthwise convolutions. 4545 implements: 4546 - LinalgConvolutionOpInterface 4547structured_op: !LinalgStructuredOpConfig 4548 args: 4549 - !LinalgOperandDefConfig 4550 name: I 4551 kind: input_tensor 4552 type_var: T1 4553 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s0, s1, s2 4554 * s3 + s4 * s5, s6 * s7 + s8 * s9)> 4555 - !LinalgOperandDefConfig 4556 name: K 4557 kind: input_tensor 4558 type_var: T2 4559 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s1, s4, s8)> 4560 - !LinalgOperandDefConfig 4561 name: O 4562 kind: output_tensor 4563 type_var: U 4564 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s0, s1, s2, 4565 s6)> 4566 - !LinalgOperandDefConfig 4567 name: strides 4568 kind: index_attr 4569 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s3, 4570 s7)> 4571 default_indices: 4572 - 1 4573 - 1 4574 - !LinalgOperandDefConfig 4575 name: dilations 4576 kind: index_attr 4577 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s5, 4578 s9)> 4579 default_indices: 4580 - 1 4581 - 1 4582 indexing_maps: !LinalgIndexingMapsConfig 4583 static_indexing_maps: 4584 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] 4585 -> (d0, d3, d1 * s3 + d4 * s5, d2 * s7 + d5 * s9)> 4586 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] 4587 -> (d3, d4, d5)> 4588 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] 4589 -> (d0, d3, d1, d2)> 4590 iterator_types: 4591 - parallel 4592 - parallel 4593 - parallel 4594 - parallel 4595 - reduction 4596 - reduction 4597 assignments: 4598 - !ScalarAssign 4599 arg: O 4600 value: !ScalarExpression 4601 scalar_fn: 4602 kind: binary 4603 fn_name: add 4604 operands: 4605 - !ScalarExpression 4606 scalar_arg: O 4607 - !ScalarExpression 4608 scalar_fn: 4609 kind: binary 4610 fn_name: mul 4611 operands: 4612 - !ScalarExpression 4613 scalar_fn: 4614 kind: type 4615 fn_name: cast_signed 4616 type_var: U 4617 operands: 4618 - !ScalarExpression 4619 scalar_arg: I 4620 - !ScalarExpression 4621 scalar_fn: 4622 kind: type 4623 fn_name: cast_signed 4624 type_var: U 4625 operands: 4626 - !ScalarExpression 4627 scalar_arg: K 4628--- !LinalgOpConfig 4629metadata: !LinalgOpMetadata 4630 name: depthwise_conv_2d_nhwc_hwc_q 4631 cpp_class_name: DepthwiseConv2DNhwcHwcQOp 4632 doc: |- 4633 Performs depth-wise 2-D convolution. 4634 4635 Numeric casting is performed on the operands to the inner multiply, promoting 4636 them to the same data type as the accumulator/output. 4637 implements: 4638 - LinalgConvolutionOpInterface 4639structured_op: !LinalgStructuredOpConfig 4640 args: 4641 - !LinalgOperandDefConfig 4642 name: I 4643 kind: input_tensor 4644 type_var: T1 4645 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s0, s1 * 4646 s2 + s3 * s4, s5 * s6 + s7 * s8, s9)> 4647 - !LinalgOperandDefConfig 4648 name: K 4649 kind: input_tensor 4650 type_var: T2 4651 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s3, s7, s9)> 4652 - !LinalgOperandDefConfig 4653 name: IZp 4654 kind: scalar 4655 type_var: I32 4656 - !LinalgOperandDefConfig 4657 name: KZp 4658 kind: scalar 4659 type_var: I32 4660 - !LinalgOperandDefConfig 4661 name: O 4662 kind: output_tensor 4663 type_var: U 4664 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s0, s1, s5, 4665 s9)> 4666 - !LinalgOperandDefConfig 4667 name: strides 4668 kind: index_attr 4669 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s2, 4670 s6)> 4671 default_indices: 4672 - 1 4673 - 1 4674 - !LinalgOperandDefConfig 4675 name: dilations 4676 kind: index_attr 4677 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s4, 4678 s8)> 4679 default_indices: 4680 - 1 4681 - 1 4682 indexing_maps: !LinalgIndexingMapsConfig 4683 static_indexing_maps: 4684 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] 4685 -> (d0, d1 * s2 + d4 * s4, d2 * s6 + d5 * s8, d3)> 4686 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] 4687 -> (d4, d5, d3)> 4688 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] 4689 -> ()> 4690 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] 4691 -> ()> 4692 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] 4693 -> (d0, d1, d2, d3)> 4694 iterator_types: 4695 - parallel 4696 - parallel 4697 - parallel 4698 - parallel 4699 - reduction 4700 - reduction 4701 assignments: 4702 - !ScalarAssign 4703 arg: O 4704 value: !ScalarExpression 4705 scalar_fn: 4706 kind: binary 4707 fn_name: add 4708 operands: 4709 - !ScalarExpression 4710 scalar_arg: O 4711 - !ScalarExpression 4712 scalar_fn: 4713 kind: binary 4714 fn_name: mul 4715 operands: 4716 - !ScalarExpression 4717 scalar_fn: 4718 kind: binary 4719 fn_name: sub 4720 operands: 4721 - !ScalarExpression 4722 scalar_fn: 4723 kind: type 4724 fn_name: cast_signed 4725 type_var: U 4726 operands: 4727 - !ScalarExpression 4728 scalar_arg: I 4729 - !ScalarExpression 4730 scalar_fn: 4731 kind: type 4732 fn_name: cast_signed 4733 type_var: U 4734 operands: 4735 - !ScalarExpression 4736 scalar_arg: IZp 4737 - !ScalarExpression 4738 scalar_fn: 4739 kind: binary 4740 fn_name: sub 4741 operands: 4742 - !ScalarExpression 4743 scalar_fn: 4744 kind: type 4745 fn_name: cast_signed 4746 type_var: U 4747 operands: 4748 - !ScalarExpression 4749 scalar_arg: K 4750 - !ScalarExpression 4751 scalar_fn: 4752 kind: type 4753 fn_name: cast_signed 4754 type_var: U 4755 operands: 4756 - !ScalarExpression 4757 scalar_arg: KZp 4758--- !LinalgOpConfig 4759metadata: !LinalgOpMetadata 4760 name: depthwise_conv_2d_nhwc_hwcm 4761 cpp_class_name: DepthwiseConv2DNhwcHwcmOp 4762 doc: |- 4763 Performs depth-wise 2-D convolution. 4764 4765 Numeric casting is performed on the operands to the inner multiply, promoting 4766 them to the same data type as the accumulator/output. 4767 implements: 4768 - LinalgConvolutionOpInterface 4769structured_op: !LinalgStructuredOpConfig 4770 args: 4771 - !LinalgOperandDefConfig 4772 name: I 4773 kind: input_tensor 4774 type_var: T1 4775 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> (s0, 4776 s1 * s2 + s3 * s4, s5 * s6 + s7 * s8, s9)> 4777 - !LinalgOperandDefConfig 4778 name: K 4779 kind: input_tensor 4780 type_var: T2 4781 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> (s3, 4782 s7, s9, s10)> 4783 - !LinalgOperandDefConfig 4784 name: O 4785 kind: output_tensor 4786 type_var: U 4787 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> (s0, 4788 s1, s5, s9, s10)> 4789 - !LinalgOperandDefConfig 4790 name: strides 4791 kind: index_attr 4792 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> 4793 (s2, s6)> 4794 default_indices: 4795 - 1 4796 - 1 4797 - !LinalgOperandDefConfig 4798 name: dilations 4799 kind: index_attr 4800 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> 4801 (s4, s8)> 4802 default_indices: 4803 - 1 4804 - 1 4805 indexing_maps: !LinalgIndexingMapsConfig 4806 static_indexing_maps: 4807 - affine_map<(d0, d1, d2, d3, d4, d5, d6)[s0, s1, s2, s3, s4, s5, s6, s7, s8, 4808 s9, s10] -> (d0, d1 * s2 + d5 * s4, d2 * s6 + d6 * s8, d3)> 4809 - affine_map<(d0, d1, d2, d3, d4, d5, d6)[s0, s1, s2, s3, s4, s5, s6, s7, s8, 4810 s9, s10] -> (d5, d6, d3, d4)> 4811 - affine_map<(d0, d1, d2, d3, d4, d5, d6)[s0, s1, s2, s3, s4, s5, s6, s7, s8, 4812 s9, s10] -> (d0, d1, d2, d3, d4)> 4813 iterator_types: 4814 - parallel 4815 - parallel 4816 - parallel 4817 - parallel 4818 - parallel 4819 - reduction 4820 - reduction 4821 assignments: 4822 - !ScalarAssign 4823 arg: O 4824 value: !ScalarExpression 4825 scalar_fn: 4826 kind: binary 4827 fn_name: add 4828 operands: 4829 - !ScalarExpression 4830 scalar_arg: O 4831 - !ScalarExpression 4832 scalar_fn: 4833 kind: binary 4834 fn_name: mul 4835 operands: 4836 - !ScalarExpression 4837 scalar_fn: 4838 kind: type 4839 fn_name: cast_signed 4840 type_var: U 4841 operands: 4842 - !ScalarExpression 4843 scalar_arg: I 4844 - !ScalarExpression 4845 scalar_fn: 4846 kind: type 4847 fn_name: cast_signed 4848 type_var: U 4849 operands: 4850 - !ScalarExpression 4851 scalar_arg: K 4852--- !LinalgOpConfig 4853metadata: !LinalgOpMetadata 4854 name: depthwise_conv_2d_nhwc_hwcm_q 4855 cpp_class_name: DepthwiseConv2DNhwcHwcmQOp 4856 doc: |- 4857 Performs depth-wise 2-D convolution. 4858 4859 Numeric casting is performed on the operands to the inner multiply, promoting 4860 them to the same data type as the accumulator/output. 4861 implements: 4862 - LinalgConvolutionOpInterface 4863structured_op: !LinalgStructuredOpConfig 4864 args: 4865 - !LinalgOperandDefConfig 4866 name: I 4867 kind: input_tensor 4868 type_var: T1 4869 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> (s0, 4870 s1 * s2 + s3 * s4, s5 * s6 + s7 * s8, s9)> 4871 - !LinalgOperandDefConfig 4872 name: K 4873 kind: input_tensor 4874 type_var: T2 4875 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> (s3, 4876 s7, s9, s10)> 4877 - !LinalgOperandDefConfig 4878 name: IZp 4879 kind: scalar 4880 type_var: I32 4881 - !LinalgOperandDefConfig 4882 name: KZp 4883 kind: scalar 4884 type_var: I32 4885 - !LinalgOperandDefConfig 4886 name: O 4887 kind: output_tensor 4888 type_var: U 4889 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> (s0, 4890 s1, s5, s9, s10)> 4891 - !LinalgOperandDefConfig 4892 name: strides 4893 kind: index_attr 4894 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> 4895 (s2, s6)> 4896 default_indices: 4897 - 1 4898 - 1 4899 - !LinalgOperandDefConfig 4900 name: dilations 4901 kind: index_attr 4902 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10] -> 4903 (s4, s8)> 4904 default_indices: 4905 - 1 4906 - 1 4907 indexing_maps: !LinalgIndexingMapsConfig 4908 static_indexing_maps: 4909 - affine_map<(d0, d1, d2, d3, d4, d5, d6)[s0, s1, s2, s3, s4, s5, s6, s7, s8, 4910 s9, s10] -> (d0, d1 * s2 + d5 * s4, d2 * s6 + d6 * s8, d3)> 4911 - affine_map<(d0, d1, d2, d3, d4, d5, d6)[s0, s1, s2, s3, s4, s5, s6, s7, s8, 4912 s9, s10] -> (d5, d6, d3, d4)> 4913 - affine_map<(d0, d1, d2, d3, d4, d5, d6)[s0, s1, s2, s3, s4, s5, s6, s7, s8, 4914 s9, s10] -> ()> 4915 - affine_map<(d0, d1, d2, d3, d4, d5, d6)[s0, s1, s2, s3, s4, s5, s6, s7, s8, 4916 s9, s10] -> ()> 4917 - affine_map<(d0, d1, d2, d3, d4, d5, d6)[s0, s1, s2, s3, s4, s5, s6, s7, s8, 4918 s9, s10] -> (d0, d1, d2, d3, d4)> 4919 iterator_types: 4920 - parallel 4921 - parallel 4922 - parallel 4923 - parallel 4924 - parallel 4925 - reduction 4926 - reduction 4927 assignments: 4928 - !ScalarAssign 4929 arg: O 4930 value: !ScalarExpression 4931 scalar_fn: 4932 kind: binary 4933 fn_name: add 4934 operands: 4935 - !ScalarExpression 4936 scalar_arg: O 4937 - !ScalarExpression 4938 scalar_fn: 4939 kind: binary 4940 fn_name: mul 4941 operands: 4942 - !ScalarExpression 4943 scalar_fn: 4944 kind: binary 4945 fn_name: sub 4946 operands: 4947 - !ScalarExpression 4948 scalar_fn: 4949 kind: type 4950 fn_name: cast_signed 4951 type_var: U 4952 operands: 4953 - !ScalarExpression 4954 scalar_arg: I 4955 - !ScalarExpression 4956 scalar_fn: 4957 kind: type 4958 fn_name: cast_signed 4959 type_var: U 4960 operands: 4961 - !ScalarExpression 4962 scalar_arg: IZp 4963 - !ScalarExpression 4964 scalar_fn: 4965 kind: binary 4966 fn_name: sub 4967 operands: 4968 - !ScalarExpression 4969 scalar_fn: 4970 kind: type 4971 fn_name: cast_signed 4972 type_var: U 4973 operands: 4974 - !ScalarExpression 4975 scalar_arg: K 4976 - !ScalarExpression 4977 scalar_fn: 4978 kind: type 4979 fn_name: cast_signed 4980 type_var: U 4981 operands: 4982 - !ScalarExpression 4983 scalar_arg: KZp 4984--- !LinalgOpConfig 4985metadata: !LinalgOpMetadata 4986 name: depthwise_conv_3d_ndhwc_dhwc 4987 cpp_class_name: DepthwiseConv3DNdhwcDhwcOp 4988 doc: |- 4989 Performs depth-wise 3-D convolution. 4990 4991 Numeric casting is performed on the operands to the inner multiply, promoting 4992 them to the same data type as the accumulator/output. Multiplier is set to 1 4993 which is a special case for most depthwise convolutions. 4994 implements: 4995 - LinalgConvolutionOpInterface 4996structured_op: !LinalgStructuredOpConfig 4997 args: 4998 - !LinalgOperandDefConfig 4999 name: I 5000 kind: input_tensor 5001 type_var: T1 5002 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, 5003 s13] -> (s0, s1 * s2 + s3 * s4, s5 * s6 + s7 * s8, s9 * s10 + s11 * s12, s13)> 5004 - !LinalgOperandDefConfig 5005 name: K 5006 kind: input_tensor 5007 type_var: T2 5008 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, 5009 s13] -> (s3, s7, s11, s13)> 5010 - !LinalgOperandDefConfig 5011 name: O 5012 kind: output_tensor 5013 type_var: U 5014 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, 5015 s13] -> (s0, s1, s5, s9)> 5016 - !LinalgOperandDefConfig 5017 name: strides 5018 kind: index_attr 5019 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, 5020 s12, s13] -> (s2, s6, s10)> 5021 default_indices: 5022 - 1 5023 - 1 5024 - 1 5025 - !LinalgOperandDefConfig 5026 name: dilations 5027 kind: index_attr 5028 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, 5029 s12, s13] -> (s4, s8, s12)> 5030 default_indices: 5031 - 1 5032 - 1 5033 - 1 5034 indexing_maps: !LinalgIndexingMapsConfig 5035 static_indexing_maps: 5036 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7, 5037 s8, s9, s10, s11, s12, s13] -> (d0, d1 * s2 + d4 * s4, d2 * s6 + d5 * s8, d3 5038 * s10 + d6 * s12, d7)> 5039 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7, 5040 s8, s9, s10, s11, s12, s13] -> (d4, d5, d6, d7)> 5041 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7, 5042 s8, s9, s10, s11, s12, s13] -> (d0, d1, d2, d3, d7)> 5043 iterator_types: 5044 - parallel 5045 - parallel 5046 - parallel 5047 - parallel 5048 - reduction 5049 - reduction 5050 - reduction 5051 - parallel 5052 assignments: 5053 - !ScalarAssign 5054 arg: O 5055 value: !ScalarExpression 5056 scalar_fn: 5057 kind: binary 5058 fn_name: add 5059 operands: 5060 - !ScalarExpression 5061 scalar_arg: O 5062 - !ScalarExpression 5063 scalar_fn: 5064 kind: binary 5065 fn_name: mul 5066 operands: 5067 - !ScalarExpression 5068 scalar_fn: 5069 kind: type 5070 fn_name: cast_signed 5071 type_var: U 5072 operands: 5073 - !ScalarExpression 5074 scalar_arg: I 5075 - !ScalarExpression 5076 scalar_fn: 5077 kind: type 5078 fn_name: cast_signed 5079 type_var: U 5080 operands: 5081 - !ScalarExpression 5082 scalar_arg: K 5083--- !LinalgOpConfig 5084metadata: !LinalgOpMetadata 5085 name: depthwise_conv_3d_ncdhw_cdhw 5086 cpp_class_name: DepthwiseConv3DNcdhwCdhwOp 5087 doc: |- 5088 Performs depth-wise 3-D convolution. 5089 5090 Numeric casting is performed on the operands to the inner multiply, promoting 5091 them to the same data type as the accumulator/output. Multiplier is set to 1 5092 which is a special case for most depthwise convolutions. 5093 implements: 5094 - LinalgConvolutionOpInterface 5095structured_op: !LinalgStructuredOpConfig 5096 args: 5097 - !LinalgOperandDefConfig 5098 name: I 5099 kind: input_tensor 5100 type_var: T1 5101 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, 5102 s13] -> (s0, s1, s2 * s3 + s4 * s5, s6 * s7 + s8 * s9, s10 * s11 + s12 * s13)> 5103 - !LinalgOperandDefConfig 5104 name: K 5105 kind: input_tensor 5106 type_var: T2 5107 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, 5108 s13] -> (s1, s4, s8, s12)> 5109 - !LinalgOperandDefConfig 5110 name: O 5111 kind: output_tensor 5112 type_var: U 5113 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, 5114 s13] -> (s0, s1, s2, s6, s10)> 5115 - !LinalgOperandDefConfig 5116 name: strides 5117 kind: index_attr 5118 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, 5119 s12, s13] -> (s3, s7, s11)> 5120 default_indices: 5121 - 1 5122 - 1 5123 - 1 5124 - !LinalgOperandDefConfig 5125 name: dilations 5126 kind: index_attr 5127 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, 5128 s12, s13] -> (s5, s9, s13)> 5129 default_indices: 5130 - 1 5131 - 1 5132 - 1 5133 indexing_maps: !LinalgIndexingMapsConfig 5134 static_indexing_maps: 5135 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7, 5136 s8, s9, s10, s11, s12, s13] -> (d0, d7, d1 * s3 + d4 * s5, d2 * s7 + d5 * s9, 5137 d3 * s11 + d6 * s13)> 5138 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7, 5139 s8, s9, s10, s11, s12, s13] -> (d7, d4, d5, d6)> 5140 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7, 5141 s8, s9, s10, s11, s12, s13] -> (d0, d7, d1, d2, d3)> 5142 iterator_types: 5143 - parallel 5144 - parallel 5145 - parallel 5146 - parallel 5147 - reduction 5148 - reduction 5149 - reduction 5150 - parallel 5151 assignments: 5152 - !ScalarAssign 5153 arg: O 5154 value: !ScalarExpression 5155 scalar_fn: 5156 kind: binary 5157 fn_name: add 5158 operands: 5159 - !ScalarExpression 5160 scalar_arg: O 5161 - !ScalarExpression 5162 scalar_fn: 5163 kind: binary 5164 fn_name: mul 5165 operands: 5166 - !ScalarExpression 5167 scalar_fn: 5168 kind: type 5169 fn_name: cast_signed 5170 type_var: U 5171 operands: 5172 - !ScalarExpression 5173 scalar_arg: I 5174 - !ScalarExpression 5175 scalar_fn: 5176 kind: type 5177 fn_name: cast_signed 5178 type_var: U 5179 operands: 5180 - !ScalarExpression 5181 scalar_arg: K 5182--- !LinalgOpConfig 5183metadata: !LinalgOpMetadata 5184 name: depthwise_conv_3d_ndhwc_dhwcm 5185 cpp_class_name: DepthwiseConv3DNdhwcDhwcmOp 5186 doc: |- 5187 Performs depth-wise 3-D convolution. 5188 5189 Numeric casting is performed on the operands to the inner multiply, promoting 5190 them to the same data type as the accumulator/output. 5191 implements: 5192 - LinalgConvolutionOpInterface 5193structured_op: !LinalgStructuredOpConfig 5194 args: 5195 - !LinalgOperandDefConfig 5196 name: I 5197 kind: input_tensor 5198 type_var: T1 5199 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, 5200 s13, s14] -> (s0, s1 * s2 + s3 * s4, s5 * s6 + s7 * s8, s9 * s10 + s11 * s12, 5201 s13)> 5202 - !LinalgOperandDefConfig 5203 name: K 5204 kind: input_tensor 5205 type_var: T2 5206 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, 5207 s13, s14] -> (s3, s7, s11, s13, s14)> 5208 - !LinalgOperandDefConfig 5209 name: O 5210 kind: output_tensor 5211 type_var: U 5212 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, 5213 s13, s14] -> (s0, s1, s5, s9, s14)> 5214 - !LinalgOperandDefConfig 5215 name: strides 5216 kind: index_attr 5217 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, 5218 s12, s13, s14] -> (s2, s6, s10)> 5219 default_indices: 5220 - 1 5221 - 1 5222 - 1 5223 - !LinalgOperandDefConfig 5224 name: dilations 5225 kind: index_attr 5226 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, 5227 s12, s13, s14] -> (s4, s8, s12)> 5228 default_indices: 5229 - 1 5230 - 1 5231 - 1 5232 indexing_maps: !LinalgIndexingMapsConfig 5233 static_indexing_maps: 5234 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7, d8)[s0, s1, s2, s3, s4, s5, s6, 5235 s7, s8, s9, s10, s11, s12, s13, s14] -> (d0, d1 * s2 + d5 * s4, d2 * s6 + d6 5236 * s8, d3 * s10 + d7 * s12, d8)> 5237 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7, d8)[s0, s1, s2, s3, s4, s5, s6, 5238 s7, s8, s9, s10, s11, s12, s13, s14] -> (d5, d6, d7, d8, d4)> 5239 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7, d8)[s0, s1, s2, s3, s4, s5, s6, 5240 s7, s8, s9, s10, s11, s12, s13, s14] -> (d0, d1, d2, d3, d8, d4)> 5241 iterator_types: 5242 - parallel 5243 - parallel 5244 - parallel 5245 - parallel 5246 - parallel 5247 - reduction 5248 - reduction 5249 - reduction 5250 - parallel 5251 assignments: 5252 - !ScalarAssign 5253 arg: O 5254 value: !ScalarExpression 5255 scalar_fn: 5256 kind: binary 5257 fn_name: add 5258 operands: 5259 - !ScalarExpression 5260 scalar_arg: O 5261 - !ScalarExpression 5262 scalar_fn: 5263 kind: binary 5264 fn_name: mul 5265 operands: 5266 - !ScalarExpression 5267 scalar_fn: 5268 kind: type 5269 fn_name: cast_signed 5270 type_var: U 5271 operands: 5272 - !ScalarExpression 5273 scalar_arg: I 5274 - !ScalarExpression 5275 scalar_fn: 5276 kind: type 5277 fn_name: cast_signed 5278 type_var: U 5279 operands: 5280 - !ScalarExpression 5281 scalar_arg: K 5282--- !LinalgOpConfig 5283metadata: !LinalgOpMetadata 5284 name: pooling_nhwc_sum 5285 cpp_class_name: PoolingNhwcSumOp 5286 doc: |- 5287 Performs sum pooling. 5288 5289 Layout: 5290 * Input: NHWC. 5291 * Kernel: HW. 5292 5293 Numeric casting is performed on the input operand, promoting it to the same 5294 data type as the accumulator/output. 5295 implements: 5296 - LinalgConvolutionOpInterface 5297structured_op: !LinalgStructuredOpConfig 5298 args: 5299 - !LinalgOperandDefConfig 5300 name: I 5301 kind: input_tensor 5302 type_var: T1 5303 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s0, s1 * 5304 s2 + s3 * s4, s5 * s6 + s7 * s8, s9)> 5305 - !LinalgOperandDefConfig 5306 name: K 5307 kind: input_tensor 5308 type_var: T2 5309 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s3, s7)> 5310 - !LinalgOperandDefConfig 5311 name: O 5312 kind: output_tensor 5313 type_var: U 5314 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s0, s1, s5, 5315 s9)> 5316 - !LinalgOperandDefConfig 5317 name: strides 5318 kind: index_attr 5319 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s2, 5320 s6)> 5321 default_indices: 5322 - 1 5323 - 1 5324 - !LinalgOperandDefConfig 5325 name: dilations 5326 kind: index_attr 5327 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s4, 5328 s8)> 5329 default_indices: 5330 - 1 5331 - 1 5332 indexing_maps: !LinalgIndexingMapsConfig 5333 static_indexing_maps: 5334 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] 5335 -> (d0, d1 * s2 + d4 * s4, d2 * s6 + d5 * s8, d3)> 5336 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] 5337 -> (d4, d5)> 5338 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] 5339 -> (d0, d1, d2, d3)> 5340 iterator_types: 5341 - parallel 5342 - parallel 5343 - parallel 5344 - parallel 5345 - reduction 5346 - reduction 5347 assignments: 5348 - !ScalarAssign 5349 arg: O 5350 value: !ScalarExpression 5351 scalar_fn: 5352 kind: binary 5353 fn_name: add 5354 operands: 5355 - !ScalarExpression 5356 scalar_arg: O 5357 - !ScalarExpression 5358 scalar_fn: 5359 kind: type 5360 fn_name: cast_signed 5361 type_var: U 5362 operands: 5363 - !ScalarExpression 5364 scalar_arg: I 5365--- !LinalgOpConfig 5366metadata: !LinalgOpMetadata 5367 name: pooling_nchw_sum 5368 cpp_class_name: PoolingNchwSumOp 5369 doc: |- 5370 Performs sum pooling. 5371 5372 Layout: 5373 * Input: NCHW. 5374 * Kernel: HW. 5375 5376 Numeric casting is performed on the input operand, promoting it to the same 5377 data type as the accumulator/output. 5378 implements: 5379 - LinalgConvolutionOpInterface 5380structured_op: !LinalgStructuredOpConfig 5381 args: 5382 - !LinalgOperandDefConfig 5383 name: I 5384 kind: input_tensor 5385 type_var: T1 5386 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s0, s1, s2 5387 * s3 + s4 * s5, s6 * s7 + s8 * s9)> 5388 - !LinalgOperandDefConfig 5389 name: K 5390 kind: input_tensor 5391 type_var: T2 5392 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s4, s8)> 5393 - !LinalgOperandDefConfig 5394 name: O 5395 kind: output_tensor 5396 type_var: U 5397 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s0, s1, s2, 5398 s6)> 5399 - !LinalgOperandDefConfig 5400 name: strides 5401 kind: index_attr 5402 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s3, 5403 s7)> 5404 default_indices: 5405 - 1 5406 - 1 5407 - !LinalgOperandDefConfig 5408 name: dilations 5409 kind: index_attr 5410 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s5, 5411 s9)> 5412 default_indices: 5413 - 1 5414 - 1 5415 indexing_maps: !LinalgIndexingMapsConfig 5416 static_indexing_maps: 5417 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] 5418 -> (d0, d1, d2 * s3 + d4 * s5, d3 * s7 + d5 * s9)> 5419 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] 5420 -> (d4, d5)> 5421 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] 5422 -> (d0, d1, d2, d3)> 5423 iterator_types: 5424 - parallel 5425 - parallel 5426 - parallel 5427 - parallel 5428 - reduction 5429 - reduction 5430 assignments: 5431 - !ScalarAssign 5432 arg: O 5433 value: !ScalarExpression 5434 scalar_fn: 5435 kind: binary 5436 fn_name: add 5437 operands: 5438 - !ScalarExpression 5439 scalar_arg: O 5440 - !ScalarExpression 5441 scalar_fn: 5442 kind: type 5443 fn_name: cast_signed 5444 type_var: U 5445 operands: 5446 - !ScalarExpression 5447 scalar_arg: I 5448--- !LinalgOpConfig 5449metadata: !LinalgOpMetadata 5450 name: pooling_nhwc_max 5451 cpp_class_name: PoolingNhwcMaxOp 5452 doc: |- 5453 Performs max pooling. 5454 5455 Numeric casting is performed on the input operand, promoting it to the same 5456 data type as the accumulator/output. 5457 implements: 5458 - LinalgConvolutionOpInterface 5459structured_op: !LinalgStructuredOpConfig 5460 args: 5461 - !LinalgOperandDefConfig 5462 name: I 5463 kind: input_tensor 5464 type_var: T1 5465 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s0, s1 * 5466 s2 + s3 * s4, s5 * s6 + s7 * s8, s9)> 5467 - !LinalgOperandDefConfig 5468 name: K 5469 kind: input_tensor 5470 type_var: T2 5471 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s3, s7)> 5472 - !LinalgOperandDefConfig 5473 name: O 5474 kind: output_tensor 5475 type_var: U 5476 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s0, s1, s5, 5477 s9)> 5478 - !LinalgOperandDefConfig 5479 name: strides 5480 kind: index_attr 5481 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s2, 5482 s6)> 5483 default_indices: 5484 - 1 5485 - 1 5486 - !LinalgOperandDefConfig 5487 name: dilations 5488 kind: index_attr 5489 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s4, 5490 s8)> 5491 default_indices: 5492 - 1 5493 - 1 5494 indexing_maps: !LinalgIndexingMapsConfig 5495 static_indexing_maps: 5496 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] 5497 -> (d0, d1 * s2 + d4 * s4, d2 * s6 + d5 * s8, d3)> 5498 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] 5499 -> (d4, d5)> 5500 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] 5501 -> (d0, d1, d2, d3)> 5502 iterator_types: 5503 - parallel 5504 - parallel 5505 - parallel 5506 - parallel 5507 - reduction 5508 - reduction 5509 assignments: 5510 - !ScalarAssign 5511 arg: O 5512 value: !ScalarExpression 5513 scalar_fn: 5514 kind: binary 5515 fn_name: max_signed 5516 operands: 5517 - !ScalarExpression 5518 scalar_arg: O 5519 - !ScalarExpression 5520 scalar_fn: 5521 kind: type 5522 fn_name: cast_signed 5523 type_var: U 5524 operands: 5525 - !ScalarExpression 5526 scalar_arg: I 5527--- !LinalgOpConfig 5528metadata: !LinalgOpMetadata 5529 name: pooling_nhwc_max_unsigned 5530 cpp_class_name: PoolingNhwcMaxUnsignedOp 5531 doc: |- 5532 Performs unsigned max pooling. 5533 5534 Numeric casting is performed on the input operand, promoting it to the same 5535 data type as the accumulator/output. 5536 implements: 5537 - LinalgConvolutionOpInterface 5538structured_op: !LinalgStructuredOpConfig 5539 args: 5540 - !LinalgOperandDefConfig 5541 name: I 5542 kind: input_tensor 5543 type_var: T1 5544 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s0, s1 * 5545 s2 + s3 * s4, s5 * s6 + s7 * s8, s9)> 5546 - !LinalgOperandDefConfig 5547 name: K 5548 kind: input_tensor 5549 type_var: T2 5550 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s3, s7)> 5551 - !LinalgOperandDefConfig 5552 name: O 5553 kind: output_tensor 5554 type_var: U 5555 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s0, s1, s5, 5556 s9)> 5557 - !LinalgOperandDefConfig 5558 name: strides 5559 kind: index_attr 5560 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s2, 5561 s6)> 5562 default_indices: 5563 - 1 5564 - 1 5565 - !LinalgOperandDefConfig 5566 name: dilations 5567 kind: index_attr 5568 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s4, 5569 s8)> 5570 default_indices: 5571 - 1 5572 - 1 5573 indexing_maps: !LinalgIndexingMapsConfig 5574 static_indexing_maps: 5575 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] 5576 -> (d0, d1 * s2 + d4 * s4, d2 * s6 + d5 * s8, d3)> 5577 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] 5578 -> (d4, d5)> 5579 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] 5580 -> (d0, d1, d2, d3)> 5581 iterator_types: 5582 - parallel 5583 - parallel 5584 - parallel 5585 - parallel 5586 - reduction 5587 - reduction 5588 assignments: 5589 - !ScalarAssign 5590 arg: O 5591 value: !ScalarExpression 5592 scalar_fn: 5593 kind: binary 5594 fn_name: max_unsigned 5595 operands: 5596 - !ScalarExpression 5597 scalar_arg: O 5598 - !ScalarExpression 5599 scalar_fn: 5600 kind: type 5601 fn_name: cast_unsigned 5602 type_var: U 5603 operands: 5604 - !ScalarExpression 5605 scalar_arg: I 5606--- !LinalgOpConfig 5607metadata: !LinalgOpMetadata 5608 name: pooling_nchw_max 5609 cpp_class_name: PoolingNchwMaxOp 5610 doc: |- 5611 Performs max pooling. 5612 5613 Numeric casting is performed on the input operand, promoting it to the same 5614 data type as the accumulator/output. 5615 implements: 5616 - LinalgConvolutionOpInterface 5617structured_op: !LinalgStructuredOpConfig 5618 args: 5619 - !LinalgOperandDefConfig 5620 name: I 5621 kind: input_tensor 5622 type_var: T1 5623 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s0, s1, s2 5624 * s3 + s4 * s5, s6 * s7 + s8 * s9)> 5625 - !LinalgOperandDefConfig 5626 name: K 5627 kind: input_tensor 5628 type_var: T2 5629 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s4, s8)> 5630 - !LinalgOperandDefConfig 5631 name: O 5632 kind: output_tensor 5633 type_var: U 5634 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s0, s1, s2, 5635 s6)> 5636 - !LinalgOperandDefConfig 5637 name: strides 5638 kind: index_attr 5639 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s3, 5640 s7)> 5641 default_indices: 5642 - 1 5643 - 1 5644 - !LinalgOperandDefConfig 5645 name: dilations 5646 kind: index_attr 5647 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s5, 5648 s9)> 5649 default_indices: 5650 - 1 5651 - 1 5652 indexing_maps: !LinalgIndexingMapsConfig 5653 static_indexing_maps: 5654 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] 5655 -> (d0, d1, d2 * s3 + d4 * s5, d3 * s7 + d5 * s9)> 5656 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] 5657 -> (d4, d5)> 5658 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] 5659 -> (d0, d1, d2, d3)> 5660 iterator_types: 5661 - parallel 5662 - parallel 5663 - parallel 5664 - parallel 5665 - reduction 5666 - reduction 5667 assignments: 5668 - !ScalarAssign 5669 arg: O 5670 value: !ScalarExpression 5671 scalar_fn: 5672 kind: binary 5673 fn_name: max_signed 5674 operands: 5675 - !ScalarExpression 5676 scalar_arg: O 5677 - !ScalarExpression 5678 scalar_fn: 5679 kind: type 5680 fn_name: cast_signed 5681 type_var: U 5682 operands: 5683 - !ScalarExpression 5684 scalar_arg: I 5685--- !LinalgOpConfig 5686metadata: !LinalgOpMetadata 5687 name: pooling_nhwc_min 5688 cpp_class_name: PoolingNhwcMinOp 5689 doc: |- 5690 Performs min pooling. 5691 5692 Numeric casting is performed on the input operand, promoting it to the same 5693 data type as the accumulator/output. 5694 implements: 5695 - LinalgConvolutionOpInterface 5696structured_op: !LinalgStructuredOpConfig 5697 args: 5698 - !LinalgOperandDefConfig 5699 name: I 5700 kind: input_tensor 5701 type_var: T1 5702 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s0, s1 * 5703 s2 + s3 * s4, s5 * s6 + s7 * s8, s9)> 5704 - !LinalgOperandDefConfig 5705 name: K 5706 kind: input_tensor 5707 type_var: T2 5708 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s3, s7)> 5709 - !LinalgOperandDefConfig 5710 name: O 5711 kind: output_tensor 5712 type_var: U 5713 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s0, s1, s5, 5714 s9)> 5715 - !LinalgOperandDefConfig 5716 name: strides 5717 kind: index_attr 5718 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s2, 5719 s6)> 5720 default_indices: 5721 - 1 5722 - 1 5723 - !LinalgOperandDefConfig 5724 name: dilations 5725 kind: index_attr 5726 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s4, 5727 s8)> 5728 default_indices: 5729 - 1 5730 - 1 5731 indexing_maps: !LinalgIndexingMapsConfig 5732 static_indexing_maps: 5733 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] 5734 -> (d0, d1 * s2 + d4 * s4, d2 * s6 + d5 * s8, d3)> 5735 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] 5736 -> (d4, d5)> 5737 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] 5738 -> (d0, d1, d2, d3)> 5739 iterator_types: 5740 - parallel 5741 - parallel 5742 - parallel 5743 - parallel 5744 - reduction 5745 - reduction 5746 assignments: 5747 - !ScalarAssign 5748 arg: O 5749 value: !ScalarExpression 5750 scalar_fn: 5751 kind: binary 5752 fn_name: min_signed 5753 operands: 5754 - !ScalarExpression 5755 scalar_arg: O 5756 - !ScalarExpression 5757 scalar_fn: 5758 kind: type 5759 fn_name: cast_signed 5760 type_var: U 5761 operands: 5762 - !ScalarExpression 5763 scalar_arg: I 5764--- !LinalgOpConfig 5765metadata: !LinalgOpMetadata 5766 name: pooling_nhwc_min_unsigned 5767 cpp_class_name: PoolingNhwcMinUnsignedOp 5768 doc: |- 5769 Performs unsigned min pooling. 5770 5771 Numeric casting is performed on the input operand, promoting it to the same 5772 data type as the accumulator/output. 5773 implements: 5774 - LinalgConvolutionOpInterface 5775structured_op: !LinalgStructuredOpConfig 5776 args: 5777 - !LinalgOperandDefConfig 5778 name: I 5779 kind: input_tensor 5780 type_var: T1 5781 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s0, s1 * 5782 s2 + s3 * s4, s5 * s6 + s7 * s8, s9)> 5783 - !LinalgOperandDefConfig 5784 name: K 5785 kind: input_tensor 5786 type_var: T2 5787 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s3, s7)> 5788 - !LinalgOperandDefConfig 5789 name: O 5790 kind: output_tensor 5791 type_var: U 5792 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s0, s1, s5, 5793 s9)> 5794 - !LinalgOperandDefConfig 5795 name: strides 5796 kind: index_attr 5797 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s2, 5798 s6)> 5799 default_indices: 5800 - 1 5801 - 1 5802 - !LinalgOperandDefConfig 5803 name: dilations 5804 kind: index_attr 5805 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] -> (s4, 5806 s8)> 5807 default_indices: 5808 - 1 5809 - 1 5810 indexing_maps: !LinalgIndexingMapsConfig 5811 static_indexing_maps: 5812 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] 5813 -> (d0, d1 * s2 + d4 * s4, d2 * s6 + d5 * s8, d3)> 5814 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] 5815 -> (d4, d5)> 5816 - affine_map<(d0, d1, d2, d3, d4, d5)[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9] 5817 -> (d0, d1, d2, d3)> 5818 iterator_types: 5819 - parallel 5820 - parallel 5821 - parallel 5822 - parallel 5823 - reduction 5824 - reduction 5825 assignments: 5826 - !ScalarAssign 5827 arg: O 5828 value: !ScalarExpression 5829 scalar_fn: 5830 kind: binary 5831 fn_name: min_unsigned 5832 operands: 5833 - !ScalarExpression 5834 scalar_arg: O 5835 - !ScalarExpression 5836 scalar_fn: 5837 kind: type 5838 fn_name: cast_unsigned 5839 type_var: U 5840 operands: 5841 - !ScalarExpression 5842 scalar_arg: I 5843--- !LinalgOpConfig 5844metadata: !LinalgOpMetadata 5845 name: pooling_nwc_sum 5846 cpp_class_name: PoolingNwcSumOp 5847 doc: |- 5848 Performs sum pooling. 5849 5850 Layout: 5851 * Input: NWC. 5852 * Kernel: W. 5853 5854 Numeric casting is performed on the input operand, promoting it to the same 5855 data type as the accumulator/output. 5856 implements: 5857 - LinalgConvolutionOpInterface 5858structured_op: !LinalgStructuredOpConfig 5859 args: 5860 - !LinalgOperandDefConfig 5861 name: I 5862 kind: input_tensor 5863 type_var: T1 5864 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s0, s1 * s2 + s3 * s4, s5)> 5865 - !LinalgOperandDefConfig 5866 name: K 5867 kind: input_tensor 5868 type_var: T2 5869 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s3)> 5870 - !LinalgOperandDefConfig 5871 name: O 5872 kind: output_tensor 5873 type_var: U 5874 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s0, s1, s5)> 5875 - !LinalgOperandDefConfig 5876 name: strides 5877 kind: index_attr 5878 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s2)> 5879 default_indices: 5880 - 1 5881 - !LinalgOperandDefConfig 5882 name: dilations 5883 kind: index_attr 5884 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s4)> 5885 default_indices: 5886 - 1 5887 indexing_maps: !LinalgIndexingMapsConfig 5888 static_indexing_maps: 5889 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3, s4, s5] -> (d0, d1 * s2 + d3 * s4, 5890 d2)> 5891 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3, s4, s5] -> (d3)> 5892 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3, s4, s5] -> (d0, d1, d2)> 5893 iterator_types: 5894 - parallel 5895 - parallel 5896 - parallel 5897 - reduction 5898 assignments: 5899 - !ScalarAssign 5900 arg: O 5901 value: !ScalarExpression 5902 scalar_fn: 5903 kind: binary 5904 fn_name: add 5905 operands: 5906 - !ScalarExpression 5907 scalar_arg: O 5908 - !ScalarExpression 5909 scalar_fn: 5910 kind: type 5911 fn_name: cast_signed 5912 type_var: U 5913 operands: 5914 - !ScalarExpression 5915 scalar_arg: I 5916--- !LinalgOpConfig 5917metadata: !LinalgOpMetadata 5918 name: pooling_ncw_sum 5919 cpp_class_name: PoolingNcwSumOp 5920 doc: |- 5921 Performs sum pooling. 5922 5923 Layout: 5924 * Input: NCW. 5925 * Kernel: W. 5926 5927 Numeric casting is performed on the input operand, promoting it to the same 5928 data type as the accumulator/output. 5929 implements: 5930 - LinalgConvolutionOpInterface 5931structured_op: !LinalgStructuredOpConfig 5932 args: 5933 - !LinalgOperandDefConfig 5934 name: I 5935 kind: input_tensor 5936 type_var: T1 5937 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s0, s1, s2 * s3 + s4 * s5)> 5938 - !LinalgOperandDefConfig 5939 name: K 5940 kind: input_tensor 5941 type_var: T2 5942 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s4)> 5943 - !LinalgOperandDefConfig 5944 name: O 5945 kind: output_tensor 5946 type_var: U 5947 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s0, s1, s2)> 5948 - !LinalgOperandDefConfig 5949 name: strides 5950 kind: index_attr 5951 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s3)> 5952 default_indices: 5953 - 1 5954 - !LinalgOperandDefConfig 5955 name: dilations 5956 kind: index_attr 5957 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s5)> 5958 default_indices: 5959 - 1 5960 indexing_maps: !LinalgIndexingMapsConfig 5961 static_indexing_maps: 5962 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3, s4, s5] -> (d0, d1, d2 * s3 + d3 5963 * s5)> 5964 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3, s4, s5] -> (d3)> 5965 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3, s4, s5] -> (d0, d1, d2)> 5966 iterator_types: 5967 - parallel 5968 - parallel 5969 - parallel 5970 - reduction 5971 assignments: 5972 - !ScalarAssign 5973 arg: O 5974 value: !ScalarExpression 5975 scalar_fn: 5976 kind: binary 5977 fn_name: add 5978 operands: 5979 - !ScalarExpression 5980 scalar_arg: O 5981 - !ScalarExpression 5982 scalar_fn: 5983 kind: type 5984 fn_name: cast_signed 5985 type_var: U 5986 operands: 5987 - !ScalarExpression 5988 scalar_arg: I 5989--- !LinalgOpConfig 5990metadata: !LinalgOpMetadata 5991 name: pooling_nwc_max 5992 cpp_class_name: PoolingNwcMaxOp 5993 doc: |- 5994 Performs max pooling. 5995 5996 Numeric casting is performed on the input operand, promoting it to the same 5997 data type as the accumulator/output. 5998 implements: 5999 - LinalgConvolutionOpInterface 6000structured_op: !LinalgStructuredOpConfig 6001 args: 6002 - !LinalgOperandDefConfig 6003 name: I 6004 kind: input_tensor 6005 type_var: T1 6006 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s0, s1 * s2 + s3 * s4, s5)> 6007 - !LinalgOperandDefConfig 6008 name: K 6009 kind: input_tensor 6010 type_var: T2 6011 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s3)> 6012 - !LinalgOperandDefConfig 6013 name: O 6014 kind: output_tensor 6015 type_var: U 6016 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s0, s1, s5)> 6017 - !LinalgOperandDefConfig 6018 name: strides 6019 kind: index_attr 6020 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s2)> 6021 default_indices: 6022 - 1 6023 - !LinalgOperandDefConfig 6024 name: dilations 6025 kind: index_attr 6026 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s4)> 6027 default_indices: 6028 - 1 6029 indexing_maps: !LinalgIndexingMapsConfig 6030 static_indexing_maps: 6031 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3, s4, s5] -> (d0, d1 * s2 + d3 * s4, 6032 d2)> 6033 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3, s4, s5] -> (d3)> 6034 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3, s4, s5] -> (d0, d1, d2)> 6035 iterator_types: 6036 - parallel 6037 - parallel 6038 - parallel 6039 - reduction 6040 assignments: 6041 - !ScalarAssign 6042 arg: O 6043 value: !ScalarExpression 6044 scalar_fn: 6045 kind: binary 6046 fn_name: max_signed 6047 operands: 6048 - !ScalarExpression 6049 scalar_arg: O 6050 - !ScalarExpression 6051 scalar_fn: 6052 kind: type 6053 fn_name: cast_signed 6054 type_var: U 6055 operands: 6056 - !ScalarExpression 6057 scalar_arg: I 6058--- !LinalgOpConfig 6059metadata: !LinalgOpMetadata 6060 name: pooling_nwc_max_unsigned 6061 cpp_class_name: PoolingNwcMaxUnsignedOp 6062 doc: |- 6063 Performs unsigned max pooling. 6064 6065 Numeric casting is performed on the input operand, promoting it to the same 6066 data type as the accumulator/output. 6067 implements: 6068 - LinalgConvolutionOpInterface 6069structured_op: !LinalgStructuredOpConfig 6070 args: 6071 - !LinalgOperandDefConfig 6072 name: I 6073 kind: input_tensor 6074 type_var: T1 6075 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s0, s1 * s2 + s3 * s4, s5)> 6076 - !LinalgOperandDefConfig 6077 name: K 6078 kind: input_tensor 6079 type_var: T2 6080 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s3)> 6081 - !LinalgOperandDefConfig 6082 name: O 6083 kind: output_tensor 6084 type_var: U 6085 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s0, s1, s5)> 6086 - !LinalgOperandDefConfig 6087 name: strides 6088 kind: index_attr 6089 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s2)> 6090 default_indices: 6091 - 1 6092 - !LinalgOperandDefConfig 6093 name: dilations 6094 kind: index_attr 6095 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s4)> 6096 default_indices: 6097 - 1 6098 indexing_maps: !LinalgIndexingMapsConfig 6099 static_indexing_maps: 6100 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3, s4, s5] -> (d0, d1 * s2 + d3 * s4, 6101 d2)> 6102 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3, s4, s5] -> (d3)> 6103 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3, s4, s5] -> (d0, d1, d2)> 6104 iterator_types: 6105 - parallel 6106 - parallel 6107 - parallel 6108 - reduction 6109 assignments: 6110 - !ScalarAssign 6111 arg: O 6112 value: !ScalarExpression 6113 scalar_fn: 6114 kind: binary 6115 fn_name: max_unsigned 6116 operands: 6117 - !ScalarExpression 6118 scalar_arg: O 6119 - !ScalarExpression 6120 scalar_fn: 6121 kind: type 6122 fn_name: cast_unsigned 6123 type_var: U 6124 operands: 6125 - !ScalarExpression 6126 scalar_arg: I 6127--- !LinalgOpConfig 6128metadata: !LinalgOpMetadata 6129 name: pooling_ncw_max 6130 cpp_class_name: PoolingNcwMaxOp 6131 doc: |- 6132 Performs max pooling. 6133 6134 Numeric casting is performed on the input operand, promoting it to the same 6135 data type as the accumulator/output. 6136 implements: 6137 - LinalgConvolutionOpInterface 6138structured_op: !LinalgStructuredOpConfig 6139 args: 6140 - !LinalgOperandDefConfig 6141 name: I 6142 kind: input_tensor 6143 type_var: T1 6144 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s0, s1, s2 * s3 + s4 * s5)> 6145 - !LinalgOperandDefConfig 6146 name: K 6147 kind: input_tensor 6148 type_var: T2 6149 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s4)> 6150 - !LinalgOperandDefConfig 6151 name: O 6152 kind: output_tensor 6153 type_var: U 6154 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s0, s1, s2)> 6155 - !LinalgOperandDefConfig 6156 name: strides 6157 kind: index_attr 6158 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s3)> 6159 default_indices: 6160 - 1 6161 - !LinalgOperandDefConfig 6162 name: dilations 6163 kind: index_attr 6164 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s5)> 6165 default_indices: 6166 - 1 6167 indexing_maps: !LinalgIndexingMapsConfig 6168 static_indexing_maps: 6169 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3, s4, s5] -> (d0, d1, d2 * s3 + d3 6170 * s5)> 6171 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3, s4, s5] -> (d3)> 6172 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3, s4, s5] -> (d0, d1, d2)> 6173 iterator_types: 6174 - parallel 6175 - parallel 6176 - parallel 6177 - reduction 6178 assignments: 6179 - !ScalarAssign 6180 arg: O 6181 value: !ScalarExpression 6182 scalar_fn: 6183 kind: binary 6184 fn_name: max_signed 6185 operands: 6186 - !ScalarExpression 6187 scalar_arg: O 6188 - !ScalarExpression 6189 scalar_fn: 6190 kind: type 6191 fn_name: cast_signed 6192 type_var: U 6193 operands: 6194 - !ScalarExpression 6195 scalar_arg: I 6196--- !LinalgOpConfig 6197metadata: !LinalgOpMetadata 6198 name: pooling_nwc_min 6199 cpp_class_name: PoolingNwcMinOp 6200 doc: |- 6201 Performs min pooling. 6202 6203 Numeric casting is performed on the input operand, promoting it to the same 6204 data type as the accumulator/output. 6205 implements: 6206 - LinalgConvolutionOpInterface 6207structured_op: !LinalgStructuredOpConfig 6208 args: 6209 - !LinalgOperandDefConfig 6210 name: I 6211 kind: input_tensor 6212 type_var: T1 6213 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s0, s1 * s2 + s3 * s4, s5)> 6214 - !LinalgOperandDefConfig 6215 name: K 6216 kind: input_tensor 6217 type_var: T2 6218 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s3)> 6219 - !LinalgOperandDefConfig 6220 name: O 6221 kind: output_tensor 6222 type_var: U 6223 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s0, s1, s5)> 6224 - !LinalgOperandDefConfig 6225 name: strides 6226 kind: index_attr 6227 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s2)> 6228 default_indices: 6229 - 1 6230 - !LinalgOperandDefConfig 6231 name: dilations 6232 kind: index_attr 6233 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s4)> 6234 default_indices: 6235 - 1 6236 indexing_maps: !LinalgIndexingMapsConfig 6237 static_indexing_maps: 6238 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3, s4, s5] -> (d0, d1 * s2 + d3 * s4, 6239 d2)> 6240 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3, s4, s5] -> (d3)> 6241 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3, s4, s5] -> (d0, d1, d2)> 6242 iterator_types: 6243 - parallel 6244 - parallel 6245 - parallel 6246 - reduction 6247 assignments: 6248 - !ScalarAssign 6249 arg: O 6250 value: !ScalarExpression 6251 scalar_fn: 6252 kind: binary 6253 fn_name: min_signed 6254 operands: 6255 - !ScalarExpression 6256 scalar_arg: O 6257 - !ScalarExpression 6258 scalar_fn: 6259 kind: type 6260 fn_name: cast_signed 6261 type_var: U 6262 operands: 6263 - !ScalarExpression 6264 scalar_arg: I 6265--- !LinalgOpConfig 6266metadata: !LinalgOpMetadata 6267 name: pooling_nwc_min_unsigned 6268 cpp_class_name: PoolingNwcMinUnsignedOp 6269 doc: |- 6270 Performs unsigned min pooling. 6271 6272 Numeric casting is performed on the input operand, promoting it to the same 6273 data type as the accumulator/output. 6274 implements: 6275 - LinalgConvolutionOpInterface 6276structured_op: !LinalgStructuredOpConfig 6277 args: 6278 - !LinalgOperandDefConfig 6279 name: I 6280 kind: input_tensor 6281 type_var: T1 6282 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s0, s1 * s2 + s3 * s4, s5)> 6283 - !LinalgOperandDefConfig 6284 name: K 6285 kind: input_tensor 6286 type_var: T2 6287 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s3)> 6288 - !LinalgOperandDefConfig 6289 name: O 6290 kind: output_tensor 6291 type_var: U 6292 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s0, s1, s5)> 6293 - !LinalgOperandDefConfig 6294 name: strides 6295 kind: index_attr 6296 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s2)> 6297 default_indices: 6298 - 1 6299 - !LinalgOperandDefConfig 6300 name: dilations 6301 kind: index_attr 6302 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5] -> (s4)> 6303 default_indices: 6304 - 1 6305 indexing_maps: !LinalgIndexingMapsConfig 6306 static_indexing_maps: 6307 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3, s4, s5] -> (d0, d1 * s2 + d3 * s4, 6308 d2)> 6309 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3, s4, s5] -> (d3)> 6310 - affine_map<(d0, d1, d2, d3)[s0, s1, s2, s3, s4, s5] -> (d0, d1, d2)> 6311 iterator_types: 6312 - parallel 6313 - parallel 6314 - parallel 6315 - reduction 6316 assignments: 6317 - !ScalarAssign 6318 arg: O 6319 value: !ScalarExpression 6320 scalar_fn: 6321 kind: binary 6322 fn_name: min_unsigned 6323 operands: 6324 - !ScalarExpression 6325 scalar_arg: O 6326 - !ScalarExpression 6327 scalar_fn: 6328 kind: type 6329 fn_name: cast_unsigned 6330 type_var: U 6331 operands: 6332 - !ScalarExpression 6333 scalar_arg: I 6334--- !LinalgOpConfig 6335metadata: !LinalgOpMetadata 6336 name: pooling_ndhwc_sum 6337 cpp_class_name: PoolingNdhwcSumOp 6338 doc: |- 6339 Performs 3D sum pooling. 6340 6341 Numeric casting is performed on the input operand, promoting it to the same 6342 data type as the accumulator/output. 6343 implements: 6344 - LinalgConvolutionOpInterface 6345structured_op: !LinalgStructuredOpConfig 6346 args: 6347 - !LinalgOperandDefConfig 6348 name: I 6349 kind: input_tensor 6350 type_var: T1 6351 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, 6352 s13] -> (s0, s1 * s2 + s3 * s4, s5 * s6 + s7 * s8, s9 * s10 + s11 * s12, s13)> 6353 - !LinalgOperandDefConfig 6354 name: K 6355 kind: input_tensor 6356 type_var: T2 6357 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, 6358 s13] -> (s3, s7, s11)> 6359 - !LinalgOperandDefConfig 6360 name: O 6361 kind: output_tensor 6362 type_var: U 6363 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, 6364 s13] -> (s0, s1, s5, s9, s13)> 6365 - !LinalgOperandDefConfig 6366 name: strides 6367 kind: index_attr 6368 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, 6369 s12, s13] -> (s2, s6, s10)> 6370 default_indices: 6371 - 1 6372 - 1 6373 - 1 6374 - !LinalgOperandDefConfig 6375 name: dilations 6376 kind: index_attr 6377 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, 6378 s12, s13] -> (s4, s8, s12)> 6379 default_indices: 6380 - 1 6381 - 1 6382 - 1 6383 indexing_maps: !LinalgIndexingMapsConfig 6384 static_indexing_maps: 6385 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7, 6386 s8, s9, s10, s11, s12, s13] -> (d0, d1 * s2 + d5 * s4, d2 * s6 + d6 * s8, d3 6387 * s10 + d7 * s12, d4)> 6388 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7, 6389 s8, s9, s10, s11, s12, s13] -> (d5, d6, d7)> 6390 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7, 6391 s8, s9, s10, s11, s12, s13] -> (d0, d1, d2, d3, d4)> 6392 iterator_types: 6393 - parallel 6394 - parallel 6395 - parallel 6396 - parallel 6397 - parallel 6398 - reduction 6399 - reduction 6400 - reduction 6401 assignments: 6402 - !ScalarAssign 6403 arg: O 6404 value: !ScalarExpression 6405 scalar_fn: 6406 kind: binary 6407 fn_name: add 6408 operands: 6409 - !ScalarExpression 6410 scalar_arg: O 6411 - !ScalarExpression 6412 scalar_fn: 6413 kind: type 6414 fn_name: cast_signed 6415 type_var: U 6416 operands: 6417 - !ScalarExpression 6418 scalar_arg: I 6419--- !LinalgOpConfig 6420metadata: !LinalgOpMetadata 6421 name: pooling_ndhwc_max 6422 cpp_class_name: PoolingNdhwcMaxOp 6423 doc: |- 6424 Performs 3D max pooling. 6425 6426 Numeric casting is performed on the input operand, promoting it to the same 6427 data type as the accumulator/output. 6428 implements: 6429 - LinalgConvolutionOpInterface 6430structured_op: !LinalgStructuredOpConfig 6431 args: 6432 - !LinalgOperandDefConfig 6433 name: I 6434 kind: input_tensor 6435 type_var: T1 6436 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, 6437 s13] -> (s0, s1 * s2 + s3 * s4, s5 * s6 + s7 * s8, s9 * s10 + s11 * s12, s13)> 6438 - !LinalgOperandDefConfig 6439 name: K 6440 kind: input_tensor 6441 type_var: T2 6442 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, 6443 s13] -> (s3, s7, s11)> 6444 - !LinalgOperandDefConfig 6445 name: O 6446 kind: output_tensor 6447 type_var: U 6448 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, 6449 s13] -> (s0, s1, s5, s9, s13)> 6450 - !LinalgOperandDefConfig 6451 name: strides 6452 kind: index_attr 6453 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, 6454 s12, s13] -> (s2, s6, s10)> 6455 default_indices: 6456 - 1 6457 - 1 6458 - 1 6459 - !LinalgOperandDefConfig 6460 name: dilations 6461 kind: index_attr 6462 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, 6463 s12, s13] -> (s4, s8, s12)> 6464 default_indices: 6465 - 1 6466 - 1 6467 - 1 6468 indexing_maps: !LinalgIndexingMapsConfig 6469 static_indexing_maps: 6470 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7, 6471 s8, s9, s10, s11, s12, s13] -> (d0, d1 * s2 + d5 * s4, d2 * s6 + d6 * s8, d3 6472 * s10 + d7 * s12, d4)> 6473 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7, 6474 s8, s9, s10, s11, s12, s13] -> (d5, d6, d7)> 6475 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7, 6476 s8, s9, s10, s11, s12, s13] -> (d0, d1, d2, d3, d4)> 6477 iterator_types: 6478 - parallel 6479 - parallel 6480 - parallel 6481 - parallel 6482 - parallel 6483 - reduction 6484 - reduction 6485 - reduction 6486 assignments: 6487 - !ScalarAssign 6488 arg: O 6489 value: !ScalarExpression 6490 scalar_fn: 6491 kind: binary 6492 fn_name: max_signed 6493 operands: 6494 - !ScalarExpression 6495 scalar_arg: O 6496 - !ScalarExpression 6497 scalar_fn: 6498 kind: type 6499 fn_name: cast_signed 6500 type_var: U 6501 operands: 6502 - !ScalarExpression 6503 scalar_arg: I 6504--- !LinalgOpConfig 6505metadata: !LinalgOpMetadata 6506 name: pooling_ndhwc_min 6507 cpp_class_name: PoolingNdhwcMinOp 6508 doc: |- 6509 Performs 3D min pooling. 6510 6511 Numeric casting is performed on the input operand, promoting it to the same 6512 data type as the accumulator/output. 6513 implements: 6514 - LinalgConvolutionOpInterface 6515structured_op: !LinalgStructuredOpConfig 6516 args: 6517 - !LinalgOperandDefConfig 6518 name: I 6519 kind: input_tensor 6520 type_var: T1 6521 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, 6522 s13] -> (s0, s1 * s2 + s3 * s4, s5 * s6 + s7 * s8, s9 * s10 + s11 * s12, s13)> 6523 - !LinalgOperandDefConfig 6524 name: K 6525 kind: input_tensor 6526 type_var: T2 6527 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, 6528 s13] -> (s3, s7, s11)> 6529 - !LinalgOperandDefConfig 6530 name: O 6531 kind: output_tensor 6532 type_var: U 6533 shape_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, 6534 s13] -> (s0, s1, s5, s9, s13)> 6535 - !LinalgOperandDefConfig 6536 name: strides 6537 kind: index_attr 6538 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, 6539 s12, s13] -> (s2, s6, s10)> 6540 default_indices: 6541 - 1 6542 - 1 6543 - 1 6544 - !LinalgOperandDefConfig 6545 name: dilations 6546 kind: index_attr 6547 index_attr_map: affine_map<()[s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, 6548 s12, s13] -> (s4, s8, s12)> 6549 default_indices: 6550 - 1 6551 - 1 6552 - 1 6553 indexing_maps: !LinalgIndexingMapsConfig 6554 static_indexing_maps: 6555 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7, 6556 s8, s9, s10, s11, s12, s13] -> (d0, d1 * s2 + d5 * s4, d2 * s6 + d6 * s8, d3 6557 * s10 + d7 * s12, d4)> 6558 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7, 6559 s8, s9, s10, s11, s12, s13] -> (d5, d6, d7)> 6560 - affine_map<(d0, d1, d2, d3, d4, d5, d6, d7)[s0, s1, s2, s3, s4, s5, s6, s7, 6561 s8, s9, s10, s11, s12, s13] -> (d0, d1, d2, d3, d4)> 6562 iterator_types: 6563 - parallel 6564 - parallel 6565 - parallel 6566 - parallel 6567 - parallel 6568 - reduction 6569 - reduction 6570 - reduction 6571 assignments: 6572 - !ScalarAssign 6573 arg: O 6574 value: !ScalarExpression 6575 scalar_fn: 6576 kind: binary 6577 fn_name: min_signed 6578 operands: 6579 - !ScalarExpression 6580 scalar_arg: O 6581 - !ScalarExpression 6582 scalar_fn: 6583 kind: type 6584 fn_name: cast_signed 6585 type_var: U 6586 operands: 6587 - !ScalarExpression 6588 scalar_arg: I 6589--- !LinalgOpConfig 6590metadata: !LinalgOpMetadata 6591 name: fill 6592 cpp_class_name: FillOp 6593 doc: |- 6594 Fills the output tensor with the given value. 6595 6596 Works for arbitrary ranked output tensors since the operation performs scalar 6597 accesses only and is thus rank polymorphic. Numeric casting is performed on 6598 the value operand, promoting it to the same data type as the output. 6599 implements: 6600 - LinalgFillOpInterface 6601 defines: 6602 - hasCanonicalizer 6603structured_op: !LinalgStructuredOpConfig 6604 args: 6605 - !LinalgOperandDefConfig 6606 name: value 6607 kind: scalar 6608 type_var: T1 6609 - !LinalgOperandDefConfig 6610 name: O 6611 kind: output_tensor 6612 type_var: U 6613 shape_map: affine_map<() -> ()> 6614 indexing_maps: !LinalgIndexingMapsConfig 6615 static_indexing_maps: 6616 - affine_map<() -> ()> 6617 - affine_map<() -> ()> 6618 iterator_types: [] 6619 assignments: 6620 - !ScalarAssign 6621 arg: O 6622 value: !ScalarExpression 6623 scalar_fn: 6624 kind: type 6625 fn_name: cast_signed 6626 type_var: U 6627 operands: 6628 - !ScalarExpression 6629 scalar_arg: value 6630--- !LinalgOpConfig 6631metadata: !LinalgOpMetadata 6632 name: fill_rng_2d 6633 cpp_class_name: FillRng2DOp 6634 doc: |- 6635 Fills the output tensor with pseudo random numbers. 6636 6637 The operation generations pseudo random numbers using a linear congruential 6638 generator. It provides no guarantees regarding the distribution of the 6639 generated random numbers. Instead of generating the random numbers 6640 sequentially, it instantiates one random number generator per data element 6641 and runs them in parallel. The seed operand and the indices of the data 6642 element seed the random number generation. The min and max operands limit 6643 the range of the generated random numbers. 6644structured_op: !LinalgStructuredOpConfig 6645 args: 6646 - !LinalgOperandDefConfig 6647 name: min 6648 kind: scalar 6649 type_var: F64 6650 - !LinalgOperandDefConfig 6651 name: max 6652 kind: scalar 6653 type_var: F64 6654 - !LinalgOperandDefConfig 6655 name: seed 6656 kind: scalar 6657 type_var: I32 6658 - !LinalgOperandDefConfig 6659 name: O 6660 kind: output_tensor 6661 type_var: T 6662 shape_map: affine_map<()[s0, s1] -> (s0, s1)> 6663 indexing_maps: !LinalgIndexingMapsConfig 6664 static_indexing_maps: 6665 - affine_map<(d0, d1)[s0, s1] -> ()> 6666 - affine_map<(d0, d1)[s0, s1] -> ()> 6667 - affine_map<(d0, d1)[s0, s1] -> ()> 6668 - affine_map<(d0, d1)[s0, s1] -> (d0, d1)> 6669 iterator_types: 6670 - parallel 6671 - parallel 6672 assignments: 6673 - !ScalarAssign 6674 arg: O 6675 value: !ScalarExpression 6676 scalar_fn: 6677 kind: type 6678 fn_name: cast_signed 6679 type_var: T 6680 operands: 6681 - !ScalarExpression 6682 scalar_fn: 6683 kind: binary 6684 fn_name: add 6685 operands: 6686 - !ScalarExpression 6687 scalar_fn: 6688 kind: binary 6689 fn_name: mul 6690 operands: 6691 - !ScalarExpression 6692 scalar_fn: 6693 kind: binary 6694 fn_name: add 6695 operands: 6696 - !ScalarExpression 6697 scalar_fn: 6698 kind: type 6699 fn_name: cast_signed 6700 type_var: F64 6701 operands: 6702 - !ScalarExpression 6703 scalar_const: '2147483647 : i64' 6704 - !ScalarExpression 6705 scalar_fn: 6706 kind: type 6707 fn_name: cast_signed 6708 type_var: F64 6709 operands: 6710 - !ScalarExpression 6711 scalar_fn: 6712 kind: binary 6713 fn_name: add 6714 operands: 6715 - !ScalarExpression 6716 scalar_fn: 6717 kind: binary 6718 fn_name: mul 6719 operands: 6720 - !ScalarExpression 6721 scalar_fn: 6722 kind: binary 6723 fn_name: add 6724 operands: 6725 - !ScalarExpression 6726 scalar_fn: 6727 kind: type 6728 fn_name: cast_signed 6729 type_var: I32 6730 operands: 6731 - !ScalarExpression 6732 scalar_index: 1 6733 - !ScalarExpression 6734 scalar_fn: 6735 kind: binary 6736 fn_name: add 6737 operands: 6738 - !ScalarExpression 6739 scalar_fn: 6740 kind: binary 6741 fn_name: mul 6742 operands: 6743 - !ScalarExpression 6744 scalar_fn: 6745 kind: binary 6746 fn_name: add 6747 operands: 6748 - !ScalarExpression 6749 scalar_fn: 6750 kind: type 6751 fn_name: cast_signed 6752 type_var: I32 6753 operands: 6754 - !ScalarExpression 6755 scalar_index: 0 6756 - !ScalarExpression 6757 scalar_arg: seed 6758 - !ScalarExpression 6759 scalar_fn: 6760 kind: type 6761 fn_name: cast_signed 6762 type_var: I32 6763 operands: 6764 - !ScalarExpression 6765 scalar_const: '1103515245 : i64' 6766 - !ScalarExpression 6767 scalar_fn: 6768 kind: type 6769 fn_name: cast_signed 6770 type_var: I32 6771 operands: 6772 - !ScalarExpression 6773 scalar_const: '12345 : i64' 6774 - !ScalarExpression 6775 scalar_fn: 6776 kind: type 6777 fn_name: cast_signed 6778 type_var: I32 6779 operands: 6780 - !ScalarExpression 6781 scalar_const: '1103515245 : i64' 6782 - !ScalarExpression 6783 scalar_fn: 6784 kind: type 6785 fn_name: cast_signed 6786 type_var: I32 6787 operands: 6788 - !ScalarExpression 6789 scalar_const: '12345 : i64' 6790 - !ScalarExpression 6791 scalar_fn: 6792 kind: binary 6793 fn_name: mul 6794 operands: 6795 - !ScalarExpression 6796 scalar_fn: 6797 kind: binary 6798 fn_name: sub 6799 operands: 6800 - !ScalarExpression 6801 scalar_arg: max 6802 - !ScalarExpression 6803 scalar_arg: min 6804 - !ScalarExpression 6805 scalar_fn: 6806 kind: type 6807 fn_name: cast_signed 6808 type_var: F64 6809 operands: 6810 - !ScalarExpression 6811 scalar_const: '2.3283063999999999E-10 : f64' 6812 - !ScalarExpression 6813 scalar_arg: min 6814