如何在4xA100服务器上让Ollama充分利用全部GPU?
问题1:让LLaMa3:7b利用全部4个GPU
Ollama默认不会自动启用多GPU,可通过以下两种方式配置:
方式1:临时启用(无需修改模型)
运行模型时直接指定使用的GPU数量,环境变量OLLAMA_NUM_GPUS设为4(或-1自动使用所有可用GPU):
OLLAMA_NUM_GPUS=4 ollama run llama3:7b
方式2:创建多GPU专用模型(永久生效)
- 导出LLaMa3:7b的模型配置文件:
ollama show llama3:7b --modelfile > Modelfile
- 在Modelfile末尾添加一行,指定使用的GPU数量:
NUM_GPUS 4
- 基于修改后的配置创建新模型:
ollama create llama3-7b-multigpu -f Modelfile
- 运行新模型即可自动使用4个GPU:
ollama run llama3-7b-multigpu
注意:确保你的Ollama是最新版本,旧版本可能不支持多GPU,执行
ollama update升级。
问题2:同时运行多端口服务处理批量任务
可以启动多个独立的ollama serve进程,每个进程指定不同的端口和数据目录(避免资源冲突),步骤如下:
- 创建独立的数据目录(每个服务一个):
mkdir -p ~/.ollama/data_port11434 ~/.ollama/data_port11435 ~/.ollama/data_port11436 ~/.ollama/data_port11437
- 分别启动不同端口的服务进程(后台运行):
# 端口11434 nohup OLLAMA_HOST=0.0.0.0:11434 OLLAMA_DATA_DIR=~/.ollama/data_port11434 ollama serve > serve_11434.log 2>&1 & # 端口11435 nohup OLLAMA_HOST=0.0.0.0:11435 OLLAMA_DATA_DIR=~/.ollama/data_port11435 ollama serve > serve_11435.log 2>&1 & # 端口11436 nohup OLLAMA_HOST=0.0.0.0:11436 OLLAMA_DATA_DIR=~/.ollama/data_port11436 ollama serve > serve_11436.log 2>&1 & # 端口11437 nohup OLLAMA_HOST=0.0.0.0:11437 OLLAMA_DATA_DIR=~/.ollama/data_port11437 ollama serve > serve_11437.log 2>&1 &
- 连接对应端口的服务运行模型:
# 连接11434端口的服务 ollama run --host http://localhost:11434 llama3:7b # 连接其他端口同理,替换端口号即可
说明:使用
nohup和后台运行符号&可以让服务在终端关闭后继续运行,日志会输出到对应的serve_*.log文件中;也可以用screen或tmux来管理这些进程。
内容的提问来源于stack exchange,提问作者notilas
相关产品推荐
相关产品推荐

