已关闭
[Question|问题咨询]: 为什么 `*_device.h` 里主要是大量 `using`,真正的循环却在 Kernel 头文件里 #70
ZengZihao创建于  9月17日关闭于  9月17日
ZengZihao
ZengZihao
9月17日 创建

感谢提出问题,我们将安排人答复!
Welcome to ask questions and discuss with other members.

问题描述 / Question Description (Mandatory / 必填)

环境信息 / Environment (Optional / 选填)

已尝试的方法 / Attempts Made (Optional / 选填)

likedislike
Khalil3606成员
9月17日 评论:

收到,已记录;稍后会在此补充分析结果。

likedislike
Khalil3606成员
9月17日 评论:

*_device.h 的任务不是重新实现算法,而是为当前示例选择一套具体组件,例如架构、数据类型、矩阵布局、tile shape、BlockMmad、BlockComm和 Scheduler。它最后把这些类型组合成一个 Kernel:

数据类型和布局

  • 计算策略 BlockMmad
  • 通信策略 BlockComm
  • 两套 Scheduler
    ↓
    具体的融合 Kernel 类型

真正的通用循环放在 include/catccos/**/kernel/ 中,同一份流程便能被不同示例复用。代价是编译错误经常显示很长的模板实例化链,排查时应从最前面的 using 类型逐层确认,而不是只看最后一条报错。

likedislike
KKhalil3606成员
9月17日 将 Khalil3606 设为负责人
KKhalil3606成员
9月17日 issue类型由 任务 改变为 咨询
KKhalil3606成员
9月17日 issue状态由 进行中 改变为 已解决
KKhalil3606成员
9月17日 关闭了 issue