Speed » History » Version 2

Version 1 (Chris Cannam, 2014-05-07 01:31 PM) → Version 2/29 (Chris Cannam, 2014-05-07 01:36 PM)

h1. Speed

We want to make the plugin as fast as possible, but I think there's a case to be made for providing fast and slow modes (see [[Possibilities for Plugin Parameters]]).

In "fast" mode we should have the aim of producing a reasonable transcription in faster than real-time on any computer from the past 5 years or so. "Slow" mode has no particular speed constraint, simply as fast as possible an implementation of the best results we can easily do.

See the "timing":/projects/silvet/repository/show/testdata/timing directory in the repo for timing tests. These are all carried out on a Thinkpad T540p with Intel i5-4330M under 64-bit Linux.

Work so far:

* Pre-optimisation, commit:ce64d11ef336 (release build) takes 104 seconds to process a 43.5-second file. (For reference, a (A debug build takes over 850 seconds.)

* Testing where the time is spent:
** Removing the unused Vamp plugin outputs (CQ spectrogram etc) makes no difference
** Removing debug printouts likewise (presumably this must speed it up a little bit but I saw 1 second at best)
** Halving the number of EM iterations reduces runtime dramatically, to 59 sec. If this is linear, then EM must be taking around 86% of the total time