Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
28895 Discussions

Fortran 2023 OneApi + OpenMP offload to any GPU?

Limon
Novice
5,455 Views

Hello dear experts.

I find controversial information about this topic and I'm a little confused.

Does the new 2023 OneAPI HPC toolkit supports Fortran + OpenMP offloading to any GPU card?
Is there a list of cards that are supported?
I saw @Steve_Lionel answered here 2 years ago:
Intel compilers do not support OpenMP offload to GPUs (NVidia/AMD or anyone else)

But now I see that Intel Fortran GPU Offload is advertised "everywhere" with the new ifx compiler. Hoping it's for ANY GPU,  but that would be wild to assume. (and a few questions down below)

 

While installing the 2023 OneAPI Base Toolkit i got a warning:

 

Intel Graphics Driver for Windows not found.

You have no relevant GPU driver. If you are going to develop and run GPU-accelerated applications on this system, please check the installation guide for instructions on the GPU drivers.

 

The installation guide includes only:

I have a regular NVIDIA Quadro P2000, and a few other NVIDIA cards, does that mean that I won't be able to use Fortran + OpenMP with offloading to GPU?

Are there any other Fortran compilers besides intel that support OpenMP+GPU offload? Whats the starting point? 

A few other related questions:

  • Does 2023 API Toolkit includes both ifort and ifx?
  • After installing Base + HPC toolkit, how do I make MS Visual Studio to switch to ifx?
  • Any good "Get Started" guides for OpenMP + GPU offload in Fortran language? Found this, but its C.
  • Can the MKL function calls be offloaded to GPU together with the regular Fortran code wrapped with OpenMP directives?

Really appreciate the answers.
Thanks.

0 Kudos
1 Solution
Steve_Lionel
Honored Contributor III
5,391 Views

The grand idea of oneAPI is that it COULD support multiple brands of GPU - all that would take is for "someone" to write the appropriate software that understands oneAPI and makes it work with that GPU. To date, that hasn't happened, so only Intel GPUs are supported.

For your other questions - the ones I can answer are:

  • The oneAPI HPC Toolkit includes both ifort and ifx, as does the "standalone" Fortran compiler installer
  • When you are in a Visual Studio project and an x64 configuration, right click on the project and select Intel Compiler. This lets you select the compiler to use. Note that IFX does not support 32-bit, so you won't see this option in a 32-bit configuration.

 

 

View solution in original post

12 Replies
Steve_Lionel
Honored Contributor III
5,392 Views

The grand idea of oneAPI is that it COULD support multiple brands of GPU - all that would take is for "someone" to write the appropriate software that understands oneAPI and makes it work with that GPU. To date, that hasn't happened, so only Intel GPUs are supported.

For your other questions - the ones I can answer are:

  • The oneAPI HPC Toolkit includes both ifort and ifx, as does the "standalone" Fortran compiler installer
  • When you are in a Visual Studio project and an x64 configuration, right click on the project and select Intel Compiler. This lets you select the compiler to use. Note that IFX does not support 32-bit, so you won't see this option in a 32-bit configuration.

 

 

Limon
Novice
5,378 Views

Thank you for the quick reply.

I was confused with this video:
https://youtu.be/lRW7qGg6dr0?t=362, but now i see that its nvfortran compiler. Which is Nvidia-made as far as I understand.

Do you know anything about MKL + GPU offloading? Does it work with intel GPUs.

0 Kudos
Barbara_P_Intel
Employee
5,376 Views

Best to ask about MKL and Intel GPUs on the MKL Forum. Here's the link.

Archana2024
Beginner
4,149 Views

Does IFX support GPU acceleration of fortran code using MPI and OpenACC? 

 

Archana

 

0 Kudos
Barbara_P_Intel
Employee
4,123 Views

Use OpenMP TARGET directives with ifx to offload to Intel GPUs. 

Intel MPI has special features for Intel GPUs.

As for OpenACC, try this tool developed by Intel application engineers for migrating OpenACC to OpenMP.

0 Kudos
Archana2024
Beginner
4,094 Views

Thanks. Is it possible also with classic ifort compiler? 
I know ifort is soon going to be deprecated, but I already have it on my system so would like to test with it before I upgrade to ifx

0 Kudos
Barbara_P_Intel
Employee
3,995 Views

Sorry, not with ifort. Only ifx with OpenMP TARGET directives can offload to an Intel GPU.

0 Kudos
Barbara_P_Intel
Employee
5,379 Views

@Steve_Lionel is correct that Intel Fortran (ifx) using OpenMP directives only offloads to Intel GPUs. ifx works well on CPUs, too.

The Intel implementation of SYCL (DPC++) which is part of oneAPI does offload to GPUs from other vendors. This was just recently announced. See this article for more information.

 

Steve_Lionel
Honored Contributor III
5,370 Views

Barbara, that's great news about the plugins. I had not heard of those yet. I assume (hope) that Fortran support is in the works.

0 Kudos
Van_Veen__Lennaert
2,376 Views

One year later.. Is there an update? OP took the words right out of my mouth. Is offloading of MKL functions with ifx to non-Intel GPUs now supported? Or is there a date set for a release? It would help me tremendously as I would avoid moving compilers - and I have found that nvfortran is not very stable yet on the shared facilities I use. Having spend several weeks optimizing the code with ifx and Intel mkl moving to a different suite is not appealing. Tagging @Steve_Lionel and @Barbara_P_Intel in the hope that the thread is revived!

0 Kudos
Steve_Lionel
Honored Contributor III
2,375 Views

I can't help, and Barbara is now (I think) retired. You really should ask this in the MKL forum.

Van_Veen__Lennaert
2,372 Views

Thanks for the quick reply and wish Barbara a pleasant retirement!

0 Kudos
Reply