{"id":20373501,"url":"https://github.com/megengine/cudnn-frontend","last_synced_at":"2026-04-19T01:06:23.233Z","repository":{"id":50464369,"uuid":"510571487","full_name":"MegEngine/cudnn-frontend","owner":"MegEngine","description":null,"archived":false,"fork":false,"pushed_at":"2023-12-11T06:56:35.000Z","size":35303,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-04T20:44:39.740Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MegEngine.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-07-05T03:14:26.000Z","updated_at":"2022-07-05T07:08:29.000Z","dependencies_parsed_at":"2025-01-15T05:45:06.828Z","dependency_job_id":"72fb811a-6e34-4d7d-8b64-c5c848fbfde0","html_url":"https://github.com/MegEngine/cudnn-frontend","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/MegEngine/cudnn-frontend","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MegEngine%2Fcudnn-frontend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MegEngine%2Fcudnn-frontend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MegEngine%2Fcudnn-frontend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MegEngine%2Fcudnn-frontend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MegEngine","download_url":"https://codeload.github.com/MegEngine/cudnn-frontend/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MegEngine%2Fcudnn-frontend/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31990579,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"ssl_error","status_checked_at":"2026-04-18T20:23:29.375Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-15T01:18:41.678Z","updated_at":"2026-04-19T01:06:23.204Z","avatar_url":"https://github.com/MegEngine.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cuDNN Frontend API\n\n## Introduction\nThe cuDNN Frontend API is a C++ header-only library that demonstrates how to use the cuDNN C backend API. The cuDNN C backend API is documented in the [cuDNN developer guide](https://docs.nvidia.com/deeplearning/cudnn/developer-guide/index.html). \n\n## Usage\nIn order to include the entire library, include the cudnn_frontend header file `cudnn_frontend.h` into your compilation unit.\n\n## Organization\nEach `cudnnBackendDescriptorType_t` documented in the enum is organized into its header file.\n- cudnn_frontend_Tensor.h         -\u003e CUDNN_BACKEND_TENSOR_DESCRIPTOR\n- cudnn_frontend_ConvDesc.h       -\u003e CUDNN_BACKEND_CONVOLUTION_DESCRIPTOR\n- cudnn_frontend_PointWiseDesc.h  -\u003e CUDNN_BACKEND_POINTWISE_DESCRIPTOR\n- cudnn_frontend_Operation.h      -\u003e CUDNN_BACKEND_OPERATION_*_DESCRIPTOR\n- cudnn_frontend_OperationGraph.h -\u003e CUDNN_BACKEND_OPERATIONGRAPH_DESCRIPTOR\n- cudnn_frontend_Heuristics.h     -\u003e CUDNN_BACKEND_ENGINEHEUR_DESCRIPTOR\n- cudnn_frontend_Engine.h         -\u003e CUDNN_BACKEND_ENGINE_DESCRIPTOR\n- cudnn_frontend_EngineConfig.h   -\u003e CUDNN_BACKEND_ENGINECFG_DESCRIPTOR\n- cudnn_frontend_ExecutionPlan.h  -\u003e CUDNN_BACKEND_EXECUTION_PLAN_DESCRIPTOR\n- cudnn_frontend_VariantPack.h    -\u003e CUDNN_BACKEND_VARIANT_PACK_DESCRIPTOR\n\n### Utility Functions\n- cudnn_frontend_find_plan.h -\u003e Implements the `cudnnFindPlan` function\n- cudnn_frontend_get_plan.h  -\u003e Implements the `cudnnGetPlan` function\n- cudnn_frontend_Filters.h   -\u003e List of helpful utility functions to filter out execution plans\n\n### Error Handling \n- cudnn_frontend_utils.h\n\n### Fallback Lists\n- cudnn_frontend_EngineFallbackList.h -\u003e Provides a fallback engine id if the heuristics do not provide an executable engine.\n\n## Samples\nMultiple samples of convolution, dgrad, wgrad and convBiasAct are added in `samples/test_list.cpp` and `samples/conv_sample.cpp`.  \n\nSample tests are written using the [Catch2](https://github.com/catchorg/Catch2) C++ test framework.\n\n### How to build samples:\n     - CUDA_PATH has the cuda installation. \n        - Include files are in CUDA_PATH/include\n        - Link files are in CUDA_PATH/lib64\n     - CUDNN_WRAP_PATH has the wrapper header files.\n\n     make CUDA_PATH=/usr/local/cuda CUDNN_WRAP_PATH=/usr/local/include/\n    \n## cudnnFindPlan and cudnnGetPlan:\nPrior to cuDNN V8, cuDNN provided `cudnnFindConvolution*` and `cudnnGetConvolution*` functions, which provided a way to sample all the algorithms for a given problem and study the run times. This can be further used to cache the best algorithms for a given problem.  In cuDNN V8, this has been replaced with `cudnnFindPlan` and `cudnnGetPlan`.\n\nIn order to use `cudnnFindPlan`, a user needs to provide:\n- Source for a pruned list of `engineConfig`s for the given problem statement\n- Filter function to Filter out the execution plan based on the prerequisite conditions\n\nThe `cudnnFindPlan` in turn\n- Creates a set of execution plans that are supported\n- Execute each filtered plan and ranks them in order of the execution plan runtime\n\nThe most common `engineConfig` generation is the built-in heuristics of cuDNN V8. Generally, this is appended with the fallback list. An example of usage can be seen in `run_from_cudnn_find(...)` function in `conv_sample.cpp`.\n\n## Documentation\nDocumentation can be found at https://nvidia.github.io/cudnn-frontend/\n\n## Feedback\nSupport, resources, and information about cuDNN can be found online at https://developer.nvidia.com/cudnn. \n\nFor questions or to provide feedback, please contact cuDNN@nvidia.com.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmegengine%2Fcudnn-frontend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmegengine%2Fcudnn-frontend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmegengine%2Fcudnn-frontend/lists"}