Hyppää sisältöön

Puhdin ja Mahdin laskentapalvelut ovat poistuneet käytöstä. Puhdin ja Mahdin kirjautumisnoodit sekä tallennustila ovat saatavilla 15. lokakuuta 2026 asti, mutta ne eivät enää ole palvelusopimusten piirissä. Ryhdythän toimiin datan siirtämiseksi Roihuun välittömästi. Ohjeita löydät sivulta Roihun datan siirto-opas.

PyTorch

Koneoppimiskehys Pythonille.

Uutiset

1.9.2026 PyTorch on nyt saatavilla Roihu-CPU:ssa, versioina 2.10 ja 2.13 (samat kuin Roihu-GPU:ssa). Tämä versio ei luonnollisestikaan tue GPU-kiihdytystä.

31.8.2026 PyTorch 2.13 on 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ä monisolmuiset ajot ovat odotettavasti 10–20 % hitaampia kuin ennen. Katso lisätietoja alla olevista LUMI-asennushuomioista.

9.1.2026 PyTorch 2.9.1 on asennettu Puhtiin ja Mahtiin, ja siitä on tehty oletusversio. Apex poistettiin, koska kirjasto on ollut poistumassa käytöstä 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 valmistellaan uudessa LUMI AI Factoryssa, ja niiden odotetaan julkaistavan alkukevään aikana.

8.7.2025 PyTorch 2.7.1 on asennettu Puhtiin ja Mahtiin, ja siitä on tehty 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 on asennettu LUMIin, ja siitä on tehty oletusversio.

10.4.2025 PyTorch 2.6.0 on asennettu Puhtiin ja Mahtiin, ja siitä on tehty 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 on asetettu oletusversioksi kaikilla supertietokoneilla.

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

17.12.2024 PyTorch 2.5.1 on 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ä on lisätty 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 wrappereita (ei tykky-pohjaisia wrappereita kuten Puhtissa ja Mahdissa).

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

13.6.2024 PyTorch 2.3 on lisätty Puhtiin ja Mahtiin. LUMI- asennus viivästyy alkusyksyyn yhteensopimattoman ROCm-ajuriversion vuoksi. Tässä versiossa on myös päivitetty tapa, jolla Python-komennot wrapataan, koska tämä ratkaisee useita virtuaaliympäristöjen ja Jupyter Notebookien käyttöön liittyviä ongelmia. 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 on lisätty Puhtiin, Mahtiin ja LUMIin. LUMI- moduuli sisältää ROCm-versiot FlashAttention-2:sta ja bitsandbytesista, koska näitä on käyttäjien vaikea lisätä itse. xFormers on lisätty kaikkiin kolmeen järjestelmään.

17.11.2023 PyTorch 2.1 on 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:aan (RHEL8) tehdyn päivityksen vuoksi täysin tuettujen PyTorch-versioiden määrää on vähennetty. Aiemmin vanhentuneiksi merkityt 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:aan (RHEL8) tehdyn 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 merkitty vanhentuneiksi, ja kannustamme käyttäjiä siirtymään uudempiin versioihin. Lue lisää erilliseltä Condan poistumista käytöstä käsittelevältä sivultamme.

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 liittyviä kirjastoja GPU-tuella CUDA:n/ROCm:n kautta. Roihu-CPU:n versio ei luonnollisestikaan tue GPU:ita, mutta se on tarjottu kevyisiin työkuormiin ja työkuormiin, jotka tarvitsevat x86_64-suoritinarkkitehtuurin.

vLLM Roihussa

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

PyTorch LUMIlla

CSC ei enää tarjoa tätä moduulia LUMIlle, vaan suosittelemme käyttämään LUMI AI Factoryn tarjoamia kontteja sen sijaan.

Jos huomaat, että jokin paketti puuttuu, voit usein asentaa sen itse komennolla pip install. On suositeltavaa käyttää Pythonin virtuaaliympäristöjä. Katso Python-dokumentaatiostamme lisätietoja pakettien asentamisesta 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 Puhtissa 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:

module load python-pytorch

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

module load python-pytorch/2.10

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:

module avail python-pytorch

Voit tarkistaa ladattuun moduuliin sisältyvät tarkat paketit ja versiot ajamalla:

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äajotiedosto

Esimerkkieräajotiedosto yhden GPU:n ja sitä vastaavan osuuden saatavilla olevista suoritinytimistä varaamiseen 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.13
srun python3 myprog.py <options>
#!/bin/bash
#SBATCH --account=<project>
#SBATCH --partition=small
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=7
#SBATCH --mem=15G
#SBATCH --time=1:00:00

module load python-pytorch/2.13
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 dataosio. Erityisesti älä lue valtavaa määrää tiedostoja jaetusta tiedostojärjestelmästä, vaan käytä sen sijaan 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 osiosta

PyTorch-profiler

Jos PyTorch-ohjelmasi on hidas tai huomaat, että sillä on alhainen GPU:n käyttöaste, voit analysoida ohjelmasi ajan- ja muistinkulutusta PyTorch- profilerin avulla.

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äet kaikki vaihtoehdot PyTorchin profileria koskevasta API- dokumentaatiosta.

Seuraavaksi profiler pitää käynnistää ja pysäyttää sekä tallentaa yksittäiset vaiheet (tyypillisesti erät). Tämä tehtäisiin yleensä opetussilmukkasi ympärillä:

prof.start()

for batch in train_loader:
    # normal forward and backprop stuff here
    prof.step()

prof.stop()

GitHub- repositoriossamme annoimme täyden esimerkin profiloinnista: mnist_ddp_profiler.py sekä sitä vastaavan Slurm-eräajotiedoston.

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 -näkymää voi zoomata ja panoroida oikeassa yläkulmassa olevalla pienellä työkalupalkilla tai käyttämällä panoroimiseen 'a'- ja 'd'-näppäimiä sekä zoomaamiseen 'w'- ja 's'-näppäimiä.

Kuvakaappauksessa näemme:

  • Alue 1, merkitty punaisella, näyttää datan lataamisen (tämä näkyy zoomaamalla sisään ja lukemalla näytetyt funktioiden nimet). Tämä ajetaan kokonaan suorittimella, koska se on väritetty vain näytön yläosan tavallisten Pythonin CPU-säikeiden kohdalla.
  • 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 kokeilla lisätä enemmän suoritinytimiä datan lataamisen tehostamiseksi ja kasvattaa eräkokoa GPU-käsittelykuorman lisäämiseksi. Tässä nimenomaisessa tapauksessa ongelmana 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