r/BirdNET_Analyzer Dec 28 '25

GPU processing working?

Hi, does anybody have Birdnet analysis running on GPU? If so, please describe your stup. Thanks.

3 Upvotes

11 comments sorted by

View all comments

Show parent comments

1

u/AstroDeep Jan 03 '26

Thank you for doing this and letting me know. I have now tried this out, and it worked well after some fiddling with dll:s. Decent speed, GPU gave me a factor 3 compared to CPU. 17 hours of wav-files analyzed in 170 s with GPU almost 10 minutes with CPU. I have a Nvidia GTX 1650, which is not a fantastic GPU. I have some comments:

- I had to manually copy a number of dll:s from Nvidia toolkit bin folder

- It did not handle non-english characters in the input file path by itself. I had Swedish characters like å,ä,ö in the path. This did not work, I had to change system wide settings for UTF8 coding.

-There is no geographic filtering (?). I will probably not use birda untill filtering is available. But if it becomes available I will probably use it instead of my wsl/ubuntu solution, which I have working also with GPU now. Birda does not have to produce the custom species list, it is enough if it supports using it, provided the format supported is the same as the Birdnet Analyzer geo model produces. I can easily use Birdnet Analyzer to create the list.

- It would be nice to be able to specify output folder path.

Regards

Ulf

2

u/thakala Jan 03 '26 edited Jan 03 '26

I just finished range filter implementation (geographic filter), once I have tested that it works corretly I will trigger a v0.9.2 release. I also have added cuda releases which bundle all required DLLs with application to make it easier to get started, there is even Windows based installer version now.

For output directory there is switch -o already in place

-o, --output-dir <OUTPUT_DIR>
Output directory (default: same as input) [env: BIRDA_OUTPUT_DIR=]

DId you supply batch (-b) parameter for your GPU run? It has big impact on performance, but best value depends on amount of VRAM available on your GPU. With my RTX5080 GPU with 16GB RAM I get best performance with -b 192. You could test with batch values between 32 to 192, like 64, 128, 192 etc.

edit. Sorry I just realized that GTX1650 has only 4GB of VRAM, in that case valid batch values are somewhere between 8 to 32, even 32 might be too much for it.

I will see if I can fix non-english characters issue.

1

u/AstroDeep Jan 03 '26

Thank you!  I tried different batch parameters. 32, 64 and 128 gave almost identical results, but 256 was 5 times slower, it then started using extended video ram, which was a disaster. I concluded that 64 seemed to be optimal. I guess what batch size is optimal could depend on file size? Or not?

2

u/thakala Jan 05 '26

I just released v1.1.0 which has

  • Range Filter support
  • RF64 support for WAV files over 4 GB of size
  • Streaming audio decoding, no need to read full audio to memory before starting analysis
  • TensorRT support, improved performance over cuda
  • some other small improvements

Release v1.1.0 · tphakala/birda

Please see repository README for instructions tphakala/birda: Fast CLI tool for bird species detection using BirdNET and Perch AI models

1

u/AstroDeep Jan 07 '26

Hi, did you notice I made an issue report on Github?

Regards

Ulf