非 congda 环境 ubuntu 22.04 源码编译安装 pytorch 并初步检查可用性

本文主要是介绍非 congda 环境 ubuntu 22.04 源码编译安装 pytorch 并初步检查可用性,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

非 congda 环境 编译安装 pytorch

0, 安装 cuda sdk ,cudnn 及 nccl

按照官网步骤,blacklist需要特别注意

0.1 cuda sdk

0.2 cudnn

0.3 安装nccl

git clone --recursive https://github.com/NVIDIA/nccl.git
ls
cd nccl/
make -j src.build
sudo apt install build-essential devscripts debhelper fakeroot
make pkg.debian.build
sudo dpkg -i  build/pkg/deb/libnccl2_2.22.3-1+cuda12.3_amd64.deb 
sudo dpkg -i  build/pkg/deb/libnccl-dev_2.22.3-1+cuda12.3_amd64.deb

注:

cudnn 9.x不需要登陆开发者账户即可 wget 下载,按照官网 类似 cuda sdk 安装方法,wget到如下两个文件:

验证cuda ,这台是个笔记本:

验证cudnn的可用性:
 

cp -r /usr/src/cudnn_samples_v9/  ./tmp/cd tm/cudnn_samples_v9/mkdir buildcd buildcmake ..

执行 multiHead...测试:

如果编译上面的示例时,提示找不到 cudnn,这注释掉 top 的 CMakelists.txt 的这一行:

1, 下载 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, 安装cmake 3.30

 新的pytorch 需要依赖3.27及其以上 cmake


$ sudo apt install libssl-dev
$ wget  https://github.com/Kitware/CMake/releases/download/v3.30.3/cmake-3.30.3.tar.gz$ tar xf v3.30.3/cmake-3.30.3.tar.gz
$ cd cmake-3.30.3/
$ ./bootstrap
$ make -j
$ sudo make install

3, 预备环境

在非conda 环境,即普通环境中安装依赖包:

pip install mkl-static mkl-include -i https://pypi.tuna.tsinghua.edu.cn/simplepip  install numpy ninja pyyaml mkl mkl-include setuptools cmake cffi typing_extensions future six requests dataclasses -i https://pypi.tuna.tsinghua.edu.cn/simple

4, 编译安装pytorch

4.1 检查 nvcc

检查nvcc是否可以执行:

$ nvcc

如果不能执行,则设置 PATH:


 

$ export PATH=/usr/local/cuda/bin:$PATH

4.2 编译release版本的 pytorch 并出错

配置C++


 

$ export _GLIBCXX_USE_CXX11_ABI=1

清理之前的编译并配置

$ python setup.py clean
$ python setup.py build --cmake-only

如果系统中同时存在ROCm和cuda 环境,则选择屏蔽 ROCm:

$ USE_ROCM=OFF python setup.py build --cmake-only


编译pytorch
 

$ python setup.py install

如果编译成功,则会报安装权限不够:


 

$ sudo python setup.py install

由于编译器错误,产生一个错误:

builtin_xxx

故编译一个 debug版本的

4.3 编译一个 DEBUG版本的pytorch


编译 debug 版本的 pytorch

$ export _GLIBCXX_USE_CXX11_ABI=1$ python setup.py clean$ USE_ROCM=OFF DEBUG=1  python setup.py build --cmake-only
$ DEBUG=1 python setup.py install

主要是其中这句要加DEBUG=1:

USE_ROCM=OFF DEBUG=1  python setup.py build --cmake-only

安装:

$ DEBUG=1 sudo  python setup.py install

5. 验证可用性

打印 torch 版本,并验证cuda gpu的可用:

这篇关于非 congda 环境 ubuntu 22.04 源码编译安装 pytorch 并初步检查可用性的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1126251

相关文章

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

Centos7安装JDK1.8保姆版

工欲善其事,必先利其器。这句话同样适用于学习Java编程。在开始Java的学习旅程之前,我们必须首先配置好适合的开发环境。 通过事先准备好这些工具和配置,我们可以避免在学习过程中遇到因环境问题导致的代码异常或错误。一个稳定、高效的开发环境能够让我们更加专注于代码的学习和编写,提升学习效率,减少不必要的困扰和挫折感。因此,在学习Java之初,投入一些时间和精力来配置好开发环境是非常值得的。这将为我

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

安装nodejs环境

本文介绍了如何通过nvm(NodeVersionManager)安装和管理Node.js及npm的不同版本,包括下载安装脚本、检查版本并安装特定版本的方法。 1、安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash 2、查看nvm版本 nvm --version 3、安装

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

Java ArrayList扩容机制 (源码解读)

结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get