判断CUDA和CUDNN是否安装成功并正常使用

👉 原文地址 : https://blog.hidavid.cn/cuda-cudnn-install-successful/

最近又捡起YOLOv3来练练手,检测医学B超图像。

重新搭建环境,由于网速时快时慢,搭建起来相当痛苦,最终还是搭建完成了。

下面分享下如何判断CUDA是否正常使用。

正文

一、判断安装情况

首先是判断cuda是否安装成功。
一般安装路径为/usr/local/cuda
使用nvcc -v命令可以输出cuda版本

然后是判断cudnn,这个库安装很简单,只需把cudnn的include和lib64里面的文件拷到cuda相应目录即可,所以判断是否安装的方式是,到cuda的include和lib64,用ls | grep cudnn 命令查看是否有cudnn相关的文件。

二、判断是否正常使用CUDA

判断方式很多,我以使用tensorflow为例。

在启动tensorflow的时候,会有下面的log,这能看出来cuda和cudnn的库都顺利加载进来了。

2020-10-28 13:23:32.729663: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcudart.so.10.0
2020-10-28 13:23:32.732189: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcublas.so.10.0
2020-10-28 13:23:32.734612: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcufft.so.10.0
2020-10-28 13:23:32.735064: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcurand.so.10.0
2020-10-28 13:23:32.737413: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcusolver.so.10.0
2020-10-28 13:23:32.739131: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcusparse.so.10.0
2020-10-28 13:23:32.744086: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcudnn.so.7
2020-10-28 13:23:32.754026: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1763] Adding visible gpu devices: 0, 1
2020-10-28 13:23:32.754078: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcudart.so.10.0
2020-10-28 13:23:32.759785: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1181] Device interconnect StreamExecutor with strength 1 edge matrix:
2020-10-28 13:23:32.759804: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1187]      0 1
2020-10-28 13:23:32.759842: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1200] 0:   N Y
2020-10-28 13:23:32.759868: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1200] 1:   Y N
2020-10-28 13:23:32.767512: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1326] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 30265 MB memory) -> physical GPU (device: 0, name: Tesla V100-SXM2-32GB, pci bus id: 0000:8b:00.0, compute capability: 7.0)
2020-10-28 13:23:32.770834: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1326] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:1 with 30265 MB memory) -> physical GPU (device: 1, name: Tesla V100-SXM2-32GB, pci bus id: 0000:8d:00.0, compute capability: 7.0)
2020-10-28 13:24:08.051764: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcudnn.so.7

在训练过程,也可以通过观察CPU和GPU的使用情况来判断。

比如输入top指令,可以试试查看cpu和mem的使用情况,可看出cpu使用率还挺高的,由于多核的原因,使用率超过100%了。我在没使用GPU训练的时候,没记错的话cpu占用率接近800%。

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
  5374 root      20   0 65.426g 6.152g 1.499g S 226.6  1.2  27:42.84 python

然后是nvidia-smi命令,查看gpu使用情况,下表可看出gpu显存的使用率为76%,那就表示GPU正被使用了。当GPU显存使用率接近100%,tensorflow就会蹦了,此时一般要降低batchsize来处理。

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 418.67       Driver Version: 418.67       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  Tesla V100-SXM2...  On   | 00000000:8B:00.0 Off |                    0 |
| N/A   58C    P0   160W / 300W |  31361MiB / 32480MiB |     76%      Default |
+-------------------------------+----------------------+----------------------+
|   1  Tesla V100-SXM2...  On   | 00000000:8D:00.0 Off |                    0 |
| N/A   45C    P0    59W / 300W |    625MiB / 32480MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

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

### 如何在同一系统上正确配置安装 CUDA cuDNN #### 一、准备工作 确保操作系统支持CUDAcuDNN。对于Linux系统,建议使用Ubuntu LTS版本;对于Windows系统,则需确认系统的兼容性。 #### 二、安装 NVIDIA 显卡驱动程序 在安装CUDA之前,必须先安装适用于目标硬件的最新版NVIDIA显卡驱动程序[^3]。这一步骤至关重要,因为后续组件依赖于稳定工作的图形设备接口。 #### 三、下载与安装 CUDA Toolkit 访问[NVIDIA官方网站](https://developer.nvidia.com/cuda-downloads),根据操作系统的不同选择合适的安装方式: - **Linux**: 可通过.run文件直接运行安装向导,或利用APT/YUM仓库进行包管理器安装; - **Windows**: 推荐采用官方提供的EXE安装包形式完成部署。 注意,在此过程中可以选择自定义路径来存放CUDA库及相关头文件,但应保持环境变量设置的一致性准确性以便其他应用程序能够顺利调用这些资源[^2]。 #### 四、验证 CUDA 安装成功与否 可以通过执行`nvcc --version`命令查询已安装CUDA编译器版本号,以此判断安装过程是否顺利完成。另外还可以尝试编写简单的测试代码以进一步检验功能完整性。 ```cpp // test_cuda.cu #include <stdio.h> __global__ void helloFromGPU(void){ printf("Hello World from GPU!\n"); } int main(){ printf("Hello World from CPU\n"); helloFromGPU<<<1,1>>>(); cudaDeviceSynchronize(); } ``` 编译上述源码: ```bash $ nvcc -o test_cuda test_cuda.cu ``` 运行生成的目标可执行文件: ```bash $ ./test_cuda ``` 如果一切正常,终端将会打印出来自CPUGPU的信息字符串。 #### 五、获取解压 cuDNN 库 前往[NVIDIA开发者专区](https://developer.nvidia.com/rdp/cudnn-archive)免费注册账号后即可下载对应版本的cuDNN压缩包。按照所使用CUDA版本挑选相匹配的cuDNN发行版,将其放置到合适的位置(通常是CUDA_HOME目录下的子文件夹内),最后更新`.bashrc`或其他shell初始化脚本中的PATH/LD_LIBRARY_PATH等环境变量指向新加入的内容位置。 #### 六、重启计算机使更改生效 为了确保所有修改都能被当前会话识别,建议重新启动机器一次。之后便可通过如下两种手段之一检查cuDNN是否已被正确加载: - 使用Python交互解释器导入tensorflow/pytorch框架内的相关模块; - 或者借助专门设计用于检测深度学习环境中各项参数状态的小型工具如[nvtop](https://github.com/Syllo/nvtop).
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DvLee1024

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值