- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Have two conflictual points as below:
1. Can setting
The /Qftz- option used to disable FTZ mode.
It is descripts as these sentence "The -ftz and /Qftz options, when applied to the main program, set the FTZ and the DAZ hardware flags. The -no-ftz and /Qftz- options leave the flags as they are". Reference following link:https://software.intel.com/sites/products/documentation/doclib/iss/2013/compiler/cpp-lin/GUID-1659EAE1-583E-44EE-BDEA-7C68C46061C7.htm
2. Can’t setting
Can’t set FTZ mode by using Intel Compiler Option.
It is descripts as these sentence "I've said that IPP is built without this switch and FTZ bit is set to 1 in the IPP dllMailn() function - this behavior can't be changed in your app.". Reference following link: https://software.intel.com/en-us/forums/topic/542786
So, can set FTZ mode using Intel Compiler Option or can’t?
If can set, why I doesn’t used /Qftz- option? The reason is version of IPP, isn’t it?
(I use: Visual Studio 2008 SP1, Intel Parallel Studio 2011)
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
all above - #1 and #2 are correct. Statement #2 is related to a case when IPP is dynamically linked to your application: the setting of FTZ bit to "off" state in your application will be affected by IPP dll load procedure - at dll load stage IPP dllmain() procedure will be called, that sets FTZ to "on" state. And this behavior - behavior of IPP dllmain() - can't be changed by compiler switches during your application building. If you need/want FTZ=0 in your app - you should manually change its state after IPP dllmain() - using specific functions from run-time libraries or via explicit call to IPPAPI( IppStatus, ippSetFlushToZero, ( int value, unsigned int* pUMask ))
regards, Igor
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I understood statement #2.
I don't understand about statement #1. And how to use /Qftz- option?
Could you tell me more details?
-------------------------------------------------------------------
I do the following steps:
- Open Configuration Properties > C/C++ > Command Line
- Add "/Qftz-" to field "Additional Options". Click OK
But when I rebuild the project, the output is
"1>icl: command line remark #10148: option '/Qftz-' not supported"
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
in the past, for rather old Intel Composer/Compiler versions, there was a differentiation between XE and non-XE versions: the next switches were not supported by the non-XE version:
Qcomplex-limited-range
Qcxx-features
Qfnsplit
Qfp-port
Qfp-speculation
Qftz
Qgsym
Qinline-factor
Qinline-forceinline
Qinline-max-per-compile
Qinline-max-per-routine
Qinline-max-size
Qinline-max-total-size
Qinline-min-size
Qip-no-inlining
Qip-no-pinlining
Qipo-separate
Qipo-S
Qipo-c
Qkeep-static-consts
Qlong-double
Qmap-opts
Qmspp
Qnobss-init
Qopt-mem-bandwidth
Qopt-streaming-stores
Qpar-affinity
Qpar-adjust-stack
Qpar-num-threads
Qpar-threshold
Qpc
Qprec-div
Qprec-sqrt
Qprec
Qprefetch
Qprof-cdir
Qprof-data-order
Qprof-format-32
Qprof-func-order
Qprof-gen-sampling
Qprof-hotness-threshold
Qprof-hpi
Qprof-merge
Qprof-order
Qprof-src-dir
Qprof-src-root-cwd
Qprof-src-root
Qprof-use
Qprof-value-profiling
Qprofile-functions
Qprofile-loops
Qprofile-loops-report
Qrcd
Qscalar-rep
Qsimd
Qunroll
Qunroll-aggressive
Qvec-threshold
Qzero-initialized-in-bss-
For the recent versions there is no such differentiation anymore - therefore /Qftz- will work for you if you upgrade your tool set.
Regards, Igor.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Ha Duy,
I guess, you have know that the Floating-point computations using these Intel® SSE and Intel® AVX instructions are accelerated when the FTZ and DAZ flags are enabled and thus the performance of the application improves. Why did you expect to disable it /Qftz-?
Regarding the can and can't , the first can is supposed to you set the flag.. but when call IPP dll, it will do second setting . or we said, the flag is reset, thus your first option don't effect. that is why cant' . Unless as igor mentioned, you call runtime function or ippSetFlushToZero explicitly again, so confirm what you hope to set.
Best Regards,
Ying
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page