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.