Управление несколькими версиями CUDA на одной машине Подробное руководство

Как эффективно управлять несколькими версиями CUDA на одной машине Подробное руководство

Как работать с разными версиями CUDA в вашей среде разработки

Фото от Nikola Majksner на Unsplash

В одной из моих предыдущих ролей в качестве AI-консультанта мне было поручено использовать виртуальные среды в качестве инструмента для управления и изоляции сред разработки на Python. Поскольку проект полагался на ускорение GPU, возникла ситуация, когда установленная версия CUDA отличалась от требуемой для проекта. Для решения этой проблемы мне пришлось установить необходимую версию CUDA и настроить среду таким образом, чтобы использовать ее, не затрагивая системную настройку CUDA. На сколько я знаю, существует недостаток всесторонних учебников, полностью охватывающих эту специфическую потребность. Поэтому этот учебник является ценным ресурсом для тех, кто хочет понять, как безопасно управлять несколькими версиями набора инструментов CUDA в своих проектах.

Содержание:

· 1. Введение· 2. Доступные версии CUDA· 3. Загрузка и распаковка бинарных файлов· 4. Установка набора инструментов CUDA· 5. Настройка проекта· 6. Заключение

1. Введение

Установка нескольких версий набора инструментов CUDA на вашу систему может вызывать различные эффекты и последствия, некоторые из которых могут повлиять на вашу систему:

  • Это может привести к конфликтам в системных переменных PATH и переменных среды. Если их правильно не управлять, эти конфликты могут повлиять на версию CUDA, используемую по умолчанию.
  • Для оптимальной производительности и совместимости может потребоваться использование конкретных версий драйверов GPU. Установка новой версии может потребовать обновления драйвера GPU.
  • Некоторые библиотеки и программное обеспечение могут зависеть от определенной версии CUDA. Установка новой версии может нарушить совместимость с этими зависимостями.
  • Приложения, основанные на CUDA, могут требовать настройки для работы с новой версией. Несовместимости могут вызывать ошибки или непредвиденное поведение.
  • Неправильное управление несколькими версиями CUDA может привести к нестабильности системы или ошибкам при работе с приложениями, использующими ускорение GPU.

Поэтому для безопасного управления несколькими версиями набора инструментов CUDA для вашего проекта следуйте этим шагам:

  1. Проверьте текущую версию CUDA на системе.
  2. Загрузите и распакуйте бинарные файлы нужной версии.
  3. Запустите установщик, чтобы установить только набор инструментов.

В этом учебнике я предоставлю подробный пример, шаг за шагом, о том, как это сделать. Кроме того, я покажу вам, как настроить вашу виртуальную среду после успешной установки бинарных файлов.

2. Доступные версии CUDA

Посмотрим, какую версию CUDA в данный момент использует система, выполнив команду nvidia-smi:

Как видите, версия CUDA – 12.1.

Теперь давайте выведем доступные версии CUDA на моей машине:

$ ls /usr/local/ | grep cudacudacuda-11.7cuda-12cuda-12.1

У меня есть три разные доступные версии на моей машине.

3. Загрузка и распаковка бинарных файлов

Предположим, что проект, над которым я буду работать, требует версии набора инструментов CUDA 11.8. Чтобы получить ее, мы начинаем с посещения веб-сайта NVIDIA CUDA Toolkit Archive: здесь . Мы находим конкретную версию набора инструментов CUDA, требуемую для нашего проекта. Важно убедиться, что мы выбираем версию, совместимую с нашей операционной системой. В моем случае я выбрал целевую платформу:

My target platform: Linux — x86_64 — Ubuntu — 22.04

Выберите версию CUDA Toolkit “runfile (local)”, которая соответствует вашей операционной системе. Этот конкретный файл обычно имеет расширение .run. При выборе runfile (local) веб-сайт предоставит вам инструкции по установке. В моем случае предоставленные инструкции выглядят следующим образом:

wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.runsudo sh cuda_11.8.0_520.61.05_linux.run

Однако необходимо помнить, что нашей целью не является установка этой версии, так как уже установлена более новая версия. Поэтому нам нужно выполнить только первую инструкцию, чтобы скачать файл:

wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run

Загрузку можно проверить, сравнив MD5-хэш, размещенный по этой ссылке, с загруженным файлом.

“Локальный установщик является автономным. Это большой файл, который нужно загрузить из Интернета только один раз и можно установить на нескольких системах. Локальные установщики рекомендуются при низкоскоростных Интернет-подключениях или когда невозможно использовать сетевой установщик (например, из-за ограничений брандмауэра).” [1]

На данном этапе откройте терминал, перейдите в каталог, куда перенесен файл CUDA runfile, и сделайте его исполняемым с помощью следующей команды:

chmod +x cuda_11.8.0_520.61.05_linux.run

4. Установите CUDA Toolkit

Теперь запустим файл CUDA runfile с флагами --silent и --toolkit для выполнения тихой установки CUDA Toolkit:

sudo ./cuda_11.8.0_520.61.05_linux.run --silent --toolkit

Где:

  • --silent: выполняет установку без дальнейшего ввода от пользователя и с минимальным выводом командной строки.
  • --toolkit: установите только CUDA Toolkit и сохраните текущие драйверы.

Если вас попросят принять соглашение, примите его, чтобы продолжить установку.

В конце процесса извлекаются двоичные файлы CUDA Toolkit. Вы можете убедиться в этом, выполнив следующую команду:

$ ls /usr/local/ | grep cudacudacuda-11.7cuda-11.8cuda-12cuda-12.1

Как видите, cuda-11.8 теперь доступен на моем компьютере, а текущая версия системы остается прежней (вы можете подтвердить это, запустив nvidia-smi).

Эти шаги позволяют установить двоичные файлы версии CUDA. В следующем разделе я покажу вам, как настроить ваш проект для использования требуемой версии CUDA.

5. Настройка проекта

При работе с несколькими проектами рекомендуется использовать виртуальные среды. Начнем с создания виртуальной среды. В моем случае требовался Python 3.8. Для создания виртуальной среды можно использовать следующую команду. Я создал среду с именем my_venv в папке venv, где я разместил виртуальные среды:

python3.8 -m venv venv/my_envsource venv/my_env/bin/activate

Давайте посмотрим, какую версию CUDA мы используем в данный момент:

$ nvcc --versionnvcc: NVIDIA (R) Cuda compiler driverCopyright (c) 2005-2021 NVIDIA CorporationBuilt on Thu_Nov_18_09:45:30_PST_2021Cuda compilation tools, release 11.5, V11.5.119Build cuda_11.5.r11.5/compiler.30672275_0

Как видите, созданная среда не использует требуемую версию CUDA, поэтому нам необходимо установить ее вручную, обновив файл activate и добавив следующие строки:

export PATH=/usr/local/cuda-11.8/bin:$PATHexport LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH

Вы можете обновить файл activate с помощью вашего любимого редактора, или вы можете просто выполнить следующую команду, чтобы добавить текст в конец файла:

echo "export PATH=/usr/local/cuda-11.8/bin:$PATH" >> venv/my_env/bin/activateecho "LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH" >> venv/my_env/bin/activate

Наконец, нам нужно снова активировать среду и запустить команду nvcc:

$ source venv/nerfstudio/bin/activate$ nvcc --versionnvcc: NVIDIA (R) Cuda compiler driverCopyright (c) 2005-2022 NVIDIA CorporationBuilt on Wed_Sep_21_10:33:58_PDT_2022Cuda compilation tools, release 11.8, V11.8.89Build cuda_11.8.r11.8/compiler.31833905_0

Вот и все! Теперь проект настроен на использование требуемой версии CUDA без конфликтов!

6. Заключение

Следуя шагам, описанным в этом руководстве, вы можете успешно поддерживать несколько версий CUDA на вашей системе, избегая конфликтов между установками. Эта гибкость позволяет каждому проекту использовать необходимую версию CUDA, настраивая переменные окружения в соответствии с вашими потребностями.

Спасибо за внимание. Надеюсь, вам понравился этот учебник. Если вам нравятся мои уроки, поддержите меня, следуя и подписываясь. Таким образом, вы будете получать уведомления о моих новых статьях. Если у вас есть вопросы или предложения, не стесняйтесь оставлять комментарии ниже.

Ссылки

[1] https://developer.nvidia.com/cuda-12-2-2-download-archive?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=22.04&target_type=runfile_local

Изображения

Все изображения и рисунки в этой статье, источник которых не указан в подписи, принадлежат автору.