linux服务器测试NVIDIA显卡性能

news2025/1/17 1:00:18

1.测试环境

一台Linux服务器电脑(可联网)

NVIDIA显卡

注意:仅仅测试浮点运算性能和内存带宽

2.安装测试软件

2.1检查驱动版本

输入指令nvidia-smi,主要是判断显卡驱动有没有安装。如果指令存在可显示如下:

lu@host:/usr/local$ nvidia-smi 
Fri Nov  3 00:26:46 2023       
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.113.01             Driver Version: 535.113.01   CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA GeForce GTX 1660 ...    Off | 00000000:01:00.0 Off |                  N/A |
| 29%   34C    P8              N/A /  N/A |    348MiB /  6144MiB |     33%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
                                                                                         
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|    0   N/A  N/A       890      G   /usr/lib/xorg/Xorg                           45MiB |
|    0   N/A  N/A      1432      G   /usr/lib/xorg/Xorg                          129MiB |
|    0   N/A  N/A      1667      G   /usr/bin/gnome-shell                         30MiB |
|    0   N/A  N/A      2352      G   ...3584735,16244303988823860755,262144      131MiB |
+---------------------------------------------------------------------------------------+
lu@host:/usr/local$ 

可以看到535最高支持cuda-12.2版本,我这里安装cuda-11.8显然满足要求(驱动版本可以高于对应cuda版本)。此时可直接跳过显卡驱动安装过程,直接按装cuda,否则指令不存在或者最高支持的版本小于11.8则需要安装或者更新驱动。

2.2安装显卡驱动

如果有安装过旧的驱动,需要先删除旧的驱动:

sudo apt-get purge nvidia*

确认显卡型号

查明你的NVIDIA显卡型号,以确保下载驱动程序的版本:

lspci | grep -i vga 
root@Computer:~# lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 630 (rev 04)
01:00.0 VGA compatible controller: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti 8GB] (rev a1)
root@Computer:~#

下载NVIDIA驱动

前往官方网站:NVIDIA官网

禁用显卡驱动源-nouveau

查看nouveau是否在运行,先输入指令

lsmod | grep nouveau

如果不出现以下的情况则已经禁用,可跳过该步骤。

打开文件blacklist文件

sudo vim /etc/modprobe.d/blacklist-nouveau.conf

在文件的最后加入这两行指令 

blacklist nouveau
options nouveau modeset=0

更新一下

sudo update-initramfs -u

 输入这个指令,查看是否禁用nouveau(如果没有,重启)

lsmod | grep nouveau

安装驱动

将驱动传到服务器,打开终端

#先更改文件的权限
sudo chmod  a+x 下载的文件名.run

#使用指令进行安装 
sudo ./下载的文件名.run -no-x-check -no-nouveau-check -no-opengl-files

-no-x-check:安装驱动时关闭X服务

-no-nouveau-check:安装驱动时禁用nouveau

-no-opengl-files:只安装驱动文件,不安装OpenGL文件

进入后,选择continue installation

接下里会进入图形化界面,一路选择 yes / ok 就好

检验是否安装成功

重启电脑,查看nvidia驱动:

nvidia-smi

2.3安装CUDA

下载cuda:

链接:CUDA Toolkit Archive | NVIDIA Developer

CUDA推荐下载.run可以根据提示安装,执行如下命令:

sudo bash cuda_10.0.130_410.48_linux.run
 
压住回车键,直到服务条款显示到100%。接着按下面的步骤选择:
 
accept
 
n(不要安装driver)
 
y
 
y
 
y

安装完成后,设置环境变量

打开主目录下的 .bashrc文件添加如下路径,例如我的.bashrc文件在/home/lu/下。
 
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.0/lib64
    export PATH=$PATH:/usr/local/cuda-10.0/bin
    export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-10.0
 
终端运行:source ~/.bashrc
 
检查:nvcc --version

2.4cudnn的安装

下载安装文件

按需求下载cudnn的安装文件:cuDNN Archive | NVIDIA Developer

安装cudnn

解压下载的文件,可以看到cuda文件夹,在当前目录打开终端,执行如下命令:

   sudo cp cuda/include/cudnn* /usr/local/cuda/include/
     
   sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
     
   sudo chmod a+r /usr/local/cuda/include/cudnn*
     
   sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

查看cudnn版本

在终端输入

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

3.性能测试及结果分析

进入到/usr/local/cuda/samples目录

root@Computer:/usr/local/cuda/samples# ll
总用量 108
drwxr-xr-x 11 root root  4096 5月  14 16:59 ./
drwxr-xr-x 16 root root  4096 10月 27  2021 ../
drwxr-xr-x 52 root root  4096 10月 27  2021 0_Simple/
drwxr-xr-x  8 root root  4096 10月 27  2021 1_Utilities/
drwxr-xr-x 13 root root  4096 10月 27  2021 2_Graphics/
drwxr-xr-x 22 root root  4096 10月 27  2021 3_Imaging/
drwxr-xr-x 10 root root  4096 10月 27  2021 4_Finance/
drwxr-xr-x 10 root root  4096 10月 27  2021 5_Simulations/
drwxr-xr-x 34 root root  4096 10月 27  2021 6_Advanced/
drwxr-xr-x 40 root root  4096 10月 27  2021 7_CUDALibraries/
drwxr-xr-x  6 root root  4096 10月 27  2021 common/
-rw-r--r--  1 root root 59776 10月 27  2021 EULA.txt
-rw-r--r--  1 root root  2606 10月 27  2021 Makefile

3.1GPU 的详细规格和特性

首先,进入 CUDA Samples 的 1_Utilities/deviceQuery 目录,编译 deviceQuery 工具:

cd 1_Utilities/deviceQuery 
make

运行 deviceQuery 工具:

root@Computer:/usr/local/cuda/samples/1_Utilities/deviceQuery# ./deviceQuery
./deviceQuery Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

Detected 1 CUDA Capable device(s)

Device 0: "GeForce GTX 1060 6GB"
  CUDA Driver Version / Runtime Version          10.1 / 10.1
  CUDA Capability Major/Minor version number:    6.1
  Total amount of global memory:                 6078 MBytes (6373572608 bytes)
  (10) Multiprocessors, (128) CUDA Cores/MP:     1280 CUDA Cores
  GPU Max Clock rate:                            1785 MHz (1.78 GHz)
  Memory Clock rate:                             4004 Mhz
  Memory Bus Width:                              192-bit
  L2 Cache Size:                                 1572864 bytes
  Maximum Texture Dimension Size (x,y,z)         1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384)
  Maximum Layered 1D Texture Size, (num) layers  1D=(32768), 2048 layers
  Maximum Layered 2D Texture Size, (num) layers  2D=(32768, 32768), 2048 layers
  Total amount of constant memory:               65536 bytes
  Total amount of shared memory per block:       49152 bytes
  Total number of registers available per block: 65536
  Warp size:                                     32
  Maximum number of threads per multiprocessor:  2048
  Maximum number of threads per block:           1024
  Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
  Max dimension size of a grid size    (x,y,z): (2147483647, 65535, 65535)
  Maximum memory pitch:                          2147483647 bytes
  Texture alignment:                             512 bytes
  Concurrent copy and kernel execution:          Yes with 2 copy engine(s)
  Run time limit on kernels:                     Yes
  Integrated GPU sharing Host Memory:            No
  Support host page-locked memory mapping:       Yes
  Alignment requirement for Surfaces:            Yes
  Device has ECC support:                        Disabled
  Device supports Unified Addressing (UVA):      Yes
  Device supports Compute Preemption:            Yes
  Supports Cooperative Kernel Launch:            Yes
  Supports MultiDevice Co-op Kernel Launch:      Yes
  Device PCI Domain ID / Bus ID / location ID:   0 / 1 / 0
  Compute Mode:
     < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 10.1, CUDA Runtime Version = 10.1, NumDevs = 1
Result = PASS

这将显示关于 CUDA 设备的详细信息,包括计算能力(Compute Capability)、核心数量、内存信息等。

3.2浮点运算性能

首先,进入 CUDA Samples 的 0_Simple/matrixMul/ 目录,编译 matrixMul工具:

cd 0_Simple/matrixMul/
make

运行 matrixMul工具:

root@Computer:/usr/local/cuda/samples/0_Simple/matrixMul# ./matrixMul
[Matrix Multiply Using CUDA] - Starting...
GPU Device 0: "GeForce GTX 1060 6GB" with compute capability 6.1

MatrixA(320,320), MatrixB(640,320)
Computing result using CUDA Kernel...
done
Performance= 531.11 GFlop/s, Time= 0.247 msec, Size= 131072000 Ops, WorkgroupSize= 1024 threads/block
Checking computed result for correctness: Result = PASS

NOTE: The CUDA Samples are not meant for performancemeasurements. Results may vary when GPU Boost is enabled.
root@Computer:/usr/local/cuda/samples/0_Simple/matrixMul#

执行矩阵乘法测试GPU浮点运算性能:

  • GPU是"NVIDIA GeForce GTX 1060 6GB",具有6.1的计算能力。
  • 示例中矩阵A的规模是320x320,矩阵B的规模是640x320。
  • 示例使用CUDA内核计算矩阵乘法的结果。
  • 计算完成后,示例报告了性能指标:531.11 GFlop/s(每秒十亿次浮点运算),计算时间为0.247毫秒,操作数量为131072000次,每个工作组有1024个线程。
  • 显示"Result = PASS",这意味着计算结果是正确的。

3.3内存带宽评估

进入 CUDA Samples 的 1_Utilities/bandwidthTest 目录, 编译bandwidthTest

cd 1_Utilities/bandwidthTest
make

运行 bandwidthTest 工具:

root@Computer:/usr/local/cuda/samples/1_Utilities/bandwidthTest# ./bandwidthTest
[CUDA Bandwidth Test] - Starting...
Running on...

 Device 0: GeForce GTX 1060 6GB
 Quick Mode

 Host to Device Bandwidth, 1 Device(s)
 PINNED Memory Transfers
   Transfer Size (Bytes)        Bandwidth(GB/s)
   32000000                     6.2

 Device to Host Bandwidth, 1 Device(s)
 PINNED Memory Transfers
   Transfer Size (Bytes)        Bandwidth(GB/s)
   32000000                     6.0

 Device to Device Bandwidth, 1 Device(s)
 PINNED Memory Transfers
   Transfer Size (Bytes)        Bandwidth(GB/s)
   32000000                     149.8

Result = PASS

NOTE: The CUDA Samples are not meant for performance measurements. Results may vary when GPU Boost is enabled.

具体的结果如下:

  • Host to Device Bandwidth:对于 32,000,000 字节的数据,带宽为 6.2 GB/s。
  • Device to Host Bandwidth:对于 32,000,000 字节的数据,带宽为 6.0 GB/s。
  • Device to Device Bandwidth:对于 32,000,000 字节的数据,带宽为 149.8 GB/s。

最后,程序显示 “Result = PASS”,这意味着带宽测试成功完成,没有检测到错误。

这将显示 GPU 的内存带宽信息,包括主机到设备的带宽、设备到主机的带宽等。

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

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

相关文章

MySql初学日记

MySql基础 概述 结构化查询语言(Structure Query Language)简称SQL。 是一种特殊的&#xff0c;标准的数据库编程语言&#xff0c;&#xff0c;一般的数据库管理系统都支持&#xff0c;用于对数据库进行增删改查等操作&#xff0c;实现数据持久化到本地。 使用完整的管理系…

[Fork.dev] 增加用idea打开

用Fork做git管理工具时, 只有vscode 和sublime 等. 没有idea的. 今天研究了下如何操作.记录一下 点击 Action 文本框进行编辑 Path填写idea的执行位置. Parameters: 填写 ${repo:path} 代表用idea打开的文件夹路径为当前. 最终显示效果

我是学生,申请加入!KubeBlocks 首次参与开源之夏,前沿技术、丰厚奖金、大牛导师等你来!

滴滴&#xff01;KubeBlocks 参加今年的开源之夏了&#xff01;现诚邀您一起探索优质开源社区&#xff0c;通过实战提升研发能力&#xff0c;快来报名项目&#xff0c;赢取奖金和证书吧&#xff01; 开源之夏是什么&#xff1f; 开源之夏是中国科学院软件研究所发起的“开源软…

汇智知了堂布局鸿蒙生态:推出南向设备开发课程,助力物联网人才培养

随着重庆市在鸿蒙原生应用开发上的积极推进&#xff0c;包括上游新闻、新重庆、华龙网在内的多家传媒巨头携手华为开发者联盟&#xff0c;引领本地传媒业深入探索鸿蒙生态。在此背景下&#xff0c;汇智知了堂积极响应政府与行业的号召&#xff0c;宣布即日起正式开发鸿蒙南向设…

Flutter 玩转动画 + 自定义View 实现积分或金币领取流程动画

一、效果图 二、主要涉及的知识点 AnimationController、Animation、FractionalTranslation 动画Api的运用CustomPainter 自定义View以及每个时机的把握 主要是写篇博客来记录一下这个功能的实现&#xff0c;具体代码就看源代码了&#xff0c;有疑问可以私信沟通 源代码下载…

微服务熔断降级

什么是熔断降级 微服务中难免存在服务之间的远程调用&#xff0c;比如&#xff1a;内容管理服务远程调用媒资服务的上传文件接口&#xff0c;当微服务运行不正常会导致无法正常调用微服务&#xff0c;此时会出现异常&#xff0c;如果这种异常不去处理可能导致雪崩效应。 微服…

无货源做抖音小店怎么找货源?怎么判断厂家是不是源头厂家?

大家好&#xff0c;我是喷火龙 抖音小店无货源玩法最重要的就是找货源&#xff0c;找有优势、稳定、靠谱的供应链。 这篇文章就给大家讲一讲怎么去找货源&#xff0c;怎么找到真正的源头厂家。 一、怎么找货源? 无货源商家找货源在1688、多多上面可能会多点&#xff0c;因…

易图讯科技数字武装三维电子沙盘

深圳易图讯科技(www.3dgis.top)集成了高清卫星影像、地形数据、实景三维模型、基干民兵、普通民兵、重要目标、兵要地志、企业潜力 、行业潜力 、社会组织潜力 、特种装备器材潜力、敌情数据、现场环境数据、物联感知信息&#xff0c;构建一体化的数字孪生空间&#xff0c;实现…

被动防护不如主动出击

自网络的诞生以来&#xff0c;攻击威胁事件不断涌现&#xff0c;网络攻防对抗已然成为信息时代背景下的一场无硝烟的战争。然而&#xff0c;传统的网络防御技术&#xff0c;如防火墙和入侵检测技术&#xff0c;往往局限于一种被动的敌暗我明的防御模式&#xff0c;面对攻击者无…

CAD看图软件有哪些?这几款新手也能用

CAD看图软件有哪些&#xff1f;在工程设计、建筑制图、机械制造等领域&#xff0c;CAD&#xff08;计算机辅助设计&#xff09;看图软件是不可或缺的工具。然而&#xff0c;对于新手来说&#xff0c;选择一款合适的CAD看图软件可能会有些困难。那么&#xff0c;今天小编就来介绍…

【Linux】认识文件(四):文件系统,inode,以及软硬连接

【Linux】认识文件&#xff08;四&#xff09;&#xff1a;文件系统,inode,以及软硬连接 一.磁盘(仅了解)1.组成2.CHS寻址 二.抽象化磁盘(仅了解)三.文件系统1.什么是文件系统2.ext2文件系统的结构i.Date blocksii.Block Bitmapiii.inode1.inode Table2.inode Bitmap iiiii.GDT…

VC 编程开发中的 封装类 :log日志类 和SQL server 操作类 源代码

VC 编程开发中的 封装类 &#xff1a;日志类 和SQL server 操作类 源代码 在VC&#xff08;Visual C&#xff09;开发中&#xff0c;日志文件输出是一个至关重要的环节&#xff0c;它对于程序调试、问题排查以及系统监控等方面都具有不可替代的作用。以下是对日志文件输出在VC开…

阿里云ECS服务器实例挂载数据盘步骤(磁盘自动挂载.、访问挂载点)

阿里云ECS服务器实例挂载数据盘步骤 相关指令 df -h 查看磁盘空间 du -sh * 查看使用内存大小1.磁盘自动挂载 首先登录阿里云ECS服务器&#xff0c;通过 df -h 命令查看当前磁盘挂载情况 通过 fdisk -l 命令查看磁盘情况&#xff0c;可以发现有两个盘&#xff1a; 系统盘 …

Weblogic WLS Core Components 反序列化命令执行漏洞(CVE-2018-2628)

1 漏洞概述 CVE-2018-2628 是 Oracle WebLogic Server&#xff08;WLS&#xff09;核心组件中的一个反序列化命令执行漏洞。此漏洞允许未授权的用户通过 T3 协议在远程服务器上执行任意命令&#xff0c;从而可能完全控制受影响的服务器。 2 影响版本 该漏洞影响了以下版本的…

java 并发线程应用

java 并发线程相关 线程状态 新建(NEW): 创建后尚未启动。可运行(RUNABLE): 正在 Java 虚拟机中运行。但是在操作系统层面,它可能处于运行状态,也可能等待资源调度(例如处理器资源),资源调度完成就进入运行状态。所以该状态的可运行是指可以被运行,具体有没有运行要看底层…

国外新闻媒体推广:多元化媒体分发投放-大舍传媒

前言 &#xff1a;随着全球化的进程&#xff0c;国外新闻市场呈现出快速发展的趋势。在这个趋势下&#xff0c;国外新闻媒体推广成为了各行业企业宣传业务的重要一环。本文将重点介绍大舍传媒的多元化媒体分发投放服务&#xff0c;以及对国外新闻媒体推广的意义。 1. 多元化媒…

前端已死? Bootstrap--CSS组件

目录 Bootstrap 下载 Bootstrap--全局CSS样式 栅格系统 栅格参数 正常显示 实例 代码演示: 排版 代码演示 表格 代码演示 表单 代码演示 等等...(文档很清晰了) Bootstrap--组件 结合演示:(页面) Bootstrap Bootstrap v3 中文文档 Bootstrap 是最受欢迎的 HT…

Java项目实现报文数据校验注解方式(必输项、值大小)

普通项目 导入校验依赖 <dependency><groupId>org.hibernate</groupId><artifactId>hibernate-validator</artifactId><version>4.1.0.Final</version></dependency><dependency><groupId>javax.validation</…

lerna实战(一)

前言 将大型代码仓库分割成多个独立版本化的 软件包&#xff08;package&#xff09;对于代码共享来说非常有用。但是&#xff0c;如果某些更改 跨越了多个代码仓库的话将变得很 麻烦 并且难以跟踪&#xff0c;并且&#xff0c; 跨越多个代码仓库的测试将迅速变得非常复杂。 …

使用System.Drawing绘制基本几何图形

1.使用System.Drawing绘制一个正方形 using System; using System.Drawing; using System.Windows.Forms;public partial class MyForm : Form {public MyForm(){// 你可以在这里设置Form的双缓冲&#xff0c;以避免绘制时出现的闪烁 this.DoubleBuffered true;}protected o…