一般情况下也不会有这种需求, 谁会一台电脑插几张卡的呢? 好巧不巧, 我有....
看到某些博客说在docker下是可以通过--gpu 0
的方式切换GPU的, 于是尝试了下, 果然, launch.py并不支持这个选项, 也根本没有切换GPU的选项
解决方案
注意: 这是N卡的方案, A卡不知道, 因为没A卡!
使用torch支持的CUDA_VISIBLE_DEVICES
参数
编辑launch.py, 在顶部加入如下代码
12 import osos.environ['CUDA_VISIBLE_DEVICES'] = '1'这样就可以指定显卡ID为1的显卡进行推理了
GPT
在 Stable Diffusion 中,可以通过设置 CUDA_VISIBLE_DEVICES 环境变量来指定程序使用的显卡设备。具体来说,您可以在运行 launch.py 脚本之前将该环境变量设置为您想要使用的显卡设备的编号或者编号列表。
以下是一些示例:
如果您只想使用第 0 号显卡,可以执行以下命令:
export CUDA_VISIBLE_DEVICES=0
如果您想同时使用第 0 号和第 1 号显卡,可以执行以下命令:
export CUDA_VISIBLE_DEVICES=0,1
如果您想使用除了第 2 号显卡以外的所有显卡,可以执行以下命令:
export CUDA_VISIBLE_DEVICES=0,1,3,4,5,6,7
设置环境变量后,再运行 launch.py 脚本即可。Stable Diffusion 会自动检测并使用指定的显卡设备进行计算。
大佬,这样配置了,还是只有第一个显卡在运行。。。还有别的地方配置嘛
同时只能用一张卡进行推理,如果你要两张卡都运行,得复制一下跑2个launch.py才行,然后分别指定CUDA_VISIBLE_DEVICES为0和1,我现在就是这样跑的,2个推理进程跑在2个卡上