megemini
megemini
【报名】:13
@WintersMontagne10335 貌似编译出错了 ``` shell /home/shun/Documents/Projects/paddle/megemini/Paddle/paddle/fluid/pir/dialect/operator/interface/infer_symbolic_shape/nullary_infer_sym.cc: In function ‘bool paddle::dialect::GaussianOpInferSymbolicShape(pir::Operation*, pir::InferSymbolicShapeContext*)’: /home/shun/Documents/Projects/paddle/megemini/Paddle/paddle/fluid/pir/dialect/operator/interface/infer_symbolic_shape/nullary_infer_sym.cc:297:9: error: ‘shape_analysis’ was not declared in this scope 297 | shape_analysis->GetShapeOrDataForValue(operand_source); | ^~~~~~~~~~~~~~ make[2]: *** [paddle/fluid/pir/dialect/CMakeFiles/op_dialect.dir/build.make:202: paddle/fluid/pir/dialect/CMakeFiles/op_dialect.dir/operator/interface/infer_symbolic_shape/nullary_infer_sym.cc.o] Error 1...
### Update 20240505 `gen_tensor_stub.py` 利用模板 `tensor.pyi.in` 生成 `tensor.pyi` ~ 这里参考 https://github.com/PaddlePaddle/Paddle/pull/50211 中的方法,主要不同: - 利用模板,而不是直接生成 stub 文件 主要逻辑为:在模板中插入 api (signature & docstring),或 api 的 docstring (仅有 signature 没有 docstring 的 api),如果...
### Update 20240505 将 mypy 的检查引入 `PR-CI-Static-Check`,通过修改 api 的 annotation 可以触发 mypy 检查 ~ 这里需要 - python/paddle/py.typed - python/setup.py.in - setup.py` 配合检查 ~ math.py 中修改两个 api - scale,只修改了 return 的...
> 在 CI 标题里加 `[typing_checking=all]`(后缀形式),则检查全部示例文档 > 嗯,确实需要,torch 是把所有示例代码抓出来测试的 ~ 这个任务可以放到 `代码标注` 完成之后,目前 `get_docstring` 可以获取全量 docstring,在 CI 里面加个标记,然后脚本执行的时候把 `full_test=True` 代进去应该就可以~ ``` python def get_docstring(full_test=False): ''' this function will get the docstring...
> 其实之前就发现一个体验比较差的问题就是,log 太多了,包括示例代码检查,对于大多数工具来说,默认行为是如果 success,那么是静默的,不会在成功的那些 case 上打印过多 log(除非开 --verbose),只有 fail 才会打印详细日志,对于这一点来说我们的日志对于用户是不友好的,之前示例代码还好些吧,加上类型检查就不太可读了,这个可以之后专门优化一下(体验优化,单独 PR) 现在脚本里是用的 debug,比如 : `python sampcd_processor.py --debug --mode cpu; example_error=$?`,所以日志比较多 ~ 最早之前就这么写,所以示例代码和 type checking 沿用了 ~ 那么,去掉 debug? 另外,关于全量 docstring...
> 另外话说这个是否可以放到根目录的 `pyproject.toml` 呢?现代 python 工具大多配置是放在 `pyproject.toml` 里的 可以啊 ~ 我试试看 ~
> 嗯嗯,不过之后是否有一些情况确实需要禁用掉呢?就像我上面说的「因为大概率,我们总有一些就是需要禁掉的」,是否有方式灵活禁用某些 case 呢?(比如 cpplint 的 `// NOLINT`、ruff 的 `# noqa`) > 用 ` # type: ignore` ?比如: ``` python import paddle a = paddle.aaa # type: ignore ``` 如果不写...
@cxxly 昨晚我提交的时候,本地测试是通过的,结果中间 merge 了一下,单测就出问题了,精度的问题 ... ... 您那边有了解到 op_test 有什么变化吗? 但是上面这段对比 PyTorch 的代码没啥问题 ... ... ``` python ------ optimizer is : NAdam ------ ------ compare cpu ------ ------- compare finish ---------...
> 我看 merge 前的commit [2752082](https://github.com/PaddlePaddle/Paddle/commit/2752082963dad54d8777727c6d481b8d2e664112) CI也木有过。昨天晚上只合入了迁移单测目录的PR,应该木有影响 那个 CI 没有跑完,因为提示有 conflict,所以我中间又 merge 了一下 ~ merge 之前我本地是通过的,merge 之后就出问题了 ~ 刚才定位了一下,好像是 op_test 的逻辑有问题,比如,测试用例里面 `nadam_step` 是使用 numpy 模拟算子,这里应该只走了 `1` 步,但是,merge 之后,op_test 好像是走了 `2` 步,所以出问题了...