Skip to content

Miniconda(mamba)+ PyTorch 配置

安装mamba替代conda

Mamba与conda完全兼容,现有的conda环境、包和配置都可以保留。由于Mamba更轻量级,它可以更好地处理大型Python环境,解析、下载比conda快很多。使用时仅需将指令中的conda替换为mamba即可。

下载并安装

wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh && bash Miniforge3-Linux-x86_64.sh

设置pip镜像

# 创建
mkdir ~/.pip && vi ~/.pip/pip.conf

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = https://pypi.tuna.tsinghua.edu.cn

设置conda镜像

vi ~/.condarc
channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  deepmodeling: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/

安装常用包及pytorch

mamba install pandas PyYAML numpy tqdm jupyterlab einops Pillow gitpython seaborn scikit-image jupyter  scipy  matplotlib optuna graphviz scikit-learn-intelex gpustat tensorboard scikit-learn
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126
# 需求nvcc可以安装配套的nvcc环境
mamba install -c nvidia cuda-nvcc
pip install prefetch_generator opencv-python packaging ninja

安装flash attention

检查ninja是否安装正确

ninja --version
echo $?

returns a zero exit code 则正确

pip install flash-attn --no-build-isolation

设置自动启用base环境

使用mamba init

cat /usr/share/anaconda3/etc/profile.d/mamba.sh >> ~/.zshrc

安装后可能遇到的问题

fix gpustat memory显示不正常

pip install git+https://github.com/wookayin/gpustat.git@master

fix libnvrtc.so not found

sudo ln -s /usr/share/anaconda3/lib/python3.10/site-packages/torch/lib/libcaffe2_nvrtc.so /usr/share/anaconda3/lib/python3.10/site-packages/torch/lib/libnvrtc.so

多用户场景下,共用conda缓存包

参考: 再也不用重复下pytorch和cudatoolkit——Conda的多用户使用的合理配置

这个配置能达到以下效果,一个服务器上安装一个conda,所有用户创建的环境在自己的home下,新安装下载的包会存在conda下的pkgs里,如果用相同的包不会重复下载而是会直接链接。base环境需要root权限才能修改。

  1. 创建用户组(假定用户组名users)

  2. root安装conda,保证conda安装的硬盘和用户home的硬盘一样

  3. conda安装目录(假定/usr/share/anaconda3)修改用户组从属到users

    sudo chgrp -R users /usr/share/anaconda3
    

  4. conda下的envs恢复用户组从属到root
    sudo chgrp root /usr/share/anaconda3/envs
    
  5. 修改conda下的pkgs的所有文件夹的权限 g+s g+x
    sudo find /usr/share/anaconda3/pkgs/ -type d -exec chmod g+s {} \;
    
    sudo find /usr/share/anaconda3/pkgs/ -type d -exec chmod g+x {} \;
    
  6. 修改conda下的pkgs的所有文件权限 g+w
    sudo chmod -R g+w /usr/share/anaconda3/pkgs/
    
  7. 对于一个在users里的用户,使用安装的conda初始化
    /usr/share/anaconda3/bin/conda init
    /usr/share/anaconda3/bin/mamba init
    
  8. 所有用户的home下的.condarc源设置一样