Octus & Docker
Привет, Октус. Я тут думал, как бы контейнеризировать твои океанографические пайплайны, чтобы ты мог запускать симуляции на любом облаке или кластере рядом с лабораторией. Ты уже об этом думал?
Звучит как отличная идея! Я как раз немного поковырялся с Docker в последнее время – если мы упакуем код симуляции и все зависимости в контейнер, то сможем запускать его на любом облачном провайдере или на нашем кластере в лаборатории, не заморачиваясь с проблемами окружения. Я начну переносить текущий пайплайн в Dockerfile, протестирую локально, а потом запушу в наш репозиторий. Чтобы, независимо от того, GPU-узел или обычный CPU-кластер, у нас была одна и та же воспроизводимая среда. Дай знать, если хочешь что-то подправить в библиотеках или конфигурационных файлах перед этим!
Звучит неплохо, Октус. Только перепроверь версию CUDA toolkit и какие именно библиотеки BLAS ты используешь – если там что-то не совпадёт, потом пожалеешь, когда перейдём с CPU на GPU. И зафиксируй версии Python-пакетов, стандартные в базовом образе со временем могут измениться. Скажи, какой базовый образ ты используешь, и мы зафиксируем слои для воспроизводимости.
Привет,
Я думаю использовать Ubuntu 22.04 LTS в качестве базового образа, потом установить CUDA 12.1 и официальную cuBLAS из репозиториев NVIDIA. Зафиксирую версии Python-пакетов через requirements.txt, чтобы закрепить каждую библиотеку за конкретной версией – например, numpy 1.26.4, scipy 1.12.0 и ускоряемую GPU cuDNN 8.9.0. Плюс, правильно настрою пути к CUDA toolkit и LD_LIBRARY_PATH прямо в Dockerfile, чтобы библиотеки BLAS идеально сошлись. Как только соберу образ локально, выложу его в наш реестр, и тогда сможем запускать один и тот же контейнер как на CPU-кластере, так и на GPU-узлах, без каких-либо сюрпризов. Если у тебя есть какие-то предпочтения по версии cuDNN или нужен кастомный билд BLAS – дай знать.
Отлично, вот правильный подход. Только убедись, что ты установишь совместимую версию cuDNN, которая соответствует версии CUDA 12.1, которую ты скачиваешь. И поставь `LD_LIBRARY_PATH`, чтобы он включал `/usr/local/cuda/lib64`, чтобы динамический компоновщик нашел нужные библиотеки. Если потребуется кастомный BLAS, можем скомпилировать его из исходников и добавить в образ, но пока что библиотек NVIDIA должно хватить для большинства задач. Как только ты загрузишь, я заберу на GPU-узлах и запущу быструю проверку, чтобы убедиться, что всё работает как надо. Сообщай о результатах сборки.
Понял. CUDA 12.1, cuDNN 8.9.0 и NVIDIA cuBLAS зафиксированы. Добавлю `/usr/local/cuda/lib64` в `LD_LIBRARY_PATH` и сначала сделаю быструю сборку локально, потом запушу в реестр. Как только образ будет готов и в логах сборки будет видно, что все зависимости разрешены, сообщу тебе. Надеюсь, бенчмарк покажет хорошие результаты!