新服务器CPU/GPU python开发环境装机记录

简介: 新服务器CPU/GPU python开发环境装机记录

原因

新申请了几台服务器,有GPU机器以及CPU机器,需要给配置下运行环境。对于GPU与CPU而言,大致流程差不多,只是GPU会麻烦一些,需要安装NVIDIA相关的驱动及加速包等。不过有了docker后,可以将能运行好的项目用docker打包后,直接在新机器上部署就能跑动了,但这比较适用于服务端部署时候使用,如果是个人开发,还是建议单独配置下环境较好。
分配到服务器后,大致需要安装及配置以下几项内容:

  • 联系运维开通个人账户,及机器访问外网权限及端口权限;
  • rz/sz: SecureCRT上传与保存文件命令;
  • Anaconda:便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本;
  • git: 版本控制;
  • docker: 开源的应用容器引擎;
  • CUDA: NVIDIA推出的运算平台;
  • CUDNN: 用于深度神经网络的GPU加速库;
  1. 申请权限
    对于有的公司而言,可能个人对机器拥有所有的权限,这一步就无需进行了。但有的公司对于权限管理比较严格,干啥都需要发邮件申请权限,需要向运维组或者平台组申请相应的权限,主要有:
  • sudo权限;
  • 外网访问权限、端口权限;
  • 公司git项目访问权限;
    … …
  1. sz/rz安装
    sz是利用ZModem协议来从Linux服务器传送文件到本地,一次可以传送一个或多个文件;

rz是相对应的从本地上传文件到Linux服务器;
安装也比较简单,终端输入对应系统的命令即可,安装lrzsz

apt-get install lrzsz
yum install lrzsz

使用方法
rz filename # 上传文件
sz filename # 下载文件

注意: rz上传文件时,当有相同名的文件存在时候,无法覆盖,操作被忽略;

相关的命令操作可以参考:

https://blog.csdn.net/linjpg/article/details/7833170

  1. Anaconda 安装
    Anaconda是一个便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本的管理器,官网介绍:https://www.anaconda.com/products/individual,这个软件对于需要多种环境及多人共用同一台机器时候非常方便。能够创建多个虚拟环境以满足不同的项目环境需求,避免不同项目所需依赖包的版本不同而导致冲突。

其安装也非常的简单,下载好对应的安装文件后

bash ./Anaconda3-5.2.0-Linux-x86_64.sh

相应的安装步骤网上已经有很多的介绍,这里可以参考以下两个安装教程

https://zhuanlan.zhihu.com/p/32925500
https://blog.csdn.net/ITLearnHall/article/details/81708148

注意的地方:

更换conda镜像源:

原始的conda源在conda install软件时候比较慢,可以更换为国内的镜像源来实现加速。常用的镜像源有阿里、中科大、清华等

清华

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

中科大的源

conda config –-add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/

阿里云的源

conda config --add channels http://mirrors.aliyun.com/pypi/simple/

更换pip镜像源:

原始的pip源在pip install软件时候比较慢,可以更换为国内的镜像源来实现加速。常用的镜像源有阿里、中科大、豆瓣等

命令法

pip install numpy -i https://pypi.douban.com/simple/

创建文件永久法

修改 ~/.pip/pip.conf并设置内容如下
[global]
index-url = https://pypi.douban.com/simple/

  1. Git安装
    git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。这个工具在自己开发项目中,或者是写作开发项目时非常有用,控制版本迭代,而不会因为覆盖让代码丢失。

安装非常简单

apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev

apt-get install git


yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum -y install git-core

这里不做过多的操作介绍,具体可以参考下面的链接

https://www.runoob.com/git/

https://www.liaoxuefeng.com/wiki/896043488029600

注意的地方:

配置个人的用户名称和电子邮件地址,这样在使用的时候不用频繁需要输入账户和密码
git config --global user.name "xxxx"
git config --global user.email xxx@xxxx

配置别名, 以节省每次提交时输入的字符
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.br branch

  1. Docker安装
    Docker 是一个开源的应用容器引擎, 它可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

安装非常简单:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

详细资料请参考

https://www.runoob.com/docker
以上是CPU/GPU机器都需要安装的相关软件,如果服务器具有GPU,还需要安装GPU相关的配套软件

这篇文章介绍的比较详细

显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn到底是什么

  1. CUDA安装
    CUDA英文全称是Compute Unified Device Architecture,是一个并行计算平台和编程模型,能够使得使用GPU进行通用计算变得简单和优雅。

安装需要查好GPU版本对应的cuda版本,查询地址:

https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html

img

安装比较简单

1.下载对应的软件包并安装

按需求下载cuda的安装文件 cuda安装包:https://developer.nvidia.com/cuda-toolkit-archive

sudo sh cuda_9.0.176_384.81_linux.run

2.设置环境变量

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-9.0/lib64
export PATH=$PATH:/usr/local/cuda-9.0/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-9.0

注意的地方:

一台服务器可以有多版本的cuda,这是由于不同的深度学习工具包所最终依赖的cuda版本不一样,而多位开发人员使用的深度学习工具不统一。

可以在同一台服务器上安装多个cuda版本,只是最终在链接的时候需要修改一下

多版本CUDA切换:

https://blog.csdn.net/Maple2014/article/details/78574275

  1. CUDNN安装
    CUDNN是NVIDIA打造的针对深度神经网络的加速库,是一个用于深层神经网络的GPU加速库。

安装比较简单:

1.下载对应的软件包压缩包

按需求下载载cudnn的安装文件:https://developer.nvidia.com/rdp/cudnn-archive

2.解压并安装

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
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

3.查看版本

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

总结: 网上的教程有很多,找到适合自己的最好,另外对命令慎重,有些命令也不一定对,反而对整体环境造成不可逆的升级等。尽量对每一行的命令做什么操作有所了解。

参考
https://zhuanlan.zhihu.com/p/32925500
https://blog.csdn.net/lambert310/article/details/52412059
https://www.cnblogs.com/believepd/p/10499844.html
https://www.cnblogs.com/leton/p/11674796.html
https://blog.csdn.net/ZZXin_/article/details/87951381
https://blog.csdn.net/weixin_42279044/article/details/83181686
https://zhuanlan.zhihu.com/p/47330858
https://my.oschina.net/u/2306127/blog/1801491
https://segmentfault.com/a/1190000016634056
https://cloud.tencent.com/developer/article/1528323

相关实践学习
基于阿里云DeepGPU实例,用AI画唯美国风少女
本实验基于阿里云DeepGPU实例,使用aiacctorch加速stable-diffusion-webui,用AI画唯美国风少女,可提升性能至高至原性能的2.6倍。
目录
相关文章
|
1月前
|
安全 Java 数据处理
Python网络编程基础(Socket编程)多线程/多进程服务器编程
【4月更文挑战第11天】在网络编程中,随着客户端数量的增加,服务器的处理能力成为了一个重要的考量因素。为了处理多个客户端的并发请求,我们通常需要采用多线程或多进程的方式。在本章中,我们将探讨多线程/多进程服务器编程的概念,并通过一个多线程服务器的示例来演示其实现。
|
1月前
|
应用服务中间件 nginx Python
基于 Python 实现一个简单的 HTTP 服务器
基于 Python 实现一个简单的 HTTP 服务器
40 0
基于 Python 实现一个简单的 HTTP 服务器
|
10天前
|
存储 弹性计算 固态存储
阿里云服务器CPU内存配置详细指南,如何选择合适云服务器配置?
阿里云服务器配置选择涉及CPU、内存、公网带宽和磁盘。个人开发者或中小企业推荐使用轻量应用服务器或ECS经济型e实例,如2核2G3M配置,适合低流量网站。企业用户则应选择企业级独享型ECS,如通用算力型u1、计算型c7或通用型g7,至少2核4G配置,公网带宽建议5M,系统盘可选SSD或ESSD云盘。选择时考虑实际应用需求和性能稳定性。
114 6
|
1天前
|
Oracle Java 关系型数据库
【服务器】python通过JDBC连接到位于Linux远程服务器上的Oracle数据库
【服务器】python通过JDBC连接到位于Linux远程服务器上的Oracle数据库
13 6
|
11天前
|
监控 测试技术
【亮剑】理解CPU负载对服务器稳定性的重要性,并提供了诊断和解决CPU负载过高问题的步骤
【4月更文挑战第30天】本文阐述了理解CPU负载对服务器稳定性的重要性,并提供了诊断和解决CPU负载过高问题的步骤:1) 使用监控工具分析CPU使用率和系统负载;2) 深入排查运行队列、进程占用、系统调用和硬件状态;3) 根据排查结果进行代码优化、调整进程优先级或限制CPU使用率,必要时升级硬件。建议建立监控体系,定期性能测试,并持续优化以保证服务器高效运行。
|
13天前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能平台PAI产品使用合集之如何在CPU服务器上使用PAIEasyRec进行分布式训练
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
16天前
|
机器学习/深度学习 数据挖掘 Python
使用Python实现简单的Web服务器
使用Python内置的http.server模块,本文演示了创建基本Web服务器的步骤。通过编写简单的代码,实现响应GET请求并返回“Hello, World!”。此外,还展示了如何扩展服务器功能,处理不同URL路径,如根路径和/about路径,并实现404错误页面。这个基础教程为理解HTTP服务器原理和Python网络编程入门提供了帮助。对于复杂Web应用,建议使用Flask或Django等高级框架。
|
18天前
|
Linux 网络安全 开发工具
【超详细!超多图!】【代码管理】Python微信公众号开发(3)- 服务器代码上传Github
【超详细!超多图!】【代码管理】Python微信公众号开发(3)- 服务器代码上传Github
22 0
|
24天前
|
缓存 中间件 数据安全/隐私保护
在Python中实现代理服务器的配置和使用方法
在Python中实现代理服务器的配置和使用方法
|
28天前
|
缓存 运维 Linux
保姆级python项目离线部署服务器教程只需这一篇就够了(建议收藏)
这篇文章提供了详尽的Python项目在离线Linux(CentOS)服务器上的部署教程。作者首先介绍了环境背景,强调了无网络环境和使用有网络的CentOS虚拟机准备安装包的重要性。教程分为两部分:外网环境搭建和内网离线安装。在外网环境中,包括下载Python 3.9.0安装包、传输至服务器、安装依赖包,并使用pip3下载项目所需依赖。内网安装则涉及依赖包的复制和Python环境的同样步骤。最后,作者分享了运行项目的命令,并总结了离线安装的整个流程,提醒读者注意可能出现的问题。
保姆级python项目离线部署服务器教程只需这一篇就够了(建议收藏)