ti.ad.Tape()性能问题

我结合了mpm128和mpm_lagrangian_forces实现了一个支持用户交互的模拟器demo,

  • 演示视频:【AI东雪莲】基于MPM和有限元的实时渲染力学模拟器_哔哩哔哩_bilibili
  • 项目链接:Cheng Guo / FesicsSimulator · GitLab
    我在引入mpm_lagrangian_forces中的Neo-Hookean超弹性模型对网格求导后发现with ti.ad.Tape(total_energy)大幅度降低性能,即使没有创建任何lagrangian的有限元网格(用户可以自由创建和删除各种材料的粒子),依然比加入该代码前降低约20-50%的帧数,启用if条件跳过with代码块也无效。
    我想知道降低性能的具体原因,或者不使用taichi自动求导,直接对位移求导的方案,谢谢!