diff --git a/chapter_accelerator/accelerator_programming.md b/chapter_accelerator/accelerator_programming.md index 34fd492..ff0cced 100644 --- a/chapter_accelerator/accelerator_programming.md +++ b/chapter_accelerator/accelerator_programming.md @@ -41,7 +41,8 @@ - **华为TBE/AKG** TBE(Tensor Boost Engine)是华为的Ascend芯片及其CANN软件栈基于TVM 开发的一套算子编译优化工具,用于对Ascend芯片进行调度优化、指令映射、及后端pass优化等。不仅提供了一个优化过的神经网络标准算子库,同时还提供了算子开发能力及融合能力。通过TBE提供的API和自定义算子编程开发界面可以完成相应神经网络算子的开发,帮助用户较容易的去使能硬件加速器上的AI_CORE 相关指令,以实现高性能的神经网络计算。为了简化算子开发流程,TBE还实现了一个Auto Schedule工具,开放了自定义算子编程DSL,用于自动完成复杂算子的调度生成。此外,TBE还实现了端到端的动态shape算子编译能力。 - ![TBE](../img/ch06/tbe.png) + +![TBE](../img/ch06/tbe.png) :width:`800px` :label:`tbe` diff --git a/chapter_data_processing/program_model.md b/chapter_data_processing/program_model.md index a80c93a..f340beb 100644 --- a/chapter_data_processing/program_model.md +++ b/chapter_data_processing/program_model.md @@ -111,7 +111,7 @@ dataset = dataset.map(input_columns="label", operations=onehot_op) MindData中的数据预处理算子可以分为C层算子以及Python层算子,C层算子能提供较高的执行性能而Python层算子可以很方便借助丰富的第三方Python包进行开发。为了灵活地覆盖更多场景,MindData支持用户使用Python开发自定义算子,如果用户追求更高的性能,MindData也支持用户将开发的C层算子编译后以插件的形式注册到MindSpore的数据处理中进行调用。 -对于用户传入map、filter等数据集变换算子中的自定义数据处理算子,MindData的Pipeline启动后会通过创建的Python运行时来执行。需要指出的是自定义的Python算子需要保证需要保一个或多个输入、输出均是numpy.ndarray类型。具体执行过程中,当MindData的Pipeline的数据集变换中执行用户自定义的PyFunc算子时,会将输入数据以numpy.ndarray的类型传递给用户的PyFunc,自定义算子执行完毕后再以numpy.ndarray返回给MindData,在此期间,正在执行的数据集变换算子(如map、filter等)负责该PyFunc的运行时生命周期及异常判断。如果用户追求更高的性能,MindData也支持用户自定义C算子。dataset-plugin仓(插件仓) :cite:`minddata` 为MindData的算子插件仓,囊括了为特定领域(遥感,医疗,气象等)量身制作的算子,该仓承载MindData的插件能力扩展,为用户编写MindData的新算子提供了便捷易用的入口,用户通过编写算子、编译、安装插件步骤,然后就可以在MindData +对于用户传入map、filter等数据集变换算子中的自定义数据处理算子,MindData的Pipeline启动后会通过创建的Python运行时来执行。需要指出的是自定义的Python算子需要保证输入、输出均是numpy.ndarray类型。具体执行过程中,当MindData的Pipeline的数据集变换中执行用户自定义的PyFunc算子时,会将输入数据以numpy.ndarray的类型传递给用户的PyFunc,自定义算子执行完毕后再以numpy.ndarray返回给MindData,在此期间,正在执行的数据集变换算子(如map、filter等)负责该PyFunc的运行时生命周期及异常判断。如果用户追求更高的性能,MindData也支持用户自定义C算子。dataset-plugin仓(插件仓) :cite:`minddata` 为MindData的算子插件仓,囊括了为特定领域(遥感,医疗,气象等)量身制作的算子,该仓承载MindData的插件能力扩展,为用户编写MindData的新算子提供了便捷易用的入口,用户通过编写算子、编译、安装插件步骤,然后就可以在MindData Pipeline的map操作中使用新开发的算子。 @@ -119,4 +119,4 @@ Pipeline的map操作中使用新开发的算子。 ![MindSpore自定义算子注册](../img/ch07/7.2/dataset-plugin.png) :width:`800px` -:label:`mindspore_user_defined_operator` \ No newline at end of file +:label:`mindspore_user_defined_operator` diff --git a/chapter_data_processing/requirements.md b/chapter_data_processing/requirements.md index 9cd7e26..2c665b5 100644 --- a/chapter_data_processing/requirements.md +++ b/chapter_data_processing/requirements.md @@ -26,7 +26,7 @@ AI模型训练/推理过程中涉及到的数据处理非常灵活:一方面 #### 高效性 -由于GPU/华为昇腾Ascend等常见AI加速器主要面向Tensor数据类型计算,并不具备通用的数据处理能力,现有主流机器学习系统数据模块通常选择使用CPU进行数据流水线的执行。理想情况下,在每个训练迭代步开始之前,数据模块都需要将数据准备好、以减少加速器因为等待数据而阻塞的时间消耗。然而数据流水线中的数据加载和数据预处理常常面临着具有挑战性的I/O性能性能和CPU计算性能问题,数据模块需要设计具备支持随机读取且具备高读取吞吐率的文件格式来解决数据读取瓶颈问题,同时还需要设计合理的并行架构来高效的执行数据流水线,以解决计算性能问题。为达到高性能的训练吞吐率,主流机器学习系统均采用数据处理与模型计算进行异步执行,以掩盖数据预处理的延迟。 +由于GPU/华为昇腾Ascend等常见AI加速器主要面向Tensor数据类型计算,并不具备通用的数据处理能力,现有主流机器学习系统数据模块通常选择使用CPU进行数据流水线的执行。理想情况下,在每个训练迭代步开始之前,数据模块都需要将数据准备好、以减少加速器因为等待数据而阻塞的时间消耗。然而数据流水线中的数据加载和数据预处理常常面临着具有挑战性的I/O性能和CPU计算性能问题,数据模块需要设计具备支持随机读取且具备高读取吞吐率的文件格式来解决数据读取瓶颈问题,同时还需要设计合理的并行架构来高效的执行数据流水线,以解决计算性能问题。为达到高性能的训练吞吐率,主流机器学习系统均采用数据处理与模型计算进行异步执行,以掩盖数据预处理的延迟。 #### 保序性 diff --git a/info/issue.md b/info/issue.md new file mode 100644 index 0000000..54a406c --- /dev/null +++ b/info/issue.md @@ -0,0 +1,12 @@ +# Issue的label +目前我们的issue主要有如下label: + +- great suggestion: 表示该issue是用户为本书的内容提供的写作建议,并且该建议是一个很好的建立 +- discussion: 表示该issue是用户针对文章内容进行特定讨论,或用户对内容进行了建议并且该建议还处在商讨中 +- to be confirmed: 表示该issue被assign给了章节作者,但是目前章节作者并没有回复处理这个issue +- confirmed: 表示该issue被章节作者已经确认 +- fixed: 表示该issue相关的pr被approve/merge + +常规而言,一个针对书籍内容校正的issue的状态变换应该为: + + to be confirmed ----> confirmed ----> fixed diff --git a/info/style.md b/info/style.md index 03e6de9..d6768ca 100644 --- a/info/style.md +++ b/info/style.md @@ -37,17 +37,17 @@ * 使用PPT制图,以pdf导出,再使用Inkscape转成svg。 * Inkscape软件使用: * 用Inkscape打开pdf,渐变曲线精细度选择为精细。 - ![Inkscape打开PDF](./img/guide/step1.png) + ![Inkscape打开PDF](../img/guide/step1.png) * 选中图片,我们可以看到图和其白底 - ![1](./img/guide/step2.png) + ![1](../img/guide/step2.png) * 随意找一块能选择的图,此时会出现周边有虚框 - ![2](./img/guide/step3.png) + ![2](../img/guide/step3.png) * 按住ctrl拉一下白色框,此时能将图片和白框分离出来,按Delete删除白框。 - ![3](./img/guide/step4.png) + ![3](../img/guide/step4.png) * 选择文件-文档属性-缩放页面内容-缩放页面到绘图或选区。 - ![4](./img/guide/step5.png) + ![4](../img/guide/step5.png) * 最后保存图片,用Pycharm看图片效果如下:无白色底,大小刚好框住整图。 - ![5](./img/guide/step6.png) + ![5](../img/guide/step6.png) * 样式 * 格式: