Як встановити CUDA Toolkit на Debian

CUDA (Compute Unified Device Architecture) від NVIDIA – це потужний інструмент для паралельних обчислень. Вона використовує графічні процесори (GPU) NVIDIA для збільшення швидкості обчислювальних завдань. Цей посібник покаже вам, як встановити CUDA на Debian 11 Bullseye і Debian 10 Buster. Ми будемо використовувати власний APT-репозиторій NVIDIA для кожної версії Debian, щоб переконатися, що все працює гладко. Однак слід пам’ятати, що Debian 12 Bookworm поки що не має офіційної збірки CUDA, оскільки це нещодавно випущений дистрибутив.

Чим виділяється CUDA Toolkit:

  • Паралельна обробка: CUDA дає змогу вашому програмному забезпеченню виконувати безліч завдань одночасно на графічних процесорах NVIDIA. Це дуже зручно для робіт, що вимагають великої обчислювальної потужності.
  • Підтримка багатьох мов: CUDA можна використовувати з такими мовами програмування, як C, C++ і Fortran. Вона також працює з іншими обчислювальними інструментами, такими як OpenCL і DirectCompute.
  • Повний набір інструментів розробки: NVIDIA надає розробникам повний набір інструментів з Nsight Eclipse Edition. Він допомагає створювати, налагоджувати та покращувати CUDA-додатки.
  • Готові до використання бібліотеки: CUDA має власний набір бібліотек, призначених для вирішення завдань GPU. Як приклад можна навести cuBLAS для математичних операцій і cuFFT для аналізу даних.
  • Перспективний дизайн: CUDA створена для роботи з новими та перспективними графічними процесорами NVIDIA. Це означає, що ваше програмне забезпечення може вдосконалюватися з часом без значних змін у коді.

Перед встановленням CUDA на Debian:

  • Перевірте свою систему: Переконайтеся, що апаратне та програмне забезпечення вашого комп’ютера готове до роботи з CUDA. У NVIDIA є список GPU і системних вимог, які ви можете перевірити.
  • Використовуйте правильне джерело: Цей посібник сфокусований на APT-репозиторії NVIDIA для Debian. Це найкращий спосіб отримати стабільну та добре працюючу версію CUDA для вашої системи Debian.
  • Слідкуйте за оновленнями: Непогано час від часу перевіряти наявність оновлень. NVIDIA часто випускає нові можливості та виправлення, щоб зробити CUDA кращою.

Розділ 1: Очищення наявних установок CUDA і NVIDIA

Перш ніж приступати до встановлення драйверів NVIDIA або розглядати можливість оновлення версій у Debian, дуже важливо почати з чистого аркуша. Це означає видалення всіх наявних установок NVIDIA із системи Debian. Цей крок дасть змогу уникнути потенційних проблем, які можуть виникнути внаслідок дублювання установок. Якщо ви новачок у встановленні драйверів NVIDIA, ви можете пропустити цей розділ і перейти до наступного.

Метод 1: Деінсталяція пакетів NVIDIA, встановлених через APT

Якщо ви раніше використовували менеджер пакетів APT для встановлення драйверів NVIDIA, ви можете скористатися однією командою для видалення всіх пакетів, пов’язаних із NVIDIA. Ця дія призведе до ефективного видалення NVIDIA із системи. Введіть у терміналі таку команду:

sudo apt autoremove cuda* nvidia* --purge

Ця команда використовує функцію autoremove команди apt. Вона видаляє пакети, які були автоматично встановлені для задоволення залежностей інших пакетів, але більше не потрібні. Шаблон nvidia* визначає всі пакети, що починаються з ‘nvidia’. Опція –purge вказує apt на видалення не тільки пакетів, а й пов’язаних з ними конфігураційних файлів.

Метод 2: Деінсталяція драйверів NVIDIA, встановлених через Runfile

Якщо ви встановили драйвери NVIDIA за допомогою .run-файлу (що, як правило, не рекомендується через наявність кращих альтернатив, таких як сховище NVIDIA CUDA), то для їх видалення знадобиться інший підхід.

Для видалення установки типу runfile виконайте таку команду:

sudo /usr/bin/nvidia-uninstall

Ця команда запускає сценарій nvidia-uninstall, який постачається разом зі встановленням runfile. Сценарій призначений для методичного видалення драйвера NVIDIA, встановленого за допомогою runfile.

Метод 3: Деінсталяція CUDA Toolkit, встановленого за допомогою Runfile

Якщо ви встановили набір інструментів CUDA за допомогою runfile, необхідно видалити і його. Процес видалення аналогічний видаленню драйверів NVIDIA. Для видалення набору інструментів CUDA виконайте таку команду:

sudo /usr/local/cuda-X.Y/bin/cuda-uninstall

У наведеній вище команді замініть X.Y на номер версії встановленого інструментарію CUDA. Ця команда запускає сценарій cuda-uninstall, який входить до складу runfile встановлення інструментарію CUDA. Сценарій призначений для методичного видалення набору інструментів CUDA із системи Debian.

Розділ 2: Додавання репозиторію NVIDIA APT і встановлення CUDA на Debian

Перш ніж продовжити, необхідно зазначити, що наведені тут інструкції призначені спеціально для Debian 11 Bullseye і Debian 10 Buster. Якщо ви спробуєте застосувати ці кроки для Debian 12 Bookworm або Debian 13 Trixie, вони не працюватимуть, оскільки NVIDIA ще не випустила офіційні збірки для цих версій Debian. Щойно вони з’являться, цей посібник буде відповідним чином оновлено.

Найефективнішим методом встановлення CUDA є встановлення безпосередньо з репозиторію NVIDIA CUDA. Такий підхід забезпечує своєчасне отримання користувачами оновлень, включаючи нові можливості, виправлення помилок, виправлення безпеки та інші поліпшення.

Крок 1: Підготовка системи Debian

Перш ніж почати процес встановлення, необхідно переконатися, що ваша система Debian підготовлена належним чином. Це включає встановлення кількох необхідних пакетів. Хоча деякі з них можуть уже існувати у вашій системі, буде розумно підтвердити їхню наявність. Виконайте в терміналі таку команду:

sudo apt install build-essential gcc dirmngr ca-certificates software-properties-common apt-transport-https dkms curl -y

Ця команда встановлює необхідні пакети, які будуть важливі для наступних кроків. Серед них dirmngr керує ключами, ca-certificates – SSL-сертифікатами, software-properties-common – репозиторіями програмного забезпечення, apt-transport-https – безпечним завантаженням пакетів, dkms – модулями ядра, а curl – завантаженням файлів з Інтернету.

Крок 2: Перевірка автентичності інсталяції за допомогою GPG-ключа сховища NVIDIA

Забезпечення автентичності та цілісності програмних пакетів має першорядне значення. Імпортуючи ключ GPG для вашої версії Debian, ви перевіряєте справжність пакетів у сховищі. Цей ключ використовується для підпису пакетів, і імпортуючи його, ви даєте системі вказівку довіряти цим підписаним пакетам.

Для Debian 11 Bullseye виконайте:

curl -fSsL https://developer.download.nvidia.com/compute/cuda/repos/debian11/x86_64/3bf863cc.pub 
| sudo gpg --dearmor | sudo tee /usr/share/keyrings/nvidia-drivers.gpg > /dev/null 2>&1

Для Debian 10 Buster використовуйте:

curl -fSsL https://developer.download.nvidia.com/compute/cuda/repos/debian10/x86_64/3bf863cc.pub 
| sudo gpg --dearmor | sudo tee /usr/share/keyrings/nvidia-drivers.gpg > /dev/null 2>&1

Крок 3: Інтеграція репозиторію NVIDIA у вашу систему

Після отримання ключа GPG ви можете додати репозиторій NVIDIA в систему Debian. Цей репозиторій містить необхідні пакети для встановлення CUDA.

Для Debian 11 Bullseye використовуйте:

echo 'deb [signed-by=/usr/share/keyrings/nvidia-drivers.gpg] 
https://developer.download.nvidia.com/compute/cuda/repos/debian11/x86_64/ /' | sudo tee /etc/apt/sources.list.d/nvidia-drivers.list

Для Debian 10 Buster використовуйте:

echo 'deb [signed-by=/usr/share/keyrings/nvidia-drivers.gpg] 
https://developer.download.nvidia.com/compute/cuda/repos/debian10/x86_64/ /' | sudo tee /etc/apt/sources.list.d/nvidia-drivers.list

Крок 4: Оновлення списку пакетів

Після додавання сховища NVIDIA необхідно оновити список пакетів у системі. Це гарантує, що система розпізнає нові пакети з репозиторію NVIDIA. Для оновлення виконайте команду:

sudo apt update

Крок 5: Встановлення CUDA з драйверами NVIDIA

Виконавши всі необхідні умови, можна приступати до встановлення CUDA разом з останніми драйверами NVIDIA. Однак перш ніж приступити до встановлення, рекомендується перевірити доступні версії драйверів. Це можна зробити за допомогою команди APT show:

apt show cuda-drivers -a

У результаті буде виведено список доступних пакетів для різних версій драйверів NVIDIA.

Як альтернативу можна також підтвердити доступну версію CUDA за допомогою команди APT Policy:

sudo apt policy cuda

Ця команда відобразить доступні версії CUDA. Виберіть версію, яка найбільше відповідає вашим потребам. У цьому посібнику ми продемонструємо встановлення останньої доступної версії. Не забудьте замінити 535 на 530, 525, 520, 515 тощо, залежно від вашого вибору.

sudo apt install nvidia-driver-535 cuda-driver-535 cuda

Після завершення встановлення перезавантажте систему, щоб усі зміни набули чинності:

sudo reboot

Цей крок завершує налаштування CUDA на вашій системі Debian, забезпечуючи ефективне використання її можливостей.

Розділ 3: Початок роботи з CUDA на Debian

Використання можливостей CUDA в Debian може значно підвищити обчислювальні можливості вашої системи. Цей розділ містить покрокову інструкцію, яка допоможе вам розібратися в тонкощах CUDA, забезпечуючи максимальне використання цієї потужної платформи.

Крок 1: Оцінка можливостей GPU

Перш ніж занурюватися в програмування на CUDA, необхідно зрозуміти можливості вашого GPU. Різні графічні процесори підтримують різні версії CUDA, і кожен із них має такі унікальні характеристики, як кількість ядер, обсяг пам’яті тощо. Для отримання детальної інформації про ваш GPU використовуйте команду nvidia-smi:

nvidia-smi

Ця команда дає змогу отримати інформацію про різні характеристики графічного процесора, як-от його ім’я, загальний обсяг пам’яті та підтримувана версія CUDA. Знання характеристик GPU дуже важливе для оптимізації CUDA-програм.

Крок 2: Створення першої програми на CUDA

Для початку ми розробимо базову CUDA-програму, скомпілюємо її і виконаємо, щоб переконатися, що все працює правильно. Почнемо зі створення нового файлу з розширенням .cu, яке є стандартним для CUDA-програм. Для цього можна використовувати будь-який текстовий редактор:

nano helloworld.cu

Вставте у файл такий код. Ця проста програма виводить на екран повідомлення “Hello, World!” від графічного процесора:

#include <stdio.h>
 
__global__ void helloFromGPU (void) {
   printf("Hello World from GPU!\n");
}

int main(void) {
   printf("Hello World from CPU!\n");
   helloFromGPU <<<1, 10>>>();
   cudaDeviceReset();
   return 0;
}

Для компіляції цієї програми використовуйте команду nvcc, яка розшифровується як NVIDIA CUDA Compiler:

nvcc helloworld.cu -o helloworld

Для компіляції цієї програми використовуйте команду nvcc, яка розшифровується як NVIDIA CUDA Compiler:

./helloworld

На виході має з’явитися повідомлення:

Hello World from CPU!
Hello World from GPU!

Крок 3: Розширене програмування на CUDA: Множення матриць

Для подальшої демонстрації можливостей CUDA розробимо програму, що виконує матричне множення за допомогою CUDA. Це дасть змогу продемонструвати, як CUDA може ефективно розв’язувати високопаралельні задачі.

Почнемо зі створення нового файлу:

nano matrixmul.cu

Вставте у файл matrixmul.cu такий код. Ця програма виконує множення матриць на GPU:

__global__ void gpu_matrix_mult(int *a,int *b, int *c, int m, int n, int k)
{
   // Calculate the row & column index of the element 
   int row = blockIdx.y * blockDim.y + threadIdx.y; 
   int col = blockIdx.x * blockDim.x + threadIdx.x;

   int sum = 0; 
   if( row < m && col < k )
   {
      for(int j = 0; j < n; j++)
      {
         sum += a[row * n + j] * b[j * k + col];
      }
      // Each thread computes one element of the block sub-matrix
      c[row * k + col] = sum;
   }
}

Скомпілюйте програму за допомогою команди nvcc:

nvcc matrixmul.cu -o matrixmul

Потім виконайте скомпільовану програму:

./matrixmul

На виході буде представлено результат операції множення матриці. Цей приклад ілюструє, як CUDA може ефективно обробляти паралельні завдання, як-от множення матриць, забезпечуючи значний приріст продуктивності порівняно з традиційним виконанням на CPU.

Висновок

У цьому посібнику ми детально розглянули процес встановлення CUDA Toolkit на Debian 11 Bullseye і Debian 10 Buster. Дотримуючись описаних кроків, користувачі зможуть використовувати обчислювальну потужність графічних процесорів NVIDIA, відкриваючи широкі можливості для високопродуктивних обчислювальних завдань. Для забезпечення стабільності та оптимальної продуктивності необхідно переконатися, що встановлення відповідає конкретній версії Debian. Оскільки технології постійно розвиваються, дуже важливо бути в курсі останніх випусків і офіційної документації. Для тих, хто хоче глибше вивчити можливості CUDA або вирішити конкретні проблеми, неоціненну допомогу нададуть офіційні ресурси та форуми NVIDIA.

Поділіться своєю любов'ю

Залишити відповідь

0 комментариев
Вбудовані Відгуки
Переглянути всі коментарі
0
Ми любимо ваші думки, будь ласка, прокоментуйте.x