31 auto major_version = cudnnGetVersion() / 1000;
33 auto minor_version = (cudnnGetVersion() / 100) % 10;
34 if (major_version >= 8) {
35 if (minor_version == 0) {
36 if (mode == CUDNN_BACKEND_OPERATION_CONVOLUTION_FORWARD_DESCRIPTOR) {
38 }
else if (mode == CUDNN_BACKEND_OPERATION_CONVOLUTION_BACKWARD_DATA_DESCRIPTOR) {
40 }
else if (mode == CUDNN_BACKEND_OPERATION_CONVOLUTION_BACKWARD_FILTER_DESCRIPTOR) {
45 }
else if (minor_version == 1) {
46 if (mode == CUDNN_BACKEND_OPERATION_CONVOLUTION_FORWARD_DESCRIPTOR) {
47 std::vector<int> engine_list(50);
48 std::iota(engine_list.begin(), engine_list.end(), 0);
50 }
else if (mode == CUDNN_BACKEND_OPERATION_CONVOLUTION_BACKWARD_DATA_DESCRIPTOR) {
51 std::vector<int> engine_list(61);
52 std::iota(engine_list.begin(), engine_list.end(), 0);
54 }
else if (mode == CUDNN_BACKEND_OPERATION_CONVOLUTION_BACKWARD_FILTER_DESCRIPTOR) {
74 ss <<
"CUDNN_BACKEND_FALLBACK ENGINES :";
100 cudnnBackendDescriptorType_t
mode;
117 m_fallback_list.opGraph = opGraph_.get_desc();
118 m_fallback_list.opGraphTag = opGraph_.getTag();
123 m_fallback_list.mode =
mode;
132 if (m_fallback_list.opGraph ==
nullptr) {
134 CUDNN_STATUS_BAD_PARAM,
135 "CUDNN_BACKEND_ENGINEHEUR_DESCRIPTOR: Check and Set the " 136 "CUDNN_ATTR_ENGINEHEUR_OPERATION_GRAPH field for heuristic");
137 return std::move(m_fallback_list);
140 for (
auto i = 0; i < fallback_engine_list.size(); i++) {
141 #ifndef NV_CUDNN_DISABLE_EXCEPTION 146 .setOperationGraph(m_fallback_list.opGraph)
149 m_fallback_list.m_engine_configs.emplace_back(engine_config.get_desc());
150 #ifndef NV_CUDNN_DISABLE_EXCEPTION 156 return std::move(m_fallback_list);
static void set_error_and_throw_exception(BackendDescriptor const *desc, cudnnStatus_t status, const char *message)
auto setGlobalEngineIdx(int64_t idx_) -> EngineBuilder_v8 &
Set engine index for the engine.
std::string describe() const override
Return a string describing the backend Descriptor.
EngineFallbackList_v8(EngineFallbackList_v8 &&from)
cudnnBackendDescriptorType_t mode
ManagedOpaqueDescriptor get_desc() const
Returns a copy of underlying managed descriptor.
ManagedOpaqueDescriptor opGraph
auto setEngine(Engine_v8 const &engine_) -> EngineConfigBuilder_v8 &
Set engine for the EngineConfig_v8.
auto setOperation(cudnnBackendDescriptorType_t mode) -> EngineFallbackListBuilder_v8 &
cudnnStatus_t get_status() const
Current status of the descriptor.
~EngineFallbackList_v8()=default
friend class EngineFallbackListBuilder_v8
EngineFallbackList_v8()=default
std::shared_ptr< OpaqueBackendPointer > ManagedOpaqueDescriptor
const char * get_error() const
Diagonistic error message if any.
auto setOperationGraph(OperationGraph_v8 &opGraph_) -> EngineFallbackListBuilder_v8 &
Set operationGraph for the engine (opGraph is not destroyed)
EngineFallbackList_v8 && build()
static auto get_fallback_engine_list(cudnnBackendDescriptorType_t mode) -> std::vector< int >
EngineFallbackList_v8 m_fallback_list
EngineFallbackList_v8 & operator=(EngineFallbackList_v8 const &)=delete
auto getFallbackList() -> std::vector< ManagedOpaqueDescriptor > &
std::vector< ManagedOpaqueDescriptor > m_engine_configs