记录一下。
软硬环境 : ubuntu 16.04, Nvidia GTX 1080Ti *2
查看gpu(需要先安装驱动):nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 384.130 Driver Version: 384.130 |
|-------------------------------+----------------------+----------------------+
| 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:06:00.0 Off | N/A |
| 70% 85C P2 89W / 250W | 9667MiB / 11170MiB | 75% Default |
+-------------------------------+----------------------+----------------------+
| 1 GeForce GTX 108... Off | 00000000:09:00.0 Off | N/A |
| 50% 83C P2 253W / 250W | 5031MiB / 11172MiB | 70% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 1204 C ./build/tools/caffe 9657MiB |
| 1 1204 C ./build/tools/caffe 5021MiB |
+-----------------------------------------------------------------------------+
gpuid:从0开始递增, 我环境里是 0和1
gpu模式: Caffe::set_mode(Caffe::GPU)
gpu选择:Caffe::SetDevice(int gpuid)
此外,上面两条命令 setmode 以及setdevice 在运行后,会自动占用一些显存,所以setdevice 一定是在setmode 之前,不然会默认占用GPUid0的一部分内存。具体原因不明。
此外在多线程下,setdevice 需要特别仔细的检查,每个线程里面设置后一定要归零,调整到想要的gpuid,一不小心就会出错。
此外ffmpeg -loglevel error 可以去掉一些多余的输出。
ps: www.jonaspku.com
不知道放啥好。。。
本文记录了在Ubuntu 16.04系统中,使用Caffe进行多GPU操作的步骤,包括如何查看GPU状态、设置GPU模式以及避免GPU内存分配错误。在Caffe::set_mode(Caffe::GPU)后,需要使用Caffe::SetDevice(int gpuid)指定GPU设备,注意setdevice应在setmode之后,并且在多线程环境下要确保每个线程正确设置GPU ID,防止错误。ffmpeg的-loglevel error选项用于减少不必要的输出。
 多gpu操作函数 及一些坑的记录&spm=1001.2101.3001.5002&articleId=81067526&d=1&t=3&u=e232fc0446564249b81edb0a25be13ba)
1362

被折叠的 条评论
为什么被折叠?



