CUDA与cuDNN详细安装教程(最新)

news2024/11/29 0:46:32

写在前面:

在深度学习中,我们常常要对图像数据进行处理和计算,而处理器CPU因为需要处理的事情多,并不能满足我们对图像处理和计算速度的要求,显卡GPU就是来帮助CPU来解决这个问题的,GPU特别擅长处理图像数据,而CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台。CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎,安装cuda之后,可以加快GPU的运算和处理速度。

什么是显卡?

显卡(Video card,Graphics card)全称显示接口卡,又称显示适配器,是计算机最基本配置、最重要的配件之一。显卡作为电脑主机里的一个重要组成部分,是电脑进行数模信号转换的设备,承担输出显示图形的任务。显卡接在电脑主板上,它将电脑的数字信号转换成模拟信号让显示器显示出来,同时显卡还是有图像处理能力,可协助CPU工作,提高整体的运行速度。对于从事专业图形设计的人来说显卡非常重要。民用和军用显卡图形芯片供应商主要包括AMD(超微半导体)和Nvidia(英伟达)2家。现在的top500计算机,都包含显卡计算核心。在科学计算中,显卡被称为显示加速卡。

什么是显存?

也被叫做帧缓存,它的作用是用来存储显卡芯片处理过或者即将提取的渲染数据。如同计算机的内存一样,显存是用来存储要处理的图形信息的部件。

显卡、显卡驱动、CUDA之间的关系

  • 显卡:(GPU),主流是NVIDIA的GPU,因为深度学习本身需要大量计算。GPU的并行计算能力,在过去几年里恰当地满足了深度学习的需求。AMD的GPU基本没有什么支持,可以不用考虑。

  • 驱动:没有显卡驱动,就不能识别GPU硬件,不能调用其计算资源。但是呢,NVIDIA在Linux上的驱动安装特别麻烦,尤其对于新手简直就是噩梦。得屏蔽第三方显卡驱动。下面会给出教程。

  • CUDA:是显卡厂商NVIDIA推出的只能用于自家GPU的并行计算框架。只有安装这个框架才能够进行复杂的并行计算。主流的深度学习框架也都是基于CUDA进行GPU并行加速的,几乎无一例外。还有一个叫做cudnn,是针对深度卷积神经网络的加速库。

显卡驱动与cuda的关系:NVIDIA的显卡驱动器与CUDA并不是一一对应的,CUDA本质上只是一个工具包而已,所以我可以在同一个设备上安装很多个不同版本的CUDA工具包,比如可以同时安装 CUDA 9.0、CUDA 9.2、CUDA 10.0三个版本。一般情况下,我只需要安装最新版本的显卡驱动,然后根据自己的选择选择不同CUDA工具包就可以了,但是由于使用离线的CUDA总是会捆绑CUDA和驱动程序,所以在使用多个CUDA的时候就不要选择离线安装的CUDA了,否则每次都会安装不同的显卡驱动,这不太好,我们直接安装一个最新版的显卡驱动,然后在线安装不同版本的CUDA即可。

为什么GPU特别擅长处理图像数据呢?

这是因为图像上的每一个像素点都有被处理的需要,而且每个像素点处理的过程和方式都十分相似,GPU就是用很多简单的计算单元去完成大量的计算任务,类似于纯粹的人海战术。GPU不仅可以在图像处理领域大显身手,它还被用来科学计算、密码破解、数值分析,海量数据处理(排序,Map-Reduce等),金融分析等需要大规模并行计算的领域。

查看自己电脑是否可以使用GPU加速?

想要使用GPU加速,则需要安装cuda,所以首先需要自己的电脑显卡是否支持cuda的安装,也就是查看自己的电脑里面有没有NVIDA的独立显卡,这里再说明一下,AMD的显卡不支持安装cuda来进行加速,具体查看步骤如下:

第一步:开始菜单输入框输入设备管理器,打开设备管理器,找到显示适配器后点击,查看电脑显卡型号

第二步:在NVIDA官网列表中,地址:https://developer.nvidia.com/cuda-gpus,查看自己的显卡型号是否在NVIDA列表中,若存在则可以下载cuda实现GPU加速,这里可以看到我的显卡计算力为7.5,当然如果你的显卡运算能力在3.0以下,那没有适合你的cuda版本。

查看自己电脑是否有nvidia显卡驱动

点击设备管理器,鼠标右键点击显卡的名称,选择属性,然后点击“驱动程序”,能看到驱动的详情说明驱动装好了。

我这里电脑有显卡驱动,但没有显卡控制面板,可能是缺少相关组件,这里我直接安装适合本电脑显卡的NIVIDIA版本,没有卸载原有驱动,因为旧版本的NVIDIA驱动会被覆盖掉。

地址:https://www.geforce.cn/drivers,有两种安装方式,自动和手动,选择适合自己电脑的显卡驱动下载,安装很简单,直接下一步就可以,默认系统安装路径。

这里我选择自动更新驱动程序-->立即下载;

下载以后自动覆盖了C:\Program Files\NVIDIA Corporation中的文件;文件中的修改日期变成当前时间。

下载完成后,打开Geforce Experience,点击检查更新文件,如图已拥有最新驱动程序即可。若检测到有可以安装的最新版本,进行下载安装即可。我安装时勾选了清洁安装,会自动卸载旧版本。

更新驱动完毕,桌面右键就出现NVIDIA控制面板了。

打开NVIDA控制面板,查看GPU显卡所支持的CUDA版本,具体开始菜单 -》NVIDIA控制面板-》帮助-》系统信息-》组件-》nvidia.dll后面的cuda参数,可以看到,我的显卡支持版本为12.4,所以我下载安装<=12.4版本的cuda即可。

nvidia-smi显示的CUDA Version是当前驱动的最高支持版本,因为CUDA是向下兼容的,所以最高支持版本以下的CUDA版本都是支持的,如图,nvidia-smi显示最高版本支持为12.4,那12.4以及12.4一下的版本都是支持的。

安装CUDA必须安装VS吗?

CUDA是一种由NVIDIA开发的并行计算平台和编程模型,它可以通过GPU加速应用程序的执行速度。在安装CUDA的时候,很多人会疑惑是否需要安装VS(Visual Studio)。

事实上,安装CUDA并不一定需要安装VS。CUDA可以在支持的操作系统上独立安装,并且可以使用命令行编译和运行CUDA程序,而不依赖于VS。这对于一些用户来说是非常方便的,特别是对于那些只想使用CUDA库并不需要进行C/C++开发的用户。

然而,如果你打算在Windows系统中使用CUDA进行C/C++开发,那么安装VS是非常推荐的。VS提供了强大的集成开发环境(IDE),它可以简化代码编写、调试和构建过程。此外,VS还提供了与CUDA相集成的插件和工具,如CUDA模板和CUDA调试器,使得开发和调试CUDA程序更加简单高效。

此外,安装VS还可以为CUDA提供支持库和头文件,这些对于开发CUDA应用程序非常重要。VS提供了与CUDA版本相匹配的开发工具集(包括C/C++编译器和构建工具),确保了编译的兼容性和正确性。

这里我为了稳妥起见,还是选择安装了vs2017,安装教程如下文。

查看pytorch与cuda的对应版本

Previous PyTorch Versions | PyTorch

由于我使用的deepke框架 ,支持的torch版本为torch>=1.5,<=1.11,我这里选择安装1.11版本的torch,点击上述网址,滑到v1.11.0部分,可以看到支持cuda11.3和10.2版本。

我选择安装11.3版本,命令如下:

# CUDA 11.3
pip install torch==1.11.0+cu113 torchvision==0.12.0+cu113 torchaudio==0.11.0 --extra-index-url https://download.pytorch.org/whl/cu113

查看vs与cuda对应版本

CUDA Toolkit Archive | NVIDIA Developer

如图,win10版本支持cuda11.3,如果系统是win11也可以支持。

如图,vs2017可以支持cuda11.3

下载安装 Visual Studio

安装Visual Studio,因为CUDA在安装时,需要VS的里面的工具包来编译。VS这里我安装的是社区免费版VS2017,无需秘钥key就可以使用,也可以使用其它版本,但是需要key,请见第一张图的Table2,在安装过程中,会自动检测本机是否已经安装了配套的VS版本其中之一,如果VS版本和Cuda版本不匹配的话,安装无法进行。

第一步:到微软Visual Studio官方网站进行VS2017安装包下载,这里需要注册一个微软账号,如果没有的话按步骤进行注册、登录即可,地址:https://my.visualstudio.com/Downloads?q=Visual%20Studio%202017

进入后发现2017版本无法下载,在网上找了部分解决方法后,在该篇博客的2017链接下,下载成功。

博客地址:Visual Studio Community 2017/2019下载链接_visual studio 2017 community-CSDN博客

第二步:下载完安装包后双击,安装选项:工作负载处,勾选“C++的桌面开发(其他的可不勾选,若需要的话,后面可再次安装)

第三步:选择软件安装位置选择软件要安装到的地方,建议安装到专门放软件的盘,不要安装到系统盘C,然后点击开始进行安装

第四步:选完后,点击安装,正式安装,这个过程需要等待一会儿时间

安装成功后的界面

下载与安装CUDA

第一步:到官网下载CUDA安装包,前面我们已经查看到了电脑GPU显卡所支持的CUDA版本为<=12.4,下载地址:https://developer.nvidia.com/cuda-toolkit-archive

第二步:下载完后,双击

extraction path可以不用修改,默认路径即可。cuda安装完成后,该路径下的文件就自动删除了。

一切正常,检查系统兼容性。

第三步:同意并继续后,选择自定义安装

第四步:安装组件,全部勾选,点击下一步

第五步:选择安装位置,这里建议默认安装,也可手动安装,但是要记得自己安装的位置,因为后面需要配置系统环境变量

第六步:开始准备安装,等待安装完成,这需要等待一段时间

安装完成界面如下,点击下一步,就安装完成了

第七步:安装完成后,就需要我们配置Cuda的环境变量了,我们在计算机上点右键,打开属性->高级系统设置->环境变量,可以看到系统中多了CUDA_PATH和CUDA_PATH_V11_3两个环境变量,安装好后,自动默认帮我们设置好了这2个环境变量:

之后我们最好再手动添加以下5个环境变量,方便日后配置VS使用,在VS中使用CUDA加速。

CUDA_SDK_PATH = D:\CUDA\NVIDIA Corporation\CUDA Samples\v11.3
CUDA_LIB_PATH = %CUDA_PATH%\lib\x64
CUDA_BIN_PATH = %CUDA_PATH%\bin
CUDA_SDK_BIN_PATH = %CUDA_SDK_PATH%\bin\win64
CUDA_SDK_LIB_PATH = %CUDA_SDK_PATH%\common\lib\x64

提醒:%CUDA_PATH前面的%,作用其实就是加上CUDA_PATH的路径,也就是上图的D:\CUDA\NVIDIA GPU Computing ToolKit\CUDA\v11.3

配置成功之后的图:

查看是CUDA是否安装成功

配置完系统环境变量之后,我们就可以查看CUDA是否安装成功以及环境变量配置情况

查看安装版本:Win + R 打开cmd ,输入命令:nvcc --version

查看设置变量情况:输入命令:set cuda

验证deviceQuery和bandwidthTest,在命令窗口运行测试文件,定位到 在cuda安装目录的 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\extras\demo_suite,分别输入deviceQuery,bandwidthTest并运行,两个地方的Result=PASS则说明通过,反之,Rsult=Fail 则需要重新安装。

如果以上都没问题,则说明CUDA安装成功,至于Cuda安装成功之后的使用,我们可以在Visual Studio中写C++代码使用,也可以在Anaconda和Pycharm中写Python代码使用,额外下载安装cudnn,CUDNN是一个常见的神经网络层加速库文件,能够很大程度把加载到显卡上的网络层数据进行优化计算,而CUDA就像一个很粗重的加速库,其主要依靠的是显卡。CUDNN需要在有CUDA的基础上进行,CUDNN可以在CUDA基础上加速2倍以上。

Anaconda中使用

在CUDA安装完之后,如果想要学习深度学习中的神经网络的话,则额外下载安装cuDNN,可帮助我们加快神经网络的运算,cuDNN是一个常见的神经网络层加速库文件,能够很大程度把加载到显卡上的网络层数据进行优化计算,而CUDA就像一个很粗重的加速库,其主要依靠的是显卡。cuDNN需要在有CUDA的基础上进行,可以在CUDA基础上加速2倍以上。

下载安装之前,这里再简要介绍几个关键概念

NVIDIA的显卡驱动器与CUDA

NVIDIA的显卡驱动程序和CUDA完全是两个不同的概念,CUDA是NVIDIA推出的用于自家GPU的并行计算框架,也就是说CUDA只能在NVIDIA的GPU上运行,而且只有当要解决的计算问题是可以大量并行计算的时候才能发挥CUDA的作用。

NVIDIA显卡驱动和CUDA工具包本身是不具有捆绑关系的,也不是一一对应的关系,CUDA本质上只是一个工具包而已,所以我可以在同一个设备上安装很多个不同版本的CUDA工具包,一般情况下,我只需要安装最新版本的显卡驱动,然后根据自己的选择选择不同CUDA工具包就可以了。

CUDA和cuDNN关系

CUDA看作是一个工作台,上面配有很多工具,如锤子、螺丝刀等。cuDNN是基于CUDA的深度学习GPU加速库,有了它才能在GPU上完成深度学习的计算。它就相当于工作的工具,比如它就是个扳手。但是CUDA这个工作台买来的时候,并没有送扳手。想要在CUDA上运行深度神经网络,就要安装cuDNN,就像你想要拧个螺帽就要把扳手买回来。这样才能使GPU进行深度神经网络的工作,工作速度相较CPU快很多。

注意:cuDNN是一个SDK,是一个专门用于神经网络的加速包,它跟我们的CUDA没有一一对应的关系,即每一个版本的CUDA可能有好几个版本的cuDNN与之对应,但一般有一个最新版本的cuDNN版本与CUDA对应更好。

CuDNN支持的算法

  • 卷积操作、相关操作的前向和后向过程

  • pooling的前向后向过程

  • softmax的前向后向过程

  • 激活函数的前向后向过程,如(Relu、Sigmoid、Tanh )等

cuDNN的下载与安装

第一步:官网下载cuDNN的安装包,地址:https://developer.nvidia.com/cudnn,这里需要你注册一个账号,按照要求注册完就可以下载安装包了,这里我的CUDA安装的是11.3版本的,我就安装与我CUDA对应的cuDNN了。

第二步:下载好安装包后,利用解压软件解压出来

第三复制粘贴 bin、include、lib三个文件到CUDA的安装目录进行覆盖替换

cuDNN到此安装成功!

下载安装Pytorch-GPU--conda安装

第一步:首先我们来到Pytorch-GPU的官网,浏览pytorch对应版本下cuda支持版本的相应命令。如1.11版本的pytorch对应11.3版本的cuda下载命令如下:

# CUDA 11.3
conda install pytorch==1.11.0 torchvision==0.12.0 torchaudio==0.11.0 cudatoolkit=11.3 -c pytorch

但是这里下载速度极慢,很容易出现CondaHTTPError,因为默认的镜像是官方的,由于官网的镜像在境外,访问太慢或者不能访问,为了能够加快访问的速度,我们更改Conda下载安装包的镜像源.

第二步:这里我们首先设置一下Conda下载安装包的镜像源,输入以下命令:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --set show_channel_urls yes

第三步:添加完后,在用户目录下,如:C:\Users\19096 ,找到 .condarc 文件,使用记事本打开,删除里面的 defaults,这样能快点,或者在其前面加#号注释掉。

注意:

用conda安装包的标准语法格式为:conda install -c <channel><packagename>,

而pytorch官网中conda给的命令行是上图那样的,有-c选项,就说明已经指定了官方下载源,所以自己配置的镜像源不管用, 所以应该把-c pytorch去掉,就可以从镜像源下载文件了。

输入y,即正式下载和安装.

友情提示:

如果你想再次换源安装,需要使用以下命令conda config --remove-key channels恢复默认源的命令,否则会报错,然后再次配置你想要的镜像源.

其余安装方式请参考该文章:Python学习工具第六期 - GPU加速工具CUDA 的使用 和 Pytorch-GPU 安装的三种方式 (qq.com)

最后我们检测Pytorch-GPU是否安装完成

先使用命令pip list查看已安装的包列表,再输入命令python,然后 torch.cuda.is_available(),输出True,即安装成功

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

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

相关文章

2024 年“认证杯”数学中国数学建模网络挑战赛

题目 C题 云中的海盐 巴黎气候协定提出的目标是&#xff1a;在 2100 年前&#xff0c;把全球平均气温相对于工业 革命以前的气温升幅控制在不超过 2 摄氏度的水平&#xff0c;并为 1.5 摄氏度而努力。 但事实上&#xff0c;许多之前的研究已经指出&#xff0c;全球的碳排放以及…

【面试八股总结】进程(二)

参考资料 &#xff1a;小林Coding、阿秀、代码随想录 一、进程调度 当⼀个进程的状态发⽣改变时&#xff0c;操作系统需要考虑是否要换⼀个进程执行&#xff0c;这就需要⽤到“进程调度算法”。 1. 调度目标 不同的调度算法具有不同的特性&#xff0c;因为使用以下标准比较…

Codewars:找到奇数 int

Codewars&#xff1a;找到奇数 int 给定一个数组&#xff0c;找到出现次数为奇数的整数。在数组中&#xff0c;总会有一个整数出现奇数次&#xff0c;尽管其他数字可能会出现多次。 例子&#xff1a; 输入&#xff1a;findOdd([20, 1, 1, 2, 2]) 输出&#xff1a;20输入&…

Thingsboard PE智慧运维仪表板实例(一)【智慧排口截污实例】

1、仪表板总览 以该实际落地项目为案例,跟着我一起搭建智慧运维大屏!社区版和专业版都通用。本文是致力于快速搭建,所以不会详细去讲Thingsboard的知识点,只讲如何配置和使用部件。 搭建仪表板的整体效果如下: 点击左侧设备列表可以查看设备详细页面: 2、设备 我的设备都…

为什么在深度神经网络中,网络权重的初始化很重要?

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 在深度神经网络中&#xff0c;网络权重的初始化非常关键&#xff0c;因为它对网络的训练速度、收敛能力以及最终的性能都有重大影响。具体来说&#xff0c;权重初始化的重要性主要体现在以下几个方面&a…

防火墙用户管理技术——AAA

目录 一.AAA功能 (1).认证方式 (2).授权方式 (3).计费方式 二.RADUIUS协议 三.用户组织架构及管理 管理员认证登录方式 1.console 2.web 3.telnet 4.ssh 5.ftp 四.认证方式 五.AAA远程登录 1.端口添加IP地址达到互通 2.AAA视图进行配置 3.结果​编辑 一.AAA功能…

CST电磁仿真软件的设置变更与问题【官方教程】

保存结果的Result Navigator 积累的结果一目了然&#xff01; 用户界面上的Result Navigator 在一个仿真工程中更改变量取值进行仿真分析或者改变设置进行仿真分析时&#xff0c;之前的1DResult会不会消失呢&#xff1f; 1D Result&#xff1a;CST中1D Result指的是Y值取决…

Redis中的集群(六)

集群 ASK错误 在进行重新分片期间&#xff0c;源节点向目标节点迁移一个槽的过程中&#xff0c;可能会出现这样一种情况:属于被迁移槽的一部分键值对保存在源节点里面&#xff0c;而另一部分键值对则保存在目标节点里面。当客户端向源节点发送一个与数据库有关的命令&#xf…

科研学习|可视化——相关性结果的可视化

一、相关性分析介绍 相关性分析是指研究两种或者两种以上的变量之间相关关系的统计分析方法&#xff0c;一般分析步骤为&#xff1a; 1&#xff09;判断变量间是否存在关联&#xff1b;2&#xff09;分析关联关系&#xff08;线性/非线性&#xff09;、关联方向&#xff08;正相…

UE5、CesiumForUnreal实现加载建筑轮廓GeoJson数据生成白模功能

1.实现目标 在UE5.3中,通过加载本地建筑边界轮廓面GeoJson数据,获取底面轮廓和楼高数据,拉伸生成白模,并支持点选高亮。为防止阻塞Game线程,使用了异步任务进行优化,GIF动图如下所示: 其中建筑数量:128871,顶点索引数量:6695748,三角面数量:2231916,顶点数量:165…

4.11 QT tcp群聊

头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTcpSocket>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);~Widget();private …

51单片机学习笔记——LED点亮

一、独立按键控制LED元器件和原理图 根据厂家给的原理图找到独立按键模块&#xff0c;观察下图我们知道按钮的一个头接GND&#xff0c;一头接IO口。由此可知我们如果需要使用第一个按钮则需要用p31。 二、独立按键控制LED程序 程序编写需要使用到IF else语句 当如果P310时P20…

【canvas】canvas基础使用(六):图形阴影

简言 学习使用canvas的阴影属性。 阴影 shadowBlur 阴影模糊 CanvasRenderingContext2D.shadowBlur 是 Canvas 2D API 描述模糊效果程度的属性&#xff1b;它既不对应像素值也不受当前转换矩阵的影响。默认值是 0。 语法&#xff1a; ctx.shadowBlur level; 选项值&#x…

【已解决】VMware Horizon Client: 无法建立安全加密链路连接

文章目录 问题原因解决方法方法1&#xff1a;在HTTPS拦截中添加VMware忽略列表 (推荐)方法2&#xff1a; 只拦截 浏览器进程的请求 / 取消 HTTPS 拦截&#xff08;如果没有拦截HTTPS的必要 / 只针对浏览器请求&#xff0c;可以使用此方法&#xff09; 当前使用mac 编辑&#xf…

leetcode328.奇偶链表

1. 题目描述 在线练习 2. 解题思路 这道题&#xff0c;官方给的是中等难度。其实是一道基础题&#xff0c;大家应该都可以写得出来。 题目中给的示例可以清楚的看到&#xff0c;合并前后的奇偶链的各自包含的节点的顺序是不变的&#xff0c;我们基本可以确定使用尾插法来合并…

vue2+codemirror代码渲染,实现滚动到指定行(三 滚动指定行)

vue2+codemirror代码渲染,当代码量过大时,在几千行的代码中找到所需的方法类比较困难。这时我们需要跳转到具体方法类,代码滚动到方法类所在的代码行。 这里需要先把光标指向到指定行,再滚动到该行, 亲测好用 scrollToLine(n) {// 将光标设置到第n行的第一个字符this.c…

量子城域网系列(二):量子密钥与通信系统中各层协议融合应用

写在前面。国家标准中对量子保密通信的定义&#xff1a;量子保密通信是利用QKD与其他密码技术结合形成的保密通信技术。 经过这段时间的讨论&#xff0c;我们基本上明白了量子保密通信的内涵、基础协议、技术原理等。我们知道了当前语境下的量子密钥分发网络核心是实现两点之间…

【ROS2笔记三】构建ROS2功能包

3.构建ROS2功能包 文章目录 3.构建ROS2功能包3.1ROS2中包的组成部分3.2创建ROS2功能包并编写节点3.2.1使用CMake创建功能包3.2.2编写cpp节点代码 3.3编译运行节点3.4使用面向对象的方式编写ROS2节点3.5使用RCLPY编写节点Reference 3.1ROS2中包的组成部分 ROS2可以使用CMake或者…

ELK日志分析系统+Filebeat

目录 一、Filebeat介绍 1、Filebeat简介 2、Filebeat的工作方式 3、filebeat工作流程 4、Filebeat的作用 5、filebeat的用途 1.为什么要用filebeat来收集日志&#xff1f;为什么不直接用logstash收集日志&#xff1f; 2.filebeat和logstash的区别 二、部署(ELFK)Fileb…

【web开发01】前端开发HTML、CSS-新浪新闻的实现

前端开发HTML、CSS-新浪新闻的实现 1 实现标题排版1.1图片连接的三种方式1.2 具体代码1.3 总结1.< h1>到< h6>是标题从大到小 2 实现标题样式2.1 css的三种引入方式2.2 颜色的三种表示2.3 css选择器2.4 超链接 3 实现正文排版3.1 视频标签 video3.2 音频标签 audio…