1be168c0dSopenharmony_ci![MindSpore标志](https://gitee.com/mindspore/mindspore/raw/master/docs/MindSpore-logo.png "MindSpore logo")
2be168c0dSopenharmony_ci
3be168c0dSopenharmony_ci[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/mindspore.svg)](https://pypi.org/project/mindspore)
4be168c0dSopenharmony_ci[![PyPI](https://badge.fury.io/py/mindspore.svg)](https://badge.fury.io/py/mindspore)
5be168c0dSopenharmony_ci[![Downloads](https://pepy.tech/badge/mindspore)](https://pepy.tech/project/mindspore)
6be168c0dSopenharmony_ci[![DockerHub](https://img.shields.io/docker/pulls/mindspore/mindspore-cpu.svg)](https://hub.docker.com/r/mindspore/mindspore-cpu)
7be168c0dSopenharmony_ci[![LICENSE](https://img.shields.io/github/license/mindspore-ai/mindspore.svg?style=flat-square)](https://github.com/mindspore-ai/mindspore/blob/master/LICENSE)
8be168c0dSopenharmony_ci[![Slack](https://img.shields.io/badge/slack-chat-green.svg?logo=slack)](https://join.slack.com/t/mindspore/shared_invite/zt-dgk65rli-3ex4xvS4wHX7UDmsQmfu8w)
9be168c0dSopenharmony_ci[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](https://gitee.com/mindspore/mindspore/pulls)
10be168c0dSopenharmony_ci
11be168c0dSopenharmony_ci[View English](./README.md)
12be168c0dSopenharmony_ci
13be168c0dSopenharmony_ci<!-- TOC -->
14be168c0dSopenharmony_ci
15be168c0dSopenharmony_ci- [MindSpore介绍](#mindspore介绍)
16be168c0dSopenharmony_ci    - [自动微分](#自动微分)
17be168c0dSopenharmony_ci    - [自动并行](#自动并行)
18be168c0dSopenharmony_ci- [安装](#安装)
19be168c0dSopenharmony_ci    - [pip方式安装](#pip方式安装)
20be168c0dSopenharmony_ci    - [源码编译方式安装](#源码编译方式安装)
21be168c0dSopenharmony_ci    - [Docker镜像](#docker镜像)
22be168c0dSopenharmony_ci- [快速入门](#快速入门)
23be168c0dSopenharmony_ci- [文档](#文档)
24be168c0dSopenharmony_ci- [社区](#社区)
25be168c0dSopenharmony_ci    - [治理](#治理)
26be168c0dSopenharmony_ci    - [交流](#交流)
27be168c0dSopenharmony_ci- [贡献](#贡献)
28be168c0dSopenharmony_ci- [分支维护策略](#分支维护策略)
29be168c0dSopenharmony_ci- [现有分支维护状态](#现有分支维护状态)
30be168c0dSopenharmony_ci- [版本说明](#版本说明)
31be168c0dSopenharmony_ci- [许可证](#许可证)
32be168c0dSopenharmony_ci
33be168c0dSopenharmony_ci<!-- /TOC -->
34be168c0dSopenharmony_ci
35be168c0dSopenharmony_ci## MindSpore介绍
36be168c0dSopenharmony_ci
37be168c0dSopenharmony_ciMindSpore是一种适用于端边云场景的新型开源深度学习训练/推理框架。
38be168c0dSopenharmony_ciMindSpore提供了友好的设计和高效的执行,旨在提升数据科学家和算法工程师的开发体验,并为Ascend AI处理器提供原生支持,以及软硬件协同优化。
39be168c0dSopenharmony_ci
40be168c0dSopenharmony_ci同时,MindSpore作为全球AI开源社区,致力于进一步开发和丰富AI软硬件应用生态。
41be168c0dSopenharmony_ci
42be168c0dSopenharmony_ci<img src="https://gitee.com/mindspore/mindspore/raw/master/docs/MindSpore-architecture-zh.png" alt="MindSpore Architecture"/>
43be168c0dSopenharmony_ci
44be168c0dSopenharmony_ci欲了解更多详情,请查看我们的[总体架构](https://www.mindspore.cn/tutorials/zh-CN/master/beginner/introduction.html)。
45be168c0dSopenharmony_ci
46be168c0dSopenharmony_ci### 自动微分
47be168c0dSopenharmony_ci
48be168c0dSopenharmony_ci当前主流深度学习框架中有两种自动微分技术:
49be168c0dSopenharmony_ci
50be168c0dSopenharmony_ci- **操作符重载法**: 通过操作符重载对编程语言中的基本操作语义进行重定义,封装其微分规则。 在程序运行时记录算子过载正向执行时网络的运行轨迹,对动态生成的数据流图应用链式法则,实现自动微分。
51be168c0dSopenharmony_ci- **代码变换法**: 该技术是从功能编程框架演进而来,以即时编译(Just-in-time Compilation,JIT)的形式对中间表达式(程序在编译过程中的表达式)进行自动差分转换,支持复杂的控制流场景、高阶函数和闭包。
52be168c0dSopenharmony_ci
53be168c0dSopenharmony_ciPyTorch采用的是操作符重载法。相较于代码变换法,操作符重载法是在运行时生成微分计算图的, 无需考虑函数调用与控制流等情况, 开发更为简单。 但该方法不能在编译时刻做微分图的优化, 控制流也需要根据运行时的信息来展开, 很难实现性能的极限优化。
54be168c0dSopenharmony_ci
55be168c0dSopenharmony_ciMindSpore则采用的是代码变换法。一方面,它支持自动控制流的自动微分,因此像PyTorch这样的模型构建非常方便。另一方面,MindSpore可以对神经网络进行静态编译优化,以获得更好的性能。
56be168c0dSopenharmony_ci
57be168c0dSopenharmony_ci<img src="https://gitee.com/mindspore/mindspore/raw/master/docs/Automatic-differentiation.png" alt="Automatic Differentiation" width="600"/>
58be168c0dSopenharmony_ci
59be168c0dSopenharmony_ciMindSpore自动微分的实现可以理解为程序本身的符号微分。MindSpore IR是一个函数中间表达式,它与基础代数中的复合函数具有直观的对应关系。复合函数的公式由任意可推导的基础函数组成。MindSpore IR中的每个原语操作都可以对应基础代数中的基本功能,从而可以建立更复杂的流控制。
60be168c0dSopenharmony_ci
61be168c0dSopenharmony_ci### 自动并行
62be168c0dSopenharmony_ci
63be168c0dSopenharmony_ciMindSpore自动并行的目的是构建数据并行、模型并行和混合并行相结合的训练方法。该方法能够自动选择开销最小的模型切分策略,实现自动分布并行训练。
64be168c0dSopenharmony_ci
65be168c0dSopenharmony_ci<img src="https://gitee.com/mindspore/mindspore/raw/master/docs/Automatic-parallel.png" alt="Automatic Parallel" width="600"/>
66be168c0dSopenharmony_ci
67be168c0dSopenharmony_ci目前MindSpore采用的是算子切分的细粒度并行策略,即图中的每个算子被切分为一个集群,完成并行操作。在此期间的切分策略可能非常复杂,但是作为一名Python开发者,您无需关注底层实现,只要顶层API计算是有效的即可。
68be168c0dSopenharmony_ci
69be168c0dSopenharmony_ci## 安装
70be168c0dSopenharmony_ci
71be168c0dSopenharmony_ci### pip方式安装
72be168c0dSopenharmony_ci
73be168c0dSopenharmony_ciMindSpore提供跨多个后端的构建选项:
74be168c0dSopenharmony_ci
75be168c0dSopenharmony_ci| 硬件平台      | 操作系统        | 状态  |
76be168c0dSopenharmony_ci| :------------ | :-------------- | :--- |
77be168c0dSopenharmony_ci| Ascend 910    | Ubuntu-x86      | ✔️   |
78be168c0dSopenharmony_ci|               | Ubuntu-aarch64  | ✔️   |
79be168c0dSopenharmony_ci|               | EulerOS-aarch64 | ✔️   |
80be168c0dSopenharmony_ci|               | CentOS-x86      | ✔️   |
81be168c0dSopenharmony_ci|               | CentOS-aarch64  | ✔️   |
82be168c0dSopenharmony_ci| GPU CUDA 10.1 | Ubuntu-x86      | ✔️   |
83be168c0dSopenharmony_ci| CPU           | Ubuntu-x86      | ✔️   |
84be168c0dSopenharmony_ci|               | Ubuntu-aarch64  | ✔️   |
85be168c0dSopenharmony_ci|               | Windows-x86     | ✔️   |
86be168c0dSopenharmony_ci
87be168c0dSopenharmony_ci使用`pip`命令安装,以`CPU`和`Ubuntu-x86`build版本为例:
88be168c0dSopenharmony_ci
89be168c0dSopenharmony_ci1. 请从[MindSpore下载页面](https://www.mindspore.cn/versions)下载并安装whl包。
90be168c0dSopenharmony_ci
91be168c0dSopenharmony_ci    ```bash
92be168c0dSopenharmony_ci    pip install https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.2.0-rc1/MindSpore/cpu/ubuntu_x86/mindspore-1.2.0rc1-cp37-cp37m-linux_x86_64.whl
93be168c0dSopenharmony_ci    ```
94be168c0dSopenharmony_ci
95be168c0dSopenharmony_ci2. 执行以下命令,验证安装结果。
96be168c0dSopenharmony_ci
97be168c0dSopenharmony_ci    ```python
98be168c0dSopenharmony_ci    import numpy as np
99be168c0dSopenharmony_ci    import mindspore.context as context
100be168c0dSopenharmony_ci    import mindspore.nn as nn
101be168c0dSopenharmony_ci    from mindspore import Tensor
102be168c0dSopenharmony_ci    from mindspore.ops import operations as P
103be168c0dSopenharmony_ci
104be168c0dSopenharmony_ci    context.set_context(mode=context.GRAPH_MODE, device_target="CPU")
105be168c0dSopenharmony_ci
106be168c0dSopenharmony_ci    class Mul(nn.Cell):
107be168c0dSopenharmony_ci        def __init__(self):
108be168c0dSopenharmony_ci            super(Mul, self).__init__()
109be168c0dSopenharmony_ci            self.mul = P.Mul()
110be168c0dSopenharmony_ci
111be168c0dSopenharmony_ci        def construct(self, x, y):
112be168c0dSopenharmony_ci            return self.mul(x, y)
113be168c0dSopenharmony_ci
114be168c0dSopenharmony_ci    x = Tensor(np.array([1.0, 2.0, 3.0]).astype(np.float32))
115be168c0dSopenharmony_ci    y = Tensor(np.array([4.0, 5.0, 6.0]).astype(np.float32))
116be168c0dSopenharmony_ci
117be168c0dSopenharmony_ci    mul = Mul()
118be168c0dSopenharmony_ci    print(mul(x, y))
119be168c0dSopenharmony_ci    ```
120be168c0dSopenharmony_ci
121be168c0dSopenharmony_ci    ```text
122be168c0dSopenharmony_ci    [ 4. 10. 18.]
123be168c0dSopenharmony_ci    ```
124be168c0dSopenharmony_ci
125be168c0dSopenharmony_ci使用pip方式,在不同的环境安装MindSpore,可参考以下文档。
126be168c0dSopenharmony_ci
127be168c0dSopenharmony_ci- [Ascend环境使用pip方式安装MindSpore](https://gitee.com/mindspore/docs/blob/master/install/mindspore_ascend_install_pip.md)
128be168c0dSopenharmony_ci- [GPU环境使用pip方式安装MindSpore](https://gitee.com/mindspore/docs/blob/master/install/mindspore_gpu_install_pip.md)
129be168c0dSopenharmony_ci- [CPU环境使用pip方式安装MindSpore](https://gitee.com/mindspore/docs/blob/master/install/mindspore_cpu_install_pip.md)
130be168c0dSopenharmony_ci
131be168c0dSopenharmony_ci### 源码编译方式安装
132be168c0dSopenharmony_ci
133be168c0dSopenharmony_ci使用源码编译方式,在不同的环境安装MindSpore,可参考以下文档。
134be168c0dSopenharmony_ci
135be168c0dSopenharmony_ci- [Ascend环境使用源码编译方式安装MindSpore](https://gitee.com/mindspore/docs/blob/master/install/mindspore_ascend_install_source.md)
136be168c0dSopenharmony_ci- [GPU环境使用源码编译方式安装MindSpore](https://gitee.com/mindspore/docs/blob/master/install/mindspore_gpu_install_source.md)
137be168c0dSopenharmony_ci- [CPU环境使用源码编译方式安装MindSpore](https://gitee.com/mindspore/docs/blob/master/install/mindspore_cpu_install_source.md)
138be168c0dSopenharmony_ci
139be168c0dSopenharmony_ci### Docker镜像
140be168c0dSopenharmony_ci
141be168c0dSopenharmony_ciMindSpore的Docker镜像托管在[Docker Hub](https://hub.docker.com/r/mindspore)上。
142be168c0dSopenharmony_ci目前容器化构建选项支持情况如下:
143be168c0dSopenharmony_ci
144be168c0dSopenharmony_ci| 硬件平台   | Docker镜像仓库                | 标签                       | 说明                                       |
145be168c0dSopenharmony_ci| :----- | :------------------------ | :----------------------- | :--------------------------------------- |
146be168c0dSopenharmony_ci| CPU    | `mindspore/mindspore-cpu` | `x.y.z`                  | 已经预安装MindSpore `x.y.z` CPU版本的生产环境。       |
147be168c0dSopenharmony_ci|        |                           | `devel`                  | 提供开发环境从源头构建MindSpore(`CPU`后端)。安装详情请参考<https://www.mindspore.cn/install> 。 |
148be168c0dSopenharmony_ci|        |                           | `runtime`                | 提供运行时环境安装MindSpore二进制包(`CPU`后端)。         |
149be168c0dSopenharmony_ci| GPU    | `mindspore/mindspore-gpu` | `x.y.z`                  | 已经预安装MindSpore `x.y.z` GPU版本的生产环境。       |
150be168c0dSopenharmony_ci|        |                           | `devel`                  | 提供开发环境从源头构建MindSpore(`GPU CUDA10.1`后端)。安装详情请参考<https://www.mindspore.cn/install> 。 |
151be168c0dSopenharmony_ci|        |                           | `runtime`                | 提供运行时环境安装MindSpore二进制包(`GPU CUDA10.1`后端)。 |
152be168c0dSopenharmony_ci
153be168c0dSopenharmony_ci> **注意:** 不建议从源头构建GPU `devel` Docker镜像后直接安装whl包。我们强烈建议您在GPU `runtime` Docker镜像中传输并安装whl包。
154be168c0dSopenharmony_ci
155be168c0dSopenharmony_ci- CPU
156be168c0dSopenharmony_ci
157be168c0dSopenharmony_ci    对于`CPU`后端,可以直接使用以下命令获取并运行最新的稳定镜像:
158be168c0dSopenharmony_ci
159be168c0dSopenharmony_ci    ```bash
160be168c0dSopenharmony_ci    docker pull mindspore/mindspore-cpu:1.1.0
161be168c0dSopenharmony_ci    docker run -it mindspore/mindspore-cpu:1.1.0 /bin/bash
162be168c0dSopenharmony_ci    ```
163be168c0dSopenharmony_ci
164be168c0dSopenharmony_ci- GPU
165be168c0dSopenharmony_ci
166be168c0dSopenharmony_ci    对于`GPU`后端,请确保`nvidia-container-toolkit`已经提前安装,以下是`Ubuntu`用户安装指南:
167be168c0dSopenharmony_ci
168be168c0dSopenharmony_ci    ```bash
169be168c0dSopenharmony_ci    DISTRIBUTION=$(. /etc/os-release; echo $ID$VERSION_ID)
170be168c0dSopenharmony_ci    curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | apt-key add -
171be168c0dSopenharmony_ci    curl -s -L https://nvidia.github.io/nvidia-docker/$DISTRIBUTION/nvidia-docker.list | tee /etc/apt/sources.list.d/nvidia-docker.list
172be168c0dSopenharmony_ci
173be168c0dSopenharmony_ci    sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit nvidia-docker2
174be168c0dSopenharmony_ci    sudo systemctl restart docker
175be168c0dSopenharmony_ci    ```
176be168c0dSopenharmony_ci
177be168c0dSopenharmony_ci    编辑文件 daemon.json:
178be168c0dSopenharmony_ci
179be168c0dSopenharmony_ci    ```bash
180be168c0dSopenharmony_ci    $ vim /etc/docker/daemon.json
181be168c0dSopenharmony_ci    {
182be168c0dSopenharmony_ci        "runtimes": {
183be168c0dSopenharmony_ci            "nvidia": {
184be168c0dSopenharmony_ci                "path": "nvidia-container-runtime",
185be168c0dSopenharmony_ci                "runtimeArgs": []
186be168c0dSopenharmony_ci            }
187be168c0dSopenharmony_ci        }
188be168c0dSopenharmony_ci    }
189be168c0dSopenharmony_ci    ```
190be168c0dSopenharmony_ci
191be168c0dSopenharmony_ci    再次重启docker:
192be168c0dSopenharmony_ci
193be168c0dSopenharmony_ci    ```bash
194be168c0dSopenharmony_ci    sudo systemctl daemon-reload
195be168c0dSopenharmony_ci    sudo systemctl restart docker
196be168c0dSopenharmony_ci    ```
197be168c0dSopenharmony_ci
198be168c0dSopenharmony_ci    使用以下命令获取并运行最新的稳定镜像:
199be168c0dSopenharmony_ci
200be168c0dSopenharmony_ci    ```bash
201be168c0dSopenharmony_ci    docker pull mindspore/mindspore-gpu:1.1.0
202be168c0dSopenharmony_ci    docker run -it -v /dev/shm:/dev/shm --runtime=nvidia --privileged=true mindspore/mindspore-gpu:1.1.0 /bin/bash
203be168c0dSopenharmony_ci    ```
204be168c0dSopenharmony_ci
205be168c0dSopenharmony_ci    要测试Docker是否正常工作,请运行下面的Python代码并检查输出:
206be168c0dSopenharmony_ci
207be168c0dSopenharmony_ci    ```python
208be168c0dSopenharmony_ci    import numpy as np
209be168c0dSopenharmony_ci    import mindspore.context as context
210be168c0dSopenharmony_ci    from mindspore import Tensor
211be168c0dSopenharmony_ci    from mindspore.ops import functional as F
212be168c0dSopenharmony_ci
213be168c0dSopenharmony_ci    context.set_context(mode=context.PYNATIVE_MODE, device_target="GPU")
214be168c0dSopenharmony_ci
215be168c0dSopenharmony_ci    x = Tensor(np.ones([1,3,3,4]).astype(np.float32))
216be168c0dSopenharmony_ci    y = Tensor(np.ones([1,3,3,4]).astype(np.float32))
217be168c0dSopenharmony_ci    print(F.tensor_add(x, y))
218be168c0dSopenharmony_ci    ```
219be168c0dSopenharmony_ci
220be168c0dSopenharmony_ci    ```text
221be168c0dSopenharmony_ci    [[[ 2.  2.  2.  2.],
222be168c0dSopenharmony_ci    [ 2.  2.  2.  2.],
223be168c0dSopenharmony_ci    [ 2.  2.  2.  2.]],
224be168c0dSopenharmony_ci
225be168c0dSopenharmony_ci    [[ 2.  2.  2.  2.],
226be168c0dSopenharmony_ci    [ 2.  2.  2.  2.],
227be168c0dSopenharmony_ci    [ 2.  2.  2.  2.]],
228be168c0dSopenharmony_ci
229be168c0dSopenharmony_ci    [[ 2.  2.  2.  2.],
230be168c0dSopenharmony_ci    [ 2.  2.  2.  2.],
231be168c0dSopenharmony_ci    [ 2.  2.  2.  2.]]]
232be168c0dSopenharmony_ci    ```
233be168c0dSopenharmony_ci
234be168c0dSopenharmony_ci如果您想了解更多关于MindSpore Docker镜像的构建过程,请查看[docker](https://gitee.com/mindspore/mindspore/blob/master/scripts/docker/README.md) repo了解详细信息。
235be168c0dSopenharmony_ci
236be168c0dSopenharmony_ci## 快速入门
237be168c0dSopenharmony_ci
238be168c0dSopenharmony_ci参考[快速入门](https://www.mindspore.cn/tutorials/zh-CN/master/beginner/quick_start.html)实现图片分类。
239be168c0dSopenharmony_ci
240be168c0dSopenharmony_ci## 文档
241be168c0dSopenharmony_ci
242be168c0dSopenharmony_ci有关安装指南、教程和API的更多详细信息,请参阅[用户文档](https://gitee.com/mindspore/docs)。
243be168c0dSopenharmony_ci
244be168c0dSopenharmony_ci## 社区
245be168c0dSopenharmony_ci
246be168c0dSopenharmony_ci### 治理
247be168c0dSopenharmony_ci
248be168c0dSopenharmony_ci查看MindSpore如何进行[开放治理](https://gitee.com/mindspore/community/blob/master/governance.md)。
249be168c0dSopenharmony_ci
250be168c0dSopenharmony_ci### 交流
251be168c0dSopenharmony_ci
252be168c0dSopenharmony_ci- [MindSpore Slack](https://join.slack.com/t/mindspore/shared_invite/zt-dgk65rli-3ex4xvS4wHX7UDmsQmfu8w) 开发者交流平台。
253be168c0dSopenharmony_ci- `#mindspore`IRC频道(仅用于会议记录)
254be168c0dSopenharmony_ci- 视频会议:待定
255be168c0dSopenharmony_ci- 邮件列表:<https://mailweb.mindspore.cn/postorius/lists>
256be168c0dSopenharmony_ci
257be168c0dSopenharmony_ci## 贡献
258be168c0dSopenharmony_ci
259be168c0dSopenharmony_ci欢迎参与贡献。更多详情,请参阅我们的[贡献者Wiki](https://gitee.com/mindspore/mindspore/blob/master/CONTRIBUTING.md)。
260be168c0dSopenharmony_ci
261be168c0dSopenharmony_ci## 分支维护策略
262be168c0dSopenharmony_ci
263be168c0dSopenharmony_ciMindSpore的版本分支有以下几种维护阶段:
264be168c0dSopenharmony_ci
265be168c0dSopenharmony_ci| **状态**       | **持续时间**    | **说明**                                          |
266be168c0dSopenharmony_ci|-------------|---------------|--------------------------------------------------|
267be168c0dSopenharmony_ci| Planning    | 1 - 3 months  | 特性规划。                     |
268be168c0dSopenharmony_ci| Development | 3 months      | 特性开发。                  |
269be168c0dSopenharmony_ci| Maintained  | 6 - 12 months | 允许所有问题修复的合入,并发布版本。 |
270be168c0dSopenharmony_ci| Unmaintained| 0 - 3 months  | 允许所有问题修复的合入,无专人维护,不再发布版本。                                                 |
271be168c0dSopenharmony_ci| End Of Life (EOL) |  N/A |  不再接受修改合入该分支。    |
272be168c0dSopenharmony_ci
273be168c0dSopenharmony_ci## 现有分支维护状态
274be168c0dSopenharmony_ci
275be168c0dSopenharmony_ci| **分支名** | **当前状态**  | **上线时间**          | **后续状态**                           | **EOL 日期**|
276be168c0dSopenharmony_ci|------------|--------------|----------------------|----------------------------------------|------------|
277be168c0dSopenharmony_ci| **r1.8**   | Maintained   | 2022-07-29           | Unmaintained <br> 2023-07-29 estimated |            |
278be168c0dSopenharmony_ci| **r1.7**   | Maintained   | 2022-04-29           | Unmaintained <br> 2023-04-29 estimated |            |
279be168c0dSopenharmony_ci| **r1.6**   | Maintained   | 2022-01-29           | Unmaintained <br> 2023-01-29 estimated |            |
280be168c0dSopenharmony_ci| **r1.5**   | Maintained   | 2021-10-15           | Unmaintained <br> 2022-10-15 estimated |            |
281be168c0dSopenharmony_ci| **r1.4**   | Maintained   | 2021-08-15           | Unmaintained <br> 2022-08-15 estimated |            |
282be168c0dSopenharmony_ci| **r1.3**   | End Of Life  | 2021-07-15           |                                        | 2022-07-15 |
283be168c0dSopenharmony_ci| **r1.2**   | End Of Life  | 2021-04-15           |                                        | 2022-04-29 |
284be168c0dSopenharmony_ci| **r1.1**   | End Of Life  | 2020-12-31           |                                        | 2021-09-30 |
285be168c0dSopenharmony_ci| **r1.0**   | End Of Life  | 2020-09-24           |                                        | 2021-07-30 |
286be168c0dSopenharmony_ci| **r0.7**   | End Of Life  | 2020-08-31           |                                        | 2021-02-28 |
287be168c0dSopenharmony_ci| **r0.6**   | End Of Life  | 2020-07-31           |                                        | 2020-12-30 |
288be168c0dSopenharmony_ci| **r0.5**   | End Of Life  | 2020-06-30           |                                        | 2021-06-30 |
289be168c0dSopenharmony_ci| **r0.3**   | End Of Life  | 2020-05-31           |                                        | 2020-09-30 |
290be168c0dSopenharmony_ci| **r0.2**   | End Of Life  | 2020-04-30           |                                        | 2020-08-31 |
291be168c0dSopenharmony_ci| **r0.1**   | End Of Life  | 2020-03-28           |                                        | 2020-06-30 |
292be168c0dSopenharmony_ci
293be168c0dSopenharmony_ci## 版本说明
294be168c0dSopenharmony_ci
295be168c0dSopenharmony_ci版本说明请参阅[RELEASE](https://gitee.com/mindspore/mindspore/blob/master/RELEASE.md)。
296be168c0dSopenharmony_ci
297be168c0dSopenharmony_ci## 许可证
298be168c0dSopenharmony_ci
299be168c0dSopenharmony_ci[Apache License 2.0](https://gitee.com/mindspore/mindspore/blob/master/LICENSE)
300be168c0dSopenharmony_ci
301be168c0dSopenharmony_ci
302be168c0dSopenharmony_ci---
303be168c0dSopenharmony_ci
304be168c0dSopenharmony_ci## OpenHarmony MindSpore系统组件
305be168c0dSopenharmony_ci
306be168c0dSopenharmony_ciMindspore Lite,和MindIR构图接口已内置到OpenHarmony标准系统。
307be168c0dSopenharmony_ci
308be168c0dSopenharmony_ci如需了解MindSpore Lite推理框架,请详见[MindSpore Lite介绍](mindspore/lite/README_CN.md)。
309be168c0dSopenharmony_ci
310be168c0dSopenharmony_ci### OpenHarmony组件使用MindSpore Lite
311be168c0dSopenharmony_ci
312be168c0dSopenharmony_ci在组件BUILD.gn中加入如下依赖即可使用MindSpore Lite:
313be168c0dSopenharmony_ci
314be168c0dSopenharmony_ci```gn
315be168c0dSopenharmony_ciinclude_dirs = [
316be168c0dSopenharmony_ci    "//third_party/mindspore/mindspore-src/source/"
317be168c0dSopenharmony_ci]
318be168c0dSopenharmony_ciexternal_deps = ["mindspore:mindspore_lib"]
319be168c0dSopenharmony_ci```
320be168c0dSopenharmony_ci注意:`mindspore-src/`为构建时生成的源码目录,仅下载源代码时,此目录不存在!
321be168c0dSopenharmony_ci
322be168c0dSopenharmony_ci- 使用C++ API
323be168c0dSopenharmony_ci
324be168c0dSopenharmony_ciC++ API头文件存放在`include/api`目录中,使用如下方式包含:
325be168c0dSopenharmony_ci
326be168c0dSopenharmony_ci```C++
327be168c0dSopenharmony_ci#include "include/api/xxx.h"
328be168c0dSopenharmony_ci```
329be168c0dSopenharmony_ci
330be168c0dSopenharmony_ciC API头文件存放在`include/c_api`目录中,使用如下方式包含:
331be168c0dSopenharmony_ci
332be168c0dSopenharmony_ci```C
333be168c0dSopenharmony_ci#include "include/c_api/xxx.h"
334be168c0dSopenharmony_ci```
335be168c0dSopenharmony_ci### MindIR 构图接口
336be168c0dSopenharmony_ciMindIR是MindSpore Lite用于描述模型计算图的中间表达方式。
337be168c0dSopenharmony_ciPrimitive 是一套基于flatbuffers的对模型进行序列化的工具,MindSpore Lite使用它存储图结构、算子、张量等信息。
338be168c0dSopenharmony_ciLite Graph是MindSpore Lite用于描述模型中节点、张量、子图等信息的结构,可通过MindIR接口构建。
339be168c0dSopenharmony_ci
340be168c0dSopenharmony_ci#### 使用MindIR
341be168c0dSopenharmony_ciBUILD.gn中加入如下依赖即可使用MindIR 构图接口:
342be168c0dSopenharmony_ci```gn
343be168c0dSopenharmony_ciinclude_dirs = [
344be168c0dSopenharmony_ci    "//third_party/mindspore/mindspore-src/source/mindspore/lite/mindir/include"
345be168c0dSopenharmony_ci]
346be168c0dSopenharmony_ciexternal_deps = ["mindspore:mindir"]
347be168c0dSopenharmony_ci```
348be168c0dSopenharmony_ci
349be168c0dSopenharmony_ciMindIR C++ API接口存放目录为`third_party/mindspore/mindspore-src/source/mindspore/lite/mindir/include`。
350be168c0dSopenharmony_ci
351be168c0dSopenharmony_ci```
352be168c0dSopenharmony_ci├── include                     # 对外的所有头文件
353be168c0dSopenharmony_ci│   ├── mindir.h                # MindIR所有功能的头文件
354be168c0dSopenharmony_ci│   ├── mindir_lite_graph.h     # Lite Graph相关的头文件
355be168c0dSopenharmony_ci│   ├── mindir_primitive.h      # Primitive相关头文件
356be168c0dSopenharmony_ci│   ├── mindir_tensor.h         # Tensor相关头文件
357be168c0dSopenharmony_ci│   └── mindir_types.h          # 类型相关的头文件
358be168c0dSopenharmony_ci├── inner_headers               # 内部使用的头文件
359be168c0dSopenharmony_ci├── src                         # MindIR构图接口的源代码
360be168c0dSopenharmony_ci└── tests                       # 测试代码
361be168c0dSopenharmony_ci```
362be168c0dSopenharmony_ci
363be168c0dSopenharmony_ci### 编译MindSpore Lite
364be168c0dSopenharmony_ci
365be168c0dSopenharmony_ci以rk3568为例,单独编译mindspore lite动态库:
366be168c0dSopenharmony_ci
367be168c0dSopenharmony_ci```bash
368be168c0dSopenharmony_ci./build.sh --product-name rk3568 --target-cpu arm -T mindspore_lib --ccache
369be168c0dSopenharmony_ci```
370be168c0dSopenharmony_ci
371be168c0dSopenharmony_ci编译出的so文件位于`out/rk3568/thirdparty/mindspore/`目录。
372be168c0dSopenharmony_ci
373be168c0dSopenharmony_ci```
374be168c0dSopenharmony_cilibmindir.z.so  libmindspore-lite.huawei.so
375be168c0dSopenharmony_ci```
376be168c0dSopenharmony_ci
377