aarch64架构CPU下Ubuntu系统环境源码编译pytorch-gpu-2.0.1版本
准备事项:
1. pytorch源码下载:
源码的官方地址:
https://github.com/pytorch/pytorch
但是这里我们不能简单的使用git clone命令下载,因为pytorch项目依赖着很多的其他项目的代码,而其他的项目往往又依赖着另外一些项目代码,因此这里我们需要使用下面命令进行下载源码操作:
git clone --recursive https://github.com/pytorch/pytorch
cd pytorch
# if you are updating an existing checkout
git submodule sync
git submodule update --init --recursive
2. aarch64架构CPU下Ubuntu系统:
由于本人编译这个pytorch是为了提供给国内的一些国产超算平台进行使用,所以需要使用aarch64架构下的ubuntu系统进行编译,但是平常的工作使用的电脑又都是x86的,为此我这里使用docker系统运行aarch64架构下的ubuntu系统,这里需要使用的就是x86系统架构下运行aarch64架构的docker镜像的使用方法,具体参考:
如何在X86_64系统上运行arm架构的docker容器——(异构/不同架构)CPU下的容器启动
3. 为aarch64架构下的容器安装NVIDIA的cuda和cudnn,这里需要注意的是因为是给aarch架构使用,因此需要下载sbsa版本的cuda和cudnn,具体操作不赘述。


4. 编译器的安装:
apt install cmake
apt install gcc
apt install g++
5. anaconda3的安装 (不具体介绍)
===============================================
具体编译:
--------------------------------------
指定GCC路径:
export CC=/usr/bin/gcc
指定nvcc路径:
export CMAKE_CUDA_COMPILER=/usr/local/cuda-11.4/bin/nvcc
安装anaconda3中编译的依赖环境:
conda install cmake ninja
# Run this command from the PyTorch directory after cloning the source code using the “Get the PyTorch Source“ section below
pip install -r requirements.txt
(性能加速组件,可选择性安装)(对应的版本是否存在需要参考:https://anaconda.org/pytorch/repo)
conda install mkl mkl-include
# CUDA only: Add LAPACK support for the GPU if needed
conda install -c pytorch magma-cuda110 # or the magma-cuda* that matches your CUDA version from https://anaconda.org/pytorch/repo # (optional) If using torch.compile with inductor/triton, install the matching version of triton
# Run from the pytorch directory after cloning
make triton
编译:
export CMAKE_PREFIX_PATH=${CONDA_PREFIX:-"$(dirname $(which conda))/../"}
python setup.py develop
打包:
pip wheel .
===============================================
异常问题:
libstdc++.so.6: version `GLIBCXX_3.4.30’ not found
(在一个主机上编译后放在另一个主机上运行,由于编译时的C语言标准库高于安装时环境的C语言标准库版本,因此报错。最简单的操作就是将编译时的系统中的标准库copy过去到运行主机上,但是如果时间久远找不到但是编译的环境就需要再为运行环境单独安装标准库)
conda安装动态链接库:
conda install -c conda-forge libstdcxx-ng=13.1.0
由于网络等原因无法正常安装则可以选择离线安装:
conda的官方文件地址:
https://anaconda.org/conda-forge/libstdcxx-ng/files

下载后的文件:

这个.conda文件是个压缩包,需要安装的lib库就在里面,这时我们使用下面命令安装:
conda install --offline ./libstdcxx-ng-13.1.0-h452befe_0.conda
安装好新的标准库后需要将地址加入到系统路径下:
首先需要确定安装的位置,这里使用find命令去查找:
find ./anaconda3 -name libstdc++.so.6

如果是base环境下安装lib库一般路径在pkgs下面,但是在自创建的环境下新安装的lib库则是在新环境下,大致形式为:
export LD_LIBRARY_PATH=/path-to-your-conda/envs/your-env-name/lib:$LD_LIBRARY_PATH
在上面的例子中,base环境下的新lib库在pkgs文件夹下,因此操作为:
export LD_LIBRARY_PATH=/root/anaconda3/pkgs/libstdcxx-ng-13.1.0-h452befe_0/lib/libstdc++.so.6:$LD_LIBRARY_PATH
查看新的lib库是否支持:
strings /root/anaconda3/pkgs/libstdcxx-ng-13.1.0-h452befe_0/lib/libstdc++.so.6 | grep GLIBCXX_3.4.30

===============================================
参考:
如何在X86_64系统上运行arm架构的docker容器——(异构/不同架构)CPU下的容器启动
pytorch频道的可安装组件:
https://anaconda.org/pytorch/repo

aarch64架构CPU下Ubuntu系统环境源码编译pytorch-gpu-2.0.1版本的更多相关文章
- 保姆级教程——Ubuntu16.04 Server下深度学习环境搭建:安装CUDA8.0,cuDNN6.0,Bazel0.5.4,源码编译安装TensorFlow1.4.0(GPU版)
写在前面 本文叙述了在Ubuntu16.04 Server下安装CUDA8.0,cuDNN6.0以及源码编译安装TensorFlow1.4.0(GPU版)的亲身经历,包括遇到的问题及解决办法,也有一些 ...
- [笔记] Ubuntu 18.04源码编译安装OpenCV 4.0流程
标准常规安装方法安装的OpenCV版本比较低,想尝鲜使用4.0版本,只好源码安装. 安装环境 OS:Ubuntu 18.04 64 bit 显卡:NVidia GTX 1080 CUDA:10.0 c ...
- ubuntu上源码编译安装mysql5.7.27
一.查看操作系统环境和目录结构,并创建mysql用户和组,以及规划安装mysql所需要的目录. #cat /etc/issue 查看发行版本信息: #cat /proc/version 查看正在运行 ...
- Win下Jenkins-2.138源码编译及填坑笔记
源码编译篇 1. 安装JDK1.8-181,操作系统添加JDK环境变量.Java -version验证一下. 注:Jenkins2.138版本,JDK必须jkd1.8.0-101以上,不支持Java ...
- linux下c语言源码编译
一.源码编译过程 源码 ---> 预处理 ---> 编译 ---> 汇编 ---> 链接 --->执行 我们可以把它分为三部分来完成: ./configure ...
- zstack源码编译安装(1.7.x版本)
图片没粘贴过来,请看本人gitbook吧https://www.gitbook.com/book/jingtyu/how-to-learn-zstack-code 运行环境 zstack的安装方式有很 ...
- tensorflow 源码编译tensorflow 1.1.0到 tensorflow 2.0,ver:1.1.0rc1、1.4.0rc1、1.14.0-rc1、2.0.0b1
目录 tensorflow-build table 更多详细过程信息及下载: tensorflow-build tensorflow 源码编译,提升硬件加速,支持cpu加速指令,suport SSE4 ...
- 源码编译安装 PHP5.5.0,解决curl_exec访问HTTPS返回502错误的问题(修改PATH路径)
最近碰到一个奇怪的问题, PHP使用 curl_exec 访问 HTTPS 网页时, 返回502错误, 访问HTTP网页时没有问题, 用 echo phpinfo() ; 查看, 支持op ...
- windows10下如何进行源码编译安装tensorflow
1.获取python3.5.x https://www.python.org/ftp/python/3.5.4/python-3.5.4-amd64.exe 2.安装python3.5.x,默认安装即 ...
- [环境配置]Ubuntu 16.04 源码编译安装OpenCV-3.2.0+OpenCV_contrib-3.2.0及产生的问题
1.OpenCV-3.2.0+OpenCV_contrib-3.2.0编译安装过程 1)下载官方要求的依赖包 GCC 4.4.x or later CMake 2.6 or higher Git GT ...
随机推荐
- 企业级私有仓库Harbor
仓库的概念也就是用于存储,docker仓库用于存储镜像. 镜像构建完成后,很容易可以在宿主机上运行,但是如果要在其他服务器上运行,则需要考虑镜像的分发,存储的问题. 共有/私有/仓库 Docker R ...
- 博客更换新域名为52ecy.cn
Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` 博客更换新域名为52ecy.cn 日期:2017-10-2 ...
- 交通规划四阶段法:基于 Python 的交通分布预测算法复现 - 附完整代码链接
目录 交通规划四阶段法:基于 Python 的交通分布预测算法复现 - 附完整代码链接 我只是想使用这些代码 下载代码文件 代码的使用方法 合作 部分代码内容的展示 交通规划四阶段法:基于 Pytho ...
- 纯代码搭建iOS三级结构(UITabbarController+UINavigationController+UIViewController)
声明:这里所指的三级结构不是网上百度中所经常提及的三级框架或者MVC模式,而是指UITabbarController+UINavigationController+UIViewController. ...
- openfly:基于nginx的4层代理管理平台
简介 作者:京城郭少 基于nginx的4层代理管理平台 支持的功能: 被动健康检查 白名单 include导入文件 哈希 backup冗余互备 weight权重 注释 ...... 部署openfly ...
- EasyExcel 无法读取图片?用poi写了一个工具类
在平时的开发中,经常要开发 Excel 的导入导出功能.一般使用 poi 或者 EasyExcel 开发,使用 poi 做 excel 比较复杂,大部分开发都会使用 EasyExcel 因为一行代码就 ...
- rar终端常用命令
rar终端常用命令 1. 跳过目录: rar a xxx.rar -x./path_to_dir/ ./xxx/ [注] rar后面的文件夹不需要通配符 2. 加密码 rar a xxx.tar -p ...
- uniapp+thinkphp5实现微信扫码支付(APP支付)
前言 统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返回预支付订单号的接口,目前微信支付所有场景均使用这一接口.下面介绍的是其中APP的支付的配置与实现流程 配置 1.首先登录 ...
- 五个节点的hadoop集群--主要配置文件
五个节点:配置文件解析:hadoop01 NameNode .DataNode.NodeManagerhadoop02 ResourceManager hadoop03 D ...
- mapreduce的shuffle机制
1.1 概述: mapreduce中,map阶段处理的数据如何传递给reduce阶段,是mapreduce框架中最关键的一个流程,这个流程就叫shuffle:(从map的输出到reduce的输入) s ...