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 ...
随机推荐
- work13
任务要求: 1.建立一个企鹅类,企鹅有名字(可以自由添加属性)2.把多个企鹅的信息添加到集合中3.查看企鹅的数量4.遍历输出所有企鹅的信息5.删除集合中索引值是2的企鹅的元素 任务描述: 定义一个老鼠 ...
- 简单的css3头像旋转与3D旋转效果
Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` 简单的css3头像旋转与3D旋转效果 日期:2017-7- ...
- Linux多网卡的bond模式原理
Linux多网卡绑定 网卡绑定mode共有7种: bond0,bond1,bond2,bond3,bond4,bond5,bond6,bond7 常用的有三种: mode=0: 平衡负载模式, ...
- NVIDIA Jetson AGX Xavier 从刷机之后到配置环境
特殊的配置环境需求: cuda-10.2.python 3.6.9.torch 1.7.0.torchversion 0.8.1,剩下的顺其自然即可(逃. 顺便说一句,里面的指令请一行一行仔细复制粘贴 ...
- Linux内核驱动:cdev、misc以及device三者之间的联系和区别
Linux内核驱动:cdev.misc以及device三者之间的联系和区别 背景 我想在cdev中使用dev_err等log打印函数,但是跟踪了一下cdev中的原型,发现并不是我想要的. 常见的驱动是 ...
- python 无监督生成模型
无监督生成模型在机器学习中扮演着重要角色,特别是当我们在没有标签数据的情况下想要生成新的样本或理解数据的内在结构时.一种流行的无监督生成模型是生成对抗网络(Generative Adversarial ...
- ajax - 初步介绍
进入ajax了,想要进入vue还有一个前提就是要把ajax给熟悉一下,看一看客户端与服务器之间是怎么一个通信的过程,第一天主要是先了解了一下ajax的一些介绍,ajax嘛,在进入之前,肯定是要了解一下 ...
- GaussDB(DWS)性能调优,解决DM区大内存占用问题
本文分享自华为云社区<GaussDB(DWS)性能调优:DM区优化案例--维度表关联条件存在会计期>,作者: O泡果奶~. 当前DM(P1.P3.CBGDM)存在维度表与主表关联时使用会计 ...
- springboot 访问url 报404
使用Springboot 写了一个后端服务,通过 postman 测试接口时,发现一直 404 (message: No message available) 把springboot 从启动 到 da ...
- php页面调用微信扫一扫
function.php <?php define("appID", "微信公众号appId"); define("appsecret" ...