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 ...
随机推荐
- Vue学习:7.计算属性2
上一节了解的是计算属性的默认简写,只能读取,不能修改. 什么意思呢?很简单,我们知道计算属性是依赖数据动态计算一个值,那我可不可以直接this.计算属性 = xxx 来修改计算属性的结果呢?这其实是不 ...
- 妙用OSGraph:发掘GitHub知识图谱上的开源故事
1. 何为OSGraph? OSGraph (Open Source Graph) 是一个开源图谱关系洞察工具,基于GitHub开源数据全域图谱,实现开发者行为.项目社区生态的分析洞察.可以为开发者. ...
- CloseableHttpClient 连接超时导致XxlJob调度阻塞,影响调度任务的执行
CloseableHttpClient 连接超时导致XxlJob调度阻塞,影响调度任务的执行 问题原因1.分析日志发现,xxlJob后台界面没有执行时间和执行结果,在某一个时间点之后,某一个任务因为阻 ...
- kettle从入门到精通 第七十课 ETL之kettle kettle数据校验,脏数据清洗轻松拿捏
场景:输入在指定的错误(错误应涵盖数据类型不匹配的情况)行数内,trans不报错,但通过错误处理步骤捕捉,并记入文件,整个数据管线正常完成直至处理完最后一个输入行. 解决方案:使用步骤[数据检验]进行 ...
- Scrapy爬取知名技术文章网站
scrapy安装以及目录结构介绍 创建有python3的虚拟环境 mkvirtualenv mkvirtualenv py3env 安装scrapy 进入虚拟环境py3env,把pip的源设置为豆瓣源 ...
- vue项目中一些常用的插件
@riophae/vue-treeselect:带选择的树组件 https://vue-treeselect.js.org/ ele-calendar:日历组件 https://www.npmjs.c ...
- Jenkins构建UI自动化项目,指定本地执行,没弹起浏览显示
1. 原因分析 为什么执行web没有弹出浏览器,Jenkins日志显示正在执行中 jenkins是用windows installer 安装成 windows的服务了,那么启动windows后jenk ...
- STM32 CubeMX 学习:有关说明
背景 STM32 是我以前学过的,而很久没有整理过的.因为之前学习的时间比较早,再加上各种资料要么不成熟,要么不齐全:再加上自己一开始没有比较完善的学习经验:以至于我的学习并不扎实. 趁着 STM 的 ...
- Redis 高阶应用
生成全局唯一 ID 全局唯一 ID 需要满足以下要求: 唯一性:在分布式环境中,要全局唯一 高可用:在高并发情况下保证可用性 高性能:在高并发情况下生成 ID 的速度必须要快,不能花费太长时间 递增性 ...
- Eureka 客户端依赖管理模块
<dependencies> <!--Eureka客户端依赖--> <dependency> <groupId>org.springframework. ...