PyTorch
Koneoppimiskehys Pythonille.
Uutiset
1.9.2026 PyTorch on nyt saatavilla Roihu-CPU:ssa, sekä versiot 2.10 että 2.13 (samat kuin Roihu-GPU:ssa). Luonnollisesti tämä versio ei tue GPU-kiihdytystä.
31.8.2026 PyTorch 2.13 asennettu Roihu-GPU:hun, ja se on nyt oletusversio.
7.4.2026 PyTorch on nyt saatavilla Roihu-GPU:ssa, moduulin nimi on
muutettu muotoon python-pytorch.
Vanhemmat uutiset (näytä napsauttamalla)
23.1.2026 LUMI-palvelukatkon 21.1.2026 jälkeen CSC:n PyTorch-asennukset eivät enää toimi nopean Slingshot-verkon kanssa uusien ajureiden binaariyhteensopimattomuuksien vuoksi. Tämä tarkoittaa, että monisolmuajojen odotetaan olevan 10–20 % hitaampia kuin aiemmin. Katso lisätietoja alla olevista LUMI-asennushuomioista.
9.1.2026 PyTorch 2.9.1 asennettu Puhtiin ja Mahtiin, ja siitä tehtiin oletusversio. Apex poistettiin, koska kirjasto on ollut vanhentunut jo pitkään. SGLang ei myöskään sisälly tähän versioon, koska se ei ole yhteensopiva vLLM:n tarvitsemien kirjastojen kanssa. Lisätty litgpt, ultralytics, sahi ja torchgeo.
Uusia PyTorch-versioita LUMIin valmistelee uusi LUMI AI Factory, ja niiden odotetaan julkaistavan alkukevään aikana.
8.7.2025 PyTorch 2.7.1 asennettu Puhtiin ja Mahtiin, ja siitä tehtiin oletusversio. Tämä versio sisältää SGLangin, huomaa kuitenkin, että SGLang tukee vain Mahtia Puhtin vanhemman GPU-arkkitehtuurin vuoksi.
26.6.2025 PyTorch 2.7.1 asennettu LUMIin, ja siitä tehtiin oletusversio.
10.4.2025 PyTorch 2.6.0 asennettu Puhtiin ja Mahtiin, ja siitä tehtiin oletusversio. Sisältää uusimmat versiot suosituista paketeista, kuten Hugging Face transformers, vLLM ja FAISS. PyTorch geometric ja siihen liittyvät paketit eivät enää sisälly mukaan, koska ne eivät tue PyTorchin uudempia versioita.
20.1.2025 PyTorch 2.5.1 asetettu oletusversioksi kaikilla supertietokoneilla.
20.12.2024 PyTorch 2.5.1 ROCm 6.2:lla lisätty LUMIin. Sisältää kaikki tavalliset paketit sekä kokeellisen tuen FAISSille.
17.12.2024 PyTorch 2.5.1 lisätty Puhtiin ja Mahtiin. Sisältää vLLM:n ja FAISSin monien muiden päivitysten joukossa.
19.9.2024 PyTorch 2.4.1 ROCm 6.1:llä lisätty LUMIin. LUMIn PyTorch-moduuli sisältää nyt myös vLLM-version 0.5.5 sekä FlashAttention-2:n, bitsandbytesin ja monia muita usein pyydettyjä paketteja, jotka sisältyivät jo aiempiin asennuksiin. LUMI-moduuli käyttää edelleen vanhan tyylin wrappereita (ei tykky-pohjaisia wrappereita kuten Puhtissa ja Mahdissa).
21.8.2024 PyTorch 2.4 lisätty Puhtiin ja Mahtiin. LUMIn asennus viivästyy nykyisen palvelukatkon jälkeiseen aikaan. torchtext-paketti ei enää sisälly mukaan, koska se on vanhentunut eikä enää toimi PyTorch 2.4:n kanssa.
13.6.2024 PyTorch 2.3 lisätty Puhtiin ja Mahtiin. LUMIn
asennus viivästyy alkusyksyyn yhteensopimattoman ROCm-ajuriversion
vuoksi. Tässä versiossa on myös päivitetty Python-komentojen
wrapperointi, koska tämä ratkaisee useita ongelmia
virtuaaliympäristöjen ja Jupyter Notebookien käytössä. Tämän vuoksi
apptainer- ja apptainer_wrapper-komennot eivät enää toimi,
mutta muuten muutoksen pitäisi olla käyttäjille näkymätön.
1.3.2024 PyTorch 2.2 lisätty Puhtiin, Mahtiin ja LUMIin. LUMIn moduuli sisältää ROCm-versiot FlashAttention-2:sta ja bitsandbytesista, koska käyttäjien on vaikea lisätä niitä itse. xFormers on lisätty kaikkiin kolmeen järjestelmään.
17.11.2023 PyTorch 2.1 lisätty Puhtiin, Mahtiin ja LUMIin. Horovod on poistettu, suosittelemme käyttämään sen sijaan PyTorch DDP:tä. PyTorch Geometric lisättiin Puhtin ja Mahdin versioon.
5.10.2022 Puhtin Red Hat Enterprise Linux 8:n (RHEL8) päivityksen vuoksi täysin tuettujen PyTorch-versioiden määrää on vähennetty. Aiemmin vanhentuneet conda-pohjaiset versiot on poistettu. Ole hyvä ja ota yhteyttä asiakastukeemme, jos todella tarvitset pääsyn vanhempiin versioihin.
5.5.2022 Mahdin Red Hat Enterprise Linux 8:n (RHEL8) päivityksen vuoksi täysin tuettujen PyTorch-versioiden määrää on vähennetty. Ole hyvä ja ota yhteyttä asiakastukeemme, jos todella tarvitset pääsyn muihin versioihin.
4.2.2022 Kaikki vanhat PyTorch-versiot, jotka perustuivat suoriin Conda- asennuksiin, on vanhennettu, ja kannustamme käyttäjiä siirtymään uudempiin versioihin. Lue lisää erilliseltä Condan vanhentumissivultamme.
Saatavilla
Tällä hetkellä tuetut PyTorch-versiot:
| Version | Module | Roihu-GPU | Roihu-CPU | Notes |
|---|---|---|---|---|
| 2.13.0 | python-pytorch/2.13 |
X | X | Default |
| 2.10.0 | python-pytorch/2.10 |
X | X |
Sisältää PyTorchin ja siihen liittyvät kirjastot GPU-tuella CUDA:n/ROCm:n kautta. Roihu-CPU:n versio ei luonnollisesti tue GPU:ita, mutta se on saataville kevyitä työkuormia varten ja työkuormille, jotka tarvitsevat x86_64-suoritinarkkitehtuurin.
vLLM Roihussa
Roihussa olemme siirtäneet vLLM:n erilliseen moduuliin python-vllm.
vLLM-moduulilla on oma dokumentaatiosivunsa.
PyTorch LUMIssa
CSC ei enää tarjoa tätä moduulia LUMIin, vaan suosittelemme käyttämään LUMI AI Factoryn tarjoamia kontteja sen sijaan.
Jos huomaat, että jokin paketti puuttuu, voit usein asentaa sen
itse käyttämällä komentoa pip install. On suositeltavaa käyttää
Pythonin virtuaaliympäristöjä. Katso Python-dokumentaatiostamme lisätietoa
siitä, miten paketteja asennetaan itse olemassa oleviin
moduleihin.
Jos mielestäsi jokin tärkeä paketti pitäisi sisällyttää CSC:n
tarjoamaan moduuliin, ota yhteyttä
asiakastukeemme.
Jos muutaman paketin lisääminen pip:llä ei riitä, voit myös rakentaa
omat konttisi esimerkiksi laajentamalla CSC:n koneoppimiskontteja.
Kaikki moduulit perustuvat Apptaineria käyttäviin kontteihin (aiemmin
tunnettu nimellä Singularity). Wrapper-skriptit on tarjottu, jotta
yleiset komennot kuten python, python3, pip ja pip3 toimisivat
normaalisti.
Uusille käyttäjille
Jos olet uusi CSC:n supertietokoneilla tehtävässä koneoppimisessa, lue uusi opastuksemme Koneoppimisen käytön aloittaminen CSC:llä, jossa käsitellään, miten yksinkertainen PyTorch-projekti ajetaan Roihussa selainkäyttöliittymän avulla.
Lisenssi
PyTorch on lisensoitu BSD-tyylisellä lisenssillä, kuten LICENSE- tiedostossa on kuvattu.
Käyttö
Jos haluat käyttää PyTorchin oletusversiota Roihu-GPU:ssa tai Roihu-CPU:ssa, alusta se komennolla:
Jos haluat käyttää tiettyä versiota (katso saatavilla olevat versiot yllä), käytä:
Huomaa, että Roihu-GPU-moduuli sisältää jo CUDA- ja cuDNN- kirjastot, joten cuda- ja cudnn-moduuleja ei tarvitse ladata erikseen!
Tämä komento näyttää myös kaikki saatavilla olevat versiot:
Voit tarkistaa ladattuun moduuliin sisältyvät tarkat paketit ja versiot ajamalla:
Warning
Huomaa, että kirjautumissolmuja ei ole tarkoitettu raskaaseen laskentaan, käytä sen sijaan slurm- eräajoja. Katso ohjeemme eräajojärjestelmän käyttöön.
Esimerkkieräajokomentosarja
Esimerkkieräajokomentosarja yhden GPU:n ja sitä vastaavan osuuden saatavilla olevista suoritinytimistä varaamiseen yhdellä solmulla:
Lue osio GPU:n tehokas hyödyntäminen koneoppimisen oppaassamme, jotta opit käyttämään GPU:ta tehokkaasti.
Suuret aineistot, usean GPU:n ja usean solmun ajot
Jos työskentelet suurten aineistojen kanssa tai aineistojen, jotka sisältävät paljon tiedostoja, lue koneoppimisen oppaamme dataosio. Erityisesti älä lue valtavaa määrää tiedostoja jaetusta tiedostojärjestelmästä, vaan käytä nopeaa paikallislevyä tai paketoi datasi suurempiin tiedostoihin!
Usean GPU:n ja usean solmun ajoihin suosittelemme käyttämään PyTorchin Distributed Data-Parallel -kehystä. Voit lukea tästä lisää ja löytää esimerkkejä PyTorch DDP:n käytöstä CSC:n supertietokoneilla koneoppimisen oppaamme usean GPU:n ja usean solmun osiossa
PyTorch-profiler
Jos PyTorch-ohjelmasi on hidas tai huomaat, että sillä on alhainen GPU:n käyttöaste, voit käyttää PyTorch- profileria ohjelmasi ajan- ja muistinkulutuksen analysointiin.
PyTorch-profilerin voi ottaa käyttöön lisäämällä muutaman rivin koodia olemassa olevaan PyTorch-ohjelmaasi:
from torch.profiler import profile, ProfilerActivity
prof = profile(
schedule=torch.profiler.schedule(
skip_first=10,
wait=5,
warmup=1,
active=3,
repeat=1)
on_trace_ready=torch.profiler.tensorboard_trace_handler('./logs/profiler'),
activities=[ProfilerActivity.CPU, ProfilerActivity.CUDA],
record_shapes=True, # record shapes of operator inputs
profile_memory=True, # track tensor memory allocation/deallocation
with_stack=True # record source code information
)
Tässä esimerkissä päätämme ohittaa ensimmäiset 10 erää ja tallentaa
profilointia varten vain muutaman erän. Profilointijälki tallennetaan
TensorBoard-muodossa hakemistoon logs/profiler. Nähdäksesi kaikki
vaihtoehdot, katso PyTorchin profilerin API-
dokumentaatio.
Seuraavaksi sinun täytyy käynnistää ja pysäyttää profiler sekä tallentaa yksittäiset vaiheet (tyypillisesti erät). Tämä sijoittuisi yleensä koulutussilmukkasi ympärille:
prof.start()
for batch in train_loader:
# normal forward and backprop stuff here
prof.step()
prof.stop()
GitHub-
repositoriossamme olemme antaneet
täyden esimerkin profiloinnista:
mnist_ddp_profiler.py
sekä sitä vastaavan Slurm-eräajokomentosarjan.
Ajettuasi työn voit tarkastella profilerin tulostetta TensorBoardilla. Käynnistä TensorBoard-istunto käyttämäsi supertietokoneen selainkäyttöliittymässä. Jos PyTorch-profiler ei avaudu automaattisesti, saatat löytää sen välilehtipalkista nimellä PYTORCH_PROFILER. Jos välilehti ei ole oletuksena näkyvissä, sen löytää käyttöliittymän oikeasta reunasta avautuvasta pudotusvalikosta.
Erityisen hyödyllinen näkymä on Trace-näkymä (valitse "Trace" "Views"-pudotusvalikosta). Alla on esimerkkikuvakaappaus yllä linkitetyn esimerkin ajosta.

Trace-näkymää voi zoomata ja siirtää pienellä työkalupalkilla yläoikealla tai käyttämällä siirtämiseen näppäimiä 'a' ja 'd' sekä zoomaamiseen näppäimiä 'w' ja 's'.
Kuvakaappauksessa näemme:
- Alue 1, merkitty punaisella, näyttää datan lataamisen (tämä näkyy zoomaamalla sisään ja lukemalla näkyvät funktionimet. Tämä ajetaan kokonaan suorittimella, koska se on väritetty vain näytön yläosassa tavallisten Pythonin CPU-säikeiden alla.
- Alue 2, merkitty sinisellä, näyttää eteenpäinlaskennan ja takaisinlevityksen vaiheet. Osa tästä tehdään GPU:lla, kuten näkyy värityksestä alaosassa "GPU 0" -alueella.
On selvää, että tämä työ ei hyödynnä GPU:ta hyvin, koska suurin osa ajasta kuluu suorittimen käsittelyyn. Yleisesti voisi yrittää lisätä enemmän suoritinytimiä datan lataamisen tehokkaampaan käsittelyyn ja kasvattaa eräkokoa GPU-käsittelykuorman lisäämiseksi. Tässä tapauksessa ongelma on kuitenkin se, että verkko on niin pieni, ettei se pysty todella hyödyntämään GPU:ta täysimääräisesti.