被裁20240927 --- WSL-Ubuntu20.04安装cuda、cuDNN、tensorRT

cuda、cuDNN、tensorRT的使用场景

1. CUDA(Compute Unified Device Architecture)

作用

  • GPU 通用计算:CUDA 是 NVIDIA 的并行计算平台和编程模型,允许开发者直接利用 GPU 的并行计算能力,加速通用计算任务(如科学计算、图像处理、深度学习等)。
  • 硬件抽象层:提供 API 和工具链(如编译器、调试器),让开发者能够编写运行在 NVIDIA GPU 上的代码。

使用场景

  • 深度学习训练与推理:为深度学习框架(如 TensorFlow、PyTorch)提供底层 GPU 加速支持。
  • 高性能计算(HPC):加速物理模拟、分子动力学、金融建模等计算密集型任务。
  • 图形渲染与游戏开发:支持 GPU 加速的图形渲染和实时计算。

核心特点

  • 支持 C/C++、Python 等语言的 GPU 编程。
  • 提供多线程并行计算能力,显著提升计算效率。

2. cuDNN(CUDA Deep Neural Network Library)

作用

  • 深度学习专用加速库:cuDNN 是 NVIDIA 针对深度学习优化的 GPU 加速库,专注于加速神经网络的核心操作(如卷积、池化、归一化、激活函数等)。
  • 框架集成:主流深度学习框架(如 TensorFlow、PyTorch、MXNet)依赖 cuDNN 实现高效的 GPU 加速。

使用场景

  • 训练深度学习模型:在模型训练阶段,cuDNN 加速卷积、循环神经网络(RNN)等操作。
  • 推理加速:在模型推理阶段优化计算性能。

核心特点

  • 高度优化的算法实现,比直接使用 CUDA 实现更快。
  • 支持自动选择最优算法(如根据输入尺寸选择最快的卷积算法)。
  • 与 CUDA 紧密集成,需配合 CUDA 使用。

3. TensorRT(Tensor Runtime)

作用

  • 推理优化引擎:TensorRT 是 NVIDIA 的高性能深度学习推理(Inference)优化器和运行时引擎,专注于将训练好的模型部署到生产环境。
  • 模型压缩与加速:通过层融合(Layer Fusion)、精度校准(INT8/FP16)、内核自动调优等技术,显著降低模型延迟、提高吞吐量。

使用场景

  • 生产环境部署:在边缘设备(如 Jetson 系列)、云端服务器或数据中心部署训练好的模型。
  • 低延迟推理:适用于实时应用(如自动驾驶、视频分析、语音识别)。
  • 资源受限环境:通过量化(INT8)减少模型内存占用和计算量。

核心特点

  • 支持模型格式转换(如 ONNX、TensorFlow、PyTorch → TensorRT 引擎)。
  • 动态张量形状(Dynamic Tensor Shape)支持(适用于可变输入尺寸)。
  • 跨平台部署(支持 Windows/Linux/Jetson 等)。

三者的关系与协作流程

  1. 训练阶段

    • 使用 CUDA 提供 GPU 计算能力。
    • 依赖 cuDNN 加速深度学习框架的核心操作(如卷积)。
    • 框架示例:PyTorch + CUDA + cuDNN 训练 ResNet 模型。
  2. 推理阶段

    • 使用 TensorRT 对训练好的模型进行优化(如 FP16/INT8 量化、层融合)。
    • 最终生成轻量化的 TensorRT 引擎,在部署时显著提升推理速度。
    • 示例:将训练好的 YOLOv5 模型转换为 TensorRT 引擎,部署到 NVIDIA Jetson 边缘设备。

总结对比

工具定位主要场景依赖关系
CUDAGPU 通用计算平台所有 GPU 加速任务
cuDNN深度学习专用加速库训练和推理依赖 CUDA
TensorRT推理优化引擎生产环境部署依赖 CUDA 和 cuDNN

注意事项

  • 版本兼容性:CUDA、cuDNN、TensorRT 和深度学习框架(如 PyTorch)需版本匹配。
  • 硬件限制:仅支持 NVIDIA GPU(如 RTX 系列、Tesla 系列、Jetson 系列)。

通过合理使用 CUDA、cuDNN 和 TensorRT,可以显著提升深度学习模型的训练效率和推理性能。

安装cuda、cuDNN、tensorRT

环境:WSL-Ubuntu20.04
参考资料:

  • https://blog.csdn.net/JineD/article/details/131201121
  • https://blog.csdn.net/qq_43515934/article/details/123897435
  • https://zhuanlan.zhihu.com/p/615053337
  • https://blog.csdn.net/weixin_45628358/article/details/130408132
  • CUDA Toolkit Documentation
  • CUDA on WSL User Guide
  • NVIDIA cuDNN Documentation
  • NVIDIA Deep Learning TensorRT Documentation
  • NVIDIA TensorRT Documentation
  • 阿木实验室SpireCV安装脚本
  • DeepSeek

一些概念

  • 安装CUDA即安装nvidia-cuda-toolkit
  • 只要Windows中安装好了NVIDIA显卡驱动,在WSL中可以直接使用该驱动,最新的NVIDIA Windows GPU驱动程序将完全支持WSL,所以不要在WSL-Ubuntu20.04上安装任何的NVIDIA显卡驱动!以免造成覆盖问题!请不要apt install nvidia-cuda-toolkit,因为nvidia-cuda-toolkit 包含了一个显卡驱动!
  • CUDA
    加速运算(科学计算、图形运算);
    训练推理过程中均可使用;
  • cuDNN
    加速DNN的运算;
    被TensorFlow、PyTorch、OpenCV等深度学习框架、模块调用;
    训练推理过程中均可使用;
  • TensorRT:优化深度学习网络的推理;
    被TensorFlow、PyTorch、OpenCV等深度学习框架、模块调用;
    只在推理过程中使用;
  • Cuda版本切换
    如果机器上安装了多个版本的cuda,则会在/usr/local/中存在多个cuda-xx的文件夹,如下:
    在这里插入图片描述
    其中/usr/local/cuda文件夹是个软链接,链接到目前的cuda版本目录,所以如果要切换版本的话,只需要将原来cuda软链删除,重新建立指向另一个cuda-xx目录即可。
  • 安装cuda的系统要求、硬件条件、编程语言要求、内核要求等、系统版本要求、编译器版本要求请查阅:Pre-installation Actions
  • GPG、GPG public key:GPG(GNU Privacy Guard)是一个用于加密、签名和验证文件的开源加密工具。它可以帮助用户保护他们的数据免受未经授权的访问和篡改。您可以使用GPG来加密和签名电子邮件、文件和文本消息,以确保它们的安全性和完整性。

安装 CUDA

安装 CUDA 即安装 CUDA Toolkit

  • 0)安装前的准备工作
    确认WSL中可以正常访问GPU:nvidia-smi

  • 1)卸载WSL中为Ubuntu安装的显卡驱动
    一旦在Windows 上安装了NVIDIA GPU驱动程序,CUDA就可以在WSL2中以libcuda.so的形式使用。因此,不要在WSL 2中安装任何NVIDIA显卡驱动,否则会造成驱动覆盖问题!假如安装了,要卸载掉并重启wsl2:

    sudo apt-get remove --purge nvidia*
    sudo reboot
    
  • 2)卸载旧的 CUDA
    卸载掉可能存在的旧 CUDA -Toolkit,以进行正确版本 CUDA 的安装:

     sudo apt-get --purge remove "*cuda*" "*cublas*" "*cufft*" "*cufile*" "*curand*" \"*cusolver*" "*cusparse*" "*gds-tools*" "*npp*" "*nvjpeg*" "nsight*" "*nvvm*"
    sudo apt-get autoremove
    
  • 3)删除旧的 GPG key,GPG 秘钥用于从CUDA仓库中下载文件的身份认证!7fa2af80是旧的key,目前CUDA repository最新的key是3bf863cc,推荐使用cuda-keyring来安装最新的key:

    sudo apt-key del 7fa2af80 
    
  • 4)查看显卡驱动版本
    nvidia-smi
    也可以在windows中的NVIDIA控制面板中查看!
    在这里插入图片描述

    • 二,当前安装的显卡驱动支持哪些版本的cuda?
      查看方法:Table 2 CUDA Toolkit and Minimum Required Driver Version for CUDA Minor Version Compatibility.
      注意:CUDA驱动程序是向后兼容的,例如:CUDA 11.6.x 要求显卡驱动版本 >= 450.80.02,假如你的显卡驱动版本是 536.67的话,那么你的显卡驱动同样可以兼容 CUDA 11.6.x.
    • 三,要选择与其他软件包互相兼容的cuda版本。
      例如:你的程序使用了TensorRT包,那么在选择CUDA 版本时要考虑与TensorRT的相互兼容,或在选择TensorRT版本时要考虑与CUDA 版本的相互兼容!
  • 5)在 WSL-Ubuntu 中安装 CUDA-Toolkit
    安装Linux默认的CUDA-Toolkit时总是附带安装一个显卡驱动,因此不能使用这种方式给WSL2-Ubuntu安装CUDA-Toolkit。为了避免显卡驱动覆盖问题,应该使用下面的方式为WSL2-Ubuntu安装CUDA-Toolkit:

    • 5.1)从CUDA Toolkit Archive中选择一个合适的cuda版本,以cuda11.6为例:
      在这里插入图片描述
    • 5.2)安装类型选择 wsl-ubuntu :
      在这里插入图片描述
    • 5.3)在bash中执行安装命令(任选一种安装方式,推荐使用Network方式):
      # Network 方式安装:
      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
      sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/7fa2af80.pub
      sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/ /"
      sudo apt-get update
      sudo apt-get -y install cuda
      # Local方式安装:
      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/11.6.0/local_installers/cuda-repo-wsl-ubuntu-11-6-local_11.6.0-1_amd64.deb
      sudo dpkg -i cuda-repo-wsl-ubuntu-11-6-local_11.6.0-1_amd64.deb
      sudo apt-key add /var/cuda-repo-wsl-ubuntu-11-6-local/7fa2af80.pub
      sudo apt-get update
      sudo apt-get -y install cuda
      
  • 6)查看是否安装成功(先重启一下wsl)

    # 先重启一下wsl
    dpkg -l cuda
    
  • 7)安装完成可以删除掉.deb文件以释放存储空间

    sudo rm cuda-repo-wsl-ubuntu-11-6-local_11.6.0-1_amd64.deb
    
  • CUDA默认安装路径为 /usr/local/cuda/
    /usr/cuda/

安装 cuDNN

  • 0)准备工作

    • 安装显卡驱动:在WSL中不需要这步;
    • 安装CUDA Toolkit:在上一节中已安装;
    • 安装Zlib
      sudo apt-get install zlib1g
      
  • 1)下载和已安装的CUDA相兼容的cuDNN安装文件:cuDNN Archive.
    在这里插入图片描述

  • 2)选择一个符合您环境的安装方法:tar文件安装适用于所有Linux平台;Deb文件安装适用于Debian 11、Ubuntu 18.04、Ubuntu 20.04和22.04;RPM文件安装适用于RHEL7、RHEL8和RHEL9;包管理工具(如apt)安装方式,适合联网条件下安装。
    在这里插入图片描述

  • 3)以apt-get安装方式为例,为wsl2-Ubuntu安装 cuDNN v8.4.1:
    sudo apt-get install libcudnn8=8.4.1.*-1+cuda11.6
    sudo apt-get install libcudnn8-dev=8.4.1.*-1+cuda11.6
    sudo apt-get install libcudnn8-samples=8.4.1.*-1+cuda11.6

  • 4)验证安装是否成功
    查看cudnn_version.h或cudnn.h
    如果出现版本号则安装成功

    cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
    或者:
    cat /usr/include/cudnn_version.h | grep CUDNN_MAJOR -A 
    如果cudnn_version.h文件不存在就搜索一下,安装路径可能有出入
    sudo find / -name 'cudnn_version.h'
    或查找文件cudnn.h
    
  • 参考文献
    官网:cuDNN installation Guide on Linux
    博客:https://blog.csdn.net/qq_43515934/article/details/123897435

6.4 安装TensorRT

  • 1)下载
    查看与已安装的CUDA Toolkit、cuDNN版本相互兼容的TensorRT版本,并下载安装文件,以deb安装方式为例。
  • 2)安装tensorrt,以TensorRT 8.4 EA、cuda11.6.0、cuDNN8.4.1为例
    sudo dpkg -i nv-tensorrt-repo-ubuntu2004-cuda11.6-trt8.4.0.6-ea-20220212_1-1_amd64.deb
    
  • 3)添加第三方仓库秘钥
    sudo apt-key add /var/nv-tensorrt-repo-ubuntu2004-cuda11.6-trt8.4.0.6-ea-20220212/*.pub
    #或:
    sudo cp /var/nv-tensorrt-repo-ubuntu2004-cuda11.6-trt8.4.0.6-ea-20220212/*.gpg /usr/share/keyrings/
    
  • 4)更新软件源,要保证运行后无错误提示
    sudo apt-get update
    
  • 5)安装tensorrt的依赖
    TensorRT 提供三种安装模式:完整安装、lean runtime 安装、dispatch runtime安装,根据具体需要来进行安装!了解更多请参考:TensorRT Documentation。
    以完整安装为例:
    sudo apt-get install tensorrt -y
    python3 -m pip install numpy
    sudo apt-get install python3-libnvinfer-dev
    
  • 6)验证是否安装成功
    dpkg-query -W tensorrt
    
    显示如 tensorrt 8.6.1.x-1+cuda12.0 则表明安装成功!
  • 7)安装完毕后可以删除安装文件 *.deb 以释放空间。
  • 参考文献
    NVIDIA Deep Learning TensorRT Documentation
    阿木实验室SpireCV安装脚本

6.5 卸载

  • 卸载CUDA
    # To remove CUDA Toolkit:
    sudo apt-get --purge remove "*cuda*" "*cublas*" "*cufft*" "*cufile*" "*curand*" \"*cusolver*" "*cusparse*" "*gds-tools*" "*npp*" "*nvjpeg*" "nsight*" "*nvvm*"
    # To remove NVIDIA Drivers:
    sudo apt-get --purge remove "*nvidia*" "libxnvctrl*"
    # To clean up the uninstall:
    sudo apt-get autoremove
    
  • 卸载cuDNN
     sudo apt-get --purge remove "*cuDNN*"sudo apt-get autoremove
    
  • 卸载TensorRT
    Uninstalling TensorRT

6.6 Troubleshooting

  • 1) the public key is not available: NO_PUBKEY F60F4B3D7FA2AF80 Hit:4 https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64 InRelease
    原因:key不正确!!
    解决办法:找到该源,为它重新配置一个正确的key(无效的源就删掉!)
    在这里插入图片描述

  • 2)W: GPG error: https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64 InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY A4B469963BF863CC
    E: The repository 'https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64 InRelease' is not signed.
    原因:缺少公钥
    解决办法:https://blog.csdn.net/A15130402745/article/details/131643433
    https://keyserver.ubuntu.com/

  • 3)Version '8.4.1-1+cuda11.6' for 'libcudnn8' was not found
    在这里插入图片描述
    解决办法:sudo apt-get install libcudnn8=8.4.1.*-1+cuda11.6

  • 4)安装libcudnn8-samples出现:Version '8.4.1.*-1+cuda11.6' for 'libcudnn8-samples' was not found
    解决办法:sudo apt-get install libcudnn8-samples

  • 5)Processing triggers for libc-bin (2.31-0ubuntu9.14) ... /sbin/ldconfig.real: /usr/lib/wsl/lib/libcuda.so.1 is not a symbolic link
    在安装完cuda或tensorRT后出现该问题。
    解决办法:重新建立软连接,它们正确的关系应该是:libcuda.so -> libcuda.so.1 -> libcuda.so.1.1。步骤:
    在windows Powershell中:

    cd C:\Windows\System32\lxss\lib
    rm libcuda.so
    rm libcuda.so.1
    

    在wsl中:

    cd /usr/lib/wsl/lib/
    ln -s libcuda.so.1.1 libcuda.so.1
    ln -s libcuda.so.1.1 libcuda.so
    
  • 6)export: bad variable name
    待解决…




在这里插入图片描述

点赞、收藏、关注哟!

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

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

相关文章

DeepSeek vs ChatGPT:AI对决中的赢家是……人类吗?

DeepSeek vs ChatGPT:AI对决中的赢家是……人类吗? 文章目录 DeepSeek vs ChatGPT:AI对决中的赢家是……人类吗?一、引言1. 背景2. 问题 二、DeepSeek vs ChatGPT:谁更胜一筹?2.1 语言生成能力评测对比场景…

旧手机热点无法提供ipv6解决方法(emui 8 热点提供ipv6)

旧手机热点无法提供ipv6解决方法 手机:荣耀8x 系统版本: EMUI 8 网络:移动流量卡 解决方案 设置-》无线和网络-》移动网络-》接入点名称(APN)-》cmiot 修改 APN协议: IPv4/IPv6 修改 APN漫游协议: IPv4/IPv6

I2C学习笔记-软件模拟I2C

I2C学习笔记(软件模拟) 介绍GPIO的配置信号的展示起始信号 与 停止信号应答信号(非应答信号)检测应答信号发送一个字节数据接收一个字节数据 硬件配置实物测试 介绍 I2C的信号大概有 起始信号、应答信号、停止信号、写数据、读数…

VUE四:Vue-cli

什么是Vue-cli vue-cli是官方提供的一个脚手架,用于快速生成一个vue的项目模板; 预先定义好的目录结构及基础代码,就好比咱们在创建 Maven项目时可以选择创建一个骨架项目,这个骨架项目就是脚手架,我们的开发更加的快速; 什么是web pack 本质上&#…

基于 openEuler 构建 LVS-DR 群集

目录 对比 LVS 负载均衡群集的 NAT 模式和 DR 模式,比较其各自的优势 NAT 模式(网络地址转换模式) DR 模式(直接路由模式) 基于 openEuler 构建 LVS-DR 群集 实验准备环境 配置web服务器 web1 web2 首先下载ngi…

传统的自动化行业的触摸屏和上位机,PLC是否会被取代?

传统的自动化行业的触摸屏和上位机是否会被取代? 在工业自动化领域,触摸屏和上位机长期扮演着核心角色,尤其在污水处理、化工生产等场景中,它们通过实时数据采集、逻辑控制、报警联动等功能,保障了生产设备的稳定运行…

Spring Boot 集成MyBatis-Plus

文章目录 一、背景说明二、集成过程 2.1 引入 maven 依赖2.2 增加属性配置2.3 自动配置类 三、验证集成 3.1 控制器3.2 服务类3.3 Mapper接口类3.4 实体类3.4 不要忘记XML文件3.5 发起请求 四、技巧拓展 4.1 如何打印sql语句?4.2 如何对参数增加非空验证&#xff1f…

力扣hot100——排序链表(常见方法,归并排序)

解题思路: 分解(Divide):将待排序的列表递归地分成两半,直到每个子列表只包含一个元素(此时每个子列表都是有序的)。解决(Conquer):递归地对每个子列表进行排…

技术解析 | 适用于TeamCity的Unreal Engine支持插件,提升游戏构建效率

龙智是JetBrains授权合作伙伴、Perforce授权合作伙伴,为您提供TeamCity、Perforce Helix Core等热门的游戏开发工具及一站式服务 TeamCity 是游戏开发的热门选择,大家选择它的原因包括支持 Perforce、可以进行本地安装,并提供了多种配置选项。…

Three.js 快速入门教程【二】透视投影相机

系列文章目录 系列文章目录 Three.js 快速入门教程【一】开启你的 3D Web 开发之旅 Three.js 快速入门教程【二】透视投影相机 Three.js 快速入门教程【三】渲染器 Three.js 快速入门教程【四】三维坐标系 Three.js 快速入门教程【五】动画渲染循环 Three.js 快速入门教程【六…

无人机仿真、感知、规划

文章目录 1.仿真环境1.1 博客教学1.2 教学视频1基础无人机仿真教学视频介绍2 XTDrone无人机仿真与控制技术全面教程3 ROS机器人集群仿真与实践教程 1.3 开源项目及插件1 ROS2-Gazebo Drone Simulation Plugin2 RotorS_UAV_Gazebo_Simulator3 自主无人机与Aruco导航教程4 基于 A…

php文件包含

文章目录 基础概念php伪协议什么是协议协议的格式php中的协议file协议http协议ftp协议php://input协议php://filter协议php://data协议 php文件上传机制高级文件包含nginx文件日志包含临时文件包含session文件包含pear文件包含远程文件包含 基础概念 文件包含,相当…

【超详细】神经网络的可视化解释

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…

微软CEO-纳德拉访谈-AGI计划

在与知名科技播客主播 Dwarkesh Patel 的深度访谈中,微软 CEO 萨提亚・纳德拉围绕 AI、量子计算、微软发展等多方面分享深刻见解,下面是针对访谈内容的介绍,其中还是有很多值得我们学习的地方。 1 AI 领域见解 影响力评估:纳德拉直言行业所标榜的 AGI 里程碑是 “无意义的基…

HAProxy介绍与编译安装

目录 1、HAProxy介绍 2、HAProxy编译安装 Centos 基础环境 Ubuntu 基础环境 编译安装HAProxy 验证HAProxy版本 HAProxy启动脚本 配置文件 启动haproxy 验证haproxy状态 查看haproxy的状态页面 1、HAProxy介绍 HAProxy是法国开发者 威利塔罗(Willy Tarreau) 在2000年…

细说STM32F407单片机2个ADC使用DMA同步采集各自的1个输入通道的方法

目录 一、示例说明 二、工程配置 1、RCC、DEBUG、CodeGenerator 2、USART6 3、TIM3 (1)Mode (2)参数设置 (3) TRGO (4)ADC1_IN0 1)ADCs_Common_Settings 2&a…

从零开始用react + tailwindcs + express + mongodb实现一个聊天程序(一)

项目包含5个模块 1.首页 (聊天主页) 2.注册 3.登录 4.个人资料 5.设置主题 一、配置开发环境 建立项目文件夹 mkdir chat-project cd chat-project mkdir server && mkdir webcd server npm init cd web npm create vitelatest 创建前端项目时我们选择javascrip…

idea从远程gitee拉取项目

文章目录 从gitee上面拿到项目地址填写远程地址,并且设置项目保存位置拉取成功 从gitee上面拿到项目地址 填写远程地址,并且设置项目保存位置 拉取成功

大数据学习之PB级音乐数据中心数仓综合项目(1)-理论知识和项目需求、歌曲热度与歌手热度排行

一、理论知识和项目需求 1.课程介绍 2.数据库与ER建模_数据库三范式 3.数据库与ER建模_ER实体关系模型 4.数据库与维度建模_数据仓库(DATA WAREHOUSE) 5.数据库与维度建模_数据库与数据仓库区别 6.数据库与维度建模_数据仓库的发展历程 7.数据库与维度建模_维度建模 8.数据库与…

数据结构之队列

1. 队列的概念及结构 1.1 队列的概念 队列:只允许在一段进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾 出队列:进行删除操…