登录
注册
开源
企业版
高校版
搜索
帮助中心
使用条款
关于我们
开源
企业版
高校版
私有云
模力方舟
登录
注册
就在本周六,成都站 Gitee Talk | 模力方舟 AI 应用开发沙龙抢占最后席位!聚焦 AI 开发全链路,结识技术同频人~
代码拉取完成,页面将自动刷新
开源项目
>
人工智能
>
AI-人工智能
&&
捐赠
捐赠前请先登录
取消
前往登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
Watch
不关注
关注所有动态
仅关注版本发行动态
关注但不提醒动态
220
Star
944
Fork
693
GVP
MindSpore
/
mindscience
代码
Issues
21
Pull Requests
16
Wiki
统计
流水线
服务
JavaDoc
PHPDoc
质量分析
Jenkins for Gitee
腾讯云托管
腾讯云 Serverless
悬镜安全
阿里云 SAE
Codeblitz
SBOM
我知道了,不再自动展开
更新失败,请稍后重试!
移除标识
内容风险标识
本任务被
标识为内容中包含有代码安全 Bug 、隐私泄露等敏感信息,仓库外成员不可访问
MindSpore Science V1 Architecture upgrade
置顶
TODO
#ICKA60
RFC
hsliu_ustc
成员
创建于
2025-07-06 16:05
### Backgroud(背景信息) In the past 3 years, the MindSpore AI4S team has released many domain AI4S toolkits such as MindFlow for fluid dynamics, MindEarth for weather and climate prediction and MindSPONGE for Molecule Dynamics and Computational Bios. These independent packages have brought many tech debts and become a bottleneck when we need to upgrade our version in pair with MindSpore. Some clear problems are as follows: 1. MindSpore Science does not release a package for all domains which brings difficulty for package maintainance. 1. These independent packages depend on different MindSpore versions (horrible). 1. There are some redundant copies of some python files across several domain toolkits, e.g., MindFlow and MindElec share the same PINNs arch, MindFlow and MindEarth share the same Neural Opertors files. and many more... ### Origin(信息来源) The developers and users of MindSpore Science toolkits has provides many questions regarding our codes and archs. The MindSpore Science team also noticed this problem since last year. Now it's time to deprecate the old MindSpore Science arch and move to MindSpore Science V1. ### Benefit / Necessity (价值/作用) 1. Unified AI4S API for all applications 1. Faster adaptation to latest MindSpore 1. Easier to support training, inference and serving for all applications 1. Easier for developers and users to work on/with MindSpore Science 1. Unified tests for all APIs ### Design(设计方案) We will update our design in an individual document under br_refactor, please check it later. The main design (discussed with deepwiki.com) is MindSpore Science will release an independent wheel to support all domain applications, i.e., Fluid Dynamics, Climate and Weather prediction, Energy, molecule dynamics and computational bios ... The previous release for individual domains will be deprecated and all domain applications or examples will use the unified AI4S API under MindSpore Science core arch. #### Top-level Design objective Provide a unified ai-for-science deep-learning framework with optimal performance, high scalability, and flexibility. - Unified foundation: We extract several major modules such as `sciops`, `models`, `data`, `sharker`, `e3nn` and `common` to reduce repeated development and maintenance. - Focus on application fields:Scientific suites only need to focus on applications. - Flexible Expansion:We implement the major functions such as mixed precision, parallel strategy and performance monitor. All these modules and functions can be assembled freely. - Ecological compatibility:Integrate deeply with MindSpore framework and Ascend hardward so we can utilize major features such as graph optimization and auto parallel. #### Architecutre design  The core framework of the MindScience suite is `MindScience-Core`; above `MindScience-Core` sit domain suites such as MindFlow, MindEarth, etc. - **Note**: the `gnn` and `e3nn` libraries encompass data interfaces/networks and are sizable, so treating them as independent modules under unified development and management is more reasonable and aligns with industry practice. - The bottom layer of the `MindScience-Core` framework is the `speed` acceleration module, which comprises `sciops` and `distributed`. - The `sciops` directory contains two parts, distinct from the mindspore ops library, used as `from mindscience import sciops`. - - It connects to the custom operator interface of the `speed` module .so file, corresponding to the ccsrc directory; AscendC is used to implement low-level accelerated operators such as `evoformer_attn`, `einsum`, etc.; the closed-source code is released as a .so file. - - The Python operator interface refers to operators developed in Python, such as automatic differentiation, dft, Einsum, etc. - `distributed` is the parallel acceleration module, providing common parallel interfaces in scientific computing, including DP/OP/TP/PP and other features. - The `gnn` module contains graph data interfaces and commonly used GNN networks. - The `pde` module contains PINNs network interfaces. - The `e3nn` module contains equivariant computing data interfaces and network layers. - `models` is the general model library, containing models such as `transformer`, `diffusion`, `FNO`, etc. - `data` is the data interface module; under the `data` directory, subdirectories are divided by suite, e.g., `elec` contains general datasets for the electromagnetics domain, `flow` contains general datasets for the fluid domain, and `earth` contains general datasets for the meteorology domain. - `solvers` is the solver module, containing interfaces such as `CFD`, `CBS`, etc. - `common` is the general interface module, containing general interfaces such as `optimizer`, `scheduler`, `math`, `loss`, etc. - `utils` is the utility module, containing utility interfaces such as the logging module, file reading interfaces, etc. `tests` is the testing module, containing UT and ST cases for the framework; most are UT cases. Due to gate restrictions on case duration, end-to-end ST cases are mainly maintained locally. #### Directory design ```bash mindscience/ ├── docs/ # 统一文档 │ ├── architecture/ # 软件架构 │ ├── feature/ # 特性文档 ├── cmake/ # 编译配置 ├── setup.py # 版本依赖 ├── build.sh # 编译脚本 ├── docker/ # docker配置 │ ├── Dockerfile ├── mindscience/ │ ├── common/ # 通用基础模块 │ │ ├── schedulers # Learning rate schedulers │ │ ├── geometry # 统一物理层接口 │ │ │ ├── primitives_1d/ # Interval │ │ │ ├── primitives_2d/ # Rectangle, Disk, Triangle, Polygon │ │ │ ├── primitives_3d/ # Cuboid, Cylinder, Cone, Tetrahedron │ │ │ ├── primitives_nd/ # HyperCube, FixedPoint │ │ ├── optimizers/ # 优化器(如LBFGS/PINNs优化器,AdaHessian二阶优化器) │ │ ├── metrics/ # 领域指标 │ │ │ ├── fid.py │ │ │ ├── accuracy │ │ ├── losses/ # 损失函数(L2、物理约束损失) │ ├── data/ # 通用数据集模块 │ │ ├── elec/ # 通用电磁数据接口 │ │ ├── earth/ # 通用气象数据接口 │ │ ├── flow/ # 通用流体数据接口 │ ├── ccsrc/ # 底层算子文件 │ │ ├── api/ # api实现 │ │ │ ├── python/ # 链接代码 │ │ │ ├── so/ # 预编译so文件 │ │ ├── include/ # 预编译so文件 │ │ ├── CMakeLists.txt # CMAKE │ ├── sciops/ # 通用算子库(加速算子、融合算子等) │ │ ├── einsum.py # einsum实现 │ │ ├── differential.py # gradient, divergence │ │ ├── evoformer_attention.py # evoformer实现 │ │ ├── dft.py # DFT实现 │ ├── gnn/ # GNN模型库 │ │ ├── graph.py # 图数据接口 │ │ ├── gat.py │ │ ├── gcn.py │ ├── e3nn/ # 等变计算库 │ │ ├── equivariant.py # 等变网络层 │ │ ├── irreps.py # 不可约表示(Irreps)定义 │ ├── pde/ # PINNS库 │ │ ├── pde_node.py # PDE定义 │ │ ├── pde_loss.py # PDE类实现 │ ├── models/ # 跨领域可复用基础神经网络模块 │ │ ├── neural_operator/ # 通用神经算子库 │ │ │ ├── fno.py │ │ │ ├── kno.py │ │ │ └── sno.py │ │ ├── transformer/ # transformer模型 │ │ │ ├── attention.py # 自注意力网络层 │ │ │ ├── ViT.py # ViT │ │ │ ├── DiT.py # DiT │ │ ├── diffuser/ # 扩散模型 │ │ │ ├── ddpm.py/ # DDPM扩散模型 │ │ │ ├── ddim.py/ # DDIM扩散模型 │ │ ├── layers/ # 扩散模型 │ │ │ ├── mlp.py # MLP │ │ │ ├── kan.py # KAN │ │ │ ├── siren.py # siren │ │ ├── PDEFormer/ │ │ ├── GraphCast/ │ │ └── pangu/ │ ├── solvers/ # 通用求解器框架 │ │ ├── base_solver.py # Solver抽象基类 │ │ ├── cbs.py │ │ ├── cfd.py │ │ ├── fdtd.py │ │ └── ... # 通用求解策略(如迭代求解、自适应步长) │ ├── utils/ # 统一工具API入口 │ │ ├── logging/ # 日志 │ │ ├── config/ │ │ ├── visualization/ # 画图 │ │ ├── io/ # IO │ │ ├── config.py # 配置管理 │ │ └── export.py # 模型导出工具(ONNX、MindIR) │ ├── constants.py # 常量 │ │ ├── mindflow/ # 计算流体动力学套件 │ ├── utils/ # 领域模型(如PINNs、FNO) │ ├── applications/ # 应用案例(圆柱绕流、湍流模拟) │ │ ├──src/ # 案例源文件 │ │ ├──train.py # 训练脚本 │ └── ... # 领域特定工具(如边界条件生成) │ │ ├── mindelec/ # 计算电磁套件 │ ├── utils/ # 电磁模型 │ ├── applications/ │ │ ├──src/ # 案例源文件 │ │ ├──train.py # 训练脚本 │ └── ... │ │ ├── mindchemistry/ # 计算化学套件 │ ├── utils/ # 化学模型 │ ├── applications/ │ │ ├──src/ # 案例源文件 │ │ ├──train.py # 训练脚本 │ └── ... │ ├── owner │ ├── tests/ # 分层测试 │ ├── utils/ # 辅助函数 │ ├── ut/ # 单元测试用例 │ │ ├── common/ # 通用接口 │ │ ├── data/ # 数据接口 │ │ ├── sciops/ # 底层算子 │ │ ├── models/ # 模型库 │ │ ├── solvers/ # 求解器 │ │ ├── e3nn/ # 等变计算库 │ │ ├── gnn/ # GNN │ │ ├── pde/ # pinns │ │ ├── distributed/ # 并行策略 │ │ ├── utils/ # 工具 │ ├── st/ # ST测试用例 │ │ ├── sciops/ # 底层算子 │ │ ├── models/ # 模型库 │ │ ├── solvers/ # 求解器 │ │ ├── e3nn/ # 等变计算库 │ │ ├── gnn/ # GNN │ │ ├── pde/ # pinns │ │ ├── distributed/ # 并行策略 ```
### Backgroud(背景信息) In the past 3 years, the MindSpore AI4S team has released many domain AI4S toolkits such as MindFlow for fluid dynamics, MindEarth for weather and climate prediction and MindSPONGE for Molecule Dynamics and Computational Bios. These independent packages have brought many tech debts and become a bottleneck when we need to upgrade our version in pair with MindSpore. Some clear problems are as follows: 1. MindSpore Science does not release a package for all domains which brings difficulty for package maintainance. 1. These independent packages depend on different MindSpore versions (horrible). 1. There are some redundant copies of some python files across several domain toolkits, e.g., MindFlow and MindElec share the same PINNs arch, MindFlow and MindEarth share the same Neural Opertors files. and many more... ### Origin(信息来源) The developers and users of MindSpore Science toolkits has provides many questions regarding our codes and archs. The MindSpore Science team also noticed this problem since last year. Now it's time to deprecate the old MindSpore Science arch and move to MindSpore Science V1. ### Benefit / Necessity (价值/作用) 1. Unified AI4S API for all applications 1. Faster adaptation to latest MindSpore 1. Easier to support training, inference and serving for all applications 1. Easier for developers and users to work on/with MindSpore Science 1. Unified tests for all APIs ### Design(设计方案) We will update our design in an individual document under br_refactor, please check it later. The main design (discussed with deepwiki.com) is MindSpore Science will release an independent wheel to support all domain applications, i.e., Fluid Dynamics, Climate and Weather prediction, Energy, molecule dynamics and computational bios ... The previous release for individual domains will be deprecated and all domain applications or examples will use the unified AI4S API under MindSpore Science core arch. #### Top-level Design objective Provide a unified ai-for-science deep-learning framework with optimal performance, high scalability, and flexibility. - Unified foundation: We extract several major modules such as `sciops`, `models`, `data`, `sharker`, `e3nn` and `common` to reduce repeated development and maintenance. - Focus on application fields:Scientific suites only need to focus on applications. - Flexible Expansion:We implement the major functions such as mixed precision, parallel strategy and performance monitor. All these modules and functions can be assembled freely. - Ecological compatibility:Integrate deeply with MindSpore framework and Ascend hardward so we can utilize major features such as graph optimization and auto parallel. #### Architecutre design  The core framework of the MindScience suite is `MindScience-Core`; above `MindScience-Core` sit domain suites such as MindFlow, MindEarth, etc. - **Note**: the `gnn` and `e3nn` libraries encompass data interfaces/networks and are sizable, so treating them as independent modules under unified development and management is more reasonable and aligns with industry practice. - The bottom layer of the `MindScience-Core` framework is the `speed` acceleration module, which comprises `sciops` and `distributed`. - The `sciops` directory contains two parts, distinct from the mindspore ops library, used as `from mindscience import sciops`. - - It connects to the custom operator interface of the `speed` module .so file, corresponding to the ccsrc directory; AscendC is used to implement low-level accelerated operators such as `evoformer_attn`, `einsum`, etc.; the closed-source code is released as a .so file. - - The Python operator interface refers to operators developed in Python, such as automatic differentiation, dft, Einsum, etc. - `distributed` is the parallel acceleration module, providing common parallel interfaces in scientific computing, including DP/OP/TP/PP and other features. - The `gnn` module contains graph data interfaces and commonly used GNN networks. - The `pde` module contains PINNs network interfaces. - The `e3nn` module contains equivariant computing data interfaces and network layers. - `models` is the general model library, containing models such as `transformer`, `diffusion`, `FNO`, etc. - `data` is the data interface module; under the `data` directory, subdirectories are divided by suite, e.g., `elec` contains general datasets for the electromagnetics domain, `flow` contains general datasets for the fluid domain, and `earth` contains general datasets for the meteorology domain. - `solvers` is the solver module, containing interfaces such as `CFD`, `CBS`, etc. - `common` is the general interface module, containing general interfaces such as `optimizer`, `scheduler`, `math`, `loss`, etc. - `utils` is the utility module, containing utility interfaces such as the logging module, file reading interfaces, etc. `tests` is the testing module, containing UT and ST cases for the framework; most are UT cases. Due to gate restrictions on case duration, end-to-end ST cases are mainly maintained locally. #### Directory design ```bash mindscience/ ├── docs/ # 统一文档 │ ├── architecture/ # 软件架构 │ ├── feature/ # 特性文档 ├── cmake/ # 编译配置 ├── setup.py # 版本依赖 ├── build.sh # 编译脚本 ├── docker/ # docker配置 │ ├── Dockerfile ├── mindscience/ │ ├── common/ # 通用基础模块 │ │ ├── schedulers # Learning rate schedulers │ │ ├── geometry # 统一物理层接口 │ │ │ ├── primitives_1d/ # Interval │ │ │ ├── primitives_2d/ # Rectangle, Disk, Triangle, Polygon │ │ │ ├── primitives_3d/ # Cuboid, Cylinder, Cone, Tetrahedron │ │ │ ├── primitives_nd/ # HyperCube, FixedPoint │ │ ├── optimizers/ # 优化器(如LBFGS/PINNs优化器,AdaHessian二阶优化器) │ │ ├── metrics/ # 领域指标 │ │ │ ├── fid.py │ │ │ ├── accuracy │ │ ├── losses/ # 损失函数(L2、物理约束损失) │ ├── data/ # 通用数据集模块 │ │ ├── elec/ # 通用电磁数据接口 │ │ ├── earth/ # 通用气象数据接口 │ │ ├── flow/ # 通用流体数据接口 │ ├── ccsrc/ # 底层算子文件 │ │ ├── api/ # api实现 │ │ │ ├── python/ # 链接代码 │ │ │ ├── so/ # 预编译so文件 │ │ ├── include/ # 预编译so文件 │ │ ├── CMakeLists.txt # CMAKE │ ├── sciops/ # 通用算子库(加速算子、融合算子等) │ │ ├── einsum.py # einsum实现 │ │ ├── differential.py # gradient, divergence │ │ ├── evoformer_attention.py # evoformer实现 │ │ ├── dft.py # DFT实现 │ ├── gnn/ # GNN模型库 │ │ ├── graph.py # 图数据接口 │ │ ├── gat.py │ │ ├── gcn.py │ ├── e3nn/ # 等变计算库 │ │ ├── equivariant.py # 等变网络层 │ │ ├── irreps.py # 不可约表示(Irreps)定义 │ ├── pde/ # PINNS库 │ │ ├── pde_node.py # PDE定义 │ │ ├── pde_loss.py # PDE类实现 │ ├── models/ # 跨领域可复用基础神经网络模块 │ │ ├── neural_operator/ # 通用神经算子库 │ │ │ ├── fno.py │ │ │ ├── kno.py │ │ │ └── sno.py │ │ ├── transformer/ # transformer模型 │ │ │ ├── attention.py # 自注意力网络层 │ │ │ ├── ViT.py # ViT │ │ │ ├── DiT.py # DiT │ │ ├── diffuser/ # 扩散模型 │ │ │ ├── ddpm.py/ # DDPM扩散模型 │ │ │ ├── ddim.py/ # DDIM扩散模型 │ │ ├── layers/ # 扩散模型 │ │ │ ├── mlp.py # MLP │ │ │ ├── kan.py # KAN │ │ │ ├── siren.py # siren │ │ ├── PDEFormer/ │ │ ├── GraphCast/ │ │ └── pangu/ │ ├── solvers/ # 通用求解器框架 │ │ ├── base_solver.py # Solver抽象基类 │ │ ├── cbs.py │ │ ├── cfd.py │ │ ├── fdtd.py │ │ └── ... # 通用求解策略(如迭代求解、自适应步长) │ ├── utils/ # 统一工具API入口 │ │ ├── logging/ # 日志 │ │ ├── config/ │ │ ├── visualization/ # 画图 │ │ ├── io/ # IO │ │ ├── config.py # 配置管理 │ │ └── export.py # 模型导出工具(ONNX、MindIR) │ ├── constants.py # 常量 │ │ ├── mindflow/ # 计算流体动力学套件 │ ├── utils/ # 领域模型(如PINNs、FNO) │ ├── applications/ # 应用案例(圆柱绕流、湍流模拟) │ │ ├──src/ # 案例源文件 │ │ ├──train.py # 训练脚本 │ └── ... # 领域特定工具(如边界条件生成) │ │ ├── mindelec/ # 计算电磁套件 │ ├── utils/ # 电磁模型 │ ├── applications/ │ │ ├──src/ # 案例源文件 │ │ ├──train.py # 训练脚本 │ └── ... │ │ ├── mindchemistry/ # 计算化学套件 │ ├── utils/ # 化学模型 │ ├── applications/ │ │ ├──src/ # 案例源文件 │ │ ├──train.py # 训练脚本 │ └── ... │ ├── owner │ ├── tests/ # 分层测试 │ ├── utils/ # 辅助函数 │ ├── ut/ # 单元测试用例 │ │ ├── common/ # 通用接口 │ │ ├── data/ # 数据接口 │ │ ├── sciops/ # 底层算子 │ │ ├── models/ # 模型库 │ │ ├── solvers/ # 求解器 │ │ ├── e3nn/ # 等变计算库 │ │ ├── gnn/ # GNN │ │ ├── pde/ # pinns │ │ ├── distributed/ # 并行策略 │ │ ├── utils/ # 工具 │ ├── st/ # ST测试用例 │ │ ├── sciops/ # 底层算子 │ │ ├── models/ # 模型库 │ │ ├── solvers/ # 求解器 │ │ ├── e3nn/ # 等变计算库 │ │ ├── gnn/ # GNN │ │ ├── pde/ # pinns │ │ ├── distributed/ # 并行策略 ```
评论 (
1
)
登录
后才可以发表评论
状态
TODO
VALIDATION
CLOSED
TODO
ACCEPTED
WIP
DONE
REJECTED
负责人
未设置
b_rookie
b_rookie
负责人
协作者
+负责人
+协作者
grace
gracezou
负责人
协作者
+负责人
+协作者
jinduoxia
jinduoxialang
负责人
协作者
+负责人
+协作者
yanglong
yanglong_unimelb
负责人
协作者
+负责人
+协作者
标签
mindscience
未设置
项目
未立项任务
未立项任务
里程碑
B-MBA
未关联里程碑
Pull Requests
未关联
未关联
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
未关联
分支 (13)
标签 (7)
master
br_refactor
master_kjb
r0.7
r0.6
r0.5
r0.2
r0.3
dev-md
r0.2.0
r0.2.0-alpha
dev
r0.1
v0.7.0
TAG_MindScience_2407_release
v0.5.0
MindFlow-v0.1.0
v0.2.0-rc1
v0.1.0
v0.1.0-rc1
开始日期   -   截止日期
-
置顶选项
不置顶
置顶等级:高
置顶等级:中
置顶等级:低
优先级
不指定
严重
主要
次要
不重要
预计工期
(小时)
参与者(4)
1
https://gitee.com/mindspore/mindscience.git
git@gitee.com:mindspore/mindscience.git
mindspore
mindscience
mindscience
点此查找更多帮助
搜索帮助
Git 命令在线学习
如何在 Gitee 导入 GitHub 仓库
Git 仓库基础操作
企业版和社区版功能对比
SSH 公钥设置
如何处理代码冲突
仓库体积过大,如何减小?
如何找回被删除的仓库数据
Gitee 产品配额说明
GitHub仓库快速导入Gitee及同步更新
什么是 Release(发行版)
将 PHP 项目自动发布到 packagist.org
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册