位置:51电子网 » 技术资料 » 新品发布

华为终于揭开了其自研AI芯片的神秘面纱

发布时间:2019/8/30 11:58:54 访问次数:2586

在昨日举行的华为全连接大会上,华为终于揭开了其自研AI芯片的神秘面纱。

据华为轮值总裁徐直军介绍,华为这次推出的两款芯片分别是昇腾910和昇腾310,这都是华为基于其自研的达芬奇架构打造的两款新品。其中昇腾910是当前单芯片计算密度最大的AI芯片。该产品采用7nm工艺打造,最大功耗做到350w,其他参数也是表现优越:在半精度 (FP16)下,可以做到256 TeraFLOPS,在整数精度 (INT8)下,更是做到了512 TeraOPS,另外,该款芯片还支持128 通道的全高清视频解码器(H.264/265)。


该文在研究了目前的计算机性能评价的基础上,探讨了应用服务器性能评价的基本思路和方法,并用这个思路为指导,给出了一个Domino邮件服务器并借鉴了目前比较典型的几种测试工具,设计开发了开放源码的FreeNotesBench邮件评测软件包,此软件包能有效的评测Domino邮件服务器的性能,使用简单灵活,是目前国内研究与评价Domino服务器性能的一个较好选择.之后,我们从硬件层、操作系统层、应用层等方面分析了影响Domino邮件服务器性能的因素,给出了一些行之有效的优化方法和参数设置建议,并用这些方法在曙光3000服务器的一个节点上进行了性能优化,取得了较好的性能.曙光3000超级服务器是国产超级服务器的代表.作者在曙光3000的服务节点上对Domino邮件服务器进行了一系列评测与优化,并给出了曙光机一个服务结点优化后的性能数值.该测试也说明了曙光3000的单服务结点可以满足现有中小型商业应用,为曙光3000超级服务器进入国内商业领域提供了性能数值上的依据.


1.  指标范围1.1  User mode CPU utilization+ System mode CPU utilization合理值:60-85%,如果在一个多用户系统中us+sy时间超过85%,则进程可能要花时间在运行队列中等待,响应时间和业务吞吐量会受损害;us过大,说明有用户进程占用很多cpu时间,需要进一步的分析其它软硬件因素;sy过大,说明系统管理方面花了很多时间,说明该系统中某个子系统产生了瓶颈,需要进一步分析其它软硬件因素。1.2  Wa(wait)参考值:小于25%,超过25%的wa的值可以表示磁盘子系统可能没有被正确平衡,也可能是磁盘密集工作负载的结果,系统的磁盘或其它I/o可能有问题,可以通过iostat/SAR –C命令进一步分解分析1.3  Id(idle)参考值:大于40,如果r经常大于4,且id经常小于40,表示cpu的负荷很重1.4  r参考值:小于4,队列大于4时,表明系统的cpu或内存可能有问题,如果r经常大于4,且id经常少于40,表示cpu的负荷很重。当队列变长时,队列中进程在等待cpu调度执行时所花的时间会变长1.5  判断cpu瓶颈的方法很慢的响应时间(slow response time)


Cpu的空闲时间为零(zero percent idle cpu)

过高的用户占用cpu时间(high percent user cpu)

过高的系统占用cpu时间(high percent system cpu)

长时间的有很长的运行进程队列(large run queue size sustained over time)

任何进程要想占有CPU,从而真正处于执行状态,就必须经由进程调度。进程调度机制主要涉及到调度方式、调度时机和调度策略。

1. 调度方式

Linux内核的调度方式基本上采用“抢占式优先级”方式,即当进程在用户模式下运行时,不管是否自愿,在一定条件下(如时间片用完或等待I/O),核心就可以暂时剥夺其运行而调度其它进程进入运行。但是,一旦进程切换到内核模式下运行,就不受以上限制而一直运行下去,直至又回到用户模式之前才会发生进程调度。

Linux系统中的调度策略基本上继承了Unix的以优先级为基础的调度。就是说,核心为系统中每个进程计算出一个优先权,该优先权反映了一个进程获得CPU使用权的资格,即高优先权的进程优先得到运行。核心从进程就绪队列中挑选一个优先权最高的进程,为其分配一个CPU时间片,令其投入运行。在运行过程中,当前进程的优先权随时间递减,这样就实现了“负反馈”作用:经过一段时间之后,原来级别较低的进程就相对“提升”了级别,从而有机会得到运行。当所有进程的优先权都变为0时,就重新计算一次所有进程的优先权。

2. 调度策略

Linux系统针对不同类别的进程提供了三种不同的调度策略,即SCHED_FIFO、SCHED_RR及SCHED_OTHER。

SCHED_FIFO适合于实时进程,它们对时间性要求比较强,而每次运行所需的时间比较短,一旦这种进程被调度开始运行后,就要一直运行到自愿让出CPU,或者被优先权更高的进程抢占其执行权为止。

SCHED_RR对应“时间片轮转法”,适合于每次运行需要较长时间的实时进程。一个运行进程分配一个时间片(如200毫秒),当时间片用完后,CPU被另外进程抢占,而该进程被送回相同优先级队列的末尾。SCHED_OTHER是传统的Unix调度策略,适合于交互式的分时进程。这类进程的优先权取决于两个因素,一个因素是进程剩余时间配额,如果进程用完了配给的时间,则相应优先权为0;另一个是进程的优先数nice,这是从Unix系统沿袭下来的方法,优先数越小,其优先级越高。

nice的取值范围是19-20。用户可以利用nice命令设定进程的nice值。但一般用户只能设定正值,从而主动降低其优先级;只有特权用户才能把nice的值置为负数。进程的优先权就是以上二者之和。核心动态调整用户态进程的优先级。这样,一个进程从创建到完成任务后终止,需要经历多次反馈循环。当进程再次被调度运行时,它就从上次断点处开始继续执行。对于实时进程,其优先权的值是(1000+设定的正值),因此,至少是1000。所以,实时进程的优先权高于其它类型进程的优先权。另外,时间配额及nice值与实时进程的优先权无关。如果系统中有实时进程处于就绪状态,则非实时进程就不能被调度运行,直至所有实时进程都完成了,非实时进程才有机会占用CPU。

后台命令(在命令末尾有&符号,如gcc f1.c& )对应后台进程(又称后台作业),后台进程的优先级低于任何交互(前台)进程的优先级。所以,只有当系统中当前不存在可运行的交互进程时,才调度后台进程运行。后台进程往往按批处理方式调度运行。

3. 调度时机

核心进行进程调度的时机有以下几种情况:

(1)当前进程调用系统调用nanosleep( )或pause( )使自己进入睡眠状态,主动让出一段时间的CPU使用权;

(2)进程终止,永久地放弃对CPU的使用;

(3)在时钟中断处理程序执行过程中,发现当前进程连续运行的时间过长;

(4)当唤醒一个睡眠进程时,发现被唤醒的进程比当前进程更有资格运行;

(5)一个进程通过执行系统调用来改变调度策略或降低自身的优先权(如nice命令),从而引起立即调度。

4. 调度算法

进程调度的算法应该比较简单,以便减少频繁调度时的系统开销。Linux执行进程调度时,首先查找所有在就绪队列中的进程,从中选出优先级最高且在内存的一个进程。如果队列中有实时进程,那么实时进程将优先运行。如果最需要运行的进程不是当前进程,那么当前进程就被挂起,并且保存它的现场所涉及的一切机器状态,包括程序计数器和CPU寄存器等,然后为选中的进程恢复运行现场。


在昨日举行的华为全连接大会上,华为终于揭开了其自研AI芯片的神秘面纱。

据华为轮值总裁徐直军介绍,华为这次推出的两款芯片分别是昇腾910和昇腾310,这都是华为基于其自研的达芬奇架构打造的两款新品。其中昇腾910是当前单芯片计算密度最大的AI芯片。该产品采用7nm工艺打造,最大功耗做到350w,其他参数也是表现优越:在半精度 (FP16)下,可以做到256 TeraFLOPS,在整数精度 (INT8)下,更是做到了512 TeraOPS,另外,该款芯片还支持128 通道的全高清视频解码器(H.264/265)。


该文在研究了目前的计算机性能评价的基础上,探讨了应用服务器性能评价的基本思路和方法,并用这个思路为指导,给出了一个Domino邮件服务器并借鉴了目前比较典型的几种测试工具,设计开发了开放源码的FreeNotesBench邮件评测软件包,此软件包能有效的评测Domino邮件服务器的性能,使用简单灵活,是目前国内研究与评价Domino服务器性能的一个较好选择.之后,我们从硬件层、操作系统层、应用层等方面分析了影响Domino邮件服务器性能的因素,给出了一些行之有效的优化方法和参数设置建议,并用这些方法在曙光3000服务器的一个节点上进行了性能优化,取得了较好的性能.曙光3000超级服务器是国产超级服务器的代表.作者在曙光3000的服务节点上对Domino邮件服务器进行了一系列评测与优化,并给出了曙光机一个服务结点优化后的性能数值.该测试也说明了曙光3000的单服务结点可以满足现有中小型商业应用,为曙光3000超级服务器进入国内商业领域提供了性能数值上的依据.


1.  指标范围1.1  User mode CPU utilization+ System mode CPU utilization合理值:60-85%,如果在一个多用户系统中us+sy时间超过85%,则进程可能要花时间在运行队列中等待,响应时间和业务吞吐量会受损害;us过大,说明有用户进程占用很多cpu时间,需要进一步的分析其它软硬件因素;sy过大,说明系统管理方面花了很多时间,说明该系统中某个子系统产生了瓶颈,需要进一步分析其它软硬件因素。1.2  Wa(wait)参考值:小于25%,超过25%的wa的值可以表示磁盘子系统可能没有被正确平衡,也可能是磁盘密集工作负载的结果,系统的磁盘或其它I/o可能有问题,可以通过iostat/SAR –C命令进一步分解分析1.3  Id(idle)参考值:大于40,如果r经常大于4,且id经常小于40,表示cpu的负荷很重1.4  r参考值:小于4,队列大于4时,表明系统的cpu或内存可能有问题,如果r经常大于4,且id经常少于40,表示cpu的负荷很重。当队列变长时,队列中进程在等待cpu调度执行时所花的时间会变长1.5  判断cpu瓶颈的方法很慢的响应时间(slow response time)


Cpu的空闲时间为零(zero percent idle cpu)

过高的用户占用cpu时间(high percent user cpu)

过高的系统占用cpu时间(high percent system cpu)

长时间的有很长的运行进程队列(large run queue size sustained over time)

任何进程要想占有CPU,从而真正处于执行状态,就必须经由进程调度。进程调度机制主要涉及到调度方式、调度时机和调度策略。

1. 调度方式

Linux内核的调度方式基本上采用“抢占式优先级”方式,即当进程在用户模式下运行时,不管是否自愿,在一定条件下(如时间片用完或等待I/O),核心就可以暂时剥夺其运行而调度其它进程进入运行。但是,一旦进程切换到内核模式下运行,就不受以上限制而一直运行下去,直至又回到用户模式之前才会发生进程调度。

Linux系统中的调度策略基本上继承了Unix的以优先级为基础的调度。就是说,核心为系统中每个进程计算出一个优先权,该优先权反映了一个进程获得CPU使用权的资格,即高优先权的进程优先得到运行。核心从进程就绪队列中挑选一个优先权最高的进程,为其分配一个CPU时间片,令其投入运行。在运行过程中,当前进程的优先权随时间递减,这样就实现了“负反馈”作用:经过一段时间之后,原来级别较低的进程就相对“提升”了级别,从而有机会得到运行。当所有进程的优先权都变为0时,就重新计算一次所有进程的优先权。

2. 调度策略

Linux系统针对不同类别的进程提供了三种不同的调度策略,即SCHED_FIFO、SCHED_RR及SCHED_OTHER。

SCHED_FIFO适合于实时进程,它们对时间性要求比较强,而每次运行所需的时间比较短,一旦这种进程被调度开始运行后,就要一直运行到自愿让出CPU,或者被优先权更高的进程抢占其执行权为止。

SCHED_RR对应“时间片轮转法”,适合于每次运行需要较长时间的实时进程。一个运行进程分配一个时间片(如200毫秒),当时间片用完后,CPU被另外进程抢占,而该进程被送回相同优先级队列的末尾。SCHED_OTHER是传统的Unix调度策略,适合于交互式的分时进程。这类进程的优先权取决于两个因素,一个因素是进程剩余时间配额,如果进程用完了配给的时间,则相应优先权为0;另一个是进程的优先数nice,这是从Unix系统沿袭下来的方法,优先数越小,其优先级越高。

nice的取值范围是19-20。用户可以利用nice命令设定进程的nice值。但一般用户只能设定正值,从而主动降低其优先级;只有特权用户才能把nice的值置为负数。进程的优先权就是以上二者之和。核心动态调整用户态进程的优先级。这样,一个进程从创建到完成任务后终止,需要经历多次反馈循环。当进程再次被调度运行时,它就从上次断点处开始继续执行。对于实时进程,其优先权的值是(1000+设定的正值),因此,至少是1000。所以,实时进程的优先权高于其它类型进程的优先权。另外,时间配额及nice值与实时进程的优先权无关。如果系统中有实时进程处于就绪状态,则非实时进程就不能被调度运行,直至所有实时进程都完成了,非实时进程才有机会占用CPU。

后台命令(在命令末尾有&符号,如gcc f1.c& )对应后台进程(又称后台作业),后台进程的优先级低于任何交互(前台)进程的优先级。所以,只有当系统中当前不存在可运行的交互进程时,才调度后台进程运行。后台进程往往按批处理方式调度运行。

3. 调度时机

核心进行进程调度的时机有以下几种情况:

(1)当前进程调用系统调用nanosleep( )或pause( )使自己进入睡眠状态,主动让出一段时间的CPU使用权;

(2)进程终止,永久地放弃对CPU的使用;

(3)在时钟中断处理程序执行过程中,发现当前进程连续运行的时间过长;

(4)当唤醒一个睡眠进程时,发现被唤醒的进程比当前进程更有资格运行;

(5)一个进程通过执行系统调用来改变调度策略或降低自身的优先权(如nice命令),从而引起立即调度。

4. 调度算法

进程调度的算法应该比较简单,以便减少频繁调度时的系统开销。Linux执行进程调度时,首先查找所有在就绪队列中的进程,从中选出优先级最高且在内存的一个进程。如果队列中有实时进程,那么实时进程将优先运行。如果最需要运行的进程不是当前进程,那么当前进程就被挂起,并且保存它的现场所涉及的一切机器状态,包括程序计数器和CPU寄存器等,然后为选中的进程恢复运行现场。


热门点击

 

推荐技术资料

自制智能型ICL7135
    表头使ff11CL7135作为ADC,ICL7135是... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!