Diferència entre revisions de la pàgina «Màquina AMD Ryzen 7 5800X RTX 5060 Ti»
| Línia 111: | Línia 111: | ||
</pre> | </pre> | ||
| − | ==Instal·lació del CUDA Toolkit== | + | ==Instal·lació del CUDA Toolkit i Pytorch== |
El CUDA Toolkit és per fer desenvolupament amb CUDA. | El CUDA Toolkit és per fer desenvolupament amb CUDA. | ||
| + | |||
| + | Com que: | ||
| + | <pre> | ||
| + | $ grep UBUNTU_CODENAME /etc/os-release | ||
| + | UBUNTU_CODENAME=noble | ||
| + | </pre> | ||
| + | podem utilitzar el repositori ''ubuntu2404''. | ||
| + | |||
| + | <pre> | ||
| + | wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb | ||
| + | sudo dpkg -i cuda-keyring_1.1-1_all.deb | ||
| + | sudo apt update | ||
| + | |||
| + | sudo apt install cuda-toolkit | ||
| + | </pre> | ||
| + | No instal·lem el ''cuda'', sinó el ''cuda-toolkit'', i així evitem que el Toolkit intenti substituir coses del driver que Mint ja gestiona (hem instal·lat cuda des dels repositoris oficials). | ||
| + | |||
| + | '''nvcc''' és el compilador de CUDA de NVIDIA (NVIDIA CUDA Compiler). Serveix per compilar codi C/C++ que conté parts pensades per executar-se a la GPU. | ||
| + | |||
| + | El que fa, a grans trets, és separar el codi en dues parts: el codi “host” (CPU), que passa a un compilador normal com gcc, clang o MSVC, i el codi “device” (GPU), és a dir, les funcions marcades amb __global__ o __device__, que compila ell mateix cap a codi per a la GPU. Després ho enllaça tot en un sol executable. | ||
| + | |||
| + | <pre> | ||
$ nvcc --version | $ nvcc --version | ||
nvcc: NVIDIA (R) Cuda compiler driver | nvcc: NVIDIA (R) Cuda compiler driver | ||
| Línia 119: | Línia 141: | ||
Cuda compilation tools, release 13.4, V13.4.59 | Cuda compilation tools, release 13.4, V13.4.59 | ||
Build cuda_13.4.r13.4/compiler.38657139_0 | Build cuda_13.4.r13.4/compiler.38657139_0 | ||
| + | </pre> | ||
| + | |||
| + | <pre> | ||
| + | $ which nvcc | ||
| + | /usr/local/cuda-13.4/bin/nvcc | ||
| + | </pre> | ||
| + | |||
| + | En el ''.bashrc'' afegim el nvcc | ||
| + | <pre> | ||
| + | export PATH=/usr/local/cuda-13.4/bin:$PATH | ||
| + | </pre> | ||
| + | Per fer-ho de forma permanent: | ||
| + | <pre> | ||
| + | echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc | ||
| + | source ~/.bashrc (per tal de què tingui efectes immediats) | ||
| + | </pre> | ||
| + | |||
| + | Tenim dues coses diferents: | ||
| + | * nvidia-smi: són els drivers de NVIDIA + GPU | ||
| + | * nvcc: cuda toolkit | ||
| + | |||
| + | Instal·lem ara les eines de desenvolupament: (són genèriques, i ho fem de forma global, no en un venv) | ||
| + | <pre> | ||
| + | sudo apt install build-essential git cmake pkg-config | ||
| + | </pre> | ||
| + | |||
| + | ===PyTorch=== | ||
| + | |||
| + | La versió actual de PyTorch requereix python modern. 3.10 o posterior per a la versió estable actual. Jo tinc 3.12, ok. | ||
6. No instal·lis PyTorch globalment | 6. No instal·lis PyTorch globalment | ||
| − | Això és important. | + | Això és important. Ho farem amb venv. |
No facis: | No facis: | ||
| + | <pre> | ||
sudo pip install torch | sudo pip install torch | ||
| + | </pre> | ||
| + | Cada projecte python tindrà el seu entorn virtual. Per ex: | ||
| + | <pre> | ||
| + | mkdir xarxes-neuronals | ||
| + | cd xarxes-neuronals | ||
| − | https://pytorch.org/get-started/locally/?utm_source=chatgpt.com | + | python3 -m venv .venv |
| + | source .venv/bin/activate | ||
| + | nou prompt: (.venv) $ | ||
| + | python -m pip install --upgrade pip | ||
| + | |||
| + | </pre> | ||
| + | Ja podem instal·lar el PyTorch. Anirem a la pàgina oficial de PyTorch per seguir les últimes instruccions. | ||
| + | |||
| + | * https://pytorch.org/get-started/locally/?utm_source=chatgpt.com | ||
| + | |||
| + | Com que jo tinc CUDA Version: 13.2, la instrucció serà: (recordem, tot això dins del venv) | ||
| + | <pre> | ||
pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu132 | pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu132 | ||
| + | </pre> | ||
| + | |||
| + | script ''primera_prova.py'': | ||
| + | <pre> | ||
| + | import torch | ||
| + | |||
| + | print("PyTorch:", torch.__version__) | ||
| + | print("CUDA disponible:", torch.cuda.is_available()) | ||
| + | print("CUDA de PyTorch:", torch.version.cuda) | ||
| + | if torch.cuda.is_available(): | ||
| + | print("GPU:", torch.cuda.get_device_name(0)) | ||
| + | </pre> | ||
| + | <pre> | ||
$ python3 primera_prova.py | $ python3 primera_prova.py | ||
PyTorch: 2.14.0+cu132 | PyTorch: 2.14.0+cu132 | ||
| Línia 135: | Línia 216: | ||
CUDA de PyTorch: 13.2 | CUDA de PyTorch: 13.2 | ||
GPU: NVIDIA GeForce RTX 5060 Ti | GPU: NVIDIA GeForce RTX 5060 Ti | ||
| + | </pre> | ||
| + | En aquest punt tens PyTorch + CUDA funcionant de veritat. | ||
| − | |||
(recordem que ho fem en un venv) | (recordem que ho fem en un venv) | ||
| + | |||
| + | I ara ja puc fer servir la targeta gràfica de veritat: | ||
| + | |||
| + | script ''segona_prova.py'': | ||
| + | <pre> | ||
| + | import torch | ||
| + | |||
| + | print(torch.cuda.get_device_name(0)) | ||
| + | |||
| + | a = torch.randn(5000, 5000, device="cuda") | ||
| + | b = torch.randn(5000, 5000, device="cuda") | ||
| + | |||
| + | c = a @ b | ||
| + | |||
| + | print(c.device) | ||
| + | print(c.shape) | ||
| + | </pre> | ||
| + | <pre> | ||
| + | NVIDIA GeForce RTX 5060 Ti | ||
| + | cuda:0 | ||
| + | torch.Size([5000, 5000]) | ||
| + | </pre> | ||
| + | |||
| + | Mentre ho executem, en un altre terminal podem veure l'ús de la targeta gràfica: (veiem com la memòria puja) | ||
| + | <pre> | ||
| + | watch -n 1 nvidia-smi | ||
| + | </pre> | ||
| + | |||
| + | En aquest punt tenim PyTorch + CUDA funcionant. | ||
=Connexió SSH (localment i remotament)= | =Connexió SSH (localment i remotament)= | ||
Revisió del 17:06, 10 oct 2026
Contingut
Components
PC Gaming AMD Ryzen 7 5800x Targeta gràfica: NVidia RTX 5060 Ti 16GB RAM: GDDR7 32 GB 2 TB SSD
Per entrar a la bios: 'supr' vàries vegades
La placa no té bluetooth integrada.
Instal·lo el Linux Mint, formatant el disc dur i carregant-me la instal·lació del Windows.
Configuració, primeres tasques. Linux Mint
El Linux Mint que tinc és el 22.3 Zena
$ cat /etc/os-release NAME="Linux Mint" VERSION="22.3 (Zena)" ID=linuxmint ID_LIKE="ubuntu debian" PRETTY_NAME="Linux Mint 22.3" VERSION_ID="22.3" HOME_URL="https://www.linuxmint.com/" SUPPORT_URL="https://forums.linuxmint.com/" BUG_REPORT_URL="http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/" PRIVACY_POLICY_URL="https://www.linuxmint.com/" VERSION_CODENAME=zena UBUNTU_CODENAME=noble
$ lsb_release -a No LSB modules are available. Distributor ID: Linuxmint Description: Linux Mint 22.3 Release: 22.3 Codename: zena
cat /etc/linuxmint/info RELEASE=22.3 CODENAME=zena EDITION="Xfce" DESCRIPTION="Linux Mint 22.3 Zena" DESKTOP=Gnome TOOLKIT=GTK NEW_FEATURES_URL=https://www.linuxmint.com/rel_zena_whatsnew.php RELEASE_NOTES_URL=https://www.linuxmint.com/rel_zena.php USER_GUIDE_URL=https://www.linuxmint.com/documentation.php GRUB_TITLE=Linux Mint 22.3 Xfce
$ grep UBUNTU_CODENAME /etc/os-release UBUNTU_CODENAME=noble
El linux mint ja vindrà amb una instal·lació de python:
python3 --version Python 3.12.3
És una versió prou recent. Si és prou moderna, no tocar res, i executar els projectes python amb venv
Instal·lo els següents paquets i aplicacions:
- joe
- sublime text 4
- venv
- docker
- ssh server (de seguida entraré per SSH, veure més avall)
Com a navegador faig servir el Firefox que ja porta el SO (no instal·lo el Chrome)
Instal·lació drivers NVidia
Instal·lem el driver NVIDIA oficial a partir dels repositoris:
Menú -> Administració > Gestor de controladors.
Detectarà la RTX 5060Ti, i seleccionem el driver propietari recomanat.
$ nvidia-smi Tue Sep 15 22:59:17 2026 +-----------------------------------------------------------------------------------------+ | NVIDIA-SMI 595.91.07 Driver Version: 595.91.07 CUDA Version: 13.2 | +-----------------------------------------+------------------------+----------------------+ | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+========================+======================| | 0 NVIDIA GeForce RTX 5060 Ti Off | 00000000:05:00.0 On | N/A | | 0% 43C P3 12W / 180W | 792MiB / 16311MiB | 4% Default | | | | N/A | +-----------------------------------------+------------------------+----------------------+ +-----------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=========================================================================================| | 0 N/A N/A 1116 G /usr/lib/xorg/Xorg 412MiB | | 0 N/A N/A 1449 G xfwm4 3MiB | | 0 N/A N/A 2159 G /usr/lib/firefox/firefox 298MiB | +-----------------------------------------------------------------------------------------+
Instal·lació del CUDA Toolkit i Pytorch
El CUDA Toolkit és per fer desenvolupament amb CUDA.
Com que:
$ grep UBUNTU_CODENAME /etc/os-release UBUNTU_CODENAME=noble
podem utilitzar el repositori ubuntu2404.
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb sudo dpkg -i cuda-keyring_1.1-1_all.deb sudo apt update sudo apt install cuda-toolkit
No instal·lem el cuda, sinó el cuda-toolkit, i així evitem que el Toolkit intenti substituir coses del driver que Mint ja gestiona (hem instal·lat cuda des dels repositoris oficials).
nvcc és el compilador de CUDA de NVIDIA (NVIDIA CUDA Compiler). Serveix per compilar codi C/C++ que conté parts pensades per executar-se a la GPU.
El que fa, a grans trets, és separar el codi en dues parts: el codi “host” (CPU), que passa a un compilador normal com gcc, clang o MSVC, i el codi “device” (GPU), és a dir, les funcions marcades amb __global__ o __device__, que compila ell mateix cap a codi per a la GPU. Després ho enllaça tot en un sol executable.
$ nvcc --version nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2026 NVIDIA Corporation Built on Mon_Aug_03_13:24:11_PDT_2026 Cuda compilation tools, release 13.4, V13.4.59 Build cuda_13.4.r13.4/compiler.38657139_0
$ which nvcc /usr/local/cuda-13.4/bin/nvcc
En el .bashrc afegim el nvcc
export PATH=/usr/local/cuda-13.4/bin:$PATH
Per fer-ho de forma permanent:
echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc source ~/.bashrc (per tal de què tingui efectes immediats)
Tenim dues coses diferents:
- nvidia-smi: són els drivers de NVIDIA + GPU
- nvcc: cuda toolkit
Instal·lem ara les eines de desenvolupament: (són genèriques, i ho fem de forma global, no en un venv)
sudo apt install build-essential git cmake pkg-config
PyTorch
La versió actual de PyTorch requereix python modern. 3.10 o posterior per a la versió estable actual. Jo tinc 3.12, ok.
6. No instal·lis PyTorch globalment
Això és important. Ho farem amb venv.
No facis:
sudo pip install torch
Cada projecte python tindrà el seu entorn virtual. Per ex:
mkdir xarxes-neuronals cd xarxes-neuronals python3 -m venv .venv source .venv/bin/activate nou prompt: (.venv) $ python -m pip install --upgrade pip
Ja podem instal·lar el PyTorch. Anirem a la pàgina oficial de PyTorch per seguir les últimes instruccions.
Com que jo tinc CUDA Version: 13.2, la instrucció serà: (recordem, tot això dins del venv)
pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu132
script primera_prova.py:
import torch
print("PyTorch:", torch.__version__)
print("CUDA disponible:", torch.cuda.is_available())
print("CUDA de PyTorch:", torch.version.cuda)
if torch.cuda.is_available():
print("GPU:", torch.cuda.get_device_name(0))
$ python3 primera_prova.py PyTorch: 2.14.0+cu132 CUDA disponible: True CUDA de PyTorch: 13.2 GPU: NVIDIA GeForce RTX 5060 Ti
En aquest punt tens PyTorch + CUDA funcionant de veritat.
(recordem que ho fem en un venv)
I ara ja puc fer servir la targeta gràfica de veritat:
script segona_prova.py:
import torch print(torch.cuda.get_device_name(0)) a = torch.randn(5000, 5000, device="cuda") b = torch.randn(5000, 5000, device="cuda") c = a @ b print(c.device) print(c.shape)
NVIDIA GeForce RTX 5060 Ti cuda:0 torch.Size([5000, 5000])
Mentre ho executem, en un altre terminal podem veure l'ús de la targeta gràfica: (veiem com la memòria puja)
watch -n 1 nvidia-smi
En aquest punt tenim PyTorch + CUDA funcionant.
Connexió SSH (localment i remotament)
per configurar el router, entrem el router: 192.168.1.1
el password està darrere de l'aparell (pwd: gewn5gJ8)
Un cop dins del router, el primer que farem és configurar-lo de manera que el servidor tingui una IP fixa, que no vagi canviant segons les normes del DHCP. (m'ha costat una mica de veure com es fa, però ho he trobat).
$ hostname -I 192.168.1.184 172.17.0.1
2. Comprovar que escolta pel port 22
Executa:
sudo ss -tlnp | grep :22
LISTEN 0 4096 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1084,fd=3),("systemd",pid=1,fd=239))
LISTEN 0 4096 [::]:22 [::]:* users:(("sshd",pid=1084,fd=4),("systemd",pid=1,fd=240))
3. Provar SSH des de dins de casa (xarxa local)
Des d'un altre ordinador connectat al teu Wi-Fi/LAN:
ssh joan@192.168.1.184
4. Després farem la configuració del HGU (la marca del router)
Una vegada confirmem això, configurarem dues coses al router:
Reserva DHCP
Per evitar que el servidor passi de 192.168.1.184 a una altra IP.
Port forwarding
Per exemple:
Internet HGU Linux Mint 2222 ───────► 192.168.1.184:22
Així, des de fora entraràs amb:
ssh EL_TEU_USUARI@LA_TEVA_IP_PUBLICA -p 2222
I després podem afegir clau SSH + desactivar contrasenyes, que és el que et recomano abans de deixar SSH exposat a Internet.
- direcció IP WAN: 10.83.118.15
- joan-IA 10:ff:e0:d5:34:e4 192.168.1.184
- servidor DNS1: 80.58.61.254
- servidor DNS2: 80.58.61.250
$ curl ifconfig.me 79.156.157.3
aquesta és la IP pública del router que es veu des de Internet
Molts operadors a Espanya fan servir CGNAT: la teva connexió comparteix IP pública amb altres clients, i obrir ports al router no serveix de res. Per comprovar-ho, compara la IP WAN que mostra el router amb la que surt a una web com ifconfig.me. Si no coincideixen, tens CGNAT.
En el meu cas, ifconfig.me mostra 79.156.157.3, per tant és una bona notícia, la connexió IP pública és meva, no està compartida.
Per tant, la IP WAN del HGU és realment pública i no estic darrere de CG-NAT.
I una precisió sobre el port 2222: és perfectament raonable utilitzar-lo, però canviar 22 → 2222 no és una protecció de seguretat significativa. Quan ho tinguem funcionant, jo faria el pas important: autenticació SSH amb clau i desactivar l'accés per contrasenya.
amb el portàtil em connecto amb dades mòbils i així no estic a la xarxa local. Ja em puc connectar al servidor com si estigués en una xarxa remota:
$ ssh joan@79.156.157.3 -p 2222
i ja entro al servidor. Ara ja puc treballar des de qualsevol lloc, pel port 22
Ara ja puc fer el següent pas: autenticació SSH amb clau i desactivar l'accés per contrasenya. Però m'interessarà activar/desactivar l'accés per contrasenya sempre que vulgui de manera fàcil.
1. Primer: crear una clau SSH al dispositiu des d'on et connectaràs
Per exemple, si habitualment entraràs des del teu portàtil:
ssh-keygen -t ed25519
des del portàtil copiem la clau pública al servidor:
ssh-copy-id -p 2222 joan@79.156.157.3
la clau queda emmagatzemada dins del fitxer: .ssh/authorized_keys
i ara ja puc tornar a entrar i no m'ha de demanar la contrasenya:
$ ssh joan@79.156.157.3 -p 2222
ja tenim l'autenticació per clau funcionant.
El que vull és com un interruptor temporal
- SSH només amb clau → segur
- SSH amb clau + contrasenya → temporal
$ sudo sshd -T | grep -E 'passwordauthentication|kbdinteractiveauthentication|pubkeyauthentication' [sudo] contrasenya per a joan: pubkeyauthentication yes passwordauthentication yes kbdinteractiveauthentication no
sudo nano /etc/ssh/sshd_config Busquem: #PasswordAuthentication yes i posem: PasswordAuthentication no
sudo systemctl reload ssh
(amb reload no cal reiniciar el servei, que faríem amb sudo systemctl restart ssh)
Ara ja puc entrar sempre que vulgui des del portàtil sense que em demani el password, i no puc entrar des de cap altra màquina perquè el password està desactivat: passwordauthentication no al fitxer /etc/ssh/sshd_config
Per activar temporalment el password:
joe /etc/ssh/sshd_config passwordauthentication yes
sudo systemctl reload ssh
Resum connexió SSH
Des del portàtil, en la xarxa local:
ssh joan@192.168.1.184
Des del portàtil, en una xarxa remota:
ssh joan@79.156.157.3 -p 2222
Des del portàtil ho tinc configurat per tal de què no demani el password (perquè hi confia). Des d'una altra màquina em demanaria password.
S'utilitza el port 2222 perquè no és tan evident com el port 22, i així evitem atacs. Se'n diu port forwarding.
Ollama, primers models LLM locals
Model QWen 3.5 27B (quantitzat)
Installar QWen 3.5 27B
Quantització: Q2_K ~10 GB ~11–13 GB Baixa 🟢 Bé Q3_K_M ~12.5 GB ~14–16+ GB Bona 🟢 Recomanable Q4_K_M ~15.5–16 GB ~17–19+ GB Molt bona 🟡 RAM + VRAM Q5/Q6 >18 GB >20 GB Millor 🔴 Massa gran
jo compararia Q3_K_M vs IQ3_M vs aard-Q3 abans de descarregar-ne cap.
Descarreguem el fitxer Qwen3.5-27B-Q3_K_M.gguf de:
- [[1]]
Qwen3.5-27B-Q3_K_M.gguf Q3_K_M 14.82GB false Low quality.
aquest fitxer ocupa uns 15G
fitxer Modelfile:
FROM ./Qwen3.5-27B-Q3_K_M.gguf
ollama create qwen3.5:27b-q3 -f Modelfile ollama list ollama run qwen3.5:27b-q3
creat per Joan Quintana Compte, setembre 2026