如何查看CUDA(CUDA学习)

作为一名CUDA开发工程师,查看CUDA版本以及相关信息是非常重要的。因此,本文将从多个方面,深入浅出地介绍如何查看CUDA的相关信息。

一、查看CUDA版本

要查看CUDA版本,可以通过以下命令实现:

cat /usr/local/cuda/version.txt

这条命令将输出CUDA的版本信息。示例输出如下:

cuda version 11.1.105

另外,也可以通过在CUDA示例代码中查找版本信息实现查看CUDA版本的目的。

二、查看CUDA显卡属性

要查看CUDA显卡的属性,可以通过以下命令实现:

nvidia-smi

这条命令可以显示当前系统上所有NVIDIA显卡的详细信息,包括GPU名称、GPU利用率、显存使用率等。示例输出如下:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.32.03    Driver Version: 460.32.03    CUDA Version: 11.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  Tesla K80           Off  | 00000000:04:00.0 Off |                    0 |
| N/A   48C    P8    27W / 149W |    808MiB / 11441MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   1  Tesla K80           Off  | 00000000:05:00.0 Off |                    0 |
| N/A   47C    P8    26W / 149W |    808MiB / 11441MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   2  Tesla K80           Off  | 00000000:84:00.0 Off |                    0 |
| N/A   46C    P8    27W / 149W |    808MiB / 11441MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   3  Tesla K80           Off  | 00000000:85:00.0 Off |                    0 |
| N/A   46C    P8    26W / 149W |    808MiB / 11441MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   4  Tesla K80           Off  | 00000000:89:00.0 Off |                    0 |
| N/A   46C    P8    27W / 149W |    808MiB / 11441MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   5  Tesla K80           Off  | 00000000:8A:00.0 Off |                    0 |
| N/A   47C    P8    26W / 149W |    808MiB / 11441MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   6  Tesla K80           Off  | 00000000:8E:00.0 Off |                    0 |
| N/A   47C    P8    26W / 149W |    808MiB / 11441MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   7  Tesla K80           Off  | 00000000:8F:00.0 Off |                    0 |
| N/A   48C    P8    27W / 149W |    808MiB / 11441MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

也可以通过nvidia-smi –query-gpu命令,查看显卡的更详细信息。示例输出如下:

nvidia-smi --query-gpu=gpu_name,memory.total,memory.used,memory.free,temperature.gpu --format=csv

该命令会输出当前系统上所有NVIDIA显卡的名称、显存总量、已使用显存量、剩余显存量以及显卡温度等详细信息。示例输出如下:

name, memory.total [MiB], memory.used [MiB], memory.free [MiB], temperature.gpu
Tesla K80, 11441 MiB, 808 MiB, 10633 MiB, 48
Tesla K80, 11441 MiB, 808 MiB, 10633 MiB, 47
Tesla K80, 11441 MiB, 808 MiB, 10633 MiB, 46
Tesla K80, 11441 MiB, 808 MiB, 10633 MiB, 46
Tesla K80, 11441 MiB, 808 MiB, 10633 MiB, 46
Tesla K80, 11441 MiB, 808 MiB, 10633 MiB, 47
Tesla K80, 11441 MiB, 808 MiB, 10633 MiB, 47
Tesla K80, 11441 MiB, 808 MiB, 10633 MiB, 48

三、查看CUDA安装路径

要查看CUDA的安装路径,可以通过以下命令实现:

echo $PATH | tr ':' 'n' | grep cuda

示例输出如下:

/usr/local/cuda-11.1/bin
/usr/local/cuda-11.1/NsightCompute-2020.2
/usr/local/cuda-11.1/NsightSystems-2020.3.1
/usr/local/cuda-11.1/targets/x86_64-linux/lib

以上输出显示CUDA的安装路径为/usr/local/cuda-11.1。

四、查看CUDA样例代码

要查看CUDA的样例代码,可以通过以下步骤实现:

Step 1: 进入CUDA安装目录

cd /usr/local/cuda-11.1/samples

Step 2: 编译所有样例代码

make -j8

Step 3: 运行样例代码

./bin/x86_64/linux/release/deviceQuery

该样例代码将输出CUDA的硬件属性,例如GPU名称、GPU计算能力等。示例输出如下:

Detected 1 CUDA Capable device(s)

Device 0: "Tesla K80"
  CUDA Driver Version / Runtime Version          11.2 / 11.2
  CUDA Capability Major/Minor version number:    3.7
  Total amount of global memory:                 11441 MBytes (11996954624 bytes)
  (13) Multiprocessors, (192) CUDA Cores/MP:     2496 CUDA Cores
  GPU Max Clock rate:                            823 MHz (0.82 GHz)
  Memory Clock rate:                             2505 Mhz
  Memory Bus Width:                              384-bit
  L2 Cache Size:                                 1572864 bytes
  Maximum Texture Dimension Size (x,y,z)         1D=(65536), 2D=(65536, 65535), 3D=(4096, 4096, 4096)
  Maximum Layered 1D Texture Size, (num) layers  1D=(16384), 2048 layers
  Maximum Layered 2D Texture Size, (num) layers  2D=(16384, 16384), 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:                        Enabled
  Device supports Unified Addressing (UVA):      Yes
  Device supports Compute Preemption:            No
  Supports Cooperative Kernel Launch:            Yes
  Supports MultiDevice Co-op Kernel Launch:      Yes
  Device PCI Domain ID / Bus ID / location ID:   0 / 4 / 0
  Compute Mode:
     Default (multiple host threads can use this device simultaneously)

五、查看CUDA相关头文件路径

要查看CUDA相关头文件的路径,可以通过以下命令实现:

nvcc --verbose 2>&1 | grep 'include'

该命令将输出CUDA相关头文件的路径信息。示例输出如下:

#include  search starts here:
 /usr/local/cuda-11.1/targets/x86_64-linux/include
 /usr/local/cuda-11.1/include
 /usr/include/x86_64-linux-gnu/c++/7
 /usr/include/x86_64-linux-gnu/c++/7/backward
 /usr/lib/gcc/x86_64-linux-gnu/7/include
 /usr/local/include
 /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed
 /usr/include/x86_64-linux-gnu
 /usr/include

六、总结

本文介绍了如何查看CUDA版本、查看CUDA显卡属性、查看CUDA安装路径、查看CUDA样例代码和查看CUDA相关头文件路径。掌握这些方法不仅可以方便地查看CUDA的相关信息,而且可以帮助开发者更好地调试CUDA程序。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平