33 #include <cudnn_backend.h> 54 ss <<
"CUDNN_BACKEND_REDUCTION_DESCRIPTOR :" 87 m_reductionDesc.math_precision = data_type_;
93 m_reductionDesc.reduction_op = op_;
103 auto status = m_reductionDesc.initialize_managed_backend_pointer(CUDNN_BACKEND_REDUCTION_DESCRIPTOR);
104 if (
status != CUDNN_STATUS_SUCCESS) {
106 &m_reductionDesc,
status,
"CUDNN_BACKEND_REDUCTION_DESCRIPTOR: cudnnCreate Failed");
107 return std::move(m_reductionDesc);
111 status = cudnnBackendSetAttribute(m_reductionDesc.pointer->get_backend_descriptor(),
112 CUDNN_ATTR_REDUCTION_COMP_TYPE,
113 CUDNN_TYPE_DATA_TYPE,
115 &m_reductionDesc.math_precision);
116 if (
status != CUDNN_STATUS_SUCCESS) {
120 "CUDNN_BACKEND_REDUCTION_DESCRIPTOR: SetAttribute CUDNN_ATTR_REDUCTION_COMP_TYPE Failed");
121 return std::move(m_reductionDesc);
124 status = cudnnBackendSetAttribute(m_reductionDesc.pointer->get_backend_descriptor(),
125 CUDNN_ATTR_REDUCTION_OPERATOR,
126 CUDNN_TYPE_REDUCTION_OPERATOR_TYPE,
128 &m_reductionDesc.reduction_op);
129 if (
status != CUDNN_STATUS_SUCCESS) {
133 "CUDNN_BACKEND_REDUCTION_DESCRIPTOR: SetAttribute CUDNN_ATTR_REDUCTION_OPERATOR Failed");
134 return std::move(m_reductionDesc);
138 status = cudnnBackendFinalize(m_reductionDesc.pointer->get_backend_descriptor());
139 if (
status != CUDNN_STATUS_SUCCESS) {
141 &m_reductionDesc,
status,
"CUDNN_BACKEND_REDUCTION_DESCRIPTOR: cudnnFinalize Failed");
142 return std::move(m_reductionDesc);
145 getLogger() <<
"[cudnn_frontend] " << m_reductionDesc << std::endl;
146 return std::move(m_reductionDesc);
ConditionalStreamer & getLogger()
static void set_error_and_throw_exception(BackendDescriptor const *desc, cudnnStatus_t status, const char *message)
ReductionDesc_v8()=default
ReductionDesc_v8 & operator=(ReductionDesc_v8 &&from)=default
~ReductionDesc_v8()=default
friend class ReductionDescBuilder_v8
auto setMathPrecision(cudnnDataType_t data_type_) -> ReductionDescBuilder_v8 &
Set Math Precision Data Type for the Reduction Operation.
cudnnDataType_t math_precision
cudnnReduceTensorOp_t reduction_op
ReductionDesc_v8 && build()
std::string describe() const override
Return a string describing the backend Descriptor.
auto setReductionOp(cudnnReduceTensorOp_t op_) -> ReductionDescBuilder_v8 &
Set redution operator for the Reduction Operation.
ReductionDesc_v8 m_reductionDesc
cudnnStatus_t status
Shared pointer of the OpaqueBackendPointer.