Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.
7956 Discussions

Floating Point Assist Faults on Itanium2

Intel_C_Intel
Employee
397 Views
Hello,
I am using Intel C,C++,F95 compilers on an Itanium2 system. To disable generation of denormals, I truned on the Flush to Zero with the help of compiler option -ftz. Even after compiling with -ftz, I am still getting the Floating Point assis fault messages. Is there anyway to disable the generation of denormals?
Thank you,
Kalyan
0 Kudos
5 Replies
TimP
Honored Contributor III
397 Views

Message Edited by tim18 on 08-25-2004 06:08 AM

0 Kudos
Intel_C_Intel
Employee
397 Views

tcprince,

thank you for the prompt reply. However, I have one observation:

"The -ftz witch only needs to be used on the source containing function main(). The effect of the -ftz switch is to turn on FTZ mode for the process started by main(). The initial thread and anythreads subsequently created by that process will operate in FTZ mode."

According to this, it should be ok if I compile the code containing main(). Am I correct in my understanding ?

regards,

Kalyan

0 Kudos
Shane_S_Intel
Employee
397 Views
On IPF, FPSWA ('fp assist') faults occur mainly when denormal inputs are consumed by floating-point operations. FPSWA traps occur mainly when denormal results are produced (some corner cases exist, but they are of little practical importance).
Using the -ftz compiler switch, denormals that would be created during the computation are flushed to zero thuseliminating all FPSWA traps, but denormals that are read as input data are not affected. Thus, FPSWA faults can still occur, and cannot be avoided unless the application's input values are changed to avoid denormals completely.
0 Kudos
Intel_C_Intel
Employee
397 Views
Thank you. I will check the input for the same.
regards,
Kalyan
0 Kudos
TimP
Honored Contributor III
397 Views

That is correct. If main() is built with -ftz, the abrupt underflow setting persists throughout the application, unless you reset by using the intrinsics or asm code.

The other point about this having no effect on data read from a file is correct as well.

0 Kudos
Reply