Expand description
GPU vs CPU output comparison and verification utilities.
Provides tools for verifying that GPU-accelerated operations produce results within an acceptable tolerance of their CPU reference implementations.
§Tolerance Metrics
| Metric | Description |
|---|---|
ToleranceMetric::MaxAbsDiff | Maximum absolute difference across all elements. |
ToleranceMetric::MeanAbsDiff | Mean absolute difference. |
ToleranceMetric::Psnr | Peak Signal-to-Noise Ratio (dB). |
ToleranceMetric::RmsError | Root Mean Square error. |
§Example
use oximedia_gpu::gpu_cpu_verify::{ComparisonResult, VerificationSuite, ToleranceMetric};
let gpu_output = vec![128u8, 129, 127, 255];
let cpu_output = vec![128u8, 128, 128, 255];
let result = ComparisonResult::compare_u8(&gpu_output, &cpu_output);
assert!(result.max_abs_diff <= 1);Structs§
- Comparison
Result - Detailed result of comparing two buffers element-by-element.
- Verification
Case - A single test case result within a verification suite.
- Verification
Suite - A suite of GPU vs CPU verification tests.
Enums§
- Tolerance
Metric - Which metric to use for pass/fail decisions.
Functions§
- buffers_
within_ tolerance - Quick check: are two u8 buffers within
max_diffof each other at every element? - compute_
buffer_ psnr - Quick check: compute PSNR between two u8 buffers.
- compute_
buffer_ rms - Quick check: compute RMS error between two u8 buffers.