allgather_matmul_remote_read

该样例用于验证 allgather_matmul 的远端读模式。

当前样例支持两个 kernel 变体:

ALLGATHER_MATMUL_REMOTE_READ_LOCAL_MM_OPT=1
    调用 allgather_matmul_with_remote_read_local_mm_opt.hpp。
    本 rank 的 A * B 直接从 gmA 计算,其他 rank 的 A 通过 remote get 进入 gmSymmetric 后计算。

ALLGATHER_MATMUL_REMOTE_READ_LOCAL_MM_OPT=0
    默认值。
    调用 allgather_matmul_with_remote_read.hpp。
    所有 rank 的 A 都通过 remote get 进入 gmSymmetric 后计算。

编译算子样例

进入样例目录:

cd examples/allgather_matmul_remote_read

默认编译基础 remote-read 变体:

bash scripts/build.sh

等价于:

bash scripts/build.sh -DALLGATHER_MATMUL_REMOTE_READ_LOCAL_MM_OPT=0

如果要编译 remote-read + local_mm_opt 变体:

bash scripts/build.sh -DALLGATHER_MATMUL_REMOTE_READ_LOCAL_MM_OPT=1

构建时宏会通过如下链路传入 C++:

命令行 -DALLGATHER_MATMUL_REMOTE_READ_LOCAL_MM_OPT
    -> scripts/build.sh
    -> cmake configure
    -> CMakeLists.txt COMPILE_DEFINITIONS
    -> allgather_matmul_remote_read_device.h

执行算子样例

在样例目录下执行:

bash scripts/run.sh <device_list>

示例:

bash scripts/run.sh 6,7

运行时会打印当前宏值:

[TEST] ALLGATHER_MATMUL_REMOTE_READ_LOCAL_MM_OPT: 0

其中:

1 表示 remote-read + local_mm_opt
0 表示基础 remote-read

出现如下执行结果,说明算子运行成功,精度比较通过:

error num: 0
PASS

测试矩阵形状可以在 scripts/test_shapes.csv 中修改。