Diferència entre revisions de la pàgina «Màquina AMD Ryzen 7 5800X RTX 5060 Ti»

De wikijoan
Salta a la navegació Salta a la cerca
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.
  
−
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

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:

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