On 19/11/2014 17:49, Joe Taylor wrote:
> Hi all,
Hi Joe,
>
> I have committed some changes that significantly improve the decoding
> speed of WSJT-X in both modes, with no change in its effectiveness.
> The changes affect only the jt9.exe executable.
>
> One of the changes is to make use of the "wisdom" feature in FFTW.  This
> requires running the program fftwf-wisdom[.exe] once, at the time of
> program installation.  A batch script "wisdom1[.bat]" can be used to do
> this; I added an example of such a file to the directory
> .../branches/wsjt/lib.  When run, it creates a file fftwf_wisdom.dat
> that should go in the .../bin installation directory.
It would be better to have that file in the "Standard" writeable 
location because...
>
> Bill, could you suggest the best way to incorporate the necessary
> features in the CMake script?  On Windows it will need to install
> fftwf-wisdom.exe and wisdom1.bat along with other executables in the
> .../bin directory, and the installer should offer to run widwom1.bat,
> warning the user that it will take several minutes to complete.
>
> The final wisdom1[.bat] file will be slightly different from the example
> now in the repository, since it won't need the hard-coded path I used
> for fftwf-wisdom[.exe].
Reading the FFTW docs, they seems to say that it is optimal to have the 
executable, that requires the FFT plans, write the wisdom files itself. 
It would also seem to be the easiest way to get the file written since 
no installer logic would be required, this is a big bonus on Mac since 
we have no hook to hang executable post-install code available.

Did you test writing the wisdom from the code that requires the plans? I 
realize that initial runs will suffer the plan optimization overhead but 
if I understand correctly this is a one off penalty for each plan for 
each version of the program.

I would have though that something like the following pseudo code would 
suffice:

On JT9 start up:

if (!fftw_import_wisdom_from_filename (data_dir + "fftw_wisdom.dat"))
   {
     fftw_import_system_wisdom ();  // included so users may write more 
advanced wisdom to /etc/fftw/wisdom
   }


On JT9 shut down:

fftw_export_wisdom_to_filename (data_dir + "fftw_wisdom.dat");

Fortran wrappers are available for the above functions.

With this in place more aggressive FFT plan optimization (higher 
PATIENCE values) could be used since the cost of choosing the plan would 
only be suffered the first time the program is run and only then the 
first time each plan type and size is used since wisdom is accumulated 
in memory by FFTW within each program session.
>
> Comments and test results are welcome.  On my development machine the
> speedup is about 35% when a velid fftwf_wisdom.dat (necessarily computed
> on the same machine) is present.
>
>       -- Joe, K1JT
73
Bill
G4WJS.

------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
wsjt-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wsjt-devel

Reply via email to