Speed » History » Version 4

Chris Cannam, 2014-05-07 01:38 PM

1 1 Chris Cannam
h1. Speed
2 1 Chris Cannam
3 1 Chris Cannam
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]]).
4 1 Chris Cannam
5 1 Chris Cannam
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.
6 1 Chris Cannam
7 1 Chris Cannam
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.
8 1 Chris Cannam
9 1 Chris Cannam
Work so far:
10 1 Chris Cannam
11 2 Chris Cannam
 * Pre-optimisation, commit:ce64d11ef336 (release build) takes 104 seconds to process a 43.5-second file. (For reference, a debug build takes over 850 seconds.)
12 2 Chris Cannam
13 2 Chris Cannam
 * Testing where the time is spent:
14 4 Chris Cannam
 ** Removing the unused Vamp plugin outputs: no more than 1 second difference
15 4 Chris Cannam
 ** Removing debug printouts: no more than 1 second difference
16 4 Chris Cannam
 ** Adjusting the CQ resampler parameters to allow a lower SNR: no more than 1 second difference
17 4 Chris Cannam
 ** Halving the number of EM iterations: reduces runtime dramatically, to 59 sec. If this is linear, then EM (rather than CQ etc) must be taking around 86% of the total time.