openvino
db2bfdff - [CORE][CPU] Add erfinv operation (#34823)

Commit
4 days ago
[CORE][CPU] Add erfinv operation (#34823) ### Details: Introduces `ov::op::v17::ErfInv` — the element-wise inverse error function — as a new operation in OpenVINO opset17, aligned with [`torch.erfinv`](https://docs.pytorch.org/docs/stable/generated/torch.erfinv.html). Includes a full CPU plugin implementation with JIT emitters for x64, aarch64, and riscv64. ### Motivation `erfinv` appears in statistical models and normalizing flows (e.g., Box-Muller transform, quantile functions). PyTorch models using `torch.erfinv` cannot currently be converted to OpenVINO without a workaround. This PR adds native support so such models convert and run efficiently without falling back to a slow scalar path. ### Changes #### Core (`src/core/`) - New op class `ov::op::v17::ErfInv` (unary, float-only: f16/bf16/f32/f64) - Registered in `opset17_tbl.hpp` and `ops.hpp` / `ops_decl.hpp` - Reference kernel (`reference/erfinv.hpp`) using the [Giles (2010)](https://people.maths.ox.ac.uk/gilesm/files/gems_erfinv.pdf) piecewise polynomial approximation — two 8-term Horner branches split on `w = -log(1 - x²) ≥ 5` ### Notes - The Giles approximation has ~6 ULP max error for f32, consistent with PyTorch's own implementation. ### Tickets: - 183678 ### AI Assistance: - *AI assistance used: yes - The entire PR was generated using AI agent. Code was manually reviewed. --------- Co-authored-by: Katarzyna Mitrus <katarzyna.mitrus@intel.com>
Author
Parents
Loading