Frank J
Frank J
修复了 [torch compile 对接 oneflow backend,跑 resnet50 会卡死](https://github.com/Oneflow-Inc/OneTeam/issues/2193)问题
1. 将`freeze()`拆成`reuse_qparam()`和`freeze()`,前者复用`qparam`,后者负责提前计算。这样做的优点是每次推理的时候免除了`freeze()`部分的计算(例如`M`),缺点是部分`qparam`被重复保存。 2. 统一`buffer`被保存的`shape`为`torch.Size([])`,避免`M`读取时的类型冲突。 3. 添加了一些操作,非常粗糙地模拟32位定点数乘法。 4. 修复了`QReLU`和`QMaxPooling2d`会多存一个`qo`的bug。
给 graph 增加了 folder tensor map 这个结构,包含了所有经由 folder op 做的优化 pass 的输入输出 tensor 的名字,以及可以用来做等价计算的函数。 这个特征的应用场景是,在 sd 模型中,存在两个权重不同,但结构完全一样的 unet ,在第一次编译完以后,第二次加载不同的权重,可以手动计算图优化以后的权重,而不是再做一次图编译,节省时间。
oneflow backend 对接 torch compile ,在关闭和打开动态形状的时候,跑通了 faster rcnn 和 sd 模型。相关 issue: [oneflow backend 对接 torch compile ,运行 faster rcnn](https://github.com/Oneflow-Inc/oneflow/issues/10438) 主要改动包括: 1. 修复 oneflow 模型转 torch 模型时, 部分 torch.nn.functional.func 转换失败的...
### Description 记录开发调试过程和遇到的问题。