MLIR 22.0.0git
ShardingPropagation.cpp File Reference
#include "mlir/Dialect/Shard/Transforms/Passes.h"
#include "mlir/Dialect/Shard/IR/ShardDialect.h"
#include "mlir/Dialect/Shard/IR/ShardOps.h"
#include "mlir/Dialect/Shard/Interfaces/ShardingInterface.h"
#include "mlir/IR/Verifier.h"
#include "mlir/Interfaces/FunctionInterfaces.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/iterator_range.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <vector>
#include "mlir/Dialect/Shard/Transforms/Passes.h.inc"

Go to the source code of this file.

Classes

struct  mlir::shard::ShardingPropagationOptions
class  mlir::shard::impl::ShardingPropagationBase< DerivedT >
struct  ShardingPropagation

Namespaces

namespace  mlir
 Include the generated interface declarations.
namespace  mlir::shard
namespace  mlir::shard::impl

Macros

#define GEN_PASS_DEF_SHARDINGPROPAGATION
#define GEN_PASS_DECL_PARTITION
#define GEN_PASS_DECL_SHARDINGPROPAGATION
#define GEN_PASS_REGISTRATION_PARTITION
#define GEN_PASS_REGISTRATION_SHARDINGPROPAGATION
#define DEBUG_TYPE   "sharding-propagation"
#define DBGS()

Enumerations

enum class  ReshardingRquirementKind { NO_RESHARDING = 0 , NO_RESHARDING_FOR_EXPLICIT_ANNOTATIONS , RESHARDING_FOR_EXPLICIT_ANNOTATIONS }

Functions

std::unique_ptr<::mlir::Passmlir::shard::createPartition ()
std::unique_ptr<::mlir::Passmlir::shard::createShardingPropagation ()
std::unique_ptr<::mlir::Passmlir::shard::createShardingPropagation (ShardingPropagationOptions options)
std::unique_ptr<::mlir::Passmlir::shard::impl::createShardingPropagation ()
std::unique_ptr<::mlir::Passmlir::shard::impl::createShardingPropagation (ShardingPropagationOptions options)
void mlir::shard::registerPartition ()
void mlir::shard::registerPartitionPass ()
void mlir::shard::registerShardingPropagation ()
void mlir::shard::registerShardingPropagationPass ()
void mlir::shard::registerShardPasses ()
static SmallVector< std::vector< Sharding > > getOrderedPossibleShardingAttrs (ArrayRef< Sharding > mustShardings, ArrayRef< Sharding > optionalShardings)
ReshardingRquirementKind getReshardingRquirementKind (Operation *op, const std::vector< Sharding > &operandAndResultShardings)
static FailureOr< ShardingOptionselectShardingOption (ShardingInterface shardingOp, ArrayRef< std::vector< Sharding > > possibleOperandShardingAttrs, ArrayRef< std::vector< Sharding > > possibleResultShardingAttrs)
static LogicalResult visitOp (Operation *op, OpBuilder &builder)

Macro Definition Documentation

◆ DBGS

#define DBGS ( )
Value:
(llvm::dbgs() << "[" DEBUG_TYPE << "]: ")
#define DEBUG_TYPE

Definition at line 31 of file ShardingPropagation.cpp.

Referenced by ShardingPropagation::runOnOperation(), selectShardingOption(), and visitOp().

◆ DEBUG_TYPE

#define DEBUG_TYPE   "sharding-propagation"

Definition at line 30 of file ShardingPropagation.cpp.

◆ GEN_PASS_DECL_PARTITION

#define GEN_PASS_DECL_PARTITION

◆ GEN_PASS_DECL_SHARDINGPROPAGATION

#define GEN_PASS_DECL_SHARDINGPROPAGATION

◆ GEN_PASS_DEF_SHARDINGPROPAGATION

#define GEN_PASS_DEF_SHARDINGPROPAGATION

Definition at line 25 of file ShardingPropagation.cpp.

◆ GEN_PASS_REGISTRATION_PARTITION

#define GEN_PASS_REGISTRATION_PARTITION

◆ GEN_PASS_REGISTRATION_SHARDINGPROPAGATION

#define GEN_PASS_REGISTRATION_SHARDINGPROPAGATION

Enumeration Type Documentation

◆ ReshardingRquirementKind

enum class ReshardingRquirementKind
strong
Enumerator
NO_RESHARDING 
NO_RESHARDING_FOR_EXPLICIT_ANNOTATIONS 
RESHARDING_FOR_EXPLICIT_ANNOTATIONS 

Definition at line 36 of file ShardingPropagation.cpp.

Function Documentation

◆ getOrderedPossibleShardingAttrs()

SmallVector< std::vector< Sharding > > getOrderedPossibleShardingAttrs ( ArrayRef< Sharding > mustShardings,
ArrayRef< Sharding > optionalShardings )
static

Definition at line 109 of file ShardingPropagation.cpp.

Referenced by visitOp().

◆ getReshardingRquirementKind()

ReshardingRquirementKind getReshardingRquirementKind ( Operation * op,
const std::vector< Sharding > & operandAndResultShardings )

Definition at line 156 of file ShardingPropagation.cpp.

Referenced by selectShardingOption().

◆ selectShardingOption()

FailureOr< ShardingOption > selectShardingOption ( ShardingInterface shardingOp,
ArrayRef< std::vector< Sharding > > possibleOperandShardingAttrs,
ArrayRef< std::vector< Sharding > > possibleResultShardingAttrs )
static

◆ visitOp()