Forum > Windows
Best compiler options
Raistmer:
Hello.
Anybody tried "Flush denormal results to zero" option enabled?
AFAIK it may give some improvement in speed and simulate situation we will have on GPU chips w/o denormalized floating number support. Or it will bring unvalidatable results?
Jason G:
--- Quote from: Raistmer on 19 Nov 2007, 10:35:24 am ---Hello.
Anybody tried "Flush denormal results to zero" option enabled?
AFAIK it may give some improvement in speed and simulate situation we will have on GPU chips w/o denormalized floating number support. Or it will bring unvalidatable results?
--- End quote ---
I have looked into manually threshholding parts of the signals for that sort of thing (NaN's etc.) Using special IPP functions for that purpose, but haven't gotten around to it yet. There are supposedly massive speed increases possible without significant precision penalty (NaN's are already NaN's after all) . Vtune shows there are significant speed penalties going on in the FFT/IFFT for processing denormal data. [In the other SSE routines too for that matter]
If you have an app that makes valid results now, Maybe you could try a separate build with "Flush Denormal results to zero" on the optimiser .cpp files only. It may not Validate, The precision penalty may be high for the brute force 'Flush to Zero', but even if not valid results, the time improvement data may be valuable.
Iit would give an indication of how much speedup might be obtainable with more careful use of the more precise thresholding routines instead. [Also nothing stops us trying to make custom thresholding, or finetuning any existing data maintenance already in the code (there is a little there I think) ]
Jason
[Afterthought: Joe has mentioned to me in the past that there is only one place, I think in the baseline smoothing, that requires full reversability, so I am thinking that just maybe selective liberal use of heavy handed thresholding all the other places might be possible...]
Raistmer:
Well, i rebuilt with "Flush denormals to zero" ON for Optimizer and seti_boinc projects. Results still strong similar but there was no improvement in run time (on testWU-1 at least).
Jason G:
--- Quote from: Raistmer on 19 Nov 2007, 05:15:49 pm ---Well, i rebuilt with "Flush denormals to zero" ON for Optimizer and seti_boinc projects. Results still strong similar but there was no improvement in run time (on testWU-1 at least).
--- End quote ---
I suppose that could imply there might not be much effect from underflows with that data. It's a while ago since I ran vtune with TestWU-1, So when I build again I'll make sure to grab some fresh profile data and look for SSE and x87 Input assists.
I'm glad you found the WU still validates. that maybe means we could be more aggressive later if needed.
Jason
Raistmer:
app build with "flush denormals to zero" option enabled throws exeption on restart... so not viable option :/
ERROR: Invalid parameter detected in function (null). File: (null) Line: 0
ERROR: Expression: (null)
Unhandled Exception Detected...
- Unhandled Exception Record -
Reason: Breakpoint Encountered (0x80000003) at address 0x7D61002D
Engaging BOINC Windows Runtime Debugger...
********************
BOINC Windows Runtime Debugger Version 5.10.20
Dump Timestamp : 11/23/07 12:01:48
LoadLibraryA( srcsrv.dll ): GetLastError = 126
Debugger Engine : 4.0.5.0
Symbol Search Path: D:\BTR\SETI\seti_boinc\client\win_build\Release32-NoGFX-xW;D:\BTR\SETI\seti_boinc\client\win_build\Release32-NoGFX-xW;srv*G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\2\symbols*http://msdl.microsoft.com/download/symbols
ModLoad: 00400000 001ac000 KWSN_R_2.4_SSE2_x86_flush_to_zero.exe (2.3.0.7) (PDB Symbols Loaded)
File Version : 2, 3, 0, 7
Company Name : Lunatics.at
Product Name : SETI@Home Enhanced Worker
Product Version: 5, 0, 1, 5
ModLoad: 7d600000 000f0000 ntdll.dll (5.2.3790.1830) (-exported- Symbols Loaded)
File Version : 5.2.3790.1830 (srv03_sp1_rtm.050324-1447)
Company Name : Microsoft Corporation
Product Name : MicrosoftR WindowsR Operating System
Product Version: 5.2.3790.1830
ModLoad: 7d4c0000 00130000 kernel32.dll (5.2.3790.2919) (-exported- Symbols Loaded)
File Version : 5.2.3790.2919 (srv03_sp1_gdr.070417-2346)
Company Name : Microsoft Corporation
Product Name : MicrosoftR WindowsR Operating System
Product Version: 5.2.3790.2919
ModLoad: 10000000 00017000 ippcore-5.3.dll (5.3.85.461) (-exported- Symbols Loaded)
File Version : 5,3,85,461
Company Name : Intel Corporation.
Product Name : core. IntelR Integrated Performance Primitives. Core Library.
Product Version: 5.3 build 85.13
ModLoad: 005b0000 0004e000 libguide40.dll (4.0.2007.602) (-exported- Symbols Loaded)
File Version : 20070602
Company Name : Intel Corporation
Product Name : Intel(R) OMP Runtime Library
Product Version: 4.0
ModLoad: 00600000 0003d000 ipps-5.3.dll (5.3.85.498) (-exported- Symbols Loaded)
File Version : 5,3,85,498
Company Name : Intel Corporation.
Product Name : ippSP. IntelR Integrated Performance Primitives. Signal Processing.
Product Version: 5.3 build 85.13
ModLoad: 7d930000 000d0000 USER32.dll (5.2.3790.2892) (-exported- Symbols Loaded)
File Version : 5.2.3790.2892 (srv03_sp1_gdr.070301-0030)
Company Name : Microsoft Corporation
Product Name : MicrosoftR WindowsR Operating System
Product Version: 5.2.3790.2892
ModLoad: 7d800000 00090000 GDI32.dll (5.2.3790.2960) (-exported- Symbols Loaded)
File Version : 5.2.3790.2960 (srv03_sp1_gdr.070620-2335)
Company Name : Microsoft Corporation
Product Name : MicrosoftR WindowsR Operating System
Product Version: 5.2.3790.2960
ModLoad: 77f50000 0009c000 ADVAPI32.dll (5.2.3790.1830) (-exported- Symbols Loaded)
File Version : 5.2.3790.1830 (srv03_sp1_rtm.050324-1447)
Company Name : Microsoft Corporation
Product Name : MicrosoftR WindowsR Operating System
Product Version: 5.2.3790.1830
ModLoad: 7da20000 000e0000 RPCRT4.dll (5.2.3790.1830) (-exported- Symbols Loaded)
File Version : 5.2.3790.1830 (srv03_sp1_rtm.050324-1447)
Company Name : Microsoft Corporation
Product Name : MicrosoftR WindowsR Operating System
Product Version: 5.2.3790.1830
ModLoad: 71c20000 00012000 tsappcmp.dll (5.2.3790.1830) (-exported- Symbols Loaded)
File Version : 5.2.3790.1830 (srv03_sp1_rtm.050324-1447)
Company Name : Microsoft Corporation
Product Name : MicrosoftR WindowsR Operating System
Product Version: 5.2.3790.1830
ModLoad: 77ba0000 0005a000 msvcrt.dll (7.0.3790.1830) (-exported- Symbols Loaded)
File Version : 7.0.3790.1830 (srv03_sp1_rtm.050324-1447)
Company Name : Microsoft Corporation
Product Name : MicrosoftR WindowsR Operating System
Product Version: 7.0.3790.1830
ModLoad: 7dee0000 00060000 IMM32.DLL (5.2.3790.1830) (-exported- Symbols Loaded)
File Version : 5.2.3790.1830 (srv03_sp1_rtm.050324-1447)
Company Name : Microsoft Corporation
Product Name : MicrosoftR WindowsR Operating System
Product Version: 5.2.3790.1830
ModLoad: 01dc0000 002da000 ippst7-5.3.dll (5.3.85.498) (-exported- Symbols Loaded)
File Version : 5,3,85,498
Company Name : Intel Corporation.
Product Name : ippSP. IntelR Integrated Performance Primitives. Signal Processing.
Product Version: 5.3 build 85.13
ModLoad: 6d580000 000a8000 dbghelp.dll (5.2.3790.1830) (-exported- Symbols Loaded)
File Version : 5.2.3790.1830 (srv03_sp1_rtm.050324-1447)
Company Name : Microsoft Corporation
Product Name : MicrosoftR WindowsR Operating System
Product Version: 5.2.3790.1830
ModLoad: 77b90000 00008000 VERSION.dll (5.2.3790.1830) (-exported- Symbols Loaded)
File Version : 5.2.3790.1830 (srv03_sp1_rtm.050324-1447)
Company Name : Microsoft Corporation
Product Name : MicrosoftR WindowsR Operating System
Product Version: 5.2.3790.1830
ModLoad: 03770000 00082000 symsrv.dll (6.6.3.5) (-exported- Symbols Loaded)
File Version : 6.6.0003.5 (vbl_core_fbrel(DrewB).051021-1446)
Company Name : Microsoft Corporation
Product Name : Debugging Tools for Windows(R)
Product Version: 6.6.0003.5
*** Dump of the Process Statistics: ***
- I/O Operations Counters -
Read: 104, Write: 0, Other 178
- I/O Transfers Counters -
Read: 0, Write: 106, Other 0
- Paged Pool Usage -
QuotaPagedPoolUsage: 82064, QuotaPeakPagedPoolUsage: 82064
QuotaNonPagedPoolUsage: 5328, QuotaPeakNonPagedPoolUsage: 5328
- Virtual Memory Usage -
VirtualSize: 66924544, PeakVirtualSize: 66924544
- Pagefile Usage -
PagefileUsage: 20967424, PeakPagefileUsage: 21651456
- Working Set Size -
WorkingSetSize: 22929408, PeakWorkingSetSize: 22929408, PageFaultCount: 5869
*** Dump of the Worker thread (904): ***
- Information -
Status: Ready, Base Priority: Above Normal, Priority: Above Normal, Kernel Time: 312500.000000, User Time: 17187500.000000, Wait Time: 344692.000000
- Unhandled Exception Record -
Reason: Breakpoint Encountered (0x80000003) at address 0x7D61002D
- Registers -
eax=0000001a ebx=0012f2dc ecx=004b0058 edx=0012e704 esi=0053ec98 edi=0012f16c
eip=7d61002d esp=0012f04c ebp=0012f2b8
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00000206
- Callstack -
ChildEBP RetAddr Args to Child
0012f2b8 004a3519 00000002 0012fd9c 00000002 0053ecb8 ntdll!DbgBreakPoint+0x0
0012f978 004a2d26 00000000 00000000 00000000 00000000 KWSN_R_2.4_SSE2_x86_flush_to_ze!read_wu_state+0xa (..\worker.cpp:155)
0012fbb8 0041419a 7d61c8f9 7d4e3397 00000084 00000003 KWSN_R_2.4_SSE2_x86_flush_to_ze!worker+0x0 (..\worker.cpp:243)
0012fd84 00413e70 00000001 0012fd9c 00222450 0012fd9c KWSN_R_2.4_SSE2_x86_flush_to_ze!main+0x0 (..\main.cpp:289)
0012ff28 004b3298 00400000 00000000 002224b3 00000001 KWSN_R_2.4_SSE2_x86_flush_to_ze!WinMain+0xb (..\main.cpp:310) FPO: [4,100,0]
0012ffc0 7d4e992a 00000000 00000000 7efde000 00000000 KWSN_R_2.4_SSE2_x86_flush_to_ze!__tmainCRTStartup+0x1c (f:\rtm\vctools\crt_bld\self_x86\crt\src\crt0.c:315)
0012fff0 00000000 004b3301 00000000 00000000 00000000 kernel32!BaseProcessInitPostImport+0x0 (f:\rtm\vctools\crt_bld\self_x86\crt\src\crt0.c:315)
*** Dump of the Timer thread (560): ***
- Information -
Status: Waiting, Wait Reason: ExecutionDelay, Kernel Time: 0.000000, User Time: 0.000000, Wait Time: 344662.000000
- Registers -
eax=00000000 ebx=020b50d8 ecx=00000000 edx=0000001c esi=00000000 edi=022fff38
eip=7d61cca4 esp=022ffefc ebp=022fff60
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00000202
- Callstack -
ChildEBP RetAddr Args to Child
022fff60 7d4d14ef 000003e8 00000000 022fffb0 004c9252 ntdll!ZwDelayExecution+0x0
022fff70 004c9252 000003e8 005050bb 00000000 53a217f4 kernel32!Sleep+0x0
022fffb0 00505160 00000000 7d4dfff1 020b50d8 00000000 KWSN_R_2.4_SSE2_x86_flush_to_ze!ippsFFTFwd_CToC_32fc+0x0
022fffb8 7d4dfff1 020b50d8 00000000 00000000 020b50d8 KWSN_R_2.4_SSE2_x86_flush_to_ze!_threadstartex+0x5 (f:\rtm\vctools\crt_bld\self_x86\crt\src\threadex.c:326)
022fffec 00000000 005050e1 020b50d8 00000000 00000000 kernel32!FlsSetValue+0x0 (f:\rtm\vctools\crt_bld\self_x86\crt\src\threadex.c:326)
*** Debug Message Dump ****
*** Foreground Window Data ***
Window Name :
Window Class :
Window Process ID: 0
Window Thread ID : 0
Exiting...
Navigation
[0] Message Index
[#] Next page
Go to full version