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.