DeepLink-org / deeplink.framework

BSD 3-Clause "New" or "Revised" License
59 stars 28 forks source link

feat(dipu): support ForceFallbackToCPU #929

Closed wiryls closed 3 weeks ago

wiryls commented 2 months ago

当前 PR 包括以下内容:

  1. 更新 DIOPI 使其包含 diopiForceFallbackToCPU 的枚举类型
  2. 部分重构 auto compare 的生成逻辑,使得 fallback 代码能共用 auto compare 的生成逻辑
  3. 新增 fallback cpu 的生成逻辑,包括调用以及拷贝 host tensor 至 device
  4. 重构 to host 的 copy 方法,使其支持大部分 tensor 数组类型,简化生成逻辑
  5. 重新命名 YAML 的参数及类型,包括
    • autocompare: disableenable_autocompare: false (YAML 1.2 中仅 false、true 是合法的 boolean 类型)
    • register_op: Falseregister_operator: false
  6. 新增 YAML 配置参数 enable_fallback_cpu: false,主动禁止生成 fallback cpu 代码
    • 当前实现方式下,有部分算子较难适配自动生成 fallback cpu 代码,因此暂时禁止
  7. 修复部分 bug
    1. YAML 中 schema 错误(漏掉逗号)
    2. 删除了存在类型错误且不再使用的 wrap_diopi_cast_dtype
    3. 新增 TensorList 类型至 tensor array 解析逻辑,使其正确生成 auto compare 代码

注意事项:

wiryls commented 2 months ago

突然想起来还有个问题,这个 PR 包含了一些 Python3.9 的东西,是否需要兼容 3.8?

fandaoyi commented 2 months ago

突然想起来还有个问题,这个 PR 包含了一些 Python3.9 的东西,是否需要兼容 3.8? 需要兼容,但是 ci我记的就是 python 3.8 的?