jak dlouho by ty tréninky sítí měly trvat? V minulém článku mi běžel trénink řekněme 10 sekund na i7, takže mám pocit, že to nepoužilo CUDU, protože tak primitivní sítě to musí dát za nula sekund :-)
Jsou tam nějaký další předpoklady? PyTorch si při instalaci dohrál všechny (?) CUDA knihovny, asi nějakých 6 GB!!! tak snad mám všechno. Musí se řešit nějaká autodetekce CUDY nebo je to třeba tím, že mají tenzory prvky v jiném formátu, než je umí CUDA (předpokládám asi FP16 dneska?)
Je nutné si explicitně zažádat o běh na GPU.
Začal bych testem, jestli PyTorch rozpoznává GPU:
import torch
print("CUDA available:", torch.cuda.is_available())
nebo:
print("MPS available:", torch.backends.mps.is_available())
Potom se vytvoří "device" stylem:
device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')
Přesun výpočtů řeší metoda "to":
nn.to(device)
Musí se tam přenášet i trénovací a testovací data. Ukážu.
A taky je mozne, ze cuda potrebuje neco predkompilovat. Pouziva se tam JIT, takze uzivatel nic resit nemusi, ale typicky prvni spusteni site muze trvat dele. Pak by se mel vysledek kompilace nacachovat a uz by to melo byt rychlejsi.
Jinak ano, ta neustale rostouci velikost pytorche zacina byt celkem otravna... Oni se ho snazi buildit opravdu univerzalne, takze tam maji jednak vsechny cuda knihovny a jednak to buildi pro celkem dost compute capabilities GPU (neco jako mikroarchitektura CPU).
Na okraj (to nesouvisí s těmito články): nám v jednom projektu způsobují ty závislosti vrásky. Stačil by nám jen balíček torch-cpu, jenže ten není na PyPi a naše "super duper" nástroje pro offline buildy se s tím nedokážou vypořádat. Vlastně řešení ani nemáme, tedy kromě toho udělat si vlastní Python registry. Ale to není vůbec triviální. Autoři PyTorche nechtějí dělat CPU only varianty na PyPi (trošku to odporuje doporučením).