在家的时候想炼丹,不太好意思用公司的或者学校的,于是。
攒了一年的钱用来买显卡了,准备吃土了。。。。。。
顺便证明一下,嘻哈路线的阿chai也是懂点技术的
嘻哈风阿chai

属于自己的GPU服务器

在开心之前还是先放一下大概的配置:
CPU:牙膏厂11代i7
GPU:GeForce RTX 3090(非矿)
内存:32G DDR4(狗粮)
硬盘:三星SSD 1T(狗粮)
电源:老年战斗机
其实攒的大部分钱都用来买显卡和电源了,至于机箱,凑活一下吧。
tank
阿chai弄自己的服务器主要是方便自己做一些小模型的训练和推理,顺便给小伙伴们增加元宇宙中的素材。
元宇宙部署AI算法
PS:算法模型是在浏览器上做的推理(tensorflow.js YYDS)。

基本环境安装

Linux的安装的流程相对的简单很多,阿chai选择经典的Ubuntu 18.0.4。我们准备的工具如下:
1.一台windows系统的电脑
2.一个32G的U盘
3.Ubuntu 18.0.4的镜像文件
4.启动盘制作工具
5.一台用来远程访问的笔记本
Mac其实也可以,但是折腾比较麻烦一些。

1.烧写

阿chai烧写用的是ventoy,比较无脑,小伙伴们下载后会看到使用说明。

2.U盘启动

根据自己的主板去百度查找进入BIOS的方法,开启允许U盘启动的选项,然后选择U盘引导即可。

3.安装

断了主机的网线,根据提示配置即可。一定要断网线,设置名字的地方一定要删除多余的字符。

显卡驱动

显卡驱动是比较麻烦的地方,就算是装好了,一不小心更新,或者频繁重启都会出问题,这里建议大家一步步来。

1.SSH

刚开始画面会显示不全,但是我们配置一下ssh就可以:
安装ssh:
$ sudo apt-get install openssh-server

$ sudo apt-get install openssh-client

查看ssh是否启动:
ps -e |grep ssh

启动后通过ifconfig查看主机的IP地址,然后我们用准备的笔记本远程登录即可。

2.换源

登录后我们首先换源,首先打开配置文件:
$ sudo vim /etc/apt/sources.list

注释或者删除之后(最好注释),复制进去如下镜像地址(阿里):
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

更新并应用更换过的源:
$ sudo apt-get update

$ sudo apt-get upgrade

3.安装基础的软件

需要用到的基础软件可以先安装一下:
$ sudo apt-get install vim make gcc

4.安装驱动

我们首先下载驱动文件,然后用U盘copy到我们的主机上即可。
重新启动后我们进入命令交互模式,然后开始进行如下操作(在主机上操作)。
$ sudo telinit 3

我们输入自己的账号密码。
设置文件权限并安装;
$ sudo chmod 777 xxxxxxxx.run

$ sudo ./NVIDIA

一直下一步即可完成,在完成重启一下,显示器正常显示那就安装成功了。

CUDA、cudnn

做机器学习肯定少不了CUDA和cudnn,Python的安装可以参考阿chai之前写的教程:

cuda

1.下载

由于使用的是RTX3090,因此仅支持cuda11以上的版本。
本地使用时输入如下命令查看:
$ nvidia-smi

下载请参nvidia官网,可能需要代理,可以复制到迅雷下载。

2.安装

联网下载与安装的命令如下:
$ wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux.run

$ sudo sh cuda_11.3.0_465.19.01_linux.run

warning:环境以配置好,就最好不要折腾环境了。在安装的时候,terminal中的显卡驱动的选项要记得关闭。

3.PATH配置

CUDA安装好之后一般是不能使用的,需要在添加到PATH。
大家账户的user_path一般在~/.bashrc文件中。
将如下路径添加到自己的PATH中:
# CUDA 11.3
export
 PATH=/usr/
local
/cuda-11.3/bin
${PATH:+:$PATH}
}

export
 LD_LIBRARY_PATH=/usr/
local
/cuda-11.3/lib64
${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}
}

配置完成后输入如下命令激活:
source
 ~/.bashrc 

可输入如下命令测试:
$ nvcc --version

也可以通过docker之类的容器使用。

cudnn

cudnn可以理解是NV的设备上真对机器学习相关的依赖。
下载完成后输入如下命令操作(注意自己的版本):
$ tar -xzvf cudnn-11.4-linux-x64-v8.2.2.26.tgz

输入如下命令添加对应的库文件:
$ sudo cp cuda/include/cudnn.* /usr/
local
/cuda-11.3/include

$ sudo cp cuda/lib64/libcudnn* /usr/
local
/cudacuda-11.3/lib64

$ sudo chmod a+r /usr/
local
/cuda-11.3/include/cudnn.h 

$ sudo chmod a+r /usr/
local
/cuda-11.3/lib64/libcudnn*

可通过命令编译测试,一般不会出问题(cuda10和11的命令不同,要注意)。

远程连接

远程连接是大事,周末背着本本去星爸爸点杯咖啡岂不美滋滋?

1.有钱就上花生壳

如果资金充裕,那花生壳肯定是比较好的选择,一般来说最便宜的套餐就够了,还有各种加速棒、远程开机盒子,非常方便。
img
远程开机的话,一定要在BIOS中开启网络唤醒或者电源唤醒的功能。

2.小米YYDS

在电源唤醒后,可以买小米智能插座,远程控制通电(一定几得先用命令关机)。

3.frp穿透

frp是重点要说的一种方式,通过一个有公网的云服务器来搞就行,推荐阿里云。
a.下载安装文件
frp的源码地址如下(服务端和客户端要版本要对应):
https://link.zhihu.com/?target=https%3A//github.com/fatedier/frp/releases
b.服务端
首先在服务器上删除客户端:
rm -f frpc*

修改服务端的配置文件:
bind_port = xxxx ----客户端和服务端连接的端口

token = abc123 ----客户端和服务端连接的口令

dashboard_port = xxxx

dashboard_user = user ----用户id

dashboard_pwd = password ----密码

vhost_http_port = xxxxx ----对应开启的http端口

vhost_https_port = xxxxx ----对应开启的https端口

启动服务端命令:
$ ./frps -c frps.ini 

设置开机启动:
$ sudo systemctl 
enable
 frps

c.客户端
修改客户端的配置文件:
server_addr = xx.xx.xx.xx ----服务器的公网IP

server_port = xxxx ----与bind_port一致

type = tcp

local_ip = 127.0.0.1

local_port = xxxx ----默认端口号

remote_port = xxxx ----共享时使用的端口号

启动客户端程序完成。不知道为什么感觉阿里云最稳定(记得开端口),很玄学。。。。

多用户操作

如果无私一点,是不是可以让小伙伴们一起用服务器呢?当然是不可以。
在配置好之后,我们打开terminal。
创建用户组:
$ sudo groupadd a

创建用户实例以及设置密码:
$ sudo useradd -d 
"/home/xxx"
 -m -g a -s 
"/bin/bash"
 xxx

$ sudo passwd xxx 

这样通过condo等创建环境也不会收到影响,不过实例并没有root权限,权限设置需要修改,但是并不影响做机器学习。
账户中安装的软件是相同的,比如安装的vim以及配置好的库,若没有只需要在自己的用户变量中添加即可。
·················END·················

推荐阅读

继续阅读
阅读原文