Intel OneAPI 2023 released

Intel OneAPI 2023 has just arrived in my Ubuntu 22.10. One important change is that ifx is now supporting -corray:

ifx version 2023.0.0
- Intel Fortran Compiler, based on modern LLVM technology, now has up to Fortran 2018 full language standards support, including Coarrays eliminating the need for external APIs such as MPI or OpenMP. To easily express offload parallelism the compiler adds DO CONCURRENT GPU offload support.

https://www.intel.com/content/www/us/en/developer/articles/release-notes/fortran-compiler-release-notes.html

$ ifx --version
ifx (IFORT) 2023.0.0 20221201
Copyright (C) 1985-2022 Intel Corporation. All rights reserved.

$ ifort --version
ifort (IFORT) 2021.8.0 20221119
Copyright (C) 1985-2022 Intel Corporation.  All rights reserved.
6 Likes

This is great! It would be great if someone can check out this: Ifort (IFORT) 2021.8 evaluates -1.7633055E+37 / 1.0E+38 to 0. Thanks.

My machine (x86_64 Ubuntu) doesn’t do that. Evidence:

john@johns-laptop:~$ cat zifortbug.f90
!zaikunzhang's program
  print *,-1.7633055E+37 / 1.0E+38
end program
john@johns-laptop:~$ ifort -V zifortbug.f90
Compiling "ifort -V zifortbug.f90"
Intel(R) Fortran Intel(R) 64 Compiler Classic for applications running on Intel(R) 64, Version 2021.8.0 Build 20221119_000000
Copyright (C) 1985-2022 Intel Corporation.  All rights reserved.

 Intel(R) Fortran 2021.8.0-1196
GNU ld (GNU Binutils for Ubuntu) 2.38
john@johns-laptop:~$ ./a.out
 -0.1763306    
john@johns-laptop:~$ 

The answer is given in the other thread on this topic. The reciprocal of the denominator is a denormal number, so you will get zero when the expression is evaluated as a reciprocal and multiplication sequence and when denormals are set to zero.

I would not call this a compiler bug. I would say this is a problem that the programmer should fix by scaling the numerator and denominator values appropriately.

1 Like

Thank you for testing this. The problem occurs only if some vectorization is involved. It does not affect scalar divisions. See the other thread for detailed discussions.