Ubuntu20.4部署Cuda12.4

准备Ubuntu20.4 VM

安装Cuda12.4

1.进入如下界面安装安装Cuda12.4版本:

CUDA Toolkit 12.4 Update 1 Downloads | NVIDIA Developericon-default.png?t=N7T8https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=20.04&target_type=deb_local

切换到ubuntu进行安装。

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.4.1/local_installers/cuda-repo-ubuntu2004-12-4-local_12.4.1-550.54.15-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-12-4-local_12.4.1-550.54.15-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2004-12-4-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-4sudo apt-get install -y cuda-drivers

2.验证安装

nvidia-smi

安装CUDA Toolkit

CUDA Toolkit (nvidia): CUDA完整的工具安装包,其中提供了 Nvidia 驱动程序、开发 CUDA 程序相关的开发工具包等可供安装的选项。包括 CUDA 程序的编译器、IDE、调试器等,CUDA 程序所对应的各式库文件以及它们的头文件。

1.登录到ubuntu用户,执行如下命令,安装toolkit

sudo apt install nvidia-cuda-toolkit

2.验证安装nvcc

nvcc -V
ubuntu@msl-instance-3:~$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:07:16_PDT_2019
Cuda compilation tools, release 10.1, V10.1.243
ubuntu@msl-instance-3:~$
3.设置环境变量:~/.bashrc
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

4.source ~/.bashrc

5.nvcc和nvidia-smi的cuda版本就一致了

安装cuDNN

cudnn:为深度学习计算设计的软件库。
Cuda和cuDNN映射关系:

Support Matrix — NVIDIA cuDNN v9.1.1 documentation

1.安装zlib1g
sudo apt-get install zlib1g
2.下载
wget https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-x86_64/cudnn-linux-x86_64-9.1.0.70_cuda12-archive.tar.xz
3. 解压cuDNN package
$ tar -xvf cudnn-linux-x86_64-9.1.0.70_cuda12-archive.tar.xz
4,把文件copy到CUDA Toolkit 目录中

$ sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include 
$ sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64 
$ sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

5.验证安装
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
有如下内容输出,则说明安装成功了。
 

Pytorch安装并验证

1.安装Anaconda

参考:超详细Ubuntu安装Anaconda步骤+Anconda常用命令_ubuntu安装conda-CSDN博客

下载:https://www.anaconda.com/download#downloads

wget  https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-x86_64.sh

使用bash命令安装Anaconda,一路回车

~/.bashrc文件中配置的conda环境变量。
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/ubuntu/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; theneval "$__conda_setup"
elseif [ -f "/home/ubuntu/anaconda3/etc/profile.d/conda.sh" ]; then. "/home/ubuntu/anaconda3/etc/profile.d/conda.sh"elseexport PATH="/home/ubuntu/anaconda3/bin:$PATH"fi
fi
unset __conda_setup
# <<< conda initialize <<<

2.创建pytorch的虚拟环境

conda create -n pytorch  python=3.11.73.安装pytorch最新版
pip3 install torch torchvision torchaudio

4.安装验证:

python

import torch
print('CUDA版本:',torch.version.cuda)
print('Pytorch版本:',torch.__version__)
print('显卡是否可用:','可用' if(torch.cuda.is_available()) else '不可用')
print('显卡数量:',torch.cuda.device_count())
print('是否支持BF16数字格式:','支持' if (torch.cuda.is_bf16_supported()) else '不支持')
print('当前显卡型号:',torch.cuda.get_device_name())
print('当前显卡的CUDA算力:',torch.cuda.get_device_capability())
print('当前显卡的总显存:',torch.cuda.get_device_properties(0).total_memory/1024/1024/1024,'GB')
print('是否支持TensorCore:','支持' if (torch.cuda.get_device_properties(0).major >= 7) else '不支持')
print('当前显卡的显存使用率:',torch.cuda.memory_allocated(0)/torch.cuda.get_device_properties(0).total_memory*100,'%')# Check if CUDA is available
is_cuda_available = torch.cuda.is_available()
if is_cuda_available:print("CUDA is available.")
else:print("CUDA is not available.")# Check if cuDNN is available
from torch.backends import cudnn
cudnn.is_acceptable_type = lambda t: t.is_floating_point or t.is_integer
is_cudnn_available = cudnn.is_available()
if is_cudnn_available:print("cuDNN is available.")
else:print("cuDNN is not available.")
 

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

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

相关文章

MySQL软件安装基于压缩包

打开mysql官网网址 MySQL :: Download MySQL Community Server 本次针对版本8的安装包方式进行安装&#xff0c;下载成功后接下来对MySQL进行安装 下载后有一个以zip后缀结尾的压缩包文件 对于安装包方式安装&#xff0c;比起可视化安装省去了许多安装步骤&#xff0c;这里直接…

MLXtend,一个数据科学和机器学习Python库

MLxtend库简介 MLxtend 是一个 Python 库,提供了一系列用于机器学习的工具和辅助函数.它构建在 NumPy、SciPy 和 Matplotlib 之上,旨在为机器学习工程师和数据科学家提供更多的便利功能. 安装与使用 # 使用 pip 安装 MLxtend&#xff1a; pip install mlxtend在 Python 中导…

Python | Leetcode Python题解之第86题分隔链表

题目&#xff1a; 题解&#xff1a; class Solution:def partition(self, head: Optional[ListNode], x: int) -> Optional[ListNode]:sml_dummy, big_dummy ListNode(0), ListNode(0)sml, big sml_dummy, big_dummywhile head:if head.val < x:sml.next headsml sm…

C++ | Leetcode C++题解之第86题分隔链表

题目&#xff1a; 题解&#xff1a; class Solution { public:ListNode* partition(ListNode* head, int x) {ListNode* small new ListNode(0);ListNode* smallHead small;ListNode* large new ListNode(0);ListNode* largeHead large;while (head ! nullptr) {if (head-…

安卓模拟器怎么修改ip地址

最近很多老铁玩游戏的&#xff0c;想多开模拟器一个窗口一个IP&#xff0c;若模拟器窗口开多了&#xff0c;IP一样会受到限制&#xff0c;那么怎么更换自己电脑手机模拟器IP地址呢&#xff0c;今天就教大家一个修改模拟器IP地址的方法&#xff01;废话不多说&#xff0c;直接上…

维修UNIOP触摸屏 ETOP12-0050 人机界面ETOP03-0046 ETOP33C-0050工控机电脑深圳捷达工控维修

UniOP eTOP33C eTOP33C 是一款最先进的 HMI 设备&#xff0c;配有触摸屏界面和 10.4 英寸 TFT 彩色图形显示屏。 明亮的 TFT 显示屏对 64K 颜色的支持将增加图像的真实感。 集成的 10/100 以太网接口使复杂控制系统中的连接更加高效。 VGA 分辨率使其成为高端 HMI 应用的理想选…

摩苏尔大坝形变监测

摩苏尔大坝&#xff0c;是伊拉克最大的大坝。它位于底格里斯河35公里&#xff0c;北距摩苏尔市&#xff0c;这是一座粘土质地的水坝&#xff0c;高113米&#xff0c;长3.2公里&#xff0c;于1986落成。 大坝建成后不久&#xff0c;大坝就遇到了由软石膏地基造成的一些结构性问题…

generator生成器和promise配合实现看似同步的异步流程控制(async和await)

本文来自于 <你不知道的Javascript> 学习笔记 生成器函数返回的是迭代器,在内部每个yield的是promise,当迭代器启动后,it.next().value就是promise,在promise的then中不断的递归执行 it.next(data) 方法,其中data就是每个promise resolve的值. es7的async和await相当于就…

代码随想录算法训练营第二十七天| LeetCode39. 组合总和、LeetCode40.组合总和II、LeetCode131.分割回文串

#LeetCode 39. Combination Sum #LeetCode 39. 视频讲解&#xff1a;带你学透回溯算法-组合总和&#xff08;对应「leetcode」力扣题目&#xff1a;39.组合总和&#xff09;| 回溯法精讲&#xff01;_哔哩哔哩_bilibili 当建立树的结构的时候&#xff0c;target 可以限制树的深…

AI学习指南概率论篇-最大似然估计

AI学习指南概率论篇-最大似然估计 概述 在机器学习和人工智能领域中&#xff0c;最大似然估计&#xff08;Maximum Likelihood Estimation, 简称MLE&#xff09;是一个重要的概念。它是一种通过观察数据来估计模型参数的方法&#xff0c;通常用来寻找最能解释观测到数据的模型…

0511_IO6

练习1&#xff1a; 1&#xff1a;有一个隧道&#xff0c;全长5公里&#xff0c;有2列火车&#xff0c;全长200米&#xff0c; 火车A时速 100公里每小时 火车B时速 50公里每小时 现在要求模拟火车反复通过隧道的场景(不可能2列…

力扣 516. 最长回文子序列 python AC

动态规划 class Solution:def longestPalindromeSubseq(self, s):size len(s)dp [[0] * size for _ in range(size)]for i in range(size):dp[i][i] 1for i in range(size - 1, -1, -1):for j in range(i 1, size):if s[i] s[j]:dp[i][j] dp[i 1][j - 1] 2else:dp[i][…

第四届上海理工大学程序设计全国挑战赛 J.上学 题解 DFS 容斥

上学 题目描述 usst 小学里有 n 名学生&#xff0c;他们分别居住在 n 个地点&#xff0c;第 i 名学生居住在第 i 个地点&#xff0c;这些地点由 n−1 条双向道路连接&#xff0c;保证任意两个地点之间可以通过若干条双向道路抵达。学校则位于另外的第 0 个地点&#xff0c;第…

python格式化显示复杂对象例如字典

当想格式化显示一个字典&#xff0c;并且希望通过日志记录输出时&#xff0c;Python 提供了几种方法来实现这一目标。这里有两种常用的方式来格式化显示字典内容&#xff1a; 1 使用 format 方法直接格式化 你可以直接使用 format 方法将字典转换为字符串&#xff0c;这种方法…

动态绑定和静态绑定

在C中&#xff0c;绑定&#xff08;Binding&#xff09;通常指的是将函数名&#xff08;或其他标识符&#xff09;与其实现&#xff08;或值&#xff09;关联起来的过程。这可以发生在编译时&#xff08;静态绑定&#xff09;或运行时&#xff08;动态绑定&#xff09;。以下是…

python多标签图像分类的图片相册共享交流系统vue+django

建立图片共享系统&#xff0c;进一步提高用户对图片共享信息的查询。帮助用户和管理员提高工作效率&#xff0c;实现信息查询的自动化。使用本系统可以轻松快捷的为用户提供他们想要得到的图片共享信息。 根据本系统的基本设计思路&#xff0c;本系统在设计方面前台采用了pytho…

区块链中MEV攻击:危害与防护策略

MEV攻击科普&#xff1a;揭秘、危害与防护策略 什么是MEV攻击及危害 在加密货币和区块链的世界里&#xff0c;MEV&#xff08;最大化提取价值&#xff0c;Maximal Extractable Value&#xff09;攻击是一种日益受到关注的现象&#xff0c;它涉及交易者、矿工或验证者利用信息…

Python 数据处理 合并二维数组和 DataFrame 中特定列的值

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 示例代码如下&#xff1a; import numpy as np import pandas as pddata {label: [1, 2, 3, 4]} df pd.DataFrame(data)values_array df[["label"]].values random_array np.random.ran…

Star15.3k,开源数据可视化分析工具项目

好东西来了&#xff0c;这是一个人人可用的开源数据可视化分析工具项目&#xff0c;V 哥迫不及待的要给大家推荐这个项目&#xff0c;帆软、Tableau 等商业 BI 工具的开源替代&#xff0c;已在 Github 上被 Star了15.3k了&#xff0c;大家一起来了解一下。自己搭建起来可用&…

Svelte框架:编译时优化的高性能前端框架

Svelte是一款新兴的前端框架&#xff0c;以其独特的编译时优化机制著称&#xff0c;能够在构建时将复杂的UI逻辑转换为高效的JavaScript代码&#xff0c;从而实现高性能的Web应用。本文将深入解析Svelte的架构、核心概念以及代码优化策略。 2024年礼包&#xff1a;2500G计算机…