目的:使用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和 device1
CUDA_VISIBLE_DEVICES="0,1" // 同上, 仅使用device 0和 device1
CUDA_VISIBLE_DEVICES=0,2,3 // 仅使用device 0, device2和device3
CUDA_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]指向d