- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Intel ifx 2024.1 has problems with OpenMP 5.x support I have worked my way through all the OpenMP examples in the OpenMP 5.2.2 Examples document and find 30+ cases where ifx 2024.1 fails. One such case is attached. Several cases out of this collection issue a compiler message showing failure and as that the message be reported to Intel. The full output of ifx -v is also attached. Has anyone else seen this?
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Intel has not implemented all of OMP 5.2. There is a web page listing what is support and not supported is HERE.
I'll take a look at your attachments to see if it's somethat that should work, given our currently supported features from OMP 5.2
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Ron,
Thanks for the response.
Please find attached a tar file of all the failed examples that ifx 2024.1 produced.
Top of each README shows what the ifx FOERTRAN compiler reported. Below that under the SOURCE title is the source code that produced the compiler report. The number in the README file is the example number in the Examples 5.2.2 (zip) file (chapter-by-chapter). In several cases the compiler failed and asked that the error be reported.
PS. Some failures were for OpenMP features prior to 5.x.
Best,
George
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
For this example I do see the problem with OMP_POLICY=DEFAULT
for policy MANDATORY, it does print a good descriptive message about sending offload to a bogus device number and abort. Expected behavior and not a problem
for policy DISABLED, it doesn't attempt to offload and reverts to CPU. Expected, good behavior.
for policy DEFAULT. not so good. It should be smart enough to see we've toggled the bozo bit and tried to select a non-existent device and fail over to CPU gracefully. But no, it throws the same behavior as MANDATORY:prints the 'hey bozo there is no such device' message and aborts. the
!omp$ target
directive probably starts up the OMP RT offload layer before it processes the device clause. Just a guess.
In fairness though, there is a warning
Warning: OMP_TARGET_OFFLOAD NOT supported by VER. 201611
If OMP_TARGET_OFFLOAD is set, it will be ignored.
it is checking for OPENMP_VERSION 201811 or greater, which we do not claim to be. I will have to check on this, perhaps our version string is out of date.
I'll bring this sample to our next OpenMP team meeting for discussion.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Ron,
Thanks for the analysis. Please send the corrected (working) source when you are done.
Also, please look through the 30+ other examples I submitted and issue your opinion/corrections.
Good to be talking with an expert.
FYI: I am working on learning how to use ifx and OpenMP to offload to an NVIDIA GPU device (if that is supported)
Best,
George
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
hi @GD_HiPERiSM
currently ifx is only able to offload to Intel GPUs.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page