33 #include <cudnn_backend.h> 54 ss <<
"CUDNN_BACKEND_REDUCTION_DESCRIPTOR :" 88 m_reductionDesc.math_precision = data_type_;
94 m_reductionDesc.reduction_op = op_;
104 auto status = m_reductionDesc.initialize_managed_backend_pointer(CUDNN_BACKEND_REDUCTION_DESCRIPTOR);
105 if (
status != CUDNN_STATUS_SUCCESS) {
107 &m_reductionDesc,
status,
"CUDNN_BACKEND_REDUCTION_DESCRIPTOR: cudnnCreate Failed");
108 return std::move(m_reductionDesc);
112 status = cudnnBackendSetAttribute(m_reductionDesc.pointer->get_backend_descriptor(),
113 CUDNN_ATTR_REDUCTION_COMP_TYPE,
114 CUDNN_TYPE_DATA_TYPE,
116 &m_reductionDesc.math_precision);
117 if (
status != CUDNN_STATUS_SUCCESS) {
121 "CUDNN_BACKEND_REDUCTION_DESCRIPTOR: SetAttribute CUDNN_ATTR_REDUCTION_COMP_TYPE Failed");
122 return std::move(m_reductionDesc);
125 status = cudnnBackendSetAttribute(m_reductionDesc.pointer->get_backend_descriptor(),
126 CUDNN_ATTR_REDUCTION_OPERATOR,
127 CUDNN_TYPE_REDUCTION_OPERATOR_TYPE,
129 &m_reductionDesc.reduction_op);
130 if (
status != CUDNN_STATUS_SUCCESS) {
134 "CUDNN_BACKEND_REDUCTION_DESCRIPTOR: SetAttribute CUDNN_ATTR_REDUCTION_OPERATOR Failed");
135 return std::move(m_reductionDesc);
139 status = cudnnBackendFinalize(m_reductionDesc.pointer->get_backend_descriptor());
140 if (
status != CUDNN_STATUS_SUCCESS) {
142 &m_reductionDesc,
status,
"CUDNN_BACKEND_REDUCTION_DESCRIPTOR: cudnnFinalize Failed");
143 return std::move(m_reductionDesc);
146 return std::move(m_reductionDesc);
static void set_error_and_throw_exception(BackendDescriptor const *desc, cudnnStatus_t status, const char *message)
ReductionDesc_v8()=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.
ManagedOpaqueDescriptor get_desc() const
Returns a copy of underlying managed descriptor.
cudnnDataType_t math_precision
cudnnReduceTensorOp_t reduction_op
ReductionDesc_v8 && build()
ReductionDesc_v8 & operator=(ReductionDesc_v8 const &)=delete
cudnnStatus_t get_status() const
Current status of the descriptor.
ReductionDesc_v8(ReductionDesc_v8 &&from)
const char * get_error() const
Diagonistic error message if any.
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.