本文操作步骤与 aarch64架构CPU下Ubuntu系统环境源码编译pytorch-gpu-2.0.1版本大致相同,只是CPU架构不同而已,因此这里只记录不同的地方。

重点:

一个个人心得,那就是要编译pytorch源码最好是选择docker环境,因为这种环境下配置比较纯净,一定要避免那种自己使用多年的Linux系统,那种使用多年的老系统中各种配置都比较混乱,如果这么使用往往导致最好编译pytorch源码的失败。

一定要使用docker镜像环境进行pytorch源码编译!!!

一定要使用docker镜像环境进行pytorch源码编译!!!

一定要使用docker镜像环境进行pytorch源码编译!!!

---------------------------------------------------------------------------------------

编译的系统环境:

docker镜像这里的选择为:(可选docker镜像列表:https://gitlab.com/nvidia/container-images/cuda/blob/master/doc/supported-tags.md)

命令:(参考:如何拉取指定CPU架构并且指定ubuntu版本并且指定cuda和cudnn版本的docker镜像

docker pull  --platform=linux/x86_64   nvidia/cuda:12.1.1-devel-ubuntu22.04

源码下载方法建议使用代理(跳墙):

参考:git clone 如何通过proxy进行远程代码仓库拷贝下载

(至于怎么找proxy站点这个实在无法言说)

anaconda环境下编译,安装相关依赖:

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-cuda121 # 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 .

===============================================

执行完打包命令后在源码目录下找到编译后的文件:

安装:

运行报错:

ImportError: /root/anaconda3/lib/./libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /root/anaconda3/lib/python3.11/site-packages/torch/lib/libtorch_python.so)

查看当前环境下使用的libstdc++.so文件的具体情况:

查询系统中是否有版本GLIBCXX_3.4.30的libstdc++.so文件:

find / -name libstdc++.so.6

查询其他位置的版本是否支持:

strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6| grep GLIBCXX_3.4.30

修改当前环境下的libstdc++.so.6的指向:

rm /root/anaconda3/lib/./libstdc++.so.6

ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 /root/anaconda3/lib/./libstdc++.so.6

再次运行pytorch:

成功执行。

-------------------------------------------------------------------

需要注意的是在运行docker容器时应该确认下容器环境内是否可以使用GPU:

X86架构CPU下Ubuntu系统环境源码编译pytorch-gpu-2.0.1版本的更多相关文章

  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版)的亲身经历,包括遇到的问题及解决办法,也有一些 ...

  2. [笔记] Ubuntu 18.04源码编译安装OpenCV 4.0流程

    标准常规安装方法安装的OpenCV版本比较低,想尝鲜使用4.0版本,只好源码安装. 安装环境 OS:Ubuntu 18.04 64 bit 显卡:NVidia GTX 1080 CUDA:10.0 c ...

  3. ubuntu上源码编译安装mysql5.7.27

    一.查看操作系统环境和目录结构,并创建mysql用户和组,以及规划安装mysql所需要的目录. #cat /etc/issue 查看发行版本信息: #cat  /proc/version 查看正在运行 ...

  4. Win下Jenkins-2.138源码编译及填坑笔记

    源码编译篇 1.  安装JDK1.8-181,操作系统添加JDK环境变量.Java -version验证一下. 注:Jenkins2.138版本,JDK必须jkd1.8.0-101以上,不支持Java ...

  5. linux下c语言源码编译

    一.源码编译过程   源码  ---> 预处理 ---> 编译 ---> 汇编 ---> 链接 --->执行    我们可以把它分为三部分来完成: ./configure ...

  6. zstack源码编译安装(1.7.x版本)

    图片没粘贴过来,请看本人gitbook吧https://www.gitbook.com/book/jingtyu/how-to-learn-zstack-code 运行环境 zstack的安装方式有很 ...

  7. 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 ...

  8. 源码编译安装 PHP5.5.0,解决curl_exec访问HTTPS返回502错误的问题(修改PATH路径)

    最近碰到一个奇怪的问题, PHP使用 curl_exec 访问 HTTPS 网页时, 返回502错误, 访问HTTP网页时没有问题,  用   echo   phpinfo() ;  查看, 支持op ...

  9. 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,默认安装即 ...

  10. [环境配置]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 ...

随机推荐

  1. 如何基于Perl实现批量蛋白名转换为基因名?以做后续GO与KEGG分析

    众所周知,在完成蛋白组学组间差异蛋白筛选后,往往要做GO与KEGG功能富集分析,这就需要我们首先将蛋白名转换为基因名,或者找出基因ID.将蛋白名转化为基因名可能涉及不同的转换工具或数据库,这里有几种常 ...

  2. 安装nodejs易遇到的坑

    @ 目录 背景描述 流程步骤 小结 背景描述 我的服务器是centos7.9,打算先直接通过yum安装,但是yum不能指定node版本,我直接指定显示404找不到,然后我设置了下node下载的源,还是 ...

  3. 在Xcode编写我们的quick help

    程序环境 Xcode 13.2.1 "写代码要经常写注释."虽然很多人不以为然,但是在使用Xcode的时候,我们在写注释的时候稍微注意一下格式的话,Xcode会给我们带来额外的正反 ...

  4. Android 各层架构

    Android应用框架层和硬件抽象层以及底层之间的关系 1. JNI技术: (1).JNI技术简单的说就是在本地Java语言声明本地方法和加载动态链接库(.so文件) (2).动态链接库(.so文件) ...

  5. QT学习:06 常用的全局变量与宏定义

    --- title: framework-cpp-qt-06-常用的全局变量与宏定义 EntryName: framework-cpp-qt-06-global date: 2020-04-10 11 ...

  6. xpath-猪八戒网服务商名称爬取

    import requests from lxml import etree url = 'https://changsha.zbj.com/xcxkfzbjzbj/f.html?fr=zbj.sy. ...

  7. 『vulnhub系列』EVILBOX-ONE

    『vulnhub系列』EVILBOX-ONE 下载地址: https://www.vulnhub.com/entry/evilbox-one,736/ 信息搜集: 使用nmap探测内网存活主机,发现开 ...

  8. MAPREDUCE中的序列化

    Java的序列化是一个重量级序列化框架(Serializable),一个对象被序列化后,会附带很多额外的信息(各种校验信息,header,继承体系....),不便于在网络中高效传输: 所以,hadoo ...

  9. Uipath学习(一)

    Uipath 常用程序包总结: (1)正则表达式依赖程序包: System.Text.RegularExpressions 用法: 这个语句的作用是判断"溢达集团"这一串字符是否为 ...

  10. SpringBoot 接收Post请求参数,三种方式

    package net.cyb.demo.controller; import net.cyb.demo.domain.User; import net.cyb.demo.utils.JsonData ...