开发者学堂课程【剑池系列开发工具 :剑池系列开发工具系统规划(一)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/734/detail/13095
剑池系列开发工具系统规划(一)
内容介绍:
一、 简介
二、 开发工具全貌
三、 开发工具集合
四、 小结
五、下期预告
一、简介
整体开发工具集称为剑池开发工具。课题中主要内容为整体开发工具及包含的内容。在开发过程中如何使用好工具集中的组件,使开发效率更高,后续会针对每个工具集的每个点展开讲述。具体从以下四方面进行讲述:
(1) 简介
(2) 开发工具全貌
(3) 开发工具集合
(4) 下期预告
1.平头哥的使命
在市面上宣传的主要有3个产品
(1) 玄铁处理器
(2) 无剑芯片平台
(3) 含光NPU
去年7月25日上海大会发布了业界最高的玄铁处理器 C910,在整个 race five 中,比第二选手超过了40%的性能。其次是无剑 soc 芯片设计平台,在 GitHub 中开放。许多同学在其基础上做了许多有趣的应用。第3个是寒光 NPU,是整个云端推理性能最强的 NPU。整个平头哥的使命就是从端开始到服务器,从云上释放普惠的算点出来,端侧共同打造普惠的芯片出来,整体构建普惠生态。
整个玄铁处理器分为2个系列:第一个是800系列,称它第一行为自研制定机,800系列中,从最小的超级用号的801到最高性能的860,整个应用领域和性能领域都是全覆盖的,整个成本面积在8位 MCU 级别或 MCU 处理器成本的级别,但是它有32处理性能。 802走的是低功耗低成本的路线; 803有计算与成本平衡;最具特色的805是专门做人工智能加速的,面向市场更多是蓝牙和智能音响,带有智能元素的MCU控制芯片。 807是高能效处理器,810是高性能计算引擎,860是高性能计算架构,以下是资源指令集的整条路线,是玄铁800系列的:
以下是基于 RISCV 架构的玄铁900系列:
500系列共有3款处理器,其中910是去年发布的性能最好的 RISC 处理器,目前是12级流水线,可以支持最多16个盒。 整个 hallmark 是7.1每兆赫兹,比第2名多出40%的性能。今年发布的906处理器是5级流水,可以认为与803当量级的处理器,比80 3流水线再深一些的处理器,面向的是高性能 MCU 或高能效的 APP 计算,属于906覆盖的范围。第一款处理器是 RISC 处理器就是902,走的是低成本低功耗路线。图中有2个?,包括流水线集数和名字,表示正在研发当中。但是从布局上看。会往高能效及更高性能方向研究。
二、开发工具全貌
开发工具的提出在于推出许多玄铁处理器之后,需要提供较为全面的开发工具给予用户。将玄铁处理器更好的使用起来,同时将玄铁处理器的性能全面发挥,这也就是功能上的保障。其次,将玄铁处理器的性能在用户手上极致发挥。最后希望用户体验最佳,也就是指用户快速上手使用开发芯片。介绍开发工具全貌首先需要介绍规范,规范分为2个部分:
应用二进制接口(ABI)
规范程序二进制存储格式;
规范 CPU 寄存器使用规则;
规范函数调用参数传递规则;
规范函数栈帧布局;
规范软件64位定点运算接口;
规范软件浮点运算接口;
统一接口规范(CSI)
CPU 抽象接口(CSI-Core);
通用外设驱动接口(CSI-Driver);
微内核抽象接口(CSI-Kernel);
通用算法库接口(CSI-DSP);
神经网络加速库接口(CSI-NN);
计算机视觉加速库接口(CSI-CV);
整体ABI主要是规范软件或硬件的 interface,包括CP计算机的使用规则及函数调用规则,二进制存储格式及运算接口规则等,以上内容都会在 ABI 中规定。在开发虚拟机,例如 Java script 时会使用到该规则,规则可以在应用 API 的手册中找到。其次,为了使用户或开发者能更好的共用资源,规定了一个统一接口规范,称之为 CSI。在 CSI 中,会区分各个模块不同的作用。首先用于 CPU 抽象的 interface。会将 CPU 的特权指令操作抽象到 CS core 中。例如,在从802切换到803或在各个 CPU 切换时,使切换更加顺滑。其次,定义了面向外设驱动 CSI Driver,会将阿里云提供的芯片直接用 CSI Driver 来包装,开发时,用同一接口调用,方便开发者。满足驱动、内核、算法、神经网络加速库以及计算机视觉各个方面的开发者。方便用户能够通过接口有更好的实现。阿里云实现了面向玄铁处理器的快速版本,叫 CSI-DSP,更多是面向 DSP 语音信号处理及电子电机控制的加速算法库。 CS-NN 就是将网络加速库抽象出来,CSI-CV 更多是面向计算机视觉,与神经网络有一定交叠,但更多是对图像的识别及处理。以上是整个软硬件接口规范。开发工具全貌如下:
如图所示,有2个集成开发环境:CDS,CDK。在 graphic interface 上延伸出了图形化。方便用户使用 SDK 的制作方法及框架,图形化的性能分析器,图形化的系统概述分析器,实时调试,以上内容会在集成开发环境中体现。开发环境分为3类,其中一类是编译工具链。目前支持两套编辑系统,分别是 GCC base 和 lv base 基于以上还会存在 CPU 运行时库,CPU 运行时库就是在 CPU 上不支持硬件服务点的时候,仍然能进行服务点计算。由于 CPU 运行式库会有软件浮点的行为,将浮点的操作映射成通用的整形指令。还可能存在语言相关的模拟。例如,除法模拟或调试信息的解析。以上内容都称之为 CPU 运行时库,在该层面做了加速优化,使整个实体效率更高。第三点,会提供整套整套二进制工具,基于 C 库或数学库和软件浮点库等内容。以上为第一大块编译工具链,第二大块是模拟器。模拟器就是在没有硬件的情况下做软件开发使用的工具。模拟器集成了大部分开发板和 CPU,以上内容都能在模拟器中寻找到。可以直接在模拟器上做开发工作。系统如果仅仅只存在 CPU 编译器模拟器或其他真实硬件是没有用的,因为程序会存在一些问题,所以需要调试系统。从整个调试系统来看,存在在线仿真器和调试 monitor。和一些确实系统分为以上几块,以上内容走的是低成本路线。整个开发工具目标明确,希望给用户带来极致极简的开发体验,将许多资源整合在一起,通过调试系统,将开发过程的诊断性提高。例如遇到问题时能快速寻找出问题所在。