离线环境下安装NVIDIA驱动、CUDA(HUAWEI Kunpeng 920 + NVIDIA A100 + Ubuntu 20.04 LTS)

news2024/11/17 3:36:43

文章目录

前言

一、基础环境

1.1、处理器型号

1.2、英伟达显卡型号

1.3、操作系统

1.4、软件环境

二、取消内核自动升级

2.1、查看正在使用的内核版本

2.2、查看正在使用的内核包

2.3、禁止内核更新

三、配置本地apt源

3.1、挂载iso镜像文件

3.2、配置apt源

3.3、更新apt源

四、安装NVIDIA驱动

4.1、查看显卡型号

4.2、禁用nouveau

4.3、安装NVIDIA驱动

五、安装CUDA

5.1、下载CUDA

5.2、安装CUDA

5.3、配置环境变量

5.4、验证是否安装成功

六、编译安装cuda-samples


前言

因为国防项目中是离线环境,所以提前收集一下用到的依赖和软件包,同时出一个指导书,方便后续工作。


一、基础环境

1.1、处理器型号

HUAWEI Kunpeng 920 7261K

1.2、英伟达显卡型号

GA100 [A100 PCIe 40GB]

1.3、操作系统

Ubuntu 20.04 LTS

1.4、软件环境

软件版本下载地址
CUDA Toolkit11.8https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux_sbsa.run
cuda-samples11.8https://github.com/NVIDIA/cuda-samples/archive/refs/tags/v11.8.tar.gz

二、取消内核自动升级

2.1、查看正在使用的内核版本

uname -r

2.2、查看正在使用的内核包

dpkg --get-selections | grep 5.4.0-26-generic

右边红框中的 hold 代表四个内核软件包已经禁止自动更新,如果是 install 表示允许自动更新。

2.3、禁止内核更新

将上面搜索到的内核软件包禁止更新,替换成实际搜索到的软件包

apt-mark hold linux-headers-5.4.0-26-generic
apt-mark hold linux-image-5.4.0-26-generic
apt-mark hold linux-modules-5.4.0-26-generic
apt-mark hold linux-modules-extra-5.4.0-26-generic

三、配置本地apt源

说明一下:本次配置的deb源是临时的,挂载断开apt源文件就没了。

3.1、挂载iso镜像文件

我是使用iBMC的虚拟控制台进行的挂载,我的iso文件是设备:/dev/sr0

将 /dev/sr0 进行挂载:

mkdir /mnt/iso
mount /dev/sr0 /mnt/iso

3.2、配置apt源

首先将之前的apt源进行备份

mv /dev/apt/sources.list /dev/apt/sources.list.bak

这里说明一下,不同的ubuntu版本在配置apt源时,代号不同:

# 添加本地目录到软件源--16.04
## xenial是ubuntu16.04的代号
echo "deb file:///mnt/iso xenial main restricted" > /etc/apt/sources.list

# 添加本地目录到软件源--18.04
## bionic是ubuntu18.04的代号
echo "deb file:///mnt/iso bionic main restricted" > /etc/apt/sources.list

# 添加本地目录到软件源--20.04
## focal是ubuntu20.04的代号
echo "deb file:///mnt/iso focal main restricted" > /etc/apt/sources.list

3.3、更新apt源

apt update

四、安装NVIDIA驱动

4.1、查看显卡型号

lspci | grep NVIDIA

根据显卡型号下载驱动,本项目使用的驱动跟图片中一致

下载地址:https://www.nvidia.cn/Download/index.aspx?lang=zh-cn

在这里插入图片描述

4.2、禁用nouveau

安装Nvidia显卡的官方驱动和系统自带的nouveau驱动冲突,所以需要禁用nouveau。

lsmod | grep nouveau

如果有输出则说明nouveau正在被加载,执行下面代码,禁用nouveau,如果没有输出,则不执行。

1、编辑配置文件:

vim /etc/modprobe.d/blacklist.conf

在尾部添加:

blacklist nouveau
options nouveau modeset=0

2、更新配置

update-initramfs -u

3、重启服务器

reboot

注意:重启后需要重新配置一下apt源。

4、验证是否生效

lsmod | grep nouveau

4.3、安装NVIDIA驱动

cd /opt
sh NVIDIA-Linux-aarch64-550.54.15.run –no-opengl-files

第一个页面:选择继续

第二个页面

在这里插入图片描述

第三个页面

第四个页面

查看是否安装成功,查看驱动版本

nvidia-smi

输出驱动版本,CUDA驱动版本,显卡型号。

五、安装CUDA

5.1、下载CUDA

  1. 这里需要注意CUDA Toolkit的版本要小于上面CUDA驱动的版本。

    CUDA Toolkit下载地址:https://developer.nvidia.com/cuda-toolkit-archive

    本文使用的版本是cuda_11.8.0_520.61.05_linux_sbsa.run

    这里不用纠结选择那个操作系统,只要选择arm64-sbsaNativerunfile(local)即可,其他的不管选什么下载的地址都是一个。

在这里插入图片描述

5.2、安装CUDA

cd /opt
sh cuda_11.8.0_520.61.05_linux_sbsa.run

第一个页面:输入accept

第二个页面:取消Driver的安装,因为前面已经安装了驱动

第三个页面:显示下面的输出,表示安装成功

5.3、配置环境变量

vim /etc/profile

添加如下内容:
export CUDA_HOME=/usr/local/cuda
export PATH=$CUDA_HOME/bin:$PATH
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH

#使生效
source /etc/profile

5.4、验证是否安装成功

nvcc -V

六、编译安装cuda-samples

说明:安装cuda-samples,是因为从CUDA Toolkit 11.6之后就不再将Samples集成到里面了,我们还需要使用cuda-samples进行测试,所以编译安装cuda-samples。

1、安装依赖,参考:Ubuntu 离线安装 gcc、g++、make 等依赖包

2、下载cuda-samples,本文使用版本11.8

下载地址:https://github.com/NVIDIA/cuda-samples/

3、编译deviceQuery案例

cd /opt/cuda-samples-11.8/Samples/1_Utilities/deviceQuery	
make

4、执行deviceQuery案例

./deviceQuery

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1800068.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分享万能点击器免费版,吾爱大佬出品,这个太赞了!

小伙伴们!阿星又来给大家推荐神奇的小软件啦!这次的主角可是个神器——鼠标连点器!你听过没?这玩意儿简直是个“自动小助手”,让你的鼠标在屏幕上飞舞,点得飞快,解放你的双手,让你网…

Docker镜像加载原理(Union文件系统)

联合文件系统 Union文件系统,是一种轻量级的分层高性能服务系统,支持对文件系统的修改来进行一层一层的叠加,同时将不同目录挂载到同一个虚拟文件系统中,Union文件系统是Docker镜像的基础,通过分层来进行集成&am…

Linux系统下 安装 Nginx

一、下载Nginx安装包 压缩包下载地址:nginx: download 服务器有外网,可直接使用命令下载 wget -c https://nginx.org/download/nginx-1.24.0.tar.gz 二、安装Nginx 1、解压 tar -zxvf nginx-1.24.0.tar.gz 2、安装Nginx所需依赖 yum install -y gc…

c++中, 直接写浮点数, 是float 还是 double?

如果直接一个浮点数, 那么他默认是float还是double呢? 测试用例 #include <iostream> using namespace std;int main() {auto x 0.2;float f 0.2;double d 0.2;cout << "x Size : " << sizeof(x) << " bytes" << endl…

React@16.x(21)渲染流程-更新

目录 1&#xff0c;更新的2种场景2&#xff0c;节点更新3&#xff0c;对比 diff 更新3.1&#xff0c;React 的假设3.1.2&#xff0c;key 2.1&#xff0c;找到了对比的目标2.1.1&#xff0c;节点类型一致1&#xff0c;空节点2&#xff0c;DOM节点3&#xff0c;文本节点4&#xf…

width: 100%和 width: 100vw这两种写法有什么区别

width: 100%; 和 width: 100vw; 是两种不同的 CSS 写法&#xff0c;它们在实际应用中会有不同的效果。以下是这两种写法的主要区别&#xff1a; width: 100%; 定义&#xff1a;将元素的宽度设置为其包含块&#xff08;通常是父元素&#xff09;宽度的 100%。效果&#xff1a;元…

c++调用动态库LNK2019无法解析的外部符号LNK1120无法解析的外部命令

严重性 代码 说明 项目 文件 行 禁止显示状态 错误 LNK1120 6 个无法解析的外部命令 ConsoleApplication1 D:\vs_qt_project\ConsoleApplication1\x64\Debug\ConsoleApplication1.exe 1 严重性 代码 说明 项目 文件 行 …

Open vSwitch 数据包处理流程

一、Open vSwitch 数据包转发模式 Open vSwitch 根据不同的模块使用&#xff0c;主要分为两种数据包的转发模式&#xff1a;Datapath 模式和 DPDK 模式&#xff0c;这两种模式的主要区别在于&#xff1a; Datapath 模式&#xff1a; 使用内核空间的网络栈进行数据包的转发性能相…

M1Pro 使用跳板机

Mac (M1 Pro) 通过Iterm2 使用跳板机 1、由于堡垒机&#xff08;跳板机&#xff09;不能支持mac系统终端工具&#xff0c;只支持xshell等win生态。所以我们需要先安装iterm2 装iterms教程 这里头对rz、sz的配置不详细。我们可以这样配置&#xff1a; where iterm2-send-zmod…

WebGL技术的应用场景

WebGL&#xff08;Web Graphics Library&#xff09;是一种用于在网页上渲染交互式3D和2D图形的技术&#xff0c;而无需使用插件。它基于OpenGL ES 2.0 API&#xff0c;可以被JavaScript调用来绘制图形。WebGL的应用场景相当广泛&#xff0c;涵盖从游戏到教育&#xff0c;再到专…

Windows取证分析 | 如何最大程度提升分析效率

本文由安全研究人员Amr Ashraf发表于Cyber5w的官方博客&#xff0c;研究人员在本文中讨论了如何对可疑设备中的内存映像进行安全调查&#xff0c;并利用了Volatility 3和MemProcFS来最大程度提升Windows取证分析的工作效率。 介绍 内存取证是任何计算机取证分析人员的必备技能…

R语言探索与分析14-美国房价及其影响因素分析

一、选题背景 以多元线性回归统计模型为基础&#xff0c;用R语言对美国部分地区房价数据进行建模预测&#xff0c;进而探究提高多元回 归线性模型精度的方法。先对数据进行探索性预处理&#xff0c;随后设置虚拟变量并建模得出预测结果&#xff0c;再使用方差膨胀因子对 多重共…

磁盘怎么分区?3 款最佳免费磁盘分区软件

您可能已经注意到&#xff0c;大多数计算机至少有 2 个分区&#xff1a;一个安装 Windows 操作系统和程序&#xff08;C:&#xff09;&#xff0c;另一个安装其他文件&#xff08;D:&#xff09;。 默认情况下&#xff0c;计算机只有一个硬盘和一个分区。建议创建 2 个或更多分…

kafka-生产者监听器(SpringBoot整合Kafka)

文章目录 1、生产者监听器1.1、创建生产者监听器1.2、创建生产者拦截器1.3、发送消息测试1.4、使用Java代码创建主题分区副本1.5、application.yml配置----v1版1.6、屏蔽 kafka debug 日志 logback.xml1.7、引入spring-kafka依赖1.8、控制台日志 1、生产者监听器 1.1、创建生产…

计算机组成结构—IO方式

目录 一、程序查询方式 1. 程序查询基本流程 2. 接口电路 3. 接口工作过程 二、程序中断方式 1. 程序中断基本流程 2. 接口电路 3. I/O 中断处理过程 三、DMA 方式 1. DMA 的概念和特点 2. DMA 与 CPU 的访存冲突 3. DMA 接口的功能 4. DMA 接口的组成 5. DMA 的…

阿里 Qwen2 模型开源,教你如何将 Qwen2 扩展到百万级上下文

本次开源的 Qwen2 模型包括 5 个尺寸&#xff0c;分别是 0.5B、1.5B、7B、72B、57B&#xff0c;其中 57B 的属于 MoE 模型&#xff08;激活参数 14B&#xff09;&#xff0c;其余为 Dense 模型&#xff0c;本篇文章会快速介绍下各个尺寸模型的情况&#xff0c;然后重点介绍下如…

数据结构初阶 堆(一)

一. 堆的概念和性质 我们在上一篇博客介绍存储二叉树的两种方式 分别是顺序结构和链式结构 数据结构初阶 初识二叉树-CSDN博客 1. 堆的概念 这里注意&#xff01;&#xff01;&#xff01; 这里说的堆和操作系统里面的堆没有半点关系&#xff01;&#xff01;&#xff01; …

环 境 变 量

如果希望某一个文件在 CMD 窗口的任意路径下都可以打开&#xff0c;则需要将该文件的路径存放在环境变量中。 在 CMD 中运行该文件时&#xff0c;优先查看当前路径下的文件&#xff0c;如果没有找到&#xff0c;则进入环境变量中记录的路径下寻找该文件&#xff0c;如果能找到…

kafka的副本机制

目录 Producer的ACKs参数 配置 acks配置为0 acks配置为1 acks配置为-1或者all 副本的目的就是冗余备份&#xff0c;当某个Broker上的分区数据丢失时&#xff0c;依然可以保障数据可用。因为在其他的Broker上的副本是可用的。 Producer的ACKs参数 对副本关系较大的是&…

Go源码--sync库(2)

简介 这边文章主要讲解 Sync.Cond和Sync.Rwmutex Sync.Cond 简介 sync.Cond 经常用来处理 多个协程等待 一个协程通知 这种场景&#xff0c; 主要 是阻塞在某一协程中 等待被另一个协程唤醒 继续执行 这个协程后续的功能。cond经常被用来协调协程对某一资源的访问 ants协程池…