#ifndef TRITON_CONVERSION_TRITONGPU_TO_LLVM_TARGETINFONVIDIA_H #define TRITON_CONVERSION_TRITONGPU_TO_LLVM_TARGETINFONVIDIA_H #include "triton/Conversion/TritonGPUToLLVM/TargetInfoBase.h" namespace mlir::triton::NVIDIA { class TargetInfo : public mlir::triton::TargetInfoBase { public: TargetInfo(int computeCapability, int ptxVersion) : computeCapability(computeCapability), ptxVersion(ptxVersion) {} bool supportMaximumMinimum() const override; Value getClusterCTAId(RewriterBase &rewriter, Location loc) const override; Value ballot(RewriterBase &rewriter, Location loc, Type type, Value cmp) const override; void storeDShared(RewriterBase &rewriter, Location loc, Value ptr, std::optional ctaId, Value val, Value pred) const override; Value loadDShared(RewriterBase &rewriter, Location loc, Value ptr, std::optional ctaId, Type elemTy, Value pred) const override; bool canUseStMatrix(RankedTensorType tensorTy, ArrayRef repShape, ArrayRef paddedRepShape, ArrayRef order, int swizzleByteSize) const override; void storeMatrixShared(RewriterBase &rewriter, Location loc, Value ptr, Value val) const override; Value shuffleXor(RewriterBase &rewriter, Location loc, Value val, int i) const override; Value shuffleUp(RewriterBase &rewriter, Location loc, Value val, int i) const override; Value shuffleIdx(RewriterBase &rewriter, Location loc, Value val, int i) const override; Value shuffleIdx(RewriterBase &rewriter, Location loc, Value val, Value i) const override; Value programId(RewriterBase &rewriter, Location loc, ModuleOp moduleOp, int axis) const override; bool warpReduce(RewriterBase &rewriter, Location loc, SmallVector &acc, triton::ReduceOp op, unsigned numLaneToReduce, unsigned interleave) const override; std::string getMulhiFuncName(Type resultElementTy) const override; void printf(RewriterBase &rewriter, Value formatStrStart, int formatStrByteCount, ValueRange args, ArrayRef isSigned = {}) const override; void printf(RewriterBase &rewriter, StringRef msg, ValueRange args, ArrayRef isSigned = {}) const override; void assertFail(RewriterBase &rewriter, Location loc, StringRef message, StringRef file, StringRef func, int line) const override; int getSharedAddressSpace() const override; int getAddressSpace(Attribute addressSpace) const override; bool supportVectorizedAtomics() const override; int getPtxVersion() const { return ptxVersion; } private: int computeCapability; int ptxVersion; }; } // namespace mlir::triton::NVIDIA #endif // TRITON_CONVERSION_TRITONGPU_TO_LLVM_TARGETINFONVIDIA_H