• Members 1 post
    2026年7月8日 21:02

    作业hw2
    主要围绕 MACA 编程环境的基础使用展开,包括最简单的设备端程序运行、GPU 设备信息查询以及指定设备执行程序。通过 hello.maca,熟悉了 MACA 程序的基本结构和 kernel 启动方式;通过 device_query.maca,学习了如何获取 GPU 设备数量、设备名称、线程与 block 等硬件属性;通过 device_set.maca,掌握了在多设备环境下选择指定 GPU 执行任务的方法。

    作业hw5
    主要学习 MACA 中默认流、多流以及 event 计时机制的使用。通过默认流程序,可以观察任务在同一 stream 中按顺序执行的行为;通过多流程序,可以理解多个 stream 并发执行 kernel 和数据传输的方式;通过 event 计时版本,可以测量不同执行模式下的耗时差异。实验重点在于理解 stream 与 event 的同步关系,以及多流并行对程序性能的影响.

    作业hw6
    printf.maca 展示了如何在设备端 kernel 中使用输出语句辅助调试,并通过 CPU 端校验确认 GPU 计算结果正确;reduce.maca 则实现了数组求和的并行归约过程,对比了较差和较优的 reduction 写法。通过本次实验,可以理解线程块内共享内存、线程同步以及边界处理在 GPU 并行计算中的重要性。

    作业hw7
    主要围绕一个计算任务进行逐步性能优化,从 CPU baseline 开始,逐步迁移到 GPU 并使用不同优化策略提升性能。实验文件从 t5_0.cppt5_5.maca 展示了从普通 CPU 实现、基础 GPU kernel、多 block 并行、warp-level reduction、共享内存优化,到最终调用 mcblas 加速库的优化过程。通过本次作业,可以比较不同实现方式的执行时间,理解 GPU 并行化、内存访问模式、归约优化和库函数调用对整体性能的影响。

    作业hw8
    主要学习多 GPU 编程和 MCCL 通信库的基本使用。vadd_mgpus.maca 实现了将向量加法任务划分到多张 GPU 上并行执行,涉及设备选择、数据切分、异步拷贝、stream 同步和结果合并等内容;mccl_test.maca 则展示了如何使用 MCCL 在多 GPU 之间进行通信和归约操作。通过本次实验,可以理解多 GPU 程序中任务划分、设备同步和跨设备通信的基本流程。

    hw2.png

    PNG, 58.1 KB, uploaded by Silent on 2026年7月8日.

    hw5(1).png

    PNG, 101.7 KB, uploaded by Silent on 2026年7月8日.

    hw5(2).png

    PNG, 115.9 KB, uploaded by Silent on 2026年7月8日.

    hw6.png

    PNG, 88.9 KB, uploaded by Silent on 2026年7月8日.

    hw7.png

    PNG, 40.5 KB, uploaded by Silent on 2026年7月8日.

    hw8.png

    PNG, 21.5 KB, uploaded by Silent on 2026年7月8日.