基础环境配置

文摘   2024-12-25 09:01   中国香港  

 

基础环境配置

驱动程序配置

在搭建AI工作站时,正确配置NVIDIA驱动和CUDA环境是至关重要的,这直接关系到深度学习框架能否正常运行。让我们逐步完成这些配置。

NVIDIA驱动安装

  1. 1. 准备工作
  • • 首先禁用nouveau开源驱动:
    echo 'blacklist nouveau' | sudo tee /etc/modprobe.d/blacklist-nouveau.conf
    sudo update-initramfs -u
  • • 重启系统使更改生效
  • 2. 选择合适的驱动版本
    • • 使用以下命令查看推荐驱动:
      ubuntu-drivers devices
    • • 一般选择标记为 recommended 的版本
    • • 对于最新的RTX 40系列显卡,建议使用535或更新版本的驱动
  • 3. 安装驱动
    sudo apt update
    sudo apt install nvidia-driver-550  # 根据推荐版本号调整
  • 4. 验证安装
    • • 重启系统后,运行:
      nvidia-smi
    • • 如果能看到显卡信息和驱动版本,说明安装成功

    CUDA环境配置

    1. 1. 下载并安装CUDA Toolkit
    • • 访问NVIDIA官网下载对应版本的CUDA
    • • 推荐使用.run文件安装,便于自定义:
      sudo sh cuda_12.x.x_linux.run
    • • 安装时只选择CUDA Toolkit,不要选择Driver选项
  • 2. 环境变量配置
    • • 编辑~/.bashrc文件:
      echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
      echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
    • • 使配置生效:
      source ~/.bashrc
  • 3. 验证CUDA安装
    nvcc --version
  • cuDNN安装与配置

    1. 1. 下载cuDNN
    • • 从NVIDIA开发者网站下载对应CUDA版本的cuDNN
    • • 解压下载的文件:
      tar -xzvf cudnn-*.tgz
  • 2. 安装cuDNN
    sudo cp cuda/include/cudnn*.h /usr/local/cuda/include
    sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
    sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
  • 3. 验证cuDNN
    cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
  • 基础环境配置

    完成驱动安装后,我们需要对系统进行基础环境配置,以确保整个工作站能够稳定高效运行。

    用户权限管理

    1. 1. 创建开发用户
      sudo adduser aidev
      sudo usermod -aG sudo aidev
    2. 2. 配置sudo免密
      sudo visudo
      # 添加以下行
      aidev ALL=(ALL) NOPASSWD: ALL
    3. 3. 调整系统限制
    • • 编辑/etc/security/limits.conf:
      aidev soft nofile 65535
      aidev hard nofile 65535

    开机启动项配置

    1. 1. 创建自启动服务
    • • 创建系统服务文件:
      sudo nano /etc/systemd/system/aigpu.service
    • • 配置示例:
      [Unit]
      Description=AI GPU Service
      After=network.target

      [Service]
      User=aidev
      WorkingDirectory=/home/aidev
      ExecStart=/path/to/startup/script.sh
      Restart=always

      [Install]
      WantedBy=multi-user.target
  • 2. 启用服务
    sudo systemctl enable aigpu
    sudo systemctl start aigpu
  • 网络配置优化

    1. 1. 系统网络参数优化
    • • 编辑/etc/sysctl.conf:
      # 增加最大连接数
      net.core.somaxconn = 65535
      # 加快TCP连接释放
      net.ipv4.tcp_fin_timeout = 30
      # 允许TIME_WAIT状态socket重用
      net.ipv4.tcp_tw_reuse = 1
  • 2. 应用网络配置
    sudo sysctl -p
  • 3. 配置网络带宽QoS
    • • 安装流量控制工具:
      sudo apt install wondershaper
    • • 设置网络接口带宽限制:
      sudo wondershaper eth0 1000000 1000000  # 上传和下载限制为1Gbps

    远程访问环境配置

    远程访问对于AI工作站来说是非常重要的功能,它让我们能够随时随地访问和管理工作站。下面我们来配置几种常用的远程访问方式。

    SSH服务器配置

    1. 1. 安装SSH服务器
      sudo apt update
      sudo apt install openssh-server
    2. 2. 优化SSH配置
    • • 编辑/etc/ssh/sshd_config:
      # 修改默认端口(可选,建议修改以提高安全性)
      Port 2222

      # 禁用密码认证,使用密钥认证
      PasswordAuthentication no

      # 允许公钥认证
      PubkeyAuthentication yes

      # 限制root用户远程登录
      PermitRootLogin no
  • 3. 配置SSH密钥
    # 在客户端生成密钥对
    ssh-keygen -t ed25519 -C "your_email@example.com"

    # 将公钥复制到服务器
    ssh-copy-id -i ~/.ssh/id_ed25519.pub user@your_server
  • 4. 配置SSH隧道(可选)
    # 在客户端.ssh/config中添加
    Host aistation
        HostName your_server_ip
        User aidev
        Port 2222
        LocalForward 8888 localhost:8888  # 用于Jupyter Notebook
        LocalForward 6006 localhost:6006  # 用于TensorBoard
  • 防火墙设置

    1. 1. 配置UFW防火墙
      sudo ufw allow 2222/tcp  # SSH端口
      sudo ufw allow 5900/tcp  # VNC端口
      sudo ufw allow 3389/tcp  # RDP端口
      sudo ufw enable
    2. 2. 配置端口转发
    • • 编辑/etc/sysctl.conf:
      net.ipv4.ip_forward=1
    • • 应用更改:
      sudo sysctl -p

    远程桌面配置

    1. 1. VNC服务器安装
      sudo apt install tigervnc-standalone-server tigervnc-common
    2. 2. VNC配置
      # 设置VNC密码
      vncpasswd

      # 创建配置文件
      mkdir -p ~/.vnc
      nano ~/.vnc/config
      geometry=1920x1080
      dpi=96
      localhost
      alwaysshared
    • • 配置文件内容:
  • 3. 配置远程桌面自启动
    # 创建系统服务
    sudo nano /etc/systemd/system/vncserver@.service
    • • 服务文件内容:
      [Unit]
      Description=Remote desktop service (VNC)
      After=syslog.target network.target

      [Service]
      Type=simple
      User=aidev
      PAMName=login
      PIDFile=/home/%u/.vnc/%H:%i.pid
      ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill :%i > /dev/null 2>&1 || :'
      ExecStart=/usr/bin/vncserver :%i -geometry 1920x1080 -alwaysshared -fg
      ExecStop=/usr/bin/vncserver -kill :%i

      [Install]
      WantedBy=multi-user.target

    多媒体处理环境搭建

    FFmpeg安装与配置

    1. 1. 编译安装与优化
      # 安装依赖
      sudo apt install build-essential yasm cmake libtool libc6 \
      libc6-dev unzip wget libnuma1 libnuma-dev

      # 下载源码
      git clone https://git.ffmpeg.org/ffmpeg.git
      cd ffmpeg

      # 配置编译选项
      ./configure --enable-gpl --enable-nonfree --enable-libx264 \
      --enable-libx265 --enable-cuda --enable-cuvid --enable-nvenc \
      --enable-libnpp --extra-cflags=-I/usr/local/cuda/include \
      --extra-ldflags=-L/usr/local/cuda/lib64

      # 编译安装
      make -j$(nproc)
      sudo make install
    2. 2. 常用命令详解
    • • 视频转码:
      # H.264编码
      ffmpeg -i input.mp4 -c:v libx264 -preset medium -crf 23 output.mp4

      # HEVC编码
      ffmpeg -i input.mp4 -c:v libx265 -preset medium -crf 28 output.mp4
    • • GPU加速转码:
      # 使用NVENC编码器
      ffmpeg -hwaccel cuda -hwaccel_output_format cuda -i input.mp4 \
      -c:v h264_nvenc -preset p4 -crf 23 output.mp4

    图像处理库配置

    1. 1. OpenCV安装
      # 安装依赖
      sudo apt install build-essential cmake pkg-config \
      libjpeg-dev libpng-dev libtiff-dev libavcodec-dev \
      libavformat-dev libswscale-dev libv4l-dev \
      libxvidcore-dev libx264-dev libgtk-3-dev \
      libatlas-base-dev gfortran python3-dev

      # 下载并编译OpenCV
      wget -O opencv.zip https://github.com/opencv/opencv/archive/4.8.0.zip
      wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.8.0.zip
      unzip opencv.zip && unzip opencv_contrib.zip

      # 配置并编译
      cd opencv-4.8.0
      mkdir build && cd build
      cmake -D CMAKE_BUILD_TYPE=RELEASE \
            -D CMAKE_INSTALL_PREFIX=/usr/local \
            -D INSTALL_PYTHON_EXAMPLES=ON \
            -D INSTALL_C_EXAMPLES=OFF \
            -D OPENCV_ENABLE_NONFREE=ON \
            -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.8.0/modules \
            -D PYTHON_EXECUTABLE=$(which python3) \
            -D BUILD_EXAMPLES=ON ..

      make -j$(nproc)
      sudo make install
    2. 2. Pillow配置
      # 安装Pillow及其依赖
      sudo apt install python3-pil python3-pil.imagetk
      pip install --upgrade pillow

    音频处理工具

    1. 1. Sox工具使用
      # 安装Sox
      sudo apt install sox libsox-fmt-all

      # 常用命令示例
      # 转换采样率
      sox input.wav -r 44100 output.wav

      # 调整音量
      sox input.wav output.wav vol 2.0

      # 添加效果
      sox input.wav output.wav reverb
    2. 2. 音频编解码库配置
      # 安装常用编解码库
      sudo apt install libmp3lame-dev libvorbis-dev libopus-dev \
      libfdk-aac-dev libpulse-dev

      # 安装Python音频处理库
      pip install librosa soundfile python-speech-features
    3. 3. 音频处理性能优化
    • • 启用实时处理优先级:
      sudo nano /etc/security/limits.conf
      # 添加以下行
      @audio - rtprio 95
      @audio - memlock unlimited
    • • 配置ALSA缓冲区:
      sudo nano /etc/asound.conf
      # 添加配置
      pcm.!default {
          type hw
          card 0
          periods 2
          period_size 1024
      }

    这些配置完成后,你的Ubuntu系统将具备运行各种AI模型所需的基础环境。记得定期检查系统日志以确保所有服务正常运行,并根据实际使用情况适当调整参数。

     


    前端道萌
    魔界如,佛界如,一如,无二如。
     最新文章