hipDNN
Caution
hipDNN is in the early stages of development. There is currently limited functionality available to execute graphs. See Operation Support for reference.
Note
The published hipDNN documentation is available here in an organized, easy-to-read format, with search and a table of contents. The documentation source files reside in the
docsfolder of this repository. As with all ROCm projects, the documentation is open source. For more information on contributing to the documentation, see Contribute to ROCm documentation.
Overview
hipDNN is a graph-based deep learning library for AMD GPUs that leverages a flexible plugin architecture to provide optimized implementations and utilities for various routines.
Table of Contents
Getting Started
The fastest way to get started with hipDNN is to follow the quick start steps in the build guide.
Documentation
User Guides
- Building - Prerequisites, build configurations, and platform-specific instructions
- Consumer Quick Start - Using an installed hipDNN in your CMake project
- How-To - Using hipDNN components and extending the framework
- Environment Configuration - Runtime configuration and logging setup
- Operation Support - Currently supported operations and their status
- Samples - Frontend usage examples
- API Reference - Doxygen-generated API documentation
Developer Guides
- Design Overview - Architecture and design descriptions and diagrams
- Extending hipDNN - How to extend hipDNN functionality
- Plugin Development - Creating and using custom plugins for hipDNN
- Roadmap - Feature priorities and development plans
Testing
- Testing - Synopsis of testing information
- Testing Strategy - Specific testing approach
- Test Plan - Detailed test planning
- Test Run Template - Guidelines for test execution
Project Structure
hipDNN is organized into several key components. For detailed architecture descriptions, see the Design Overview.
| Component | Description |
|---|---|
| Backend | Core shared library providing C API for operation graphs and managing plugins |
| Data SDK | Header-only library with shared types, tensor utilities, logging, and the engine name registry |
| Flatbuffers SDK | Header-only library with FlatBuffers schemas, generated headers, graph wrappers, and optional JSON helpers |
| Frontend | Header-only C++ API wrapper around the backend |
| Plugin SDK | Header-only library for plugin development |
| Samples | Example implementations demonstrating hipDNN usage |
| Tests | Tests for the public API (incl. frontend integration tests) |
| Tools | Experimental utilities (e.g., benchmarking, engine listing) — subject to change |
Note
Official hipDNN plugins can be found in the dnn-providers folder (e.g., MIOpen Plugin).
Docker Support
See Docker README for containerized development environments.
API Documentation
hipDNN includes Doxygen-generated API documentation for the public C++ frontend.
Building the Documentation
-
Install Doxygen:
# Ubuntu/Debian sudo apt-get install doxygenFor Windows, download the installer from doxygen.nl/download.
-
Generate the documentation:
cd <project-root> doxygen Doxyfile -
Open the generated documentation:
# Linux xdg-open build/docs/html/index.html # Windows start build\docs\html\index.html
The documentation covers the frontend API including:
- Graph construction and execution
- Tensor and operation attributes
- Engine configuration and knobs
- Error handling
Contributing
For information about contributing to the hipDNN project, please see the Contributing Guide.