一. 读卡规则
当服务器有多个GPU时,设置CUDA_VISIBLE_DEVICES 环境变量可以改变CUDA程序所能使用的GPU设备。在默认情况下,标号为0的显卡为主卡,如主机中有4块显卡,那么每张显卡的默认标号为[0,1,2,3]。多卡设置规则如下:
Environment Variable Syntax | Results |
CUDA_VISIBLE_DEVICES=1 | Only device 1 will be seen |
CUDA_VISIBLE_DEVICES=0,1 | Devices 0 and 1 will be visible |
CUDA_VISIBLE_DEVICES="0,1" | Same as above, quotation marks are optiona |
CUDA_VISIBLE_DEVICES=0,2,3 | lDevices 0, 2, 3 will be visible;device 1 is masked |
CUDA应用运行时,CUDA将遍历当前可见的设备,并从零开始为可见设备编号。第一种情况,卡1设置为主卡,但CUDA遍历时会设置为可见编号0。最后一种情况,设备0,2,3将显示为设备0,1,2。如果将字符串的顺序更改为“2,3,0”,则设备2,3,0将分别被设置为0,1,2。如果为CUDA_VISIBLE_DEVICES 设置了不存在的设备,所有实际设备将被隐