- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear All,
In the previous version of Intel C++, there was a switch /Qax, which had the behavior to implement multiple code paths specific to different supported CPU instruction sets. The resolution, which code path to load, was done at library load time.
The latest version of Intel oneAPI C++ no longer has Qax, but only Qx, which allows a single code path selection. Is there some other switch, which replaces Qax? How can we get the same behavior as we had with Qax?
Thanks!
Atmapuri
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Thanks for reaching out to us.
We are looking into this issue internally. we will get back to you soon.
Regards,
Vidya.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Janez,
/Qax flag implementation is on the queue. But before that is implemented I can give you an work aound with which you can build for multiple architechtures.
Cpu_dispatch and ‘target’ multiversioning are the current multiversioning dispatch mechanisms (besides manual dispatch)
CPU-dispatch option provides multiple versions of the same function optimized for different architectures)
With CPU-dispatch we can do something like:
__attribute__((cpu_dispatch(list, of, architectures, and, things, here)))
void the_function();
__attribute__((cpu_specific(list, of, architectures, and, things, here)))
void the_function() { the implementation; }
If we have a special implementation for one of those, we can remove it from the cpu_specific declaration, and create a ‘new’ cpu_specific declaration with only that architecture (or subset of architectures).
So, the difference between using cpu_dispatch and using -ax<arch> is that with -ax<arch> the compiler figures out when it’s useful to have a CPU-specific clone, but with cpu_dispatch the user has to guess at that and specify it at the source level for each function to be multiversioned.
Let me know if that helps.
Regards,
Subarna
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Closing this case as there is no response from the customer. As soon as /Qax is implemented it will be a part of the release notes.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page