Commit afe168b
committed
[TIR] Add cooperative_tensor builtins and metal.cooperative_tensor storage scope
Add TIR builtins for Metal cooperative_tensor operations (MetalPerformancePrimitives):
- cooperative_tensor_fill: fill a cooperative_tensor with a value
- cooperative_tensor_load: load from device/threadgroup memory
- cooperative_tensor_store: store to device/threadgroup memory
- cooperative_tensor_multiply_accumulate: matrix multiply-accumulate via matmul2d
Add metal.cooperative_tensor storage scope (StorageRank::kMetalCooperativeTensor)
for buffers backed by MPP cooperative_tensor registers, analogous to the existing
metal.simdgroup scope but targeting the Metal 4 tensor operations API.
These primitives enable code generation for MetalPerformancePrimitives matmul2d,
which routes to NAX tensor cores on Apple M5 and falls back to simdgroup matrix
instructions on M1-M4.1 parent 882a774 commit afe168b
6 files changed
Lines changed: 336 additions & 3 deletions
File tree
- include/tvm/tir
- python/tvm
- script/ir_builder/tir
- tir
- src
- runtime
- metal
- tir/op
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
806 | 806 | | |
807 | 807 | | |
808 | 808 | | |
| 809 | + | |
| 810 | + | |
| 811 | + | |
| 812 | + | |
| 813 | + | |
| 814 | + | |
| 815 | + | |
| 816 | + | |
| 817 | + | |
| 818 | + | |
| 819 | + | |
| 820 | + | |
| 821 | + | |
| 822 | + | |
| 823 | + | |
| 824 | + | |
| 825 | + | |
| 826 | + | |
| 827 | + | |
| 828 | + | |
| 829 | + | |
| 830 | + | |
| 831 | + | |
| 832 | + | |
| 833 | + | |
| 834 | + | |
| 835 | + | |
| 836 | + | |
| 837 | + | |
| 838 | + | |
| 839 | + | |
| 840 | + | |
| 841 | + | |
| 842 | + | |
| 843 | + | |
| 844 | + | |
| 845 | + | |
| 846 | + | |
| 847 | + | |
| 848 | + | |
| 849 | + | |
| 850 | + | |
| 851 | + | |
| 852 | + | |
| 853 | + | |
809 | 854 | | |
810 | 855 | | |
811 | 856 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1430 | 1430 | | |
1431 | 1431 | | |
1432 | 1432 | | |
| 1433 | + | |
1433 | 1434 | | |
| 1435 | + | |
1434 | 1436 | | |
| 1437 | + | |
1435 | 1438 | | |
| 1439 | + | |
1436 | 1440 | | |
| 1441 | + | |
1437 | 1442 | | |
| 1443 | + | |
1438 | 1444 | | |
| 1445 | + | |
1439 | 1446 | | |
| 1447 | + | |
1440 | 1448 | | |
| 1449 | + | |
1441 | 1450 | | |
| 1451 | + | |
1442 | 1452 | | |
| 1453 | + | |
1443 | 1454 | | |
| 1455 | + | |
1444 | 1456 | | |
| 1457 | + | |
1445 | 1458 | | |
| 1459 | + | |
1446 | 1460 | | |
| 1461 | + | |
1447 | 1462 | | |
| 1463 | + | |
1448 | 1464 | | |
| 1465 | + | |
1449 | 1466 | | |
| 1467 | + | |
1450 | 1468 | | |
| 1469 | + | |
1451 | 1470 | | |
| 1471 | + | |
1452 | 1472 | | |
| 1473 | + | |
1453 | 1474 | | |
| 1475 | + | |
1454 | 1476 | | |
| 1477 | + | |
1455 | 1478 | | |
| 1479 | + | |
1456 | 1480 | | |
| 1481 | + | |
1457 | 1482 | | |
| 1483 | + | |
1458 | 1484 | | |
| 1485 | + | |
1459 | 1486 | | |
| 1487 | + | |
1460 | 1488 | | |
| 1489 | + | |
1461 | 1490 | | |
| 1491 | + | |
1462 | 1492 | | |
| 1493 | + | |
1463 | 1494 | | |
| 1495 | + | |
1464 | 1496 | | |
| 1497 | + | |
1465 | 1498 | | |
| 1499 | + | |
1466 | 1500 | | |
| 1501 | + | |
1467 | 1502 | | |
| 1503 | + | |
1468 | 1504 | | |
| 1505 | + | |
1469 | 1506 | | |
| 1507 | + | |
1470 | 1508 | | |
| 1509 | + | |
1471 | 1510 | | |
| 1511 | + | |
1472 | 1512 | | |
| 1513 | + | |
1473 | 1514 | | |
| 1515 | + | |
1474 | 1516 | | |
| 1517 | + | |
1475 | 1518 | | |
| 1519 | + | |
1476 | 1520 | | |
| 1521 | + | |
1477 | 1522 | | |
| 1523 | + | |
1478 | 1524 | | |
| 1525 | + | |
1479 | 1526 | | |
| 1527 | + | |
1480 | 1528 | | |
| 1529 | + | |
1481 | 1530 | | |
| 1531 | + | |
1482 | 1532 | | |
| 1533 | + | |
1483 | 1534 | | |
| 1535 | + | |
1484 | 1536 | | |
| 1537 | + | |
1485 | 1538 | | |
| 1539 | + | |
1486 | 1540 | | |
| 1541 | + | |
1487 | 1542 | | |
| 1543 | + | |
1488 | 1544 | | |
| 1545 | + | |
1489 | 1546 | | |
| 1547 | + | |
1490 | 1548 | | |
| 1549 | + | |
1491 | 1550 | | |
| 1551 | + | |
1492 | 1552 | | |
| 1553 | + | |
1493 | 1554 | | |
| 1555 | + | |
1494 | 1556 | | |
| 1557 | + | |
1495 | 1558 | | |
| 1559 | + | |
1496 | 1560 | | |
| 1561 | + | |
1497 | 1562 | | |
| 1563 | + | |
1498 | 1564 | | |
| 1565 | + | |
1499 | 1566 | | |
| 1567 | + | |
1500 | 1568 | | |
| 1569 | + | |
1501 | 1570 | | |
| 1571 | + | |
1502 | 1572 | | |
| 1573 | + | |
1503 | 1574 | | |
| 1575 | + | |
1504 | 1576 | | |
| 1577 | + | |
1505 | 1578 | | |
| 1579 | + | |
1506 | 1580 | | |
| 1581 | + | |
1507 | 1582 | | |
| 1583 | + | |
1508 | 1584 | | |
| 1585 | + | |
1509 | 1586 | | |
| 1587 | + | |
1510 | 1588 | | |
| 1589 | + | |
1511 | 1590 | | |
| 1591 | + | |
1512 | 1592 | | |
| 1593 | + | |
1513 | 1594 | | |
| 1595 | + | |
1514 | 1596 | | |
| 1597 | + | |
1515 | 1598 | | |
| 1599 | + | |
1516 | 1600 | | |
| 1601 | + | |
1517 | 1602 | | |
| 1603 | + | |
1518 | 1604 | | |
| 1605 | + | |
1519 | 1606 | | |
| 1607 | + | |
1520 | 1608 | | |
| 1609 | + | |
1521 | 1610 | | |
| 1611 | + | |
1522 | 1612 | | |
| 1613 | + | |
1523 | 1614 | | |
| 1615 | + | |
1524 | 1616 | | |
| 1617 | + | |
1525 | 1618 | | |
| 1619 | + | |
1526 | 1620 | | |
| 1621 | + | |
1527 | 1622 | | |
| 1623 | + | |
1528 | 1624 | | |
| 1625 | + | |
1529 | 1626 | | |
| 1627 | + | |
1530 | 1628 | | |
| 1629 | + | |
1531 | 1630 | | |
| 1631 | + | |
1532 | 1632 | | |
| 1633 | + | |
1533 | 1634 | | |
| 1635 | + | |
1534 | 1636 | | |
| 1637 | + | |
1535 | 1638 | | |
| 1639 | + | |
1536 | 1640 | | |
| 1641 | + | |
1537 | 1642 | | |
| 1643 | + | |
1538 | 1644 | | |
| 1645 | + | |
1539 | 1646 | | |
| 1647 | + | |
1540 | 1648 | | |
| 1649 | + | |
1541 | 1650 | | |
| 1651 | + | |
1542 | 1652 | | |
| 1653 | + | |
1543 | 1654 | | |
| 1655 | + | |
1544 | 1656 | | |
| 1657 | + | |
1545 | 1658 | | |
| 1659 | + | |
1546 | 1660 | | |
| 1661 | + | |
1547 | 1662 | | |
| 1663 | + | |
1548 | 1664 | | |
| 1665 | + | |
1549 | 1666 | | |
| 1667 | + | |
1550 | 1668 | | |
| 1669 | + | |
1551 | 1670 | | |
| 1671 | + | |
1552 | 1672 | | |
| 1673 | + | |
1553 | 1674 | | |
| 1675 | + | |
1554 | 1676 | | |
| 1677 | + | |
1555 | 1678 | | |
| 1679 | + | |
1556 | 1680 | | |
| 1681 | + | |
1557 | 1682 | | |
| 1683 | + | |
1558 | 1684 | | |
| 1685 | + | |
1559 | 1686 | | |
| 1687 | + | |
1560 | 1688 | | |
| 1689 | + | |
1561 | 1690 | | |
| 1691 | + | |
1562 | 1692 | | |
| 1693 | + | |
1563 | 1694 | | |
| 1695 | + | |
1564 | 1696 | | |
| 1697 | + | |
1565 | 1698 | | |
| 1699 | + | |
1566 | 1700 | | |
| 1701 | + | |
1567 | 1702 | | |
| 1703 | + | |
1568 | 1704 | | |
| 1705 | + | |
1569 | 1706 | | |
| 1707 | + | |
1570 | 1708 | | |
| 1709 | + | |
1571 | 1710 | | |
| 1711 | + | |
1572 | 1712 | | |
| 1713 | + | |
1573 | 1714 | | |
| 1715 | + | |
1574 | 1716 | | |
| 1717 | + | |
1575 | 1718 | | |
| 1719 | + | |
1576 | 1720 | | |
| 1721 | + | |
1577 | 1722 | | |
| 1723 | + | |
1578 | 1724 | | |
| 1725 | + | |
1579 | 1726 | | |
| 1727 | + | |
1580 | 1728 | | |
| 1729 | + | |
1581 | 1730 | | |
| 1731 | + | |
1582 | 1732 | | |
| 1733 | + | |
1583 | 1734 | | |
| 1735 | + | |
1584 | 1736 | | |
| 1737 | + | |
1585 | 1738 | | |
| 1739 | + | |
1586 | 1740 | | |
1587 | 1741 | | |
1588 | 1742 | | |
| |||
2202 | 2356 | | |
2203 | 2357 | | |
2204 | 2358 | | |
| 2359 | + | |
| 2360 | + | |
| 2361 | + | |
| 2362 | + | |
2205 | 2363 | | |
2206 | 2364 | | |
2207 | 2365 | | |
| |||
2500 | 2658 | | |
2501 | 2659 | | |
2502 | 2660 | | |
| 2661 | + | |
| 2662 | + | |
| 2663 | + | |
| 2664 | + | |
2503 | 2665 | | |
2504 | 2666 | | |
2505 | 2667 | | |
| |||
0 commit comments