Skip to content

Commit 4919ede

Browse files
authored
Merge pull request #105 from excniesNIED/master
fix: 更新了项目三
2 parents 183a0f4 + 25fb7b2 commit 4919ede

File tree

1 file changed

+38
-16
lines changed

1 file changed

+38
-16
lines changed

docs/orientation/2025/2025-aec-03-docker.md

Lines changed: 38 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@
1717

1818
1. 考虑到大模型对硬件资源,特别是显存(VRAM)的高要求。普通游戏本基本满足部署 7B(70 亿参数)级别模型所需的基本显存,但是想要更快的推理速度,**推荐使用配备有高性能 NVIDIA 显卡的个人电脑(或者搭载 M 系列处理器的苹果电脑)或 GPU 服务器来完成此项目**
1919
2. 目前 Docker 国内镜像源无法正常使用,慎选。有条件的同学请自行了解如何使用科学上网。
20-
3. 想要通过考核,你至少要完成 **Level 4**。考核说明和提交要求详见:[https://sdnuroboticsailab.github.io/others/2025-autumn-engineering-challenges/](https://sdnuroboticsailab.github.io/others/2025-autumn-engineering-challenges/)
20+
3. 所有给出的脚本均**作为参考**,请根据实际情况进行调整。
21+
4. 想要通过考核,你至少要完成 **Level 4**。考核说明和提交要求详见:[https://sdnuroboticsailab.github.io/others/2025-autumn-engineering-challenges/](https://sdnuroboticsailab.github.io/others/2025-autumn-engineering-challenges/)
2122

2223
## Level 0: 认识核心工具链
2324

@@ -117,7 +118,7 @@ WORKDIR /app
117118
COPY requirements.txt .
118119

119120
# 安装依赖 - 就像安装软件
120-
RUN pip install --no-cache-dir -r requirements.txt
121+
RUN pip install flask
121122

122123
# 复制应用代码
123124
COPY app.py .
@@ -156,7 +157,7 @@ CMD ["python", "app.py"]
156157

157158
### 任务目标:
158159

159-
1. 安装NVIDIA驱动和CUDA(如果尚未安装)
160+
1. 安装NVIDIA驱动和CUDA(如果尚未安装),CUDA版本推荐12.4-12.6。
160161
2. 配置NVIDIA Container Toolkit
161162
3. 验证Docker容器可以访问GPU
162163

@@ -177,24 +178,28 @@ flowchart LR
177178
nvidia-smi
178179

179180
# 2. 安装NVIDIA Container Toolkit
180-
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
181-
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
182-
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
181+
sudo apt-get update
182+
sudo apt-get install -y curl
183+
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
184+
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
185+
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
186+
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
183187

184188
sudo apt-get update
185189
sudo apt-get install -y nvidia-container-toolkit
186190

187191
# 3. 重启Docker
192+
sudo nvidia-ctk runtime configure --runtime=docker
188193
sudo systemctl restart docker
189194

190-
# 4. 测试GPU访问
191-
docker run --rm --gpus all nvidia/cuda:11.8.0-base-ubuntu22.04 nvidia-smi
195+
# 4. 测试GPU访问,注意请根据实际CUDA版本进行测试
196+
docker run --rm --gpus all nvidia/cuda:12.6.0-base-ubuntu24.04 nvidia-smi
192197
```
193198

194199
### 创建GPU测试Dockerfile:
195200

196201
```dockerfile
197-
FROM nvidia/cuda:11.8.0-cudnn8-runtime-ubuntu22.04
202+
FROM nvidia/cuda:12.6.0-base-ubuntu24.04 nvidia-smi
198203

199204
RUN apt-get update && apt-get install -y python3 python3-pip
200205

@@ -207,35 +212,52 @@ WORKDIR /app
207212
CMD ["python3", "gpu_test.py"]
208213
```
209214

215+
请自行编写 `gpu_test.py`。测试内容包括但不限于:
216+
217+
- 是否正常运行
218+
219+
- torch 是否可以检测到 CUDA 和正确的 GPU 数量
220+
```python
221+
# 参考脚本
222+
import torch
223+
224+
print(f"torch.cuda.is_available(): {torch.cuda.is_available()}")
225+
print(f"torch.cuda.device_count(): {torch.cuda.device_count()}")
226+
print(f"os.environ['CUDA_VISIBLE_DEVICES']: {os.environ['CUDA_VISIBLE_DEVICES']}")
227+
```
228+
229+
- 进行简单的张量创建和移动、矩阵运算等,检测是否成功。
230+
210231
### 提交截图:
211232

212-
- `nvidia-smi` 命令在容器内正常运行
213-
- PyTorch能够检测到GPU设备
214-
- 显示正确的GPU型号和显存信息
233+
- `nvidia-smi``nvcc -V` 命令在容器内正常运行
234+
- 测试脚本`gpu_test.py`
235+
- 测试结果,比如PyTorch能够检测到GPU设备,显示正确的GPU型号和显存信息等
215236

216237
### 参考文档:
217238

218239
- NVIDIA Container Toolkit安装:[Installation Guide — NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html)
219240
- Docker GPU支持:[GPU support | Docker Docs](https://docs.docker.com/config/containers/resource_constraints/#gpu)
220241
- CUDA兼容性:[CUDA Compatibility :: NVIDIA Data Center GPU Driver Documentation](https://docs.nvidia.com/deploy/cuda-compatibility/)
242+
- WSL2+Docker配置CUDA环境:[https://blog.csdn.net/m0_63070489/category_12565087.html](https://blog.csdn.net/m0_63070489/category_12565087.html)
221243

222244
!!! note "笔记"
223245

224246
如果没有NVIDIA GPU,可以跳过此步骤,但后续模型推理速度会明显降低。Apple Silicon Mac用户可以使用Metal Performance Shaders (MPS) 作为替代。
225247

226248
## Level 3:使用Docker部署vLLM推理服务
227249

228-
现在让我们部署vLLM —— 这个为大语言模型而生的高性能推理引擎!vLLM的PagedAttention技术能够让模型推理速度提升2-4倍。
250+
现在让我们部署vLLM —— 这个为大语言模型而生的高性能推理引擎!vLLM的 PagedAttention 技术能够让模型推理速度提升2-4倍。
229251

230252
### 任务目标:
231253

232-
1. 使用Docker部署vLLM服务
233-
2. 测试vLLM的OpenAI兼容API
254+
1. 使用 Docker 部署 vLLM 服务
255+
2. 测试 vLLM 的 OpenAI 兼容API
234256

235257
### 创建vLLM服务的Dockerfile:
236258

237259
```dockerfile
238-
FROM nvidia/cuda:11.8.0-cudnn8-runtime-ubuntu22.04
260+
FROM nvidia/cuda:12.6.0-base-ubuntu24.04 nvidia-smi
239261

240262
# 安装Python和必要的系统依赖
241263
RUN apt-get update && apt-get install -y \

0 commit comments

Comments
 (0)