ESRGAN: Optimized for AMD ROCm

ESRGAN (Enhanced Super-Resolution Generative Adversarial Network) reconstructs a high-resolution image from a low-resolution input, upscaling 4× (250×250 → 1000×1000). This repository packages inference for image super-resolution using ONNX Runtime, exported and validated for AMD ROCm so it runs efficiently on AMD GPUs, CPUs, and NPUs.

This is based on the implementation of ESRGAN found here. This repository contains configurations and scripts optimized for AMD® ROCm™ platforms. You can use the esrgan AMD scripts to reproduce results or export with custom configurations. More details on model performance can be found here.


Task Overview

Task: Image super-resolution (4× upscaling)

Dataset: DIV2K validation set (100 HR images; 20 center-cropped 1000×1000 HR / 250×250 LR pairs prepared by default)

Output metrics: PSNR (dB), SSIM, latency/throughput

Backend note: The shipped model is an INT8 QDQ-quantized ONNX model with static NHWC shapes for cross-device compatibility; benchmark/profile precision flags select the execution/quantization path applied at run time.


AMD ROCm Optimization

This model export has been adapted and validated for AMD Instinct™ / Radeon™ GPUs running ROCm, as well as AMD CPUs and AMD Ryzen AI NPUs. Key points:

  • Validated backends: ONNX Runtime across CPU (FP32/INT8), GPU (MIGraphX execution provider — FP32/FP16/INT8), and NPU (VitisAI execution provider, auto-quantized internally).
  • No code changes required versus the upstream ESRGAN implementation — only environment/runtime configuration differs.
  • GPU and NPU both degrade output quality relative to CPU on this particular model — see Accuracy Pipeline for measured results.
Runtime Precision Backend Hardware Notes
ONNX Runtime FP32 / INT8 CPU Execution Provider AMD CPU Reference quality path
ONNX Runtime FP32 / FP16 / INT8 MIGraphX Execution Provider AMD Instinct™ / Radeon™ GPU (ROCm) Quality degrades vs. CPU on this model
ONNX Runtime Auto VitisAI Execution Provider AMD Ryzen AI NPU Auto-quantized internally; quality degrades further

Getting Started

For setup instructions, evaluation scripts, and custom configuration options, see the esrgan on GitHub.


Model Details

Model Type: Generative adversarial network for image super-resolution

Base Model: ESRGAN (INT8 QDQ-quantized ONNX export)

Model Stats:

  • Input: (1, 250, 250, 3) float32, NHWC, normalized to [0, 1]
  • Output: (1, 1000, 1000, 3) float32, NHWC (4× upscaled)
  • Precision tested: FP32, FP16, INT8 (shipped model is INT8-QDQ)

Accuracy Pipeline

Higher is better for both metrics — they measure how closely the upscaled image matches the ground truth. PSNR has no fixed ceiling (an exact match is infinite dB; typical super-resolution scores fall in the ~20–35 dB range), while SSIM is bounded in [0, 1] where 1.0 is a perfect structural match.

Metrics Explained

Metric Description
PSNR (dB) Peak Signal-to-Noise Ratio — a pixel-level fidelity measure derived from mean squared error. Higher means less per-pixel distortion, but can rate a blurry-but-aligned image well even when fine texture is lost — which is why it is paired with SSIM.
SSIM Structural Similarity Index — compares local luminance, contrast, and structure rather than raw pixel error. Higher means the output preserves edges and texture the way a human viewer perceives structure.

Accuracy Results

Full Dataset Evaluation (DIV2K validation, 20 image pairs, INT8-QDQ model) — filled from evaluation_results/eval_results_<device>_int8.json; run make metrics to refresh:

Device Precision PSNR (dB) SSIM Images
CPU INT8 22.68 0.7152 20
GPU INT8 11.29 0.1701 20
NPU INT8 5.06 0.1775 20

Dig Deeper

Want to explore the full evaluation scripts, config options, and other AMD-optimized model examples?

📂 View the full project on GitHub

The GitHub repository includes:

  • Benchmark, profile, and evaluation Makefile targets for CPU, GPU, and NPU
  • DIV2K dataset staging and PSNR/SSIM evaluation pipeline
  • INT8-QDQ ONNX export used across all device targets
  • Benchmarking and reproduction instructions
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Paper for AMD-PAVS-AI/esrgan