9 #ifndef MLIR_DIALECT_SHARD_INTERFACES_SHARDINGINTERFACE_H_
10 #define MLIR_DIALECT_SHARD_INTERFACES_SHARDINGINTERFACE_H_
21 class SymbolTableCollection;
59 FailureOr<ShardingOption>
63 FailureOr<std::vector<Sharding>>
86 #include "mlir/Dialect/Shard/Interfaces/ShardingInterface.h.inc"
A symbol reference with a reference path containing a single element.
This is a utility class for mapping one set of IR entities to another.
This class helps build Operations.
This class represents an operand of an operation.
This is a value defined by a result of an operation.
Operation is the basic unit of execution within MLIR.
This class represents a collection of SymbolTables.
LogicalResult defaultAddShardingAnnotations(Operation *op, OpBuilder &b, const ShardingOption &shardingOption)
FailureOr< std::vector< Sharding > > defaultGetShardingAnnotations(Operation *op, const ShardingOption &shardingOption)
FailureOr< ShardingOption > defaultGetShardingOption(Operation *op, ArrayRef< Sharding > operandShardings, ArrayRef< Sharding > resultShardings)
void partitionFullyReplicatedOperation(Operation &op, ArrayRef< Value > partitionedOperands, ArrayRef< Sharding > operandShardings, ArrayRef< Sharding > resultShardings, IRMapping &partitionMap, SymbolTableCollection &symbolTable, OpBuilder &builder)
FailureOr< std::pair< bool, Sharding > > getSharding(OpResult result)
Include the generated interface declarations.
ShardingArray shardingArray
ShardingOption(ShardingArray shardingArray, FlatSymbolRefAttr grid)
static ShardingOption makeEmpty()