Files
derek.holloway 7502bf64a4
CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00

6.1 KiB

MIOpen Provider Plugin - Operation Support

This document provides detailed information about the operations supported by the MIOpen Provider Plugin for hipDNN.

For general information about hipDNN's operation support, please see the hipDNN Operation Support documentation.

Current Operation Support

The following table lists all operations currently supported in hipDNN:

Operation Datatypes Layouts Notes
Batchnorm Inference FP16, BFP16, FP32 NCL, NLC, NCHW, NHWC, NCDHW, NDHWC Spatial mode only1,6
Batchnorm Inference + Activation FP16, BFP16, FP32 NCL, NLC, NCHW, NHWC, NCDHW, NDHWC Fused graph3,6
Batchnorm Inference with Variance FP16, BFP16, FP32 NCL, NLC, NCHW, NHWC, NCDHW, NDHWC Spatial mode only1,6
Batchnorm Inference with Variance + Activation FP16, BFP16, FP32 NCL, NLC, NCHW, NHWC, NCDHW, NDHWC Fused graph3,6
Batchnorm Inference + DRelu + Backward FP16, BFP16, FP32 NCL, NLC, NCHW, NHWC, NCDHW, NDHWC Fused graph3,6
Batchnorm Training FP16, BFP16, FP32 NCL, NLC, NCHW, NHWC, NCDHW, NDHWC Spatial mode only1,6
Batchnorm Training + Activation FP16, BFP16, FP32 NCL, NLC, NCHW, NHWC, NCDHW, NDHWC Fused graph3,6
Batchnorm Backward FP16, BFP16, FP32 NCL, NLC, NCHW, NHWC, NCDHW, NDHWC Spatial mode only1,6
Convolution Dgrad FP16, BFP16, FP32 NCHW, NHWC, NCDHW, NDHWC Cross-correlation only2, Deterministic5
Convolution Forward FP16, BFP16, FP32 NCHW, NHWC, NCDHW, NDHWC Cross-correlation only2, Deterministic5
Convolution Forward + (Bias) + Activation4 FP16, BFP16, FP32 NCHW, NHWC, NCDHW, NDHWC Fused graph2,3, Deterministic5
Convolution Wgrad FP16, BFP16, FP32 NCHW, NHWC, NCDHW, NDHWC Cross-correlation only2, Deterministic5

¹ See Batchnorm Operations note below ² See Convolution Operations note below ³ See Fused Operations note below ⁴ See Detailed Requirements below ⁵ See Deterministic Engine Support section ⁶ 3D tensors are internally padded to 4D for MIOpen compatibility

Detailed Requirements

Convolution Forward + (Bias) + Activation

Convolution forward node

  • Compute data type: FP32
  • Y tensor
    • Virtual
    • Data type: FP32 or the input data type (the latter only if bias is used)

Bias node (optional)

  • Compute data type: input data type
  • Output tensor
    • Virtual
    • Data type: FP32 or the input data type

Activation node

  • Compute data type: FP32
  • Activation mode: RELU_FORWARD
  • Supports
    • no clipping
    • relu_lower_clip set
    • relu_lower_clip and relu_upper_clip set

Operation Notes

Note

Batchnorm Operations: Currently, only spatial batchnorm mode is supported. Spatial mode computes statistics over the batch (N) and spatial dimensions (H, W, or D, H, W) for each channel.

Note

Convolution Operations: Currently, only cross-correlation convolutions are supported. True mathematical convolution (with kernel flipping) is not yet implemented. In practice, cross-correlation is the standard operation used in modern deep learning frameworks.

Note

Fused Operations:

  • Fused batchnorm operations require F32 data type for the virtual/intermediate tensors. This can be set either explicitly on the tensor or by setting the default intermediate data type for the graph (recommended).
  • The fused graph patterns combine multiple operations:
    • Batchnorm Inference + Activation: Combines batchnorm inference (using invVariance) with forward activation (ReLU)
    • Batchnorm Inference with Variance + Activation: Combines batchnorm inference (using variance) with forward activation (ReLU)
    • Batchnorm Inference + DReLU + Backward: Combines batchnorm inference, activation backward (DReLU), and batchnorm backward
    • Batchnorm Training + Activation: Combines batchnorm training with forward activation
    • Convolution Forward + (Bias) + Activation: Combines convolution forward, optional bias addition, and forward activation

Note

Activation Functions: Supports ReLU, Clipped ReLU (with configurable upper clip), and CLAMP (with configurable lower/upper clips).

Note

Sparse Support: All operations currently work with dense tensors only.

Note

Batchnorm Training Running Statistics: Batchnorm training supports updating running statistics using separate read and write buffers. The previous running statistics (prev_running_mean, prev_running_variance) are read-only inputs, while the next running statistics (next_running_mean, next_running_variance) are write-only outputs. The exponential moving average is computed as: next_running = (1 - momentum) * prev_running + momentum * batch_statistic.

Deterministic Engine Support

The MIOpen provider offers a deterministic execution engine (MIOPEN_ENGINE_DETERMINISTIC) for convolution operations. This engine guarantees bit-reproducible results across multiple executions with the same inputs.

To use the deterministic engine, set it as the preferred engine on your graph before building:

#include <hipdnn_data_sdk/utilities/EngineNames.hpp>

graph.set_preferred_engine_id_ext(MIOPEN_ENGINE_DETERMINISTIC_NAME);

Note

Batchnorm Operations: Batchnorm operations do not support deterministic execution in MIOpen and are only available through the default (non-deterministic) engine.

Legend

Datatypes

  • FP16: Half-precision floating point (16-bit)
  • BFP16: Brain floating point (16-bit)
  • FP32: Single-precision floating point (32-bit)

Layouts

  • NCL: Batch, Channels, Length (1D, channel-first)
  • NLC: Batch, Length, Channels (1D, channel-last)
  • NCHW: Batch, Channels, Height, Width (2D, channel-first)
  • NHWC: Batch, Height, Width, Channels (2D, channel-last)
  • NCDHW: Batch, Channels, Depth, Height, Width (3D, channel-first)
  • NDHWC: Batch, Depth, Height, Width, Channels (3D, channel-last)