hpc-lab-code/lab4/QUICKSTART.md
2026-01-21 18:02:30 +08:00

146 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Lab4 快速开始指南
## 一、编译程序
```bash
cd /home/yly/dev/hpc-lab-code/lab4
xmake
```
## 二、运行实验并收集数据
```bash
./lab4.sh
```
这将:
1. 检查 GPU 信息
2. 运行所有 CUDA 程序
3. 将结果保存到 `experiment_data/` 目录
## 三、生成图表 (可选)
### 安装依赖
```bash
pip install matplotlib numpy
```
### 运行绘图脚本
```bash
./plot_results.py
```
图表将保存到 `experiment_data/figures/` 目录
## 四、查看实验数据
所有数据文件位于 `experiment_data/`:
- `gpu_info.txt` - GPU 硬件信息
- `vectoradd_results.txt` - 向量加法测试结果
- `matrixmul_comparison.txt` - CPU vs GPU 对比数据
- `blocksize_analysis.txt` - BLOCK_SIZE 分析数据
## 五、填写实验报告
参考 `实验报告模板.md`,其中包含:
- 所有思考题的详细解答
- 需要填写的性能数据表格
- 图表分析指导
## 文件说明
### 源代码
- `vectoradd.cu` - 向量加法 (实验 4.2)
- `MatrixMul_cpu.cu` - CPU OpenMP 矩阵乘法
- `MatrixMul_kernel1.cu` - CUDA 基础版本
- `MatrixMul_kernel2.cu` - CUDA 共享内存优化
- `matrixmultiply_block_size_change.cu` - BLOCK_SIZE 性能测试
### 脚本和配置
- `xmake.lua` - 构建配置
- `lab4.sh` - 实验数据收集脚本
- `plot_results.py` - 自动生成图表
- `README.md` - 详细实验说明
- `实验报告模板.md` - 报告模板
## 常见问题
### Q: 编译失败,提示找不到 CUDA
A: 确保 CUDA 已安装,并设置环境变量:
```bash
export CUDA_HOME=/usr/local/cuda
export PATH=$CUDA_HOME/bin:$PATH
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
```
### Q: 运行时提示 "no CUDA-capable device is detected"
A: 检查 GPU 驱动:
```bash
nvidia-smi
```
### Q: Python 脚本运行失败
A: 安装必要的依赖:
```bash
pip install matplotlib numpy
```
### Q: 想单独运行某个程序
A:
```bash
cd build/linux/x86_64/release
./vectoradd
./MatrixMul_cpu
./MatrixMul_kernel1
./MatrixMul_kernel2
./matrixmultiply_block_size_change
```
## 实验报告要点
### 必须回答的问题
**思考题**:
1. Kernel1 的数据划分策略
2. Kernel2 的优化策略和线程同步的必要性
3. Kernel2 的进一步优化空间
**实验数据**:
- 向量加法: 数据规模 vs 时间
- 矩阵乘法: CPU vs GPU 性能对比
- BLOCK_SIZE: 对性能的影响
**图表**:
- 使用 `plot_results.py` 自动生成
- 或手动使用 Excel/Python/matplotlib
### 性能分析要点
**加速比计算**:
```
加速比 = 基准时间 / 优化后时间
```
**FLOPS 计算**:
```
矩阵乘法: 2 × M × N × K 次浮点运算
GFLOPS = 运算次数 / (时间秒 × 10^9)
```
**关键指标**:
- 运行时间 (ms)
- GFLOPS (计算性能)
- 加速比 (相对提升)
- 带宽利用率
## 下一步
1. ✓ 编译程序
2. ✓ 运行实验
3. ✓ 生成图表
4. ⏭ 填写实验报告模板
5. ⏭ 分析数据并得出结论
6. ⏭ 提交实验报告
祝实验顺利!