# 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. ⏭ 提交实验报告 祝实验顺利!