Skip to content

Add non-x86 versions of special functions #3510

Description

@david-cortes-intel

OneDAL takes many common mathematical functions used by statistical calculations from MKL, such as CDF of the normal distribution, inverse CDF, inverse error function, and similar.

These kinds of functions are not part of the C++ standard, and not part of any common library. Hence, the reference implementation used in the aarch64 and riscv builds fails silently, by filling with NaNs.

For example:

static float sErfInv(float in) { return std::numeric_limits<float>::quiet_NaN(); }

Perhaps some dependency could be added to the reference implementation for those functions. Issue would be with the licensing though - there are GPL implementations out there, but they would be incompatible with the Apache license of oneDAL.

Perhaps the cephes library which SciPy uses could be incorporated, but the licensing around that library is very unclear. Maybe a third-party dependency akin to OpenRNG could be created with those functions.

CC @rakshithgb-fujitsu @theComputeKid @keeranroth

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions