nvidia CUDA 信息查看

异常信息

运行机器学习的时候遇到一个错误:

InternalError (see above for traceback): Dst tensor is not initialized.

然后参考CSDN:weixin_43444314的博客1,可能是显卡内存不够了的问题。的确是这个问题。然后顺手把nvidia-smi这个命令查到的信息整理一下。

nvidia信息查询

主要查看cuda/cudnn的版本号信息,以及显卡的使用情况23

序号命令意义
1nvidia-smi查看NVIDIA 显卡信息
2nvcc -V查看CUDA版本
3cat /usr/local/cuda/version.txt查看cuda版本
4cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2查看cudnn版本

nvidia-smi信息意义

nvidia-smi是nvidia 的系统管理界面 ,其中smi是System management interface的缩写,它可以收集各种级别的信息,查看显存使用情况。此外, 可以启用和禁用 GPU 配置选项 (如 ECC 内存功能)。

nvidia-smi有一系列的命令,具体可以参考CSDN:C小C.Nvidia-smi简介及常用指令及其参数说明,本文摘录最常用的nvidia-smi命令信息情况。

nvidia-smi可以显示GPU的所有基础信息

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 418.56       Driver Version: 418.56       CUDA Version: 10.1     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 108...  Off  | 00000000:02:00.0 Off |                  N/A |
| 23%   25C    P8     8W / 250W |  10998MiB / 11178MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   1  GeForce GTX 108...  Off  | 00000000:03:00.0 Off |                  N/A |
| 23%   26C    P8     8W / 250W |  10851MiB / 11178MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   2  GeForce GTX 108...  Off  | 00000000:82:00.0 Off |                  N/A |
| 43%   73C    P2   194W / 250W |  10879MiB / 11178MiB |    100%      Default |
+-------------------------------+----------------------+----------------------+
|   3  GeForce GTX 108...  Off  | 00000000:83:00.0 Off |                  N/A |
| 23%   26C    P8     9W / 250W |    316MiB / 11178MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
+-----------------------------------------------------------------------------+

各项意义如下:

  • GPU:本机中的GPU编号
  • Name:GPU 类型
  • Persistence-M:
  • Fan:风扇转速
  • Temp:温度,单位摄氏度
  • Perf:表征性能状态,从P0到P12,P0表示最大性能,P12表示状态最小性能
  • Pwr:Usage/Cap:能耗表示
  • Bus-Id:涉及GPU总线的相关信息;
  • Disp.A:Display Active,表示GPU的显示是否初始化
  • Memory-Usage:显存使用率
  • Volatile GPU-Util:浮动的GPU利用率
  • Uncorr. ECC:关于ECC的东西
  • Compute M.:计算模式
  • Processes 显示每块GPU上每个进程所使用的显存情况。

实时刷新nvidia-smi

watch -n 1 -d nvidia-smi # 每隔一秒刷新状态

参考资料


  1. CSDN:weixin_43444314.InternalError.2020 ↩︎

  2. CSDN:xiaotao_1.查看NVIDIA 显卡信息和CUDA信息命令.2020 ↩︎

  3. CSDN:baidu_32936911.查看cudnn版本.2020 ↩︎

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
NVIDIA CUDA是一种并行计算平台和编程模型,用于利用NVIDIA GPU的强大计算能力。它允许开发人员使用C、C++、Fortran等编程语言来编写并行计算程序,并在GPU上执行这些程序。CUDA提供了一组API和工具,使开发人员能够利用GPU的并行处理能力来加速各种计算任务,包括科学计算、机器学习、图形渲染等。 通过CUDA,开发人员可以将计算任务分解为多个并行的线程块,每个线程块在GPU上的多个处理器核心上同时执行。这种并行执行方式可以显著提高计算性能,特别是对于那些需要大量计算的任务。CUDA还提供了许多优化技术和工具,帮助开发人员进一步提高程序的性能。 要使用NVIDIA CUDA,首先需要安装NVIDIA显卡驱动和CUDA工具包。可以从NVIDIA官方网站下载并安装CUDA工具包。安装完成后,开发人员可以使用CUDA编程模型来编写并行计算程序,并使用NVIDIA的编译器和工具链来构建和运行这些程序。 以下是一个使用CUDA编写的简单示例程序,用于将两个向量相加: ```c #include <stdio.h> __global__ void vectorAdd(int *a, int *b, int *c, int n) { int tid = blockIdx.x * blockDim.x + threadIdx.x; if (tid < n) { c[tid] = a[tid] + b[tid]; } } int main() { int n = 1000; int *a, *b, *c; int *d_a, *d_b, *d_c; int size = n * sizeof(int); // 分配内存并初始化向量a和b a = (int*)malloc(size); b = (int*)malloc(size); c = (int*)malloc(size); for (int i = 0; i < n; i++) { a[i] = i; b[i] = i; } // 在GPU上分配内存 cudaMalloc(&d_a, size); cudaMalloc(&d_b, size); cudaMalloc(&d_c, size); // 将向量a和b复制到GPU内存 cudaMemcpy(d_a, a, size, cudaMemcpyHostToDevice); cudaMemcpy(d_b, b, size, cudaMemcpyHostToDevice); // 启动核函数 vectorAdd<<<(n+255)/256, 256>>>(d_a, d_b, d_c, n); // 将结果从GPU内存复制到主机内存 cudaMemcpy(c, d_c, size, cudaMemcpyDeviceToHost); // 打印结果 for (int i = 0; i < n; i++) { printf("%d ", c[i]); } printf("\n"); // 释放内存 free(a); free(b); free(c); cudaFree(d_a); cudaFree(d_b); cudaFree(d_c); return 0; } ``` 这个示例程序使用CUDA在GPU上并行计算两个向量的和,并将结果打印出来。在主机上分配内存并初始化向量a和b,然后在GPU上分配内存并将数据复制到GPU内存中。接下来,启动核函数来执行并行计算,最后将结果从GPU内存复制回主机内存并打印出来。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值