当前位置: 首页 > wzjs >正文

手机网站建设设计公司百度站长工具查询

手机网站建设设计公司,百度站长工具查询,郑州网站建设三猫网络,购物网站开发的需求分析intro 对于一些需要更改pytorch源码或者需要特定pytorch版本的需求可能需要更改pytorch。下面是笔者在集群服务器上重新编译pytorch 的一个过程。记录了出现的一些问题和解决方案 编译环境 由于集群操作系统的一些库版本太低(比如glibc库),我…

intro

        对于一些需要更改pytorch源码或者需要特定pytorch版本的需求可能需要更改pytorch。下面是笔者在集群服务器上重新编译pytorch 的一个过程。记录了出现的一些问题和解决方案

编译环境

        由于集群操作系统的一些库版本太低(比如glibc库),我尽量选择的都是比较老的python包或者编译依赖的版本。我使用的版本如下:CentOS 7.6.1810 ,gcc 8.3.0  ,cuDNN/8.0.4.30-CUDA-10.1.243   ,cuda/10.1   ,nccl/2.8.3,torch1.5.1,python 3.7,torchvision 0.6.1,torchaudio 0.5.0,cmake 3.14.3,glibc 2.17,mpich3.3

        选择这些版本的环境一个重要的参照是,很多包可以直接load module,省去了很多环境配置和安装的麻烦,尤其是在离线环境下。并且在anaconda环境下安装,这样可以避免很多麻烦,隔离环境。

比如在这里:

module load anaconda3
module load cuda/10.1
module load cuDNN/7.6.5.32-CUDA-10.1.243
module swap intel gnu8/8.3.0
module load cmake/3.14.3
module load nccl/2.8.3

        对于离线环境的集群,anaconda环境有时候不能直接 pip install,一个比较好的解决方案是,在本地创建好需要的conda环境,并安装好需要的py包,最后把整个conda环境打包上传到集群,再解压到相应目录下。但要注意的是,由于不是在本地直接创建的conda环境,会出现找不到一些头文件或者库文件的情况,所以需要根据出现的问题,单独设置一些环境变量,在这里我设置了:

export CXXFLAGS="-I/path/to/your/python.h"
export LD_LIBRARY_PATH=/path/to/your/conda/envs/lib:$LD_LIBRARY_PATH
export CFLAGS="-I/path/to/your/python.h"
export PYTHON_INCLUDE_DIR=/path/to/your/python.h

        设置这些是因为我出现了找不到python.h头文件的问题,而这个头文件应该在conda环境下的include的文件夹下的一个pythonx.xm文件夹下。并且对于c和c++的头文件环境配置都应该设置,否则就会在最后 install project的时候报错。

        关于nccl环境的配置可以参考:使用系统内NCCL环境重新编译Pytorch ,如果你想直接使用pytorch 自带的nccl的话,就不需要配置这个了。

        并且编译pytorch 需要mpich的依赖,我查阅到似乎openmpi也可以,但是仍然还是推荐使用mpich。注意这里需要根据cuda版本找到需要的mpich版本,版本不匹配的话也会报错!在离线环境下安装mpich需要去mpich官网找到对应版本的源码,然后make install。可以参考这位大佬写的:Linux安装MPICH3.x。这里我配置的环境变量是:

export PATH=/path/to/bin:$PATH
export LD_LIBRARY_PATH=/path/to/lib:$LD_LIBRARY_PATH
export CPATH=/path/to/include:$CPATH

编译

        首先应该conda activate 对应的环境,最好不要使用base环境。然后进入pytorch的源码目录。编译之前可以指定一些环境变量,这取决于你的需求,比如:

        

export USE_CUDA=1
export USE_CUDNN=1
export USE_NCCL=1
export USE_GLOO=0 
export USE_SYSTEM_NCCL=1 
export NCCL_INCLUDE_DIR=$NCCL_INCLUDE_DIR 
export NCCL_LIB_DIR=$NCCL_LIB_DIR

当然也可以在指令中直接加入:

USE_GLOO=0 USE_SYSTEM_NCCL=1 NCCL_INCLUDE_DIR=$NCCL_INCLUDE_DIR NCCL_LIB_DIR=$NCCL_LIB_DIR python setup.py develop

编译过程非常耗时,根据集群的配置可以调整MAX_JOBS这个环境变量比如:

export MAX_JOBS=20

如果编译节点的核数比较多可以适当提升此值来加快编译速度。最后要说的是,pytorch 的编译过程会出现各种各样奇怪的问题,所以还是要有耐心。笔者在大概反复重复了5-6遍这个编译过程,可以说是相当折磨!当出现错误的时候可以执行:

make clean
python setup.py clean
rm -rf build

然后再重新编译就好。如果在登录节点编译太大的文件会被清退,可以申请一个计算节点来执行编译任务。在编译过程中会出现很多warning,这些不需要太在意,只要不是提示找不到哪个头文件或者lib库就没什么问题。

其他

        笔者在配置环境的时候曾经尝试过,在本地编译好的torch打包成wheel文件,注入到集群的conda环境当中,或者直接打包本地的conda环境注入到集群环境中。但是发现import的时候会爆很多奇奇怪怪的错误。包括找不到某个包,找不到某个头文件。其中最致命的是爆glibc版本过低的问题。这个库是操作系统内一个很重要的c库,而且一般不能随便更新,否则会出现很严重的问题。尤其是在集群没有root权限的时候。爆这个错几乎只能在集群环境下重新编译。包括跑一些程序也是,本地编译放在集群上跑有时候也会爆这个错,所以最保险的还是放在集群环境下编译在集群环境下跑程序。

http://www.dtcms.com/wzjs/296271.html

相关文章:

  • 白酒网站设计app开发制作
  • 哪些网站可以做设计赚钱百度推广登陆平台登录
  • 上海住房和城乡建设厅网站房地产销售怎么找客户
  • 网站设计要学哪些网站推广公司黄页
  • 品牌搭建网站 官网网络seo软件
  • wordpress上传数据库如何优化网站排名
  • 上海手机网站建设电话情感式软文广告
  • 网站 入站规则 设置网站建设平台有哪些
  • 小程序开发一年多少钱小红书怎么做关键词排名优化
  • 网站开发用什么语言好百度搜索竞价推广
  • 魔立方 网站建设网络营销站点推广的方法
  • 网站是什么上海网站建设开发公司
  • frontpg做网站好吗微信推广方案
  • 厦门做网站优化价格百度在线客服系统
  • 成都pc网站建设建站宝盒
  • wordpress做后端seo还可以做哪些推广
  • 织梦网站+当前位置限制宽度日本搜索引擎
  • Java做新闻网站市场营销证书含金量
  • 宝安网站设计项目seo关键词使用
  • 黑客怎么入侵网站网站服务器软件
  • 虎门做外贸网站网站建设深圳公司
  • 怎么查一个网站有没有做301好看的网页设计作品
  • 上海做网站公司有哪些现在做百度推广有用吗
  • 网站设计基础百度游戏
  • 武汉网站建设费用品牌营销策划公司哪家好
  • 网站开发进度控制计划表搜易网提供的技术服务
  • 外贸流程及详细步骤怎么做网站关键词优化
  • 福建网站开发企业百度地图广告投放
  • 做网站程序员seo是网络优化吗
  • 做app还是做网站合适怎么做好seo内容优化