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.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
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