Performance Comparisons and Optimisations #23
Replies: 5 comments 4 replies
-
I'm amazed by BirdNET's speed in Chirpity compared to the BirdNET-Analyzer GUI. And even more impressive how fast you've made Chirpity. I ran a few tests with eight 1-hour long .wav files on my M1 Macbook Pro. It processed them in 160 seconds, averaging 20 seconds per 1-hour file – that's quite speedy! Not sure if that's comparable, though. My settings were: CPU with 8 threads, batch size 64, using BirdNET. The device I used is a MacBook Pro 16-inch, 2021 model, featuring a 10-core CPU with 8 performance cores and 2 efficiency cores. |
Beta Was this translation helpful? Give feedback.
-
Very interesting, thank You for the comparisons! My first experience of a comparison of Chirpity vs BirdNET is the opposite (I ran an analysis with more than 10,000 files of one minute length each and calculated the average processing time):
So, BirdNET analysis has twice the speed of Chirpity BirdNET model for processing many small files. Probably the opening/closing of the files seems to be the bottleneck in this special analysis configuration of mine. I use one minute recordings as a standard in my field recorders, so that its very easy and fast to scroll through them and view the whole minute recording as ONE single spectrogram. But maybe I need to rethink that workflow!? I will have time to test some more in the next weeks and will report here. |
Beta Was this translation helpful? Give feedback.
-
I did some very rudimentary testing with the BirdNET-model in Chirpity, just for myself. Settings:
Results:
I observed the device overheating over time, with kernel_task CPU usage increasing to around 150%. Post-analysis, the detections are accurate and the app performs smoothly without any lag, including experimental features. That is just awesome! |
Beta Was this translation helpful? Give feedback.
-
A performance update, for v1.0.1. I used the same settings and file in the tests.
So, not a typo, the native Chirpity model processed the 3 hour 6 minute file in 28 seconds. There is a more modest improvement to the Mac CPU performance too. I plan to remove the GPU backend option for BirdNET in the next release. It is rather pointless. |
Beta Was this translation helpful? Give feedback.
-
A performance update, for v1.7.0, in which oneDNN optimisations have been enabled. This leads to big processing improvements for PC users. For these tests, I used the same settings and file once more.
This represents a 41% speed up for the Chirpity model and a 39.5% improvement for the BirdNET model running on an old PC with an i5 processor compared to previous Chirpity versions. More modern PC processors which support AVX_VNNI and FMA should see a 2x speed improvement! EDIT: If you would like to run tests using the file I have used for benchmarking, I have made a zipped version of the file available here (N.B. it's 730MB). |
Beta Was this translation helpful? Give feedback.
-
One of the benefits I claim for Chirpity is that it is fast. I thought it would be useful to share my own benchmark comparisons of the various models. I used these machines in the test:
Chipity default settings were used for each test:
For the CPU backend, the threads value is set to match the CPU cores - so, 8 for the M2, 6 for the i5.
For the GPU backend, the default is to use 1 thread
The batch size for both backends is 32.
The table below shows the time taken to process a wav file that is 3 hours and 6 minutes long. The number in brackets is how much faster than real time each result represents:
So, the takeaways are that you should avoid the GPU backend on an M2 Macbook (and by extension I would say the M1 as well), and that a decent graphics card makes a huge difference to the Chirpity model, but not the BirdNET one. In this test, BirdNET ran nearly 4x faster on the PC in Chirpity compared to using the BirdNET-Analyzer GUI.
Beta Was this translation helpful? Give feedback.
All reactions