当前位置: 首页 > article >正文

在WSL中的Ubuntu发行版上安装Anaconda、CUDA、CUDNN和TensorRT

在Windows 11的WSL(Windows Subsystem for Linux)环境中安装Anaconda、CUDA、CUDNN和TensorRT的详细步骤整理:
本文是用cuda12.4与CuDNN 8.9.7 和 TensorRT 9.1.0 及以上对应

一、前言(准备)

  • 确保电脑上有NVIDIA GPU并且已经安装了NVIDIA驱动。
  • 通过WSL已经安装了Ubuntu。
  • 理论上,如果Windows上已经安装了NVIDIA驱动,WSL不需要再次安装。
  • 使用nvidia-smi命令查看电脑上的CUDA版本。

二、安装Anaconda、CUDA、CUDNN、TensorRT

2.1 Anaconda安装

官网下载
在这里插入图片描述
既然您已经下载好了Anaconda的安装包,接下来可以按照以下步骤在Linux系统中安装Anaconda:

  1. 打开终端:首先,打开您的Linux终端。

  2. 导航到下载目录:使用cd命令切换到包含下载的Anaconda安装脚本的目录。例如,如果安装包下载在Downloads文件夹中,您可以使用以下命令:

    cd ~/Downloads
    

    请根据您的实际下载位置调整路径。

  3. 运行安装脚本:运行下载的安装脚本。假设您的安装包名为Anaconda3-2023.07-Linux-x86_64.sh,您可以使用以下命令:

    bash Anaconda3-2023.07-Linux-x86_64.sh
    

    请将脚本名称替换为您实际下载的文件名。

  4. 同意许可协议:在安装过程中,您会被提示阅读并同意许可协议。按Enter键继续,当出现协议文本时,使用键盘上下键阅读,按Space键翻页,然后按Enter键接受协议。

  5. 使用文本编辑器打开.bashrc文件,并检查

    vim ~/.bashrc
    export PATH="/path/to/anaconda3/bin:$PATH"
    source ~/.bashrc
    echo $PATH
    
  6. 验证安装:为了验证Anaconda是否正确安装,您可以运行以下命令:

    conda --version
    

    这应该会显示安装的conda版本。

  7. 创建新环境(可选):如果您希望为不同的项目创建隔离的环境,可以使用conda创建新的环境:

    conda create --name myenv python=3.9
    

    这将创建一个名为myenv的新环境,其中包含Python 3.9。

  8. 激活环境:创建环境后,您可以使用以下命令激活它:

    conda activate myenv
    

按照这些步骤,您应该能够在Linux系统中成功安装并配置Anaconda。如果在安装过程中遇到任何问题,可以参考Anaconda的官方文档或寻求社区帮助。

2.2 CUDA安装
  1. 选择CUDA版本

    • 访问NVIDIA的CUDA Toolkit Archive页面,选择与您的NVIDIA驱动兼容的CUDA版本。这里选的cuda12.4https://developer.nvidia.com/cuda-12-4-0-download-archive?target_os=Linux&target_arch=x86_64&Distribution=WSL-Ubuntu&target_version=2.0&target_type=deb_local
  2. 下载WSL专用安装包

    • 选择WSL-Ubuntu对应的安装包下载。在这里插入图片描述
    1. 执行安装命令: - 按照下载页面提供的命令执行安装。例如:
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda-repo-wsl-ubuntu-12-4-local_12.4.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-12-4-local_12.4.0-1_amd64.deb
sudo cp /var/cuda-repo-wsl-ubuntu-12-4-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-4
  1. 设置环境变量
   sudo touch /etc/profile.d/cuda.shecho 'export PATH=/usr/local/cuda/bin/:$PATH' | sudo tee -a /etc/profile.d/cuda.shecho 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64/:/usr/lib/wsl/lib/:$LD_LIBRARY_PATH' | sudo tee -a /etc/profile.d/cuda.shexport PATH=/usr/local/cuda/bin:$PATHexport LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATHexport PATH=/usr/local/cuda-12.4/bin${PATH:+:${PATH}}export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}export CUDA_HOME=/usr/local/cuda-12.4nvcc -V

验证安装

  • 安装成功后,可以通过nvcc -V命令验证CUDA是否安装成功。
2.3 CUDNN安装
  1. 下载CUDNN
    • 从NVIDIA官网下载与CUDA版本匹配的CUDNN tar包。官网地址

在这里插入图片描述
2. 解压并安装

  • 将下载的tar包复制到Ubuntu的一个文件夹下(本文是home/用户名下的Downloads),解压并复制文件到CUDA目录:
    tar -xvf cudnn-linux-x86_64-8.4.0.27_cuda11.6-archive.tar.xz
    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*
    
  1. 验证安装
    • 运行以下命令验证CUDNN版本:
      cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
      
2.4 TensorRT安装
  1. 下载TensorRT

    • 从NVIDIA官网下载与CUDA版本匹配的TensorRT tar包。
      在这里插入图片描述
  2. 解压并安装

    • 将下载的tar包复制到Ubuntu的一个文件夹下,解压并设置环境变量:

      tar -xzvf TensorRT-10.2.0.19.Linux.x86_64-gnu.cuda-12.5.tar.gz
      export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/z/DownloadsTensorRT-10.2.0.19/lib
      

      切换到python目录下,安装tensorrt python whl文件
      注意:这里的pip安装一定是下载到自己的虚拟环境下,比如anaconda下pytorch环境激活后
      根据当前环境的python版本安装对应的tensorrt, 我的当前环境python为3.9,就安装3.9对应的tensorrt whl文件

      pip install tensorrt-10.2.0-cp39-none-linux_x86_64.whl
      
  3. 验证安装

    • 运行以下命令验证TensorRT版本:
      sudo find / -name NvInferVersion.h
      python -c "import tensorrt; print(tensorrt.__version__)"
      

三、补充:Nvidia-driver安装与卸载

  1. 卸载旧驱动

    • 如果需要,卸载旧的NVIDIA驱动:
      sudo apt-get remove --purge nvidia*
      sudo apt remove --purge *nvidia*
      sudo /usr/bin/nvidia-uninstall
      
  2. 下载新驱动

    • 从NVIDIA官网下载新的驱动run文件。
  3. 安装新驱动

    • 禁用nouveau驱动:
      echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf
      sudo apt-get install linux-source
      sudo apt-get install linux-headers-$(uname -r)
      
    • 安装驱动:
      sudo service lightdm stop
      sudo chmod 777 NVIDIA-Linux-x86_64-xxxx.xx.run
      sudo ./NVIDIA-Linux-x86_64-xxxx.xx.run -no-x-check -no-nouveau-check -no-opengl-files
      
  4. 验证驱动安装

    • 运行以下命令验证驱动是否安装成功:
      nvidia-smi
      

通过以上步骤,您应该能够在WSL中的Ubuntu发行版成功安装CUDA、CUDNN和TensorRT,并配置好环境变量。

相关文章:

在WSL中的Ubuntu发行版上安装Anaconda、CUDA、CUDNN和TensorRT

在Windows 11的WSL(Windows Subsystem for Linux)环境中安装Anaconda、CUDA、CUDNN和TensorRT的详细步骤整理: 本文是用cuda12.4与CuDNN 8.9.7 和 TensorRT 9.1.0 及以上对应 一、前言(准备) 确保电脑上有NVIDIA GPU…...

小刚说C语言刷题—1230蝴蝶结

1.题目描述 请输出 n 行的蝴蝶结的形状,n 一定是一个奇数! 输入 一个整数 n ,代表图形的行数! 输出 n 行的图形。 样例 输入 9 输出 ***** **** *** ** * ** *** **** ***** 2.参考代码(C语言版&#xff09…...

代码随想录算法训练营第60期第三十九天打卡

大家好,我们今天继续讲解我们的动态规划章节,昨天我们讲到了动态规划章节的背包问题,昨天讲解的主要是0-1背包问题,那么今天我们可能就会涉及到完全背包问题,昨天的题目有一道叫做分割等和子集,今天应该会有…...

计算机网络体系结构深度解析:从理论到实践的全面梳理

计算机网络体系结构深度解析:从理论到实践的全面梳理 本系列博客源自作者在大二期末复习计算机网络时所记录笔记,看的视频资料是B站湖科大教书匠的计算机网络微课堂,祝愿大家期末都能考一个好成绩! 一、常见计算机网络体系结构 …...

Qwen2.5-VL模型sft微调和使用vllm部署

本文的server.py和req.py代码参见:https://github.com/zysNLP/quickllm 配套课程《AIGC大模型理论与工业落地实战》;Deepseek相关课程更新中 1. 安装相关docker镜像:nvcr.io/nvidia/pytorch:25.02-py3 docker pull nvcr.io/nvidia/pytorch:…...

python打卡DAY22

##注入所需库 import pandas as pd import seaborn as sns import matplotlib.pyplot as plt import random import numpy as np import time import shap # from sklearn.svm import SVC #支持向量机分类器 # # from sklearn.neighbors import KNeighborsClassifier …...

【教程】Docker更换存储位置

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ 目录 背景说明 更换教程 1. 停止 Docker 服务 2. 创建新的存储目录 3. 编辑 Docker 配置文件 4. 迁移已有数据到新位置 5. 启动 Docker 服务 6…...

鸿蒙Next API17学习新特性之组件可见区域变化事件新增支持设置事件的回调参数,限制它的执行间隔

概述 鸿蒙开发文档更新的非常快,对应我们开发者的学习能力也要求非常高,今天这篇文章给大家分享一下鸿蒙API17中更新的新特性学习。 鸿蒙 Next 的组件可见区域变化事件在最新的 API Version 17 中得到了增强,新增了支持设置事件的回调参数的…...

AI大模型从0到1记录学习 mysql day23

第 1 章 MySQL概述 1.1 基本概念 1.1.1 数据库是什么? 数据库(DB:Database):存储数据的地方。 1.1.2 为什么要用数据库? 应用程序产生的数据是在内存中的,如果程序退出或者是断电了,…...

spring -MVC-02

SpringMVC-11 - 响应 在 SpringMVC 中,响应是服务器对客户端请求的反馈,它可以以多种形式呈现,包括视图名称、ModelAndView 对象、JSON 数据以及重定向等。以下是对 SpringMVC 中不同响应类型的详细介绍: 1. 视图名称 通过返回…...

深入解析 React 的 useEffect:从入门到实战

文章目录 前言一、为什么需要 useEffect?核心作用: 二、useEffect 的基础用法1. 基本语法2. 依赖项数组的作用 三、依赖项数组演示1. 空数组 []:2.无依赖项(空)3.有依赖项 四、清理副作用函数实战案例演示1. 清除定时器…...

通过Ollama读取模型

通过Ollama读取模型 前言一、查看本地Ollama上有哪些模型二、调用bge-m3模型1、调用模型2、使用bge-m3进行相似度比较 三、调用大模型 前言 手动下载和加载大模型通常需要复杂的环境配置,而使用Ollama可以避免这一问题。本文将介绍如何调用Ollama上的模型。 一、查…...

C#控制流

🧩 一、控制流概述 C# 中的控制流语句用于根据条件或循环执行代码块。它们是程序逻辑的核心部分。 ✅ 二、1. if、else if、else int score 85;if (score > 90) {Console.WriteLine("优秀"); } else if (score > 60) {Console.WriteLine("及…...

永久免费,特殊版本!

随着大家审美的不断提升,无论是社交平台的日常分享还是特定场景的图像展示,人们对图像质量的要求都日益严苛。为了呈现更完美的视觉效果,许多小伙伴都会对原始图像进行精细化的后期处理,其中复杂背景抠图、光影调整、色彩校正等专…...

Canva 推出自有应用生成器以与 Bolt 和 Lovable 竞争

AI 目前是一个巨大的市场,每个人都想从中分一杯羹。 即使是 Canva,这个以拖放图形设计而闻名的流行设计平台,也在其 Canva Create 2025 活动中发布了自己版本的代码生成器,加入了 AI 竞赛。 但为什么一个以设计为先的平台会提供代码生成工具呢? 乍看之下,这似乎有些不…...

Matrix-Game:键鼠实时控制、实时生成的游戏生成模型(论文代码详细解读)

1.简介 本文介绍了一种名为Matrix-Game的交互式世界基础模型,专门用于可控的游戏世界生成。 Matrix-Game通过一个两阶段的训练流程来实现:首先进行大规模无标签预训练以理解环境,然后进行动作标记训练以生成交互式视频。为此,研…...

MySQL 5.7在CentOS 7.9系统下的安装(下)——给MySQL设置密码

新下载下来的MySQL,由于没有root密码,(1)所以如果我们希望登陆mysql,得给mysql的root账户设置密码,或者另一方面来说,(2)未来如果你忘记root密码了,也能通过这…...

机器学习笔记2

5 TfidfVectorizer TF-IDF文本特征词的重要程度特征提取 (1) 算法 词频(Term Frequency, TF), 表示一个词在当前篇文章中的重要性 逆文档频率(Inverse Document Frequency, IDF), 反映了词在整个文档集合中的稀有程度 (2) API sklearn.feature_extraction.text.TfidfVector…...

AgentCPM-GUI,清华联合面壁智能开源的端侧GUI智能体模型

AgentCPM-GUI是什么 AgentCPM-GUI 是由清华大学与面壁智能团队联合开发的一款开源端侧图形用户界面(GUI)代理,专为中文应用进行优化。基于 MiniCPM-V 模型(80 亿参数),该系统能够接收智能手机的屏幕截图&a…...

Go语言实现链式调用

在 Go 语言中实现链式调用(Method Chaining),可以通过让每个方法返回对象本身(或对象的指针)来实现。这样每次方法调用后可以继续调用其他方法。 示例:实现字符串的链式操作 假设你想对一个字符串连续执行…...

重排序模型解读 mxbai-rerank-base-v2 强大的重排序模型

mxbai-rerank-base-v2 强大的重排序模型 模型介绍benchmark综合评价安装 模型介绍 mxbai-rerank-base-v2 是 Mixedbread 提供的一个强大的重排序模型,旨在提高搜索相关性。该模型支持多语言,特别是在英语和中文方面表现出色。它还支持代码和 SQL 排序&a…...

期望是什么:(无数次的均值,结合概率)21/6=3.5

https://seeing-theory.brown.edu/basic-probability/cn.html 期望是什么:(无数次的均值,结合概率)21/6=3.5 一、期望(数学概念) 在概率论和统计学中,**期望(Expectation)**是一个核心概念,用于描述随机变量的长期平均取值,反映随机变量取值的集中趋势。 (一…...

uniapp-vue3项目中引入高德地图的天气展示

前言&#xff1a; uniapp-vue3项目中引入高德地图的天气展示 效果&#xff1a; 操作步骤&#xff1a; 1、页面上用定义我们的 当前天气信息&#xff1a;<view></view> 2、引入我们的map文件 <script setup>import amapFile from ../../libs/amap-wx.js …...

容器化-k8s-介绍及下载安装教程

一、K8s 概念 官网地址: https://kubernetes.io/zh/docs/tutorials/kubernetes-basics/ 1、含义 Kubernetes 是一个开源的容器编排引擎,用于自动化部署、扩展和管理容器化应用程序。它可以将多个容器组合成一个逻辑单元,实现对容器的集中管理和调度,从而简化复杂应用的部…...

lc42接雨水

1.原题 42. 接雨水 - 力扣&#xff08;LeetCode&#xff09; 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 2.题目解析 这一题是经常被考到的一道算法题&#xff0c;其中最简单最好用的方法就是双指…...

通义千问-langchain使用构建(三)

目录 序言docker 部署xinference1WSL环境docker安装2拉取镜像运行容器3使用的界面 本地跑chatchat1rag踩坑2使用的界面2.1配置个前置条件然后对话2.2rag对话 结论 序言 在前两天的基础上&#xff0c;将xinference调整为wsl环境&#xff0c;docker部署。 然后langchain chatcha…...

uniapp自动构建pages.json的vite插件

对于 uniapp 来说&#xff0c;配置 pages.json 无疑是最繁琐的事情&#xff0c;具有以下缺点&#xff1a; 冗长&#xff0c;页面很多时 pages 内容会很长难找&#xff0c;有时候因为内容很长&#xff0c;导致页面配置比较难找&#xff0c;而且看起来比较凌乱json弊端&#xff…...

系统漏洞扫描服务:维护网络安全的关键与服务原理?

系统漏洞扫描服务是维护网络安全的关键措施&#xff0c;能够迅速发现系统中的潜在风险&#xff0c;有效预防可能的风险和损失。面对网络攻击手段的日益复杂化&#xff0c;这一服务的重要性日益显著。 服务原理 系统漏洞扫描服务犹如一名恪尽职守的安全守护者。它运用各类扫描…...

nlf loss 学习笔记

目录 数据集&#xff1a; 3d 投影到2d 继续求loss reconstruct_absolute 1. 功能概述 2. 参数详解 3. 两种重建模式对比 数据集&#xff1a; agora3 | 5264/5264 [00:00<00:00, 143146.78it/s] behave 37736/37736 [00:00<00:00, 76669.67it/s] mads 32649/3264…...

【Redis】零碎知识点(易忘 / 易错)总结回顾

一、Redis 是一种基于键值对&#xff08;key-value&#xff09;的 NoSQL 数据库 二、Redis 会将所有数据都存放在内存中&#xff0c;所以它的读写性能非常惊人 Redis 还可以将内存的数据利用快照和日志的形式保存到硬盘上&#xff0c;这样在发生类似断电或者机器故障时&#xf…...