服务器使用

Posted 云才哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了服务器使用相关的知识,希望对你有一定的参考价值。

服务器使用


前言

小组服务器供组内多人使用(代代相传),维护困难,望各位遵守使用规则。当前为第一版使用说明:


提示:以下是本篇文章正文内容,下面案例仅供参考

一、服务器配置介绍

1、服务器系统及硬件:

  1. 服务器系统:CentOS7.9
  2. 服务器CPU:Intel® Core™ i7-7800X
  3. 服务器GPU:两张GeForce GTX 1080 Ti
  4. 服务器内存:32G
  5. 服务器硬盘:250G固态(系统盘)+2T机械

2、服务器系统用户

1.root用户:

  1. 家目录:/root
  2. 配额:50G

2.lxp用户:

  1. 家目录:/home/lxp
  2. 配额:176G

3、服务器磁盘挂载情况

  1. 固态硬盘:250G固态作为系统盘,其中50G供root使用,其余用户共用176G(目前只有lxp用户),另外的空间用作临时存储空间。
  2. 机械硬盘:2T的机械硬盘全部挂在/home/lxp/data目录下,供存放数据。

二、服务器使用介绍

1、目录使用:

  1. /home/lxp/software:安装软件路径,所有软件安装到此路径
  2. /home/lxp/data:保存数据路径,所有个人的数据或代码保存在此路径(建议在此目录创建个人数据目录,将个人数据保存至个人数据目录下)
  3. /usr/local/:cuda安装路径(此路径为默认路径,安装时一般不需要修改,在安装时需要注意查看,以方便cuda版本切换)
  4. /home/lxp/data/software_zip:用于存放各种软件或是驱动安装包,安装包下载不易,环境安装完成后就把它丢这个目录下吧

2、数据传输工具使用:

1.火狐浏览器:

使用火狐浏览器下载的文件默认保存在:/home/lxp/下载

2.wget命令:

使用wget命令下载时默认保存至当前命令目录,可以使用-P指定目录
wget -P /home/lxp/data URL路径

3.FTP服务器:

服务器已经开通FTP服务器,学校内网可以直接访问,使用ftp://172.20.(重启后变动,需要提前确定)连接

  1. 用户名:lxp
  2. 密码:123456
  3. 主目录:/home/lxp/data

3、lxp用户下使用yum(权限问题解决):

使用lxp用户直接使用yum时会提示权限不够,可以通过sudo命令解决(无需root用户权限):

#所有提示权限不够的命令,都可以通过加sudo解决(不要随意使用root用户权限)
sudo yum install wget

4、项目环境配置:

1、conda虚拟环境创建:

本系统下安装了Anaconda3,自带Python3.8
创建虚拟环境参考链接: Anaconda使用

2、框架安装:

由于框架的安装时间较长(以Pytorch为例),所以一般不在创建虚拟环境的时候安装Pytorch。而在安装cuda之前,需要根据项目所需的Pytorch框架找到对应的cuda版本。安装Pytorch以及cuda版本匹配可以参考官网链接

3、cuda安装:

gpu版本的pytorch连接显卡时需要安装cuda驱动。
cuda下载: 下载链接(可以先下载到/home/lxp/下载,目录下,安装完成后可以将其剪切到/home/lxp/data/software_zip目录下)。
如下以cuda_8.0.61_375.26_linux.run为例:

#首先切换目录之下载目录,并更改文件权限
sudo chmod 777 cuda_8.0.61_375.26_linux.run
sudo ./cuda_8.0.61_375.26_linux.run   #执行文件

按住空格(跳过安装协议文档)直到出现按下面的选项:

至此安装完成。

4、cudnn安装:

cudnn是一个神经网络层加速库文件。
cudnn下载: 下载链接(下载对应已经安装cuda的cudnn版本,下载前需要先登陆)。
如下以cudnn-8.0-linux-x64-v7.1.tgz为例:

#首先切换目录之下载目录,将cudnn中的文件复制到cuda对应的文件中
tar -zxvf cudnn-8.0-linux-x64-v7.1.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda-8.0/include/ 
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-8.0/lib64/ 
sudo chmod a+r /usr/local/cuda-8.0/include/cudnn.h /usr/local/cuda-8.0/lib64/libcudnn*

5、系统默认cuda切换:(不建议修改,建议在启动虚拟环境时启用相应的cuda驱动,如下步骤6)

可以通过修改系统的环境变量来修改系统默认cuda版本,安装了多个CUDA的版本,那么可以在这些CUDA的版本之间切换(切换后记得安装对应的cudnn的版本)
在安装了多个cuda版本后,可以在/usr/local/目录下查看自己安装的cuda版本
只需要删除cuda软链接,然后重新建立指向另一个版本的软链接即可

#只需要删除原有链接,然后建立新的cuda链接即可
sudo rm -rf /usr/local/cuda
sudo ln -s /usr/local/cuda-10.1 /usr/local/cuda

6、Anaconda虚拟环境自动启用相应的cuda版本:

虚拟环境运⾏时,实际是从动态链接库的地址找需要的cuda动态链接库,所以我们只需要指定 cuda路径 . 即保证该环境启动时,把cuda 8的地址加⼊入到cuda路径 ,关闭该环境时再移除。以下以虚拟环境test_env为例。
激活时(activate)执行脚本:
在脚本文件中$v表示取变量值,变量直接命名

#1、创建环境启动时的脚本
mkdir -p /home/lxp/software/anaconda3/envs/test_env/etc/conda/activate.d
touch /home/lxp/software/anaconda3/envs/test_env/etc/conda/activate.d/activate.sh
#2、编辑脚本执行命令
vim /home/lxp/software/anaconda3/envs/test_env/etc/conda/activate.d/activate.sh
#在命令中加入写入如下命令:(注意替换路径) 通过将指定路径防止全局PATh最前方,可以使得该设置cuda优先于其他cuda执行
#!/bin/sh
export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH
#3、添加执行权限
chmod +x /home/lxp/software/anaconda3/envs/test_env/etc/conda/activate.d/activate.sh

关闭环境时(deactivate)执行脚本:

#1、创建环境启动时的脚本
mkdir -p /home/lxp/software/anaconda3/envs/test_env/etc/conda/deactivate.d
touch /home/lxp/software/anaconda3/envs/test_env/etc/conda/deactivate.d/deactivate.sh
#2、编辑脚本执行命令
vim /home/lxp/software/anaconda3/envs/test_env/etc/conda/deactivate.d/deactivate.sh
#在命令中加入写入如下命令:(注意替换路径) 使用原来记录的cuda路径还原,即找到当前路径字符串,并使用空字符串进行替换,"\\"为转义字符
#!/bin/sh
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH/\\/usr\\/local\\/cuda-8.0\\/lib64:/
export PATH=$PATH/\\/usr\\/local\\/cuda-8.0\\/bin:/
#3、添加执行权限
chmod +x /home/lxp/software/anaconda3/envs/test_env/etc/conda/deactivate.d/deactivate.sh

测试:(可以看到打开虚拟环境后切换到了指定的cuda版本,关闭虚拟环境后又还原到了原版本)

7、安装校验:

import torch

# 若正常则静默

a = torch.tensor(1.)
# 若正常则静默

print(a.cuda())
# 若正常则返回 tensor(1., device='cuda:0')

from torch.backends import cudnn

# 若正常则静默

print(cudnn.is_available())
# 若正常则返回 True

print(cudnn.is_acceptable(a.cuda()))
# 若正常则返回 True

总结

暂时好像是一劳永逸,日后维护还得小心,第一版使用说明就这些吧!!!

参考文档:

1、Linux下CUDA的多版本安装及切换.
2、CentOS7安装NVIDIA显卡驱动.

以上是关于服务器使用的主要内容,如果未能解决你的问题,请参考以下文章

ofFice 对话日志仅保留群聊节的正文

Java程序员必备技能内存管理机——垃圾标记

获取任意链接文章正文 API 功能简介

DiscordAPIError:无效的表单正文 - Discord 斜杠命令

为啥我的简单媒体查询在模拟手机时会产生滚动条[重复]

公众号群发文章支持添加小程序