Emboss Augmentation on HOST and HIP#675
Conversation
r-abishek
commented
Feb 20, 2026
- Adds Emboss Augmentation on HOST and HIP.
- Emboss applies a convolution operator to a 2D image array to generate an array containing difference values that represent edges in the original image.
- Support for kernel sizes 3, 5, 7, and 9 fo bit depths U8/F16/F32/I8
- Adds relevant unit/perf tests and qa test support.
…and resolved all the comment
… into apr/emboss
RPP Emboss on HOST and HIP
There was a problem hiding this comment.
Pull request overview
Adds a new Emboss filter augmentation to the RPP tensor API, with HOST/HIP execution support and test-suite / QA wiring so the new op can be exercised via the existing test runners.
Changes:
- Adds
rppt_emboss(...)to the public tensor filter augmentations API and dispatches it inrppt_tensor_filter_augmentations.cppfor HOST and HIP backends. - Implements the HOST emboss kernel (CPU) and declares HOST/HIP executor entrypoints.
- Extends the Python/C++ test suite mappings and runners to include the new emboss case (ID 101) and kernel-size sweep (3/5/7/9), and adds doxygen output images for emboss.
Reviewed changes
Copilot reviewed 11 out of 24 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| utilities/test_suite/rpp_test_suite_image.h | Registers emboss in augmentation maps/enums and treats it as a kernel-size case. |
| utilities/test_suite/common.py | Adds emboss to Python augmentation map and filter augmentation group. |
| utilities/test_suite/HOST/runImageTests.py | Runs emboss across kernel sizes as part of HOST test matrix. |
| utilities/test_suite/HOST/Tensor_image_host.cpp | Adds emboss case execution path in the HOST C++ test binary and updates printed case range. |
| utilities/test_suite/HIP/runImageTests.py | Runs emboss across kernel sizes as part of HIP test/perf matrix. |
| utilities/test_suite/HIP/Tensor_image_hip.cpp | Adds emboss case execution path and alloc/free of strength/bias tensors in HIP test binary. |
| src/modules/tensor/rppt_tensor_filter_augmentations.cpp | Adds rppt_emboss entrypoint and backend dispatch (HOST/HIP). |
| src/modules/tensor/cpu/kernel/emboss.cpp | Adds the HOST emboss implementation (kernel creation + optimized paths). |
| src/include/tensor/host_tensor_executors.hpp | Declares emboss_host_tensor / emboss_generic_host_tensor. |
| src/include/tensor/hip_tensor_executors.hpp | Declares hip_exec_emboss_tensor. |
| docs/data/doxygenOutputs/filter_augmentations_emboss_kSize3_img150x150.png | Adds doxygen sample output image for emboss (3x3). |
| docs/data/doxygenOutputs/filter_augmentations_emboss_kSize5_img150x150.png | Adds doxygen sample output image for emboss (5x5). |
| docs/data/doxygenOutputs/filter_augmentations_emboss_kSize7_img150x150.png | Adds doxygen sample output image for emboss (7x7). |
| docs/data/doxygenOutputs/filter_augmentations_emboss_kSize9_img150x150.png | Adds doxygen sample output image for emboss (9x9). |
| api/rppt_tensor_filter_augmentations.h | Documents and exposes the new rppt_emboss public API. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| __m256 pRow[45], pDst[2]; | ||
| rpp_load_gaussian_filter_9x9_pkd_pln_host(pRow, srcPtrTemp, rowKernelLoopLimit, padIndex); | ||
| pDst[0] = avx_p0; |
There was a problem hiding this comment.
In the 9x9 NHWC->NCHW AVX2 path, this calls rpp_load_gaussian_filter_9x9_pkd_pln_host(...), which looks like a copy/paste from gaussian_filter and is inconsistent with emboss. This likely loads the wrong neighborhood/packing assumptions for emboss and can corrupt output. Please switch to the appropriate generic NxN loader used elsewhere in emboss (or add an emboss-specific 9x9 pkd->pln loader).
There was a problem hiding this comment.
Both emboss and gaussian filter are algorithmically similar expect the filter values. So same loads and store funcs of gaussian filter are used here
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## develop #675 +/- ##
===========================================
- Coverage 92.46% 92.43% -0.02%
===========================================
Files 198 200 +2
Lines 89139 90759 +1620
===========================================
+ Hits 82415 83891 +1476
- Misses 6724 6868 +144
🚀 New features to boost your workflow:
|
Emboss - resolved review comments
Merged develop - Emboss