CUDA-13.0.2

Introduksjon til CUDA

CUDAs proprietære verktøysett tilbyr verktøy for å kjøre kode på NVIDIA GPU-er. Dette er også kjent som maskinvareakselerasjon.

[Viktig]

Viktig

NVIDIA driverversjonen som er oppført i kjørefilnavnet er minimum NVIDIA driverversjonen som kreves. Du må installere en eldre versjon av CUDA hvis du ikke kan installere en nyere driverversjon.

[Notat]

Notat

Nedlastingsstørrelsen er over 5G, så du bør vurdere om og når du vil laste ned denne kjørefilen. Av denne grunn anbefales det ikke å laste den ned når du bruker begrenset hotspot-data. Størrelsen kan i stor grad tilskrives at den inneholder kompilatorer samt NVIDIA driveren. Driveren utgjør bare 10 % av runfilens størrelse.

CUDA Avhengigheter

Påkrevd

NVIDIA

Anbefalt

Valgfri

GDB og GLU

Installasjon av CUDA

Først som root bruker opprett installasjonsmappen og symbollenken:

mkdir -pv /opt/cuda-13.0.2 &&
ln -sfv cuda-13.0.2 /opt/cuda
[Notat]

Notat

Når du installerer flere pakker i et skript, må installasjonen gjøres som root bruker. Det finnes tre generelle alternativer som kan brukes til å gjøre dette:

  1. Kjør hele skriptet som root bruker (ikke anbefalt).

  2. Bruk sudo kommandoen fra sudo pakken.

  3. Use su -c "command arguments" (anførselstegn kreves) som vil be om root passordet for hver iterasjon av løkken.

En måte å håndtere denne situasjonen på er å lage en kort bash funksjon som automatisk velger riktig metode. Når kommandoen er satt i miljøet, trenger den ikke å settes på nytt.

as_root()
{
  if   [ $EUID = 0 ];        then $*
  elif [ -x /usr/bin/sudo ]; then sudo $*
  else                            su -c \\"$*\\"
  fi
}

export -f as_root

Start et underskall som avsluttes ved en feil:

bash -e

Installer CUDA ved å kjøre følgende kommandoer:

sh cuda_13.0.2_580.95.05_linux.run     \
  --target cuda_13.0.2_580.95.05_linux \
  --noexec
pushd cuda_13.0.2_580.95.05_linux/builds
  rm -rf cuda_nsight cuda_sanitizer_api nsight_{compute,systems}
  rm -rvf bin integration NVIDIA*.run
  as_root cp version.json /opt/cuda-13.0.2
  as_root cp EULA.txt     /opt/cuda-13.0.2
  rm version.json EULA.txt
  as_root mkdir -p /opt/cuda-13.0.2/bin
  for lib in *; do
    as_root cp -vR $lib/* /opt/cuda-13.0.2
    rm -rf $lib
  done
  as_root ln -svf lib64 /opt/cuda-13.0.2/lib
  for mf in $(find /opt/cuda-13.0.2 -name Makefile); do
    as_root sed -i "s|/usr/local/cuda|/opt/cuda-13.0.2|g" "$mf"
  done
popd
rm -rf cuda_13.0.2_580.95.05_linux
[Notat]

Notat

Instruksjonene ovenfor pakker ut kjørefilen og installerer komponenter manuelt. Tidligere var ikke dette nødvendig. Men når cuda_installer ikke kunne lastes inn fordi den var avhengig av en eldre libxml2 ABI, ble denne prosessen den foretrukne løsningen. Den vil forbli siden den gir mer kontroll, til tross for at den er en mer komplisert løsning.

Avslutt nå underskallprosessen:

exit

Som root bruker, tillate bruk av nye kompilatorer:

sed -e "/.*unsupported GNU version.*/d" \
    -e "/.*unsupported clang version.*/d" \
    -i /opt/cuda-13.0.2/targets/x86_64-linux/include/crt/host_config.h
[Viktig]

Viktig

Dette støttes teknisk sett ikke, og det kan oppstå kompileringsfeil i andre pakker som et resultat. Det er imidlertid et bedre kompromiss enn å installere eldre kompilatorer bare for én pakke. Denne pakken er fortsatt under utvikling, men det tar lang tid å tilpasse seg nyere programvare.

Parameterforklaringer

--target: Denne parameteren angir utpakningsmappen.

--noexec: Denne parameteren sikrer at verktøysettet ikke utløses for installasjon.

Konfigurere CUDA

Som root bruker sørg for at bibliotekene er mellomlagret :

cat > /etc/ld.so.conf.d/cuda.conf << EOF &&
/opt/cuda/lib64
/opt/cuda/nvvm/lib64
/opt/cuda/extras/CUPTI/lib64
EOF

ldconfig

For å kunne bruke verktøysettet må det nå inkluderes i banen.

Som root bruker, opprett profilen (avhengig av Oppstartsfilene til Bash Skallet) for CUDA:

cat > /etc/profile.d/cuda.sh << "EOF"
# Begin /etc/profile.d/cuda.sh

pathprepend /opt/cuda/bin           PATH

# End /etc/profile.d/cuda.sh
EOF

Nå henter du hovedprofilen:

source /etc/profile

Innhold

For en fullstendig pakkeliste, sjekk Arch's CUDA package contents ettersom hele listen er for lang til å listes opp her.