mdx-net-submission icon indicating copy to clipboard operation
mdx-net-submission copied to clipboard

RAM usage

Open kichel98 opened this issue 2 years ago • 3 comments

Hello,

thanks for all your work 👍 Predicting using Leaderboard A model is working as expected on Linux and Windows.

However, I run into problems with memory during the separation of longer mixtures. When I try to separate a song from MUSDB18 (test part, song Georgia Wonder - Siren, 73 MB, 7m 10sec), I get the following error:

Linux:

Command terminated by signal 9
Exit code 137

Windows:

onnxruntime.capi.onnxruntime_pybind11_state.RuntimeException: [ONNXRuntimeError] : 6 : RUNTIME_EXCEPTION : Non-zero status code returned while running Conv node. Name:'470_nchwc' Status Message: bad allocation

Looks like an Out Of Memory error, it works fine for smaller mixtures. But a Linux machine, on which I test your solution has about 46 GB RAM, which is pretty big in my opinion. My question is: have you ever faced that kind of issue during your testing on MUSDB18? Do you have any workarounds for OOM errors? Do you know some hardware requirements?

kichel98 avatar Apr 15 '22 06:04 kichel98

Hi @kichel98 , Thank you for reporting this issue. I will resolve this by this month, hopefully.

ws-choi avatar Apr 17 '22 02:04 ws-choi

Hi @ws-choi

did you get around to resolving this issue? Your model is very popular and the karaoke community would be very thankful for this.

lyndonlauder avatar Nov 08 '22 12:11 lyndonlauder

Hi @kichel98, @lyndonlauder , Sorry for the delay. I forgot this thread for a while.

I pushed a new branch where you can control the batch_size.

TLDR; please switch to this branch and try this commend: python separate.py --batch_size 4

Usage:

    parser.add_argument('--model_name', type=str, default='tdf_extra')
    parser.add_argument('--demucs_name', type=str, default='demucs_extra')
    parser.add_argument('--onnx_name', type=str, default='onnx_B')
    parser.add_argument('--mixture_dir_path', type=str, default='./data/test')
    parser.add_argument('--results_data_path', type=str, default='./data/results')
    parser.add_argument('--batch_size', default=None, type=int)

ws-choi avatar Nov 13 '22 11:11 ws-choi