Namespace scopes in oneAPI are of the form oneapi::mkl::domain, e.g. oneapi::mkl::blas and oneapi::mkl::rng. In oneMKL, the RNG domain libraries are of the form oneapi::mkl::rng::library, e.g. oneapi::mkl::rng::mklgpu.
Problem statement
The namespace convention in oneMKL differs between the BLAS and RNG domain libraries; where BLAS uses oneapi::mkl::library for library namespaces, RNG uses -- more appropriately -- oneapi::mkl::rng::library. This observation was made when reading through Integrating a Third-party Library to oneAPI Math Kernel Library (oneMKL) Interfaces:
Summary
Namespace scopes in oneAPI are of the form
oneapi::mkl::domain
, e.g.oneapi::mkl::blas
andoneapi::mkl::rng
. In oneMKL, the RNG domain libraries are of the formoneapi::mkl::rng::library
, e.g.oneapi::mkl::rng::mklgpu
.Problem statement
The namespace convention in oneMKL differs between the BLAS and RNG domain libraries; where BLAS uses
oneapi::mkl::library
for library namespaces, RNG uses -- more appropriately --oneapi::mkl::rng::library
. This observation was made when reading through Integrating a Third-party Library to oneAPI Math Kernel Library (oneMKL) Interfaces:where I believe it should be:
With the former instruction, adding a new third-party library to the RNG domain generates an incorrect namespace, e.g.
onemkl_rng_curand.hpp
:while it should be:
Preferred solution
The BLAS domain should be namespace'd consistently with the RNG domain. That is, more suitable would be:
which matches the RNG domain:
This also better reflects the header file naming convention, e.g.
onemkl_blas_netlib.hpp
.If this is an acceptable change, I will make a new PR.