- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'm a litte confused about why I'm getting denormals from various ipp calls. I'm using the Intel Compiler v10, and have flush denormals Qftz set... shouldn' this take care of that? And for ipp, I imagine something like this is supposed to work?
IppStatus status;
status = ippStaticInit();
status = ippSetDenormAreZeros(1);
status = ippSetFlushToZero(1, NULL);
In many cases my app will feed ipp filters (IIR, FIR, etc.) "empty" buffers (all 0.0 floats), and this is valid behavior in the application... but I'm still getting denormals as I step trough... shouldn't the /qftz switch take care of that at runitme, especially if I also set the flags for ipp? or do I need to perform additional checks at runtime and "flush" the denormals manually?
Thanks :)
IppStatus status;
status = ippStaticInit();
status = ippSetDenormAreZeros(1);
status = ippSetFlushToZero(1, NULL);
In many cases my app will feed ipp filters (IIR, FIR, etc.) "empty" buffers (all 0.0 floats), and this is valid behavior in the application... but I'm still getting denormals as I step trough... shouldn't the /qftz switch take care of that at runitme, especially if I also set the flags for ipp? or do I need to perform additional checks at runtime and "flush" the denormals manually?
Thanks :)
Link Copied
5 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
there is comment from our expert
Regards,
Vladimir
there is comment from our expert
Setting ftz and daz doesn't prevent from appearing of "denormals" in calculation results, these flags just inform cpu to consider these "denormals" as zeroes in the subsequent calculations and therefore speedup calculations. To avoid "denormals"you needto flush them manually (for example via ippsThreshold).
Regards,
Vladimir
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - Vladimir Dudnik (Intel)
Hello,
there is comment from our expert
Regards,
Vladimir
there is comment from our expert
Setting ftz and daz doesn't prevent from appearing of "denormals" in calculation results, these flags just inform cpu to consider these "denormals" as zeroes in the subsequent calculations and therefore speedup calculations. To avoid "denormals"you needto flush them manually (for example via ippsThreshold).
Regards,
Vladimir
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi...
I hope this thread is not dead yet.
Well, I'm alsoe experiencing performance drop due to denormal, and I've tried calling :
ippSetFlushToZero(1, NULL);
ippSetDenormAreZeros(1);
but there is no difference at all : it's like these lines are ignored.
I've ruled out the following :
SSE2 is enabled in all projects of my app (currently a test app involving one EXE and one DLL).
the functions above are called from the correct thread.
the functions don't complain about anything by returning some odd IppStatus.
the performance drop is indeed due to denormal
So I'm a bit stuck right now, so any idea would be welcome...
Thanks in advance for your help !
Valentin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Valentin,
What is the target platform/processor...?
Regards,
Naveen Gv
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Naveen !
Do you think this problem is hardware-based ?
Currently, I'm trying to make it work on my main dev machine :
Intel Core2 Quad CPU, Q6600 @ 2.40GHz 2.40GHz
4.00GB RAM installed.
I don't know if it's relevant, but just in case, I'm using Windows 7 professional, SP1.
Best regards,
Valentin
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page