- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I just downloaded the latest MKL 2023.0.0 release for Windows and Linux and realized that some header files differ between the Windows and Linux release.
I would recommend, to keep the header files of Windows, Linux and MacOS in sync and to use the exact same header files (maybe only differing in line endings if really needed).
Some examples I have found:
- `mkl_dss.h`, `mkl_pardiso.h`, `mkl_rci.h` and `mkl_solvers_ee.h` in the Windows version use a macro `_Mkl_Api` to declare functions (which can be redefined by the user or `mkl.h`), while the Linux version still declares functions traditionally.
- In some other header files, e.g. `mkl_blas2.h`, some functions are not marked `NOTHROW` in the Windows version while they are in the Linux versions are marked as `NOTHROW`.
- In some header files the order of declared functions differ between the Windows and the Linux version, e.g. in `mkl_blas2.h`.
- In some header files, e.g. `mkl_df_functions.h`, the Windows version declares a macro `MKL_CALL_CONV` that is used within the `_Mkl_Api`, `_mkl_api` and `_MKL_API` macros while the Linux version does not but instead adds an underscore to function names (but only for `_mkl_api` and `_MKL_API`.
- While I understand that explicitly setting the calling convention for Windows compilers might not be important for Linux compilers, it should not be too difficult to disable this with `#ifdef`s when on Linux etc.
- Spaces seem to be the normal characters for indenting code, however, in some Linux headers, e.g. `mkl_blasc.h` tabs are used instead in some lines.
- Similar, some headers have superfluous whitespace characters in the Windows version, while they do not have these in the Linux version and vice versa.
- Some other small differences in comments etc.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Deniz,
Thanks for reaching out to us.
We are working on your issue. we will get back to you soon.
Regards,
Vidya.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Deniz,
Could you please let us know if the differences which you have mentioned cause any issues? If yes, please provide us with the reproducer and the necessary details so that it would help us better in understanding the issue.
Regards,
Vidya.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Vidya,
I haven't really tried compiling code with these yet.
However, at least for `mkl_pardiso.h` I can try to pre-define the `_Mkl_Api` macro (in order to e.g. add some compiler attribute or enable/disable some warnings conditionally etc.) but this will only ever have any effect on the Windows release of MKL, because the Linux version of this header does not use the `_Mkl_Api` macro at all.
In general, I would have thought that even for you at Intel it would be easier if the same release for different platforms provides at least the exact same header files.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Deniz,
Thanks for the suggestions.
We will get back to you soon with an update.
Regards,
Vidya.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Deniz,
Thank you for your patience. The issue raised by you has been fixed in version 2024.0. If the issue persists with new release, please start a new discussion thread in the community forum and we’d investigate it further. Please check the release notes for upcoming features and bug fixes.
Best Regards,
Shanmukh.SS
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page