Hyppää sisältöön

Docs CSC now features an automatic Finnish translation. Click here for more information.

Warning!

Puhti and Mahti are being decommissioned in stages, and their storage areas will become fully unavailable from 15 October 2026. Clean up unnecessary files and move any data you need to keep by 31 August 2026. See the Roihu data migration guide for instructions on transferring your data to Roihu.

Puhti scratch is very full: keep only active data there and move or delete everything else. No new Puhti scratch quota will be granted.

PyTorch

Koneoppimiskehys Pythonille.

Uutiset

7.4.2026 PyTorch on nyt saatavilla Roihu-GPU:ssa, ja moduulin nimi on muutettu muotoon python-pytorch.

23.1.2026 LUMI-palvelukatkon 21.1.2026 jälkeen CSC:n PyTorch- asennukset eivät enää toimi nopean Slingshot-verkon kanssa uusien ajureiden aiheuttamien binaariyhteensopimattomuuksien vuoksi. Tämä tarkoittaa, että monisolmuiset ajot ovat odotettavasti 10–20 % hitaampia kuin ennen. Katso lisätietoja alla olevista LUMI-asennushuomioista.

9.1.2026 PyTorch 2.9.1 asennettiin Puhtiin ja Mahtiin, ja siitä tehtiin oletusversio. Apex poistettiin, koska kirjasto on ollut vanhentunut jo pitkään. Myöskään SGLang ei 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 asennettiin Puhtiin ja Mahtiin, ja siitä tehtiin oletusversio. Tämä versio sisältää SGLangin, mutta huomaa, että SGLang tukee vain Mahtia Puhtin vanhemman GPU-arkkitehtuurin vuoksi.

26.6.2025 PyTorch 2.7.1 asennettiin LUMIin, ja siitä tehtiin oletusversio.

Vanhemmat uutiset (näytä napsauttamalla)

10.4.2025 PyTorch 2.6.0 asennettiin 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 asennukseen, koska ne eivät tue PyTorchin uudempia versioita.

20.1.2025 PyTorch 2.5.1 asetettiin oletusversioksi kaikilla supertietokoneilla.

20.12.2024 PyTorch 2.5.1 ROCm 6.2:lla lisättiin LUMIin. Sisältää kaikki tavalliset paketit sekä kokeellisen tuen FAISSille.

17.12.2024 PyTorch 2.5.1 lisättiin 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ättiin LUMIin. LUMIn PyTorch-moduuli sisältää nyt 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 wrapper-skriptejä (ei tykkyyn perustuvia wrapper-skriptejä kuten Puhtissa ja Mahdissa).

21.8.2024 PyTorch 2.4 lisättiin Puhtiin ja Mahtiin. LUMIn asennus viivästyy nykyisen palvelukatkon jälkeiseen aikaan. torchtext-paketti ei enää sisälly asennukseen, koska se on vanhentunut eikä enää toimi PyTorch 2.4:n kanssa.

13.6.2024 PyTorch 2.3 lisättiin Puhtiin ja Mahtiin. LUMIn asennus viivästyy alkusyksyyn yhteensopimattoman ROCm-ajuriversion vuoksi. Tässä versiossa on myös päivitetty Python-komentojen wrapperointi, koska se 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ättiin 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ättiin Puhtiin, Mahtiin ja LUMIin. Horovod on poistettu, ja suosittelemme käyttämään sen sijaan PyTorch DDP:tä. PyTorch Geometric lisättiin Puhtin ja Mahtin versioon.

5.10.2022 Puhtin Red Hat Enterprise Linux 8 -päivityksen (RHEL8) vuoksi täysin tuettujen PyTorch-versioiden määrää on vähennetty. Aiemmin vanhentuneiksi merkityt conda-pohjaiset versiot on poistettu. Ole yhteydessä asiakastukeemme, jos todella tarvitset pääsyn vanhempiin versioihin.

5.5.2022 Mahtin Red Hat Enterprise Linux 8 -päivityksen (RHEL8) vuoksi täysin tuettujen PyTorch-versioiden määrää on vähennetty. Ole yhteydessä asiakastukeemme, jos todella tarvitset pääsyn muihin versioihin.

4.2.2022 Kaikki vanhat PyTorch-versiot, jotka perustuivat suoriin Conda- asennuksiin, on merkitty vanhentuneiksi, ja kannustamme käyttäjiä siirtymään uudempiin versioihin. Lue lisää erilliseltä Condan vanhentumista käsittelevältä sivultamme.

Saatavuus

Tällä hetkellä tuetut PyTorch-versiot:

Versio Moduuli Roihu-GPU Puhti Mahti (LUMI)
katso huomautukset alla
Huomautukset
2.10.0 python-pytorch/2.10 X - - - Oletus Roihu-GPU:ssa
2.9.1 pytorch/2.9 X X - Oletus Puhtissa, Mahdissa
2.7.1 pytorch/2.7 X X (X) Ei Slingshotia (katso alla)
2.6.0 pytorch/2.6 X X -
2.5.1 pytorch/2.5 X X (X)
2.4.1 pytorch/2.4 - - (X)
2.4.0 pytorch/2.4 X X - Uudet tykkyyn perustuvat wrapperit
2.3.1 pytorch/2.3 X X - Uudet tykkyyn perustuvat wrapperit
2.2.2 pytorch/2.2 - - (X)
2.2.1 pytorch/2.2 X X -
2.1.2 pytorch/2.1 - - (X)
2.1.0 pytorch/2.1 X X -
2.0.1 pytorch/2.0 - - (X)
2.0.0 pytorch/2.0 X X -
1.13.1 pytorch/1.13 - - (X)
1.13.0 pytorch/1.13 X X -
1.12.0 pytorch/1.12 X X -
1.11.0 pytorch/1.11 X X -

Sisältää PyTorchin ja siihen liittyviä kirjastoja GPU-tuella CUDA:n/ROCm:n kautta.

vLLM Roihussa

Roihussa olemme siirtäneet vLLM:n erilliseen moduuliin python-vllm. vLLM-moduulilla on oma dokumentaatiosivunsa.

LUMI-asennukset

LUMI-asennukset – merkitty yllä olevassa taulukossa merkinnällä "(X)" – eivät enää tue nopeaa Slingshot-verkkoa uusien ajureiden kanssa ilmenevien binaariyhteensopimattomuuksien vuoksi, jotka tulivat käyttöön LUMIn palvelukatkossa 21.1.2026. Tämä tarkoittaa, että monisolmuiset ajot ovat odotettavasti 10–20 % hitaampia kuin ennen. Yksisolmuisissa ajoissa eroa ei ole. CSC:n PyTorchia LUMIssa voidaan pitää vanhentuneena, ja suosittelemme käyttämään sen sijaan LUMI AI Factoryn tarjoamia kontteja .

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ätietoja siitä, miten paketteja asennetaan itse olemassa oleviin moduleihin. Jos mielestäsi jokin tärkeä paketti pitäisi sisällyttää CSC:n tarjoamaan moduuliin, ole yhteydessä asiakastukeemme.

Kaikki moduulit perustuvat Apptaineria käyttäviin kontteihin (aiemmin tunnettu nimellä Singularity). Wrapper-skriptit on tarjottu niin, että yleiset komennot kuten python, python3, pip ja pip3 toimivat normaalisti.

PyTorch-versiossa 2.2 ja sitä aiemmissa versioissa muut komennot täytyy etuliittää komennolla apptainer_wrapper exec, esimerkiksi apptainer_wrapper exec huggingface-cli. Lisätietoja on CSC:n yleisissä ohjeissa Apptainer-konttien ajamisesta.

PyTorch-versiossa 2.3 ja sitä uudemmissa Puhtissa tai Mahdissa olemme käyttäneet tykky-työkalulla luotuja wrappereita, ja kaikki esiasennettujen Python-pakettien tarjoamat komennot on wrapperoitu ja niitä voi käyttää suoraan. Jos sinun todella täytyy ajaa jotain kontin sisällä, voit etuliittää komennon _debug_exec:llä tai ajaa _debug_shell avataksesi shell-istunnon.

Uusille käyttäjille

Jos olet uusi koneoppimisen käyttäjä CSC:n supertietokoneilla, lue uusi opastuksemme Koneoppimisen käytön aloittaminen CSC:llä, jossa kerrotaan, miten yksinkertainen PyTorch-projekti ajetaan Puhtissa selainkäyttöliittymän avulla.

Lisenssi

PyTorch on lisensoitu BSD-tyylisellä lisenssillä, kuten LICENSE- tiedostossa on kuvattu.

Käyttö

Käyttääksesi PyTorchin oletusversiota Roihu-GPU:ssa, alusta se seuraavasti:

module load python-pytorch

Saadaksesi PyTorchin käyttöön Puhtissa tai Mahdissa:

module load pytorch

Saadaksesi PyTorchin käyttöön LUMIssa – katso yllä olevat huomautukset LUMI-asennuksesta.

module use /appl/local/csc/modulefiles/
module load pytorch

Jos haluat käyttää tiettyä versiota (katso saatavilla olevat versiot yllä), käytä:

module load python-pytorch/2.10  # on Roihu-GPU
module load pytorch/2.9          # on other systems

Huomaa, että 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:

module avail python-pytorch # on Roihu-GPU
module avail pytorch        # on other systems

Tarkistaaksesi ladattuun moduuliin sisältyvät tarkat paketit ja versiot voit ajaa:

pip list

Warning

Huomaa, että kirjautumissolmut eivät ole tarkoitettu raskasta laskentaa varten, käytä sen sijaan slurm- eräajoja. Katso ohjeemme eräajojärjestelmän käytöstä.

Esimerkkieräajokomentosarja

Esimerkkieräajokomentosarja yhden GPU:n ja sitä vastaavan osuuden varaamiseksi käytettävissä olevista CPU-ytimistä yhdellä solmulla:

#!/bin/bash
#SBATCH --account=<project>
#SBATCH --partition=gpumedium
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=72
#SBATCH --gres=gpu:gh200:1
#SBATCH --time=1:00:00

module load python-pytorch/2.10
srun python3 myprog.py <options>
#!/bin/bash
#SBATCH --account=<project>
#SBATCH --partition=gpu
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=10
#SBATCH --mem=80G
#SBATCH --time=1:00:00
#SBATCH --gres=gpu:v100:1

module load pytorch/2.9
srun python3 myprog.py <options>
#!/bin/bash
#SBATCH --account=<project>
#SBATCH --partition=gpusmall
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=32
#SBATCH --time=1:00:00
#SBATCH --gres=gpu:a100:1

module load pytorch/2.9
srun python3 myprog.py <options>
#!/bin/bash
#SBATCH --account=<project>
#SBATCH --partition=small-g
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=7
#SBATCH --gpus-per-node=1
#SBATCH --mem=60G
#SBATCH --time=1:00:00

module use /appl/local/csc/modulefiles/
module load pytorch/2.7
srun python3 myprog.py <options>

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 data-osio. Erityisesti älä lue valtavaa määrää tiedostoja jaetusta tiedostojärjestelmästä, vaan käytä nopeaa paikallislevyä tai paketoi data 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-muotoon hakemistoon logs/profiler. Nähdäksesi kaikki vaihtoehdot, katso PyTorchin API-dokumentaatio profilerista.

Seuraavaksi sinun täytyy käynnistää ja pysäyttää profiler sekä tallentaa yksittäiset vaiheet (tyypillisesti erät). Tämä sijoittuisi yleensä opetussilmukkasi 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 oikeassa reunassa olevasta pudotusvalikosta.

Erityisen hyödyllinen näkymä on Trace view (valitse "Trace" "Views"-pudotusvalikosta). Alla on esimerkkikuvakaappaus yllä linkitetyn esimerkin ajosta.

Kuvakaappaus PyTorch-profilerista TensorBoardissa

Trace view'ta voi zoomata ja panoroida käyttämällä oikeassa yläkulmassa olevaa pientä työkalupalkkia tai näppäimiä 'a' ja 'd' panorointiin sekä 'w' ja 's' sisään- ja uloszoomaamiseen.

Kuvakaappauksessa näemme:

  • Alue 1, merkitty punaisella, näyttää datan lataamisen (tämä näkyy zoomaamalla sisään ja lukemalla näytetyt funktionimet. Tämä ajetaan kokonaan CPU:lla, koska väriä näkyy vain näytön yläosassa tavallisten Pythonin CPU-säikeiden kohdalla.
  • Alue 2, merkitty sinisellä, näyttää eteenpäinlaskennan ja takaisinlevityksen vaiheet. Osa tästä tehdään GPU:lla, mikä 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 CPU-käsittelyyn. Yleisesti voisi kokeilla lisätä enemmän CPU-ytimiä datan lataamisen tehokkaampaan käsittelyyn ja kasvattaa eräkokoa GPU:n laskentakuorman 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.

Lisätietoja

Suomenkielinen tekoälykäännös

Sisällössä voi esiintyä virheellistä tietoa tekoälykäännöksestä johtuen.

Klikkaa tästä antaaksesi palautetta