• GPU服务器环境搭建


    前言

    最近,因个人兴趣做了一点视频类的项目实践,部分流程需要GPU服务器,所以写一篇文章记录一下购买GPU服务器后,需要做的一些操作。

    首先,因为各种模型的资源主要在海外,所以一开始选择AWS上的GPU,但因为有soft limit(AWS避免用户不小心使用这些比较贵的资源,需要申请,才能创建相应的EC2实例类型,申请需要时间),所以又换回了阿里云。

    阿里云购买方式很简单,选择对应的GPU机器,然后勾选安装CUDA环境,这样阿里云在初始化实例化会自动帮我们安装好CUDA这些基础环境,方便我们搭建深度学习环境。

    我的配置是:

    • ubuntu 22.04

    • GPU A10

    • 硬盘100G

    大概11块钱一小时。

    设置http代理

    国内的服务器下载海外资源是很慢的,之前我在 [国内服务器如何下载海外资源](https://mp.weixin.qq.com/s/-qeuaT5GMOdoIaz90XFBjQ)一文中提过解决方案,这次也依旧用这种方式,最为简单。

    首先,开启阿里云1080端口,用于设计proxy。a0014478e5958790aaed1b4365c929a7.png

    然后在本地(我的是Mac,所以命令是Unix的,如果你是windows可能需要调整)通过ssh命令开启远程流量转发。

    ssh -i ~/.ssh/rsa_key -fnqgNTR server_ip:1080:localhost:7890 root@server_ip

    因为ssh默认只能监听localhost,需要开启GatewayPorts才能监听其他ip,所以我们需要改一下配置文件。

    1. > vim /etc/ssh/sshd_config
    2. # GatewayPorts: no
    3. ------ 改成  -----
    4. GatewayPorts: yes

    然后在服务器上设置http与https的proxy,则可使用MacOS的代理来访问海外资源,从而提升下载速度了。

    1. export http_proxy="127.0.0.1:1080"
    2. export https_proxy="127.0.0.1:1080"

    可以通过curl -vv http://www.google.com命令判断一下http_proxy是否生效。

    设置conda代理

    很多AI项目都建议使用anaconda来安装环境,访问download url:https://www.anaconda.com/download

    找到你的平台,比如ubuntu就是Linux平台。

    b38cd03a5ea64053d116391c58a54fbb.png

    复制链接,在服务器上,使用wget命令下载,因为设置了proxy,所以下载速度不错:

    wget https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-x86_64.sh

    下载后,执行命令安装,conda init相关的都选yes,这个shell脚本就会帮你弄好所有的设置。

    base Anaconda3-2023.09-0-Linux-x86_64.sh

    安装后,再设置一下conda的proxy,毕竟conda默认从海外拉资源,要设置conda proxy,首先需要先创建.condarc文件:

    vim ~/.condarc

    然后在文件中,写入如下配置:

    1. proxy_servers:
    2.   http: http://127.0.0.1:1080
    3.   https: http://127.0.0.1:1080
    4. ssl_verify: false

    这样conda获取资源速度也会比较快了。

    下载google云盘上的资源

    很多项目会将自己的模型放到gogle云盘上,一般我们下载到MacOS本地,然后再通过scp将模型上传到服务器上,另外一个方法就是使用gdown(https://github.com/wkentaro/gdown)。

    具体可以看gdown的文档,主要是学习一下怎么获得资源在google云盘上的唯一id,然后就可以通过gdown去下载了。

    17f5ede0e9a6fd9307d24d08646685d8.png

    基础命令

    我一般会使用vscode的ssh功能去链接服务器,这样可以直接通过类似GUI的形式访问项目中的各种文件,也方便我修改代码。

    此外,我还会安装一下小工具帮助我管理服务器。

    1. apt update
    2. apt install jnettop htop

    jnettop:流量查看工具,通过它可以看到某些软件在拉取数据时,网络情况。比如某些流程卡主了,就可以看看,是不是在拉取网络数据,从而判断是不是因为网络问题导致这里卡主了,我感觉在国内这样的开发环境,快速的判断网络是否ok是一个硬技能...

    htop:top工具增强版,动态查看当前活跃的、占用资源高的进程。有一些项目,启动预测时,但从命令行看,似乎卡死了,此时就可以开新的窗口,然后通过htop查看CPU使用情况,从而判断项目是不是在running。

    结尾

    以上就是我对阿里云GPU服务器会做的常规操作。

    今天还体验了一下,怎么扩容,一开始默认买的是40G磁盘空间的服务器,实践3~4个项目,磁盘空间就满了,进行了扩容,阿里云有相应的视频教程,很清晰。

    整体而已,除了受限于国内网络问题,阿里云还是挺好用的。

  • 相关阅读:
    撤销git 命令
    使用Python的turtle模块绘制美丽的樱花树
    渗透攻防Web篇-深入浅出SQL注入
    三维模型3DTile格式轻量化压缩的遇到常见问题与处理方法分析
    阿里巴巴首推 2022 年金九银十 1000 道 Java 工程师面试题手册(P7岗),整整的10w字文档
    WPF 控件专题 TreeView控件详解
    抖音店铺所有商品数据接口(douyin.item_search_shop)
    【概率论基础进阶】多维随机变量及其分布-两个随机变量函数Z=g(X,Y)的分布
    vim 显示行号
    二十七、[进阶]MySQL默认存储引擎InnoDB的简单介绍
  • 原文地址:https://blog.csdn.net/weixin_30230009/article/details/133980738