spraakbanken / sparv-pipeline

Språkbanken's text analysis tool
https://spraakbanken.gu.se/sparv
MIT License
25 stars 6 forks source link

Automatically use free GPU #165

Closed anne17 closed 1 year ago

anne17 commented 2 years ago

Stanza väljer alltid GPU 0 automatiskt, men om en maskin har flera så borde den automatiskt välja den som är minst upptagen. Man kan styra vilken GPU som ska användas med flaggan CUDA_VISIBLE_DEVICES (t.ex. CUDA_VISIBLE_DEVICES=1 sparv run).

Kanske skulle man kunna bygga in detta i Sparv att den vid körning av en annoterare som använder GPU, så kollar den först om det finns flera GPU:er, vilken som är ledigast, och sätter miljövariabeln automatiskt för just det jobbet. (Martins idé)

MartinHammarstedt commented 1 year ago

I've now implemented the following:

We could update CUDA_VISIBLE_DEVICES every time a module runs, to make modules always select the currently most appropriate GPU without needing to explicitly do so themselves, but since we don't know which modules use GPUs, that would mean a lot of unnecessary GPU checking for every single job item. I think the above solution is a good compromise.