LINUX.ORG.RU

Как правильнее на Debian 12 поставить python3.10

 , ,


0

1

Очень нужно иметь именно 3.10, потому что драйвера ROCm для видеокарт AMD GPU хотят или 3.8 или 3.10 питон. 3.11 их не устраивает, как я понял. Некоторый другой софт (PyTorch) тоже захочет 3.10.

Можно попробовать из Sid взять, но это чревато тем, что рано или поздно apt-get update сломается. Или всю систему надо делать unstable, что тоже не хотелось бы...

★★★★★

Ответ на: комментарий от LongLiveUbuntu

Есть еще poetry, а еще сейчас набегут и скажут всё гавно, юзайте nix. Нет ответа на этот ваш вопрос, есть альтернативы. Мой личный опыт за анаконду, как наиболее безфакапный способ изоляции питона. Могу поделиться маленьким лайфхаком

_pwd_in_code_home(){
    test "${PWD#$CODE_HOME}" != "${PWD}"
    return $?
}

_activate_conda_on_chpwd() {
   _pwd_in_code_home
   if [[ $? != "0" ]]; then
     return
   fi
   local ACTIVE_ENV=$CONDA_DEFAULT_ENV
   local NEW_ENV=`echo ${PWD#$CODE_HOME} | tr -d "/"`
   if test -z $NEW_ENV; then
      return
   fi
   if [[ $ACTIVE_ENV == $NEW_ENV ]]; then
     return
   fi
   conda activate $NEW_ENV 2> /dev/null
   if [[ $? == "0" ]]; then
      echo Activating conda enviroment  $NEW_ENV
   fi
}

if [[ -v CODE_HOME ]]; then
    autoload -U add-zsh-hook
    add-zsh-hook chpwd _activate_conda_on_chpwd
fi

если это добавить в .zshrc то конда будет автоматически переключаться на соответствующий environment при смене каталога

FishHook
()
Последнее исправление: FishHook (всего исправлений: 1)
Ответ на: комментарий от LongLiveUbuntu

То есть когда у нас есть убунту, арч, генту, дебиан, федора, рэд хэт, сузе, слак … - это хорошо и богоугодно, это юникс вей

Когда у нас есть bash, zsh, tcsh, fish, ash, csh, ksh … - это хорошо и правильно, каждый вибирает себе инструмент по душе

Когда у нас есть make, cmake, ninja, meson, waf … - это хорошо, это прогресс, развитие

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

Как это у вас получается?

FishHook
()

Если бы спросил «как мне поставить ROCm на такой-то дистрибутив?», то результаты могли бы быть лучше. А ты решил, видимо, что надо поставить пакеты для Ubuntu любой ценой.

anonymous
()
Ответ на: комментарий от praseodim

А чего ещё никто не предложил собрать питон из исходников? Или это ещё больнее?

// полностью с тобой согласен насчёт тотальной тупости творящегося

pihter ★★★★★
()
Ответ на: комментарий от FishHook

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

Это не потому что больше одного инструмента, это потому что говняный питон

ya-betmen ★★★★★
()
Ответ на: комментарий от einhander

Там любая версия питона ну или почти любая у которой тоже есть свой pip и venv при желании, самые свежие могут отставать на месяц после релиза если с бетами не заморачиваться.

peregrine ★★★★★
()
Ответ на: комментарий от LongLiveUbuntu

Какой пакет?

Я пробовал вручную скомпилировать и поставить питон. На удивление гладко получилось, вот только в списке пакетов он не появился.

Пробовал подключать репу Sid (Unstable) - в этом случае этих сообщений нет после установки питона, но затем попутно хочет полсистемы обновить, даже если в apt.conf прописать, что bookworm - дефолтная.

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

В общем, через скрипт установить драйвера на Debian 12, не превращая stable в unstable, нереально оказалось. Или это надо как-то сильно извращаться. Как его отредактировать я тоже толком не разобрался.

Попробую некоторые другие варианты.

praseodim ★★★★★
() автор топика
Последнее исправление: praseodim (всего исправлений: 1)
Ответ на: комментарий от einhander

Я несколько другим образом все сделал. Без скрипта. Получилось даже проще и не потребовалось извращаться ставить 10-й питон, работает с дефолтным 11-м. Через некоторое время напишу статью хаутушку по установке rocm+pytorch на 12-й debian.

praseodim ★★★★★
() автор топика
18 апреля 2024 г.
Ответ на: комментарий от Shadow

Вообще ни на йоту не приблизился. Либо Я не так эту змею готовлю)) Окружение есть. Python3.10 есть. Но мне нужно окружение системных библиотек.

sudo apt install rocm
...
The following packages have unmet dependencies:
 rocm-gdb : Depends: libpython3.10 but it is not installable or
                     libpython3.8 but it is not installable
DmitriyS
()
Ответ на: комментарий от DmitriyS

А зачем ты rocm-gdb ставишь? -gdb так, вроде как, обозначают пакеты содержащие дебажные символы. Ты дебажить собрался? Если нет, то тебе этот пакет не нужен.

PRN
()
Ответ на: комментарий от DmitriyS

Столкнулся с такой же проблемой. Напиши хотя бы в двух словах.

Сразу не написал, теперь плохо помню %-) Я экспериментировал с дебиан 12 в виртуалке, благо, что для установки и настройки совсем не обязательно вообще иметь видеокарту, так что всякие проблемы с зависимостями можно разруливать в виртуалке, постоянно откатывая, если не туда зашел.

Если нашел правильные логи того, что делал, то совсем вкратце вот ниже. Небольшое пояснение. Я ставил rocm версии 5.7.3, сейчас свежий уже 6-й и соответствующий ему торч есть. Но я их пока не ставил, хотя есть смысл. В 6-м и соотв. торче вроде реализовали поддержку fp16, что означает резкое ускорение для моделей, где можно fp16 использовать.

Текущее ядро под которым все ставил - 6.1

1. 

Идем на https://repo.radeon.com/amdgpu-install/  далее в каталог /ubuntu/jammy/  в общем скачиваем  https://repo.radeon.com/amdgpu-install/5.7.3/ubuntu/jammy/amdgpu-install_5.7.50703-1_all.deb

2.  Работаем из каталога, куда скачали deb

sudo apt install "linux-headers-$(uname -r)" 
sudo usermod -a -G render,video $LOGNAME
sudo apt install ./amdgpu-install_5.7.50703-1_all.deb

3. 
sudo apt update
sudo apt install amdgpu-dkms

4. 
sudo apt install rocm-hip-libraries

5. Теперь устанавливаем все для питона

sudo apt install pip
sudo apt install python3.11-venv

6. 
mkdir ~/pytorch
mkdir ~/pytorch/hip
python3 -m venv /home/$LOGNAME/pytorch/hip

7.  Торч и прочее ставим в venv и работаем в venv

source pytorch/hip/bin/activate
python3 -m pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/rocm5.7

Впрочем, это я ставил, когда торч для 5.7 рокма был в найтли билдах.  Сейчас оно уже стейбл и если верить табличке по адресу https://pytorch.org/get-started/locally/   нужно 

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm5.7

для rocm 6.0 оно еще в nightly

8. Небольшая проверка

$ python
Python 3.11.2 (main, Mar 13 2023, 12:18:29) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.cuda.is_available()
True

Если True, значит успешно установилось.

9. Для карт RX 5000 - й серии и RX 6000, которые не RX 6800/6900 может понадобиться установить переменную окружения.

HSA_OVERRIDE_GFX_VERSION=10.3.0

Можно прямо в коде на питоне

os.environ["HSA_OVERRIDE_GFX_VERSION"] = "10.3.0"

10. Для карт RX 7000-й линейки возможно понадобится, если карта не RX 7900 XT/XTX (у меня они, так что не проверял)


os.environ["HSA_OVERRIDE_GFX_VERSION"] = "11.0.0"
os.environ['ROCM_PATH'] = '/opt/rocm'
os.environ['PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION'] = 'python'

Как-то так. Good luck! Enjoy it!

praseodim ★★★★★
() автор топика
Ответ на: комментарий от praseodim

Некоторое добавление. Пусть 'cuda' не смущает. Для программ с PyTorch ускоритель от AMD как бы тоже cuda.

Еще есть смысл установить sudo apt install rocm-smi - это утилита для показа работы rocm (кулер, память, gpu) и некоторых манипуляций с ними.

RX 7000-е хотя и сильно редко, но могут подвисать в процессе работы rocm/hip. Подвисает GPU-часть. Как я понимаю, это не аппаратная, а драйверная проблема, которую однако AMD никак не исправят.

praseodim ★★★★★
() автор топика
Ответ на: комментарий от praseodim

И еще, для некоторых программ еще может понадобиться

apt install rocm-hip-sdk

Если используешь jupyter-notebook-и всякие, их тоже надо ставить из под venv с нужным pytorch или как-то трахаться с настройкой выбора нужного ядра. Мне проще из под venv показалось. И еще, точно не помню, но кажется лучше jupyter ставить ДО установки pytorch

source pytorcht/hip/bin/activate
pip install jupyter notebook

torchvision torchaudio много для чего тоже понадобится. Сейчас nightly можно опустить. Но вообще советую попробовать 6.0, хотя сам не пробовал.

Плюс дополнительные замечания от создателей pytorch по работе с AMD HIP https://pytorch.org/docs/stable/notes/hip.html

praseodim ★★★★★
() автор топика
Последнее исправление: praseodim (всего исправлений: 3)
Ответ на: комментарий от praseodim

А если тебе не для разработки то не знаю... Анаконда она больше под разработчиков заточена... Хотя никто не помешает тебе наговнокодить скриптов чтоб твою программу запускать оттуда.

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 1)
Ответ на: комментарий от FishHook

Так проблема не с этим, а с тем что в pip-е и в conde по отдельности нет всех нужных пакетов и я тут говорю про связки под ml, что там с вебом у питона не знаю, наверное полегче, а потому приходится делать винегрет в виде pip внутри conda, что приводит к тому что зависимости только ручками разгребать.

peregrine ★★★★★
()
Ответ на: комментарий от praseodim

Блин, наотвечал в некротреде. (((

Ты лучше скажи как в linux-е (ubuntu 22.04 в данном случае) наименее черезжопно pytorch с cuda подружить? Потому как версия cuda для pytorch-а сильно свежее нужна чем в репах. С сайта nvidia я не хочу дрова с кудой ставить - они при первом обновлении ядра отломаются.

https://gist.github.com/tongluobing/57eaa768eee8fa4a63e2cb3fb01a65c5

Вот типа такого там репы вроде как знакомые мне лежат, но не знаешь насколько часто оно ломается?

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 1)
Ответ на: комментарий от peregrine

Ты лучше скажи как в linux-е (ubuntu 22.04 в данном случае) наименее черезжопно pytorch с cuda подружить?

На сайте пайторча есть табличка с выборами вариантов и для CUDA в том числе:

https://pytorch.org/get-started/locally/

praseodim ★★★★★
() автор топика
Ответ на: комментарий от praseodim

Я знаю про неё. Меня больше волнует насколько nvidia драйвер нужной мне версии сейчас стабилен (потому что было время, что у меня либо графика хорошо работала, либо куда, скорее всего причина в том что тогда у меня была слишком новая видяха и драйвера с ней работали не очень). Ну и вот это меня смущает.

# install cuDNN v8.9.7
# First register here: https://developer.nvidia.com/developer-program/signup
Его что без регистрации никак нельзя установить? Что за дискриминация линуксов? На оффтопике такой фигни нет.

peregrine ★★★★★
()
Ответ на: комментарий от peregrine

Его что без регистрации никак нельзя установить? Что за дискриминация линуксов?

Нигде не регистрировался.

Package: cudnn9-cuda-12-4
Version: 9.1.0.70-1
Priority: optional
Section: multiverse/libs
Source: cudnn
Maintainer: cudatools <cudatools@nvidia.com>
Installed-Size: 36.9 kB
Provides: cudnn9-cuda
Depends: libcudnn9-static-cuda-12 (= 9.1.0.70-1)
Conflicts: cudnn9-cuda
Replaces: cudnn9-cuda
Download-Size: 12.3 kB
APT-Sources: https://developer.download.nvidia.com/compute/cuda/repos/debian12/x86_64  Packages
Description: NVIDIA cuDNN for CUDA 12.4
 NVIDIA cuDNN for CUDA 12.4 provides primitives for deep neural networks.
dataman ★★★★
()
Ответ на: комментарий от praseodim

Гайд хороший, но мне он не помог(в моём кейсе). (п.8 - у меня тоже true).

Хочу получить такой результат (с поправками на мой софт/железо): https://www.youtube.com/watch?v=lwndqsUok2s

Но всё равно возникает ошибка: Segmentation fault при начале пользования модели. Сама модель загружается в VRAM - без проблем. А после написания в чат падает с ошибкой.

Более простой гайд Debian+Rocm на мой взгляд тут: https://gpuopen.com/learn/amd-lab-notes/amd-lab-notes-rocm-installation-readme/#option-3

DmitriyS
()
Ответ на: комментарий от DmitriyS

Но всё равно возникает ошибка: Segmentation fault при начале пользования модели. Сама модель загружается в VRAM - без проблем. А после написания в чат падает с ошибкой.

Возможно причина не в cuda и не в торче. Проделай более сложные манипуляции, проверь, что ускорение не просто available, а реально с помощью gpu что-то считается, например, скалярное произведение векторов (матриц)

$ python
Python 3.11.2 (main, Mar 13 2023, 12:18:29) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.cuda.is_available()
True
>>> x = torch.tensor([1., 2.], device='cuda')
>>> y = torch.tensor([3., 4.], device='cuda')
>>> z = torch.matmul(x,y)
>>> x,y,z
(tensor([1., 2.], device='cuda:0'), tensor([3., 4.], device='cuda:0'), tensor(11., device='cuda:0'))
praseodim ★★★★★
() автор топика
Ответ на: комментарий от praseodim
>>> x,y,z
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/dmitriy/pytorch/hip/lib/python3.11/site-packages/torch/_tensor.py", line 473, in __repr__
    return torch._tensor_str._str(self, tensor_contents=tensor_contents)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/dmitriy/pytorch/hip/lib/python3.11/site-packages/torch/_tensor_str.py", line 697, in _str
    return _str_intern(self, tensor_contents=tensor_contents)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/dmitriy/pytorch/hip/lib/python3.11/site-packages/torch/_tensor_str.py", line 617, in _str_intern
    tensor_str = _tensor_str(self, indent)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/dmitriy/pytorch/hip/lib/python3.11/site-packages/torch/_tensor_str.py", line 349, in _tensor_str
    formatter = _Formatter(get_summarized_data(self) if summarize else self)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/dmitriy/pytorch/hip/lib/python3.11/site-packages/torch/_tensor_str.py", line 138, in __init__
    tensor_view, torch.isfinite(tensor_view) & tensor_view.ne(0)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: HIP error: invalid device function
HIP kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect.
For debugging consider passing AMD_SERIALIZE_KERNEL=3.
Compile with `TORCH_USE_HIP_DSA` to enable device-side assertions.

Нашёл другой скрипт: https://gist.github.com/damico/484f7b0a148a0c5f707054cf9c0a0533

  • У меня он отработал в окр. hip, но в окр. проекта не срабатывал.
  • Удалил torch torchvision torchaudio.
  • Поставил нормальные версии для rocm5.7 (как указано выше)

В итоге и скрипт отрабатывает! И проект работает!

DmitriyS
()
Ответ на: комментарий от DmitriyS

То есть, для нормальной работы ты версии торч для rocm5.7 поставил не из под venv, а так сказать, общий?

praseodim ★★★★★
() автор топика
Последнее исправление: praseodim (всего исправлений: 1)