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

floating point exception in svml log function

gn164
Beginner
493 Views

Hi,

The following code raises an FPE in __svml_clogf2_l9. The failure is input dependent, I have attached two small input samples very similar to each other one than makes the program fail and one that doesn't.

It appears that previous version (14.0.1) does not show the problem. From my tests it seems that issue starts from versions 18.0.* and also persists in the latest version 19.0.3.

I am using debian 9 on Intel Xeon CPU E3-1240 v3.

No special flags have been used in compilation, it is using all default settings.

       program log_test
       
         integer, parameter :: len_i = 19
         complex :: values_in(len_i)
         complex :: values_out(len_i)
         real :: temp_r, temp_i
         integer :: ieee_flags
         character*16 :: out
         integer :: i, unit
       
       !---------------------------------------------------------------------------------------------------  
         values_out(:) = cmplx(0,0)
       
         print*, "Started and reading in data..."
         open(unit, file='inputsample_FPE')
           do i=1, len_i
             read(unit, '(2f15.8)') temp_r, temp_i
             values_in(i) = cmplx(temp_r,temp_i)
           enddo
         close(unit)
         print*, "Done reading data"

         
         i = ieee_flags('set', 'exception', 'overflow', out)

         do i=1, len_i
            values_out(i) =(log((values_in(i))))
         end do
         
         print*, "Finished successfully."
       

 

 

0 Kudos
3 Replies
Juergen_R_R
Valued Contributor I
493 Views

ieee_flags is an Intel (or older) extension, it is not standard. You should not let your code rely on non-standard extensions.

0 Kudos
gn164
Beginner
493 Views

Hi Juergen,

Thank you for your answer. Can you suggest any alternative to ieee_flags?

Not sure of this is the point though. The point is that svml raises an overflow for this program and specific input sample. Seems to me like a bug.

Similar bug identified in svml power function see here:

https://software.intel.com/en-us/comment/1937129#comment-1937129

 

 

 

 

 

 

0 Kudos
gn164
Beginner
493 Views

 

Similar FPE I also see with the following function:

__svml_atan2f4_l9

 

The input  looks normal. Does anybody have an idea why some svml functions trigger FPE in new versions post 2018 while they work fine in previous versions like 2016.

0 Kudos
Reply