2026-01-21 18:30:58 +08:00

59 lines
2.1 KiB
Bash
Executable File

#!/bin/bash
# Lab4 CUDA 程序实验数据收集脚本
SCRIPT_DIR="$(dirname "$0")"
OUTPUT_DIR="$SCRIPT_DIR/experiment_data"
mkdir -p "$OUTPUT_DIR"
ARCH=$(uname -m)
if [ "$ARCH" == "aarch64" ]; then
BUILD_ARCH="arm64-v8a"
else
BUILD_ARCH="x86_64"
fi
echo "=========================================="
echo "Lab4 CUDA 实验数据收集"
echo "=========================================="
echo "数据输出目录: $OUTPUT_DIR"
echo ""
# 检查 CUDA 设备
echo "检查 CUDA 设备..."
nvidia-smi | tee "$OUTPUT_DIR/gpu_info.txt"
echo ""
# 进入构建目录
# cd "$SCRIPT_DIR/build/linux/$BUILD_ARCH/release" || exit 1
echo "=========================================="
echo "实验 4.2: 向量加法 - 不同数据规模测试"
echo "=========================================="
$SCRIPT_DIR/build/linux/$BUILD_ARCH/release/vectoradd | tee "$OUTPUT_DIR/vectoradd_results.txt"
echo ""
echo "=========================================="
echo "实验 4.3.1: CPU vs GPU 矩阵乘法性能对比"
echo "=========================================="
echo "=== CPU (OpenMP) 不同线程数 ===" | tee -a "$OUTPUT_DIR/matrixmul_comparison.txt"
$SCRIPT_DIR/build/linux/$BUILD_ARCH/release/MatrixMul_cpu | tee -a "$OUTPUT_DIR/matrixmul_comparison.txt"
echo ""
echo "=== CUDA Kernel1 (基础版本) ===" | tee -a "$OUTPUT_DIR/matrixmul_comparison.txt"
$SCRIPT_DIR/build/linux/$BUILD_ARCH/release/MatrixMul_kernel1 | tee -a "$OUTPUT_DIR/matrixmul_comparison.txt"
echo ""
echo "=== CUDA Kernel2 (共享内存优化) ===" | tee -a "$OUTPUT_DIR/matrixmul_comparison.txt"
$SCRIPT_DIR/build/linux/$BUILD_ARCH/release/MatrixMul_kernel2 | tee -a "$OUTPUT_DIR/matrixmul_comparison.txt"
echo ""
echo "=========================================="
echo "实验 4.3.2: 不同 BLOCK_SIZE 对性能的影响"
echo "=========================================="
$SCRIPT_DIR/build/linux/$BUILD_ARCH/release/matrixmultiply_block_size_change | tee "$OUTPUT_DIR/blocksize_analysis.txt"
echo ""
echo "=========================================="
echo "实验数据收集完成!"
echo "数据保存在: $OUTPUT_DIR"
echo "=========================================="