博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
目的:使用CUDA环境变量CUDA_VISIBLE_DEVICES来限定CUDA程序所能使用的GPU设备
阅读量:2252 次
发布时间:2019-05-09

本文共 1163 字,大约阅读时间需要 3 分钟。

目的:使用CUDA环境变量CUDA_VISIBLE_DEVICES来限定CUDA程序所能使用的GPU设备

环境:

系统:Win10环境:Opencv3.4.0/4.1.0显卡:1080ti

问题

实际项目中使用了一个GPU程序,在双卡1080ti机器上运行,程序会自动搜寻并使用0号和1号GPU卡。性能测试要求程序只运行在一张GPU卡上,但程序没有参数设置GPU的地方。

解决方式

采取CUDA环境变量CUDA_VISIBLE_DEVICES来限定程序运行的GPU设备解决问题

// CUDA_VISIBLE_DEVICES设置说明,设置device对程序可见CUDA_VISIBLE_DEVICES=1       // 仅使用device1 (即卡一)CUDA_VISIBLE_DEVICES=0,1     // 仅使用device 0和 device1CUDA_VISIBLE_DEVICES="0,1"	 // 同上, 仅使用device 0和 device1CUDA_VISIBLE_DEVICES=0,2,3   // 仅使用device 0, device2和device3CUDA_VISIBLE_DEVICES=2,0,3   // 仅使用device0, device2和device3#那么最后两条的区别是什么呢?CUDA_VISIBLE_DEVICES后面的参数依次是设置gpu[0],gpu[1], gpu[2]...等的device编号。所以区别在于: 0,2,3意思是gpu[0]指向device0, gpu[1], 指向devcie2, gpu[2]指向device3;而2,0,3意思是gpu[0]指向device2, gpu[1], 指向devcie0, gpu[2]指向device3;再举例说明,如果当前主机有5张显卡,默认情况下5个device对程序都可以见,默认排序device0 - 4。如果现在我们只希望使用第一张和第三张显卡,并且程序代码里看到的分别对应0,1。那么设置应该如下:CUDA_VISIBLE_DEVICES=0,2

上述设置参数含义应该已经明晰了,那么下面说明两种设置生效方法:

  1. 永久设置, 在环境变量中设置

linux环境:

vim ~/.bash.rc,在最后添加上CUDA_VISIBLE_DEVICES=0,2
然后source ~/.bash.rc使之生效即可。

windows环境:

直接添加CUDA_VISIBLE_DEVICES=0,2进环境变量

  1. 临时设置,在程序启动脚本中添加:

linuxa环境:

export CUDA_VISIBLE_DEVICES=0,2

windows环境:

set CUDA_VISIBLE_DEVICES=0,2


转载地址:http://umodb.baihongyu.com/

你可能感兴趣的文章
saltstack 常用模块
查看>>
扫描工具对比
查看>>
细说SQL Server数据类型
查看>>
利用vagrant创建多个测试虚机
查看>>
连接、空间连接与关联
查看>>
云主机搭建Kubernetes 1.10集群
查看>>
VirtualBox下安装Ubuntu Server 16.04
查看>>
会话技术( Cookie ,Session)
查看>>
Android环境开发配置
查看>>
什么时候使用CountDownLatch
查看>>
ACM(数学问题)——UVa202:输入整数a和b(0≤a≤3000,1≤b≤3000),输出a/b的循环小数表示以及循环节长度。...
查看>>
【转】Android 读取doc文件
查看>>
P2602 [ZJOI2010]数字计数 (数位dp or 思维)
查看>>
C# 访问 C DLL
查看>>
Matlab与方程组
查看>>
NYOJ 477
查看>>
华为、科达、海康、大华等厂家摄像头通过非标方式(RTSP)接入流媒体服务实现WEB直播与录像...
查看>>
OSPF笔记
查看>>
PHP之abstract
查看>>
你好,mysql
查看>>