从硬件架构到软件工具链,存算一体大算力AI芯片的创新与实践
导读7月6日,后摩智能联合智东西公开课策划推出的「存算一体大算力AI芯片在线研讨会」顺利完结。东南大学电子科学与工程学院副研究员司鑫、后摩智能联合创始人&芯片研发副总裁陈亮、后摩智能联合创始人&产品推出副总裁信晓旭三位主讲人参与了本次在线研讨会并进行了主题分享。
陈亮博士的演讲主题为《从硬件架构到软件工具链,存算一体大算力AI芯片的创新与实践》。他首先以FSD 和Tenstorrent 两个典型的AI处理器架构为例,介绍了传统处理器架构的不足,之后围绕存算单元Macro、层次化的AI核设计、软件工具链、软件栈、编程模型等方面对后摩智能存算一体大算力AI芯片进行了深入讲解。错过直播的朋友,可以点击“
阅读原文 ”观看回放。本文为陈亮博士的主讲回顾:
大家好,我是后摩智能联合创始人&芯片研发副总裁陈亮,很高兴跟大家做今天的分享,我讲解的主题是《从硬件架构到软件工具链,存算一体大算力AI芯片的创新与实践》,主要从以下三个部分展开介绍:
第一部分会讲下典型的AI处理器架构,这里会围绕特斯拉FSD 和Tenstorrent 芯片做介绍;
第二部分是后摩AI处理器的架构设计,主要分为存算单元Macro 的设计考虑、层次化的AI 核的设计,还有基于存算一体的AI核设计过程中的一些工程化考虑;
第三部分是软件工具链方面,我们知道每个NPU,每个AI核都有自己的软件工具链、编译器等,我会介绍下后摩智能AI处理器的软件栈和编程模型。
一、典型的AI处理器架构
第一个典型的AI处理器架构是特斯拉的FSD。特斯拉FSD 发布于2017年左右,是一个非常简洁、高效的设计,因为它是特斯拉专用的AI处理器,主要的组成部分包括一个96×96的MACs 阵列、一个片内32MB的SRAM、一个非常简洁的指令集,指令集里面包括了两个DMA 指令、三个点乘指令、一个scale 即标量指令、一个eltwise 指令和一个stop 指令。如果不算stop 指令,FSD 只有7条计算指令。
上图的下半部分是它的架构图和版图,从它的架构图和版图来看,它具有非常简洁的设计,带来的好处是非常高效。当时在计算效率、能效比等方面,FSD 要比英伟达的GPU 高几个量级。这也是因为应用的场景不一样,它是一个专用的AI处理器,特斯拉自己的算法运行在特定的处理器上。FSD 架构的主要设计者是吉姆·凯勒,他是处理器领域架构设计的大牛,简洁设计也跟他个人的风格有关,他本人是一个非常崇尚极简主义的架构师。
第二个典型的AI处理器架构是吉姆·凯勒的另外一个作品,这是他近两年加盟的一个新创业公司Tenstorrent,Warmhole 是2021年他们公司一款芯片的名字。我们认为Tenstorrent Warmhole,还有常听说过的GraphCore,它们都属于近存计算的范畴。
从这两个典型的AI处理器架构可以看出,经过一段时间的演变,传统存储和计算分离的架构已经演进成了近存计算。那近存计算是指什么呢?从上图可以看出整个芯片架构的概况。左下角大的方块,是它的芯片,芯片内部由若干个Tensix core 组成,这些小方块就是Tensix core,这些Tensix core 之间是用Network-on-chip,即NoC 连接在一起的。若干个二维的Tensix core 阵列通过NoC 连接在一起,组成一个芯片,芯片间又通过Ethernet 把芯片连接在一起,这样在芯片间再做一个2Dmesh 扩展。
从计算的角度来看,若干个Tensix core 可以同时完成一个大的Tensor 计算,一个Tensor 可以分解成若干个mini-Tensor,每个mini-Tensor 可以分布在不同的Tensix core 上运行。Tensix core 看起来也是相对简洁的设计,包括了一个CPU matrix vector Engine,再加上近存部分,就是它的SRAM,每一个Tensix core 里有一小块SRAM。除此之外,为了增强数据共享,还增加了Router 和Packet Manager 的处理单元,来保证数据在不同的小Tensix core 之间,还有芯片之间做数据的传输和互联。
从整个架构来看,可以看到它的计算是一个分布式的计算,它的存储也是一个分布式的存储。每个Tensix core 里边的SRAM 组成了片内相当大的分布式存储资源。有了计算,有了存储,另外一个关键的问题就是数据传输,它使用了Network-on-chip(NoC)的数据传输解决方案。
从设计角的度来看,也是一个非常简洁的设计,基本上可以认为把一个Tensix core 和NoC 设计好之后,不断的执行copy-paste 就可以组成一个大的芯片。因此,它有极好的可扩展性。Warmhole 是Tenstorrent 公司2021年的产品,前几年的产品还非常小,只是一个4×4的Tensix core阵列,现在已经发展成一个非常大的阵列。
从2017年到2021年,可以看到AI处理器的架构已经从传统计算和存储分离的架构,演变成了一个近存的架构。之前司鑫老师也讲过,后摩智能所做的是更进一步把存储和计算完全融合在一起,而不只是一个近存计算。
二、后摩智能AI处理器架构
下面更详细介绍下后摩的AI处理器设计。从Macro 到Cluster,我们认为这是一种分布式计算和集中式计算的折衷,是一种trade off。如上图所示,最右边这是一个Macro,就是刚才司鑫老师讲的一个存算单元,由若干个Macro 组成一个Macro Group array。Macro Group array 在Tile 里面是Tensor Engine 最重要的一个计算单元,Tile 同时又是AI Core 里一个重要的组成部分。Tile 内部除了Tensor Engine 以外,还包括了CPU、Special Function Unit(SFU)、Vector Processor(VP)、还有Shared Memory&Controller。Tile 有点类似于上面讲到的特斯拉FSD Core,包括了非常大的算力,每个Macro Group 可以提供4TOPS 算力,所以它类似一个大算力的Core。
若干个Tile 又可以组成一个AI Core。AI Core 里边除了Tile 之外,还包括了像神经网络处理或者AI计算里的前处理或后处理的处理单元、LDST 单元,还有一个Bus Node 单元,Bus Node 用来在Tile 之间或者Core 之间做数据共享和数据路由的控制来源。
在SOC层面,若干个AI Core 又可以组成一个AI Core Clueter,通过总线将若干个AI Core 连接在一起。所以这是一个层次化的设计,若干个Macro 可以组成一个Macro Group,Macro Group 又组成了一个Tile,若干个Tile 可以组成一个AI Core,若干个AI Core 可以组成一个AI Core Clueter,那我们的算力就可以从最小的1个Macro Group,4TOPS 算力不断叠加,最终可以在1个SoC 里面实现几百TOPS 算力。
接下来我会以这4个层次为基础,详细介绍后摩智能的存算一体大算力AI芯片设计。首先是Macro 存算单元,刚刚司鑫老师也有讲到,存算是有不同的路线可以选择的,包括了一些非易失存储的工艺,还有SRAM 工艺,我们采用的方案是SRAM 工艺。SRAM 方案也有模拟和数字两种实现方式,我们把数字存算称为CIMD,模拟存算称为CIMA。
上图的表格中对比了数字和模拟CIM 实现的一些特点。从计算原理上来看,CIMD 是数字逻辑,CIMA 采用了诸如电流分压、时域延时,或者是电荷共享、电容耦合的计算方式;在运算精度方面,CIMD 可以达到8比特甚至更高的比特,比如16比特,但CIMA 的精度会低一些,因为它受限于ADC 的精度,还有它需要把模拟信号转换成数字信号,如果想达到比较高的能效比,一般来说只能实现小于等于4比特的计算精度;从工艺上来看,CIMD 与先进工艺相匹配,不会受到PVT 波动的影响,但CIMA 与先进工艺无法匹配,它需要非常复杂的校正模块,因为模拟电路会容易受干扰;在可靠性方面,数字电路抗干扰能力是比较强的,而模拟电路容易受到温度、噪声等因素的影响,所以可靠性会差一些。
从PPA 的角度来看,CIMD 的算力密度和能效比是比较高的,我们的数据在不同先进工艺下,它的能效比可以达到几十TOPS 甚至上百TOPS。因为是纯数字电路,所以CIMD 是没有计算误差的。模拟电路的算力密度也可以做得比较高,能效比甚至会比数字电路更高,但是它是有计算误差的,而且其计算精度会比较低。如果在同等精度下的话,模拟的存算电路并不会比数字的存算电路有太大的优势。但在比较低精度的情况下,模拟电路的能效比会更高一些,但是它的计算误差、精度的问题,还有校正、噪声、温度等这些影响是比较难解决的。所以后摩智能的第一代落地量产的产品是以CIMD 为基础的。
讲完最底层的CIMD,接下来看看怎样把CIMD 组成一个可以用来计算的单元。我们把若干个CIMD Macro 组成一个Macro Group,数据是以数据流stream 的方式流入Macro,结果同样以流的方式流出。这里的一个好处是,在数据流入Macro 过程中,如果feature 数据有很多0,是可以节省一部分功耗的,甚至节省计算时间。这里天然的可以支持feature 稀疏化的效果,不像有些AI处理器里讲稀疏化,比如Orin 的稀疏化是对weight 做稀疏,需要做重新的设计、训练,而我们的计算单元针对feature 可以做稀疏化的加速。
但需要考虑的问题是计算需要在Macro 上映射。上图中举了一个例子,我们的计算单元Macro 会组成一个3×3的阵列,如果是有4个3×3的阵列,可以把它类似组成一个Systolic Array,类似TPU 脉动阵列的形式,数据feature 可以从旁边的Tile 里边或者是Tile SRAM 里的Multi Bank Shared Memory 流入到Macro Group 里,结果同样可以流出Macro Group。
Macro Group 之间的结果可能是一个Partial sum,Partial sum 做一个加法之后,可以写到当前Tile的Shared Memory 里面去,也有可能通过Partial sum bus 流到临近Tile 的计算单元里面。
除了传统的AI NPU 或者AI Core,还要考虑一个利用率的问题,利用率上除了时间利用率,还要考虑空间利用率。比如,上面的例子为什么是一个3×3的结构,因为大多数卷积神经网络中的卷积核,最常用的是3×3 kernel,所以用一个3×3的阵列是可以最高效的计算3×3的卷积。但是除了3×3以外,还有5×5,7×7或者1×1等的卷积规格,这时怎样把一个5×5、7×7的一个kernel映射到3×3的阵列里,这是一个非常难的问题,需要大家仔细考虑怎么把空间上的利用率用满,这也是在用Macro 设计时需要重点关注或考虑的问题。
Macro Group 可以作为Tensor Engine 里一个最重要的单元,那Tensor Engine 和其他的一些控制单元或者计算单元,组成一个Tile。从上图可以看出,Tile 里包括了CPU,CPU 主要用来做控制,通过一个指令分发单元把不同的指令分发给Tensor Engine、Vector Engine,Special Function Unit,还有一个多通道的DMA,以及一个Switch。Switch 起到了一个路由的作用,用来在不同的Tile 之间传输数据。我们自己设计了一个数据的传输总线,通过传输和路由,还有多播的机制,让数据可以在不同的Tile,甚至在不同的AI Core 之间进行共享和传播,这样可以极大的提高带宽的利用率,减少数据和memory 之间的传输。
另外,还需要考虑的是Tile 之间的同步问题。比如两个Tile 之间需要共同完成一个计算时,那Tile0 和Tile1 之间怎么进行同步,这也需要在设计中考虑。
再上一层就是Core level。Core 是由若干个Tile 组成,上图中有4个Tile 的示例了,那Tile 之间以什么样的形式去做拓扑,这也是在做Core level 设计时需要第一个考虑的问题。上图是一个环形的拓扑,4个Tile 组成了1个环。如果是Tile 很多时,也可以是2D Mesh 这样的一个 拓扑形式。
上图的Core level 除了4个Tile 以外,包括一些AI计算里的前处理、后处理的处理单元,Load/Store 等处理单元。Core 里边会有另外的Bus Node 处理单元,Bus Node 用来将不同的Core 之间连接在一起,让不同的Core 之间可以直接传输数据。类似于英伟达最新H100 的架构,H100 架构里面也有类似的设计,它叫DSMEM,是Tensor 之间直接传输数据,而不用通过global memory,也是一个节省数据带宽,节省DDR 带宽很有效的方式。
右边的图是第一个Core 的版图,可以看到这里边包括了Macro Group、shared memory、CPU,还有Special Function Unit 等等,灰色部分就是Core level 里面的前后处理、Load/Stop等处理单元,还有重要的数据传输和互联,这是第一代Core 设计的版图,里面包括了4个Tile。
除了架构的设计以外,基于存算一体的AI 处理器设计,还有很多工程化的问题需要考虑,因为它跟传统的数字电路已经有比较大的差别,这些问题都是我们在实际工程当中遇到的问题。
第一个需要考虑的问题是SI 和PI。SI 是信号完整性,PI 是电源完整性,因为每个Macro 提供的算力很大,有4TOPS。如果有几百TOPS 算力,这几百TOPS 算力在同一时间运转,那对电源和信号完整性是非常大的挑战。
除此之外,Macro DFT 该怎么做?如果不做DFT,实际上是无法实现大规模量产的,我们对Macro 做了非常多DFT 相关的设计,主要包括MBIST 和Repair,Repair 是修复因为面积大了以后可能会有default,我们就需要把它修复。我们做的修复电路里可以测试和修复SRAM bit cell 电路,因为存算本身是由SRAM bit cell 加上一些逻辑电路组成的。同时,还有诊断功能,与传统的SRAM 相比,需要开发自己的lvlib,因为它已经跟传统的SRAM 行为已经有不一样的地方,没有标准的工具可以支持。
另外在CIM 计算模式下,我们设计了定制化的Macro BIST。定制化BIST 需要自己设计BIST RTL,同时可以测试Macro 内部的计算表,所以我们是把Macro 分为SRAM mode 和CIM 两种模式下进行BIST 和Repair 设计。
三、软件工具链
上面主要讲到硬件设计方面的的考虑,如果把硬件设计类比成人的身体,那有了身体还需要有灵魂,而软件工具链就是我们的灵魂。很多人会问基于存算电路的软件工具链、软件生态是否会与传统电路的AI处理器有不一样或者有不兼容的地方?
从软件的角度来看,几乎已经看不到底层的存算电路的存在,它已经在AI处理器里边,通过AI处理器的架构设计把它屏蔽掉。而从软件工具链的角度来看,并不需要过多的考虑底层的存算电路,所以软件工具链需要考虑的事情与用传统的数字电路去做NPU 没有本质上的区别。
我们的软件工具链主要提供了两个开发工具:一个是算子的开发工具,一个是模型的开发工具。对于大多数用户而言,如果没有特殊的自定义算子开发需求,可以用模型开发工具,这里包括了一个加速的算子库,算子库有很丰富的算子,可以cover 80%-90%的算子需求,除了极个别的自定义算子不包括在算子库里边。模型开发SDK 里面还包括了推理引擎、Graph IR、设备内存的分配,设备内存有片内memory 和片外memory 的分配器,还有一个图优化器,以及运行时的一些东西。
如果是高级的用户,可以开发自己的自定义算子,我们也提供算子的开发工具SDK,这里边包括了编程模型方面,基于CUDA 的扩展语言,叫后摩 Data parallel language 或者叫hardware data parallel language(HDPL语言),还有 Schedule Language,最底层是标准的C++。
编译器方面包括了HDPL 编译器,底层C/C++编译器。工具链方面也提供了丰富的工具链,包括了debugger、调试器、汇编和反汇编的工具、Objdump 工具,还有一个HM profeiler,用它来可以方便的调试CIM。
除此之外,我们也对推理引擎方面有支持。我们的编译器可以让用户从开发类似GPU 的一些程序里,无缝的过渡到AI处理器的开发过程中来,因为我们是一个类CUDA 的编程模型。上层对接的推理引擎可以是多种多样的,包括百度的PaddlePaddle、ONNX、TensorFlow、MXNet 等。这些工具产生的模型,经过量化工具会翻译成一个Relay IR 的中间表达。这个中间表达之后会通过Tensor graph 优化器来做优化,Tensor 优化器做了哪些事情呢?包括自动算子的融合,优化带宽的瓶颈,自动流水的分配机制,可以充分利用AI Core 的硬件并行性,以及设备内存SRAM 和DDR 的自动分配,层间的调度优化等,来提高硬件利用率。
再下一层是IPU graph runtime,即图的运行时。运行时最下层会调用IPU 各种各样的资源。IPU 资源包括了AI Core,就是AI写处理器,还有一些扩展的计算资源,大多数的计算可以通过卷积在CIM 里来实现。还有一些其他的特殊操作,比如最常用的pooling 等类似的操作,可以在Special Function Unit 来实现。如果有自定义的算子还可以通过HDPL 语言的接口,在不同的计算扩展单元里实现。我们的编程模型也是针对数据并行的模型,上图有一个简单的例子,它与CUDA 编程方式是非常接近的。
以上就是本次分享的主要内容,感谢大家的观看。
如何充分利用数字信号处理器上的片内FIR和IIR硬件加速器
有限脉冲响应(FIR)和无限脉冲响应(IIR)滤波器都是常用的数字信号处理算法---尤其适用于音频处理应用。因此,在典型的音频系统中,处理器内核的很大一部分时间用于FIR和IIR滤波。数字信号处理器上的片内FIR和IIR硬件加速器也分别称为FIRA和IIRA,我们可以利用这些硬件加速器来分担FIR和IIR处理任务,让内核去执行其他处理任务。在本文中,我们将借助不同的使用模型以及实时测试示例来探讨如何在实践中利用这些加速器。
简介
图1.FIRA和IIRA系统方框图
图1显示了FIRA和IIRA的简化方框图,以及它们与其余处理器系统和资源的交互方式。
FIRA和IIRA模块均主要包含一个计算引擎(乘累加(MAC)单元)以及一个小的本地数据和系数RAM。
为开始进行FIRA/IIRA处理,内核使用通道特定信息初始化处理器存储器中的DMA传输控制块(TCB)链。然后将该TCB链的起始地址写入FIRA/IIRA链指针寄存器,随后配置FIRA/IIRA控制寄存器以启动加速器处理。一旦所有通道的配置完成,就会向内核发送一个中断,以便内核将处理后的输出用于后续操作。
从理论上讲,最好的方法是将所有FIR和/或IIR任务从内核转移给加速器,并允许内核同时执行其他操作。但在实践中,这并非始终可行,特别是当内核需要使用加速器输出进一步处理,并且没有其他独立的任务需要同时完成时。在这种情况下,我们需要选择合适的加速器使用模型来达到最佳效果。.
在本文中,我们将讨论针对不同应用场景充分利用这些加速器的各种模型。
实时使用FIRA和IIRA
图2.典型实时音频数据流
图2显示了典型实时PCM音频数据流图。一帧数字化PCM音频数据通过同步串行端口(SPORT)接收,并通过直接存储器访问(DMA)发送至存储器。在继续接收帧N+1时,帧N由内核和/或加速器处理,之前处理的帧(N-1)的输出通过SPORT发送至DAC进行数模转换。
加速器使用模型
如前所述,根据应用的不同,可能需要以不同的方式使用加速器,以最大限度分担FIR和/或IIR处理任务,并尽可能节省内核周期以用于其他操作。从高层次角度来看,加速器使用模型可分为三类:直接替代、拆分任务和数据流水线。
直接替代
内核FIR和/或IIR处理直接被加速器替代,内核只需等待加速器完成此任务。
此模型仅在加速器的处理速度比内核快时才有效;即,使用FIRA模块。
拆分任务
FIR和/或IIR处理任务在内核和加速器之间分配。
当多个通道可并行处理时,此模型特别有用。
根据粗略的时序估算,在内核和加速器之间分配通道总数,使二者大致能够同时完成任务。
如图3所示,与直接替代模型相比,此使用模型可节省更多的内核周期。
数据流水线
内核和加速器之间的数据流可进行流水线处理,使二者能够在不同数据帧上并行处理。
如图3所示,内核处理第N个帧,然后启动加速器对该帧进行处理。内核随后继续进一步并行处理加速器在上一迭代中产生的第N-1帧的输出。该序列允许将FIR和/或IIR处理任务完全转移给加速器,但输出会有一些延迟。
流水线级以及输出延迟都可能会增加,具体取决于完整处理链中此类FIR和/或IIR处理级的数量。
图3说明了音频数据帧如何在不同加速器使用模型的三个阶段之间传输---DMA IN、内核/加速器处理和DMA OUT。它还显示了通过采用不同的加速器使用模型将FIR/IIR全部或部分处理转移到加速器上,与仅使用内核模型相比,内核空闲周期如何增加。
图3.加速器使用模型比较
SHARC处理器上的FIRA和IIRA
以下ADI SHARC®处理器系列支持片内FIRA和IIRA(从旧到新)。
ADSP-214xx (例如, ADSP-21489)
ADSP-SC58x
ADSP-SC57x/ADSP-2157x
ADSP-2156x
这些处理器系列:
计算速度不同
基本编程模型保持不变,ADSP-2156x处理器上的自动配置模式(ACM)除外。
FIRA有四个MAC单元,而IIRA只有一个MAC单元。
ADSP-2156x处理器上的FIRA/IIRA改进
ADSP-2156x是SHARC处理器系列中的最新的产品。它是第一款单核1 GHz SHARC处理器,其FIRA和IIRA也可在1 GHz下运行。ADSP-2156x处理器上的FIRA和IIRA与其前代ADSP-SC58x/ADSP-SC57x处理器相比,具有多项改进。
性能改进
计算速度提高了8倍(从SCLK-125 MHz至CCLK-1 GHz)。
由于内核和加速器借助专用内核结构实现了更紧密的集成,因此减少了内核和加速器之间的数据和MMR访问延迟。
功能改进
添加了ACM支持,以尽量减少进行加速器处理所需的内核干预。此模式主要具有以下新特性:
允许加速器暂停以进行动态任务排队。
无通道数限制。
支持触发生成(主器件)和触发等待(从器件)。
为每个通道生成选择性中断。
实验结果
在本节中,我们将讨论在ADSP-2156x评估板上,借助不同的加速器使用模型实施两个实时多通道FIR/IIR用例的结果
用例1
图4显示用例1的方框图。采样率为48 kHz,模块大小为256个采样点,拆分任务模型中使用的内核与加速器通道比为5:7。
表1显示测得的内核和FIRA MIPS数量,以及与仅使用内核模型相比获得的节约内核MIPS结果。表中还显示了相应使用模型增加的额外输出延迟。正如我们所看到的,使用加速器配合数据流水线使用模型,可节约高达335内核MIPS,但导致1块(5.33 ms)的输出延迟。直接替代和拆分任务使用模型也分别可节约98 MIPS和189 MIPS,而且未导致任何额外的输出延迟。
图4.用例1方框图
用例2
图5显示用例2的方框图。采样率为48 kHz,模块大小为128个采样点,拆分任务模型中使用的内核与加速器通道比为1:1。
与表1一样,表2也显示了此用例的结果。正如我们所看到的,使用加速器配合数据流水线使用模型,可节约高达490内核MIPS,但导致1模块(2.67 ms)的输出延迟。拆分任务使用模型可节约234内核MIPS,而没有导致任何额外输出延迟。请注意,与用例1中不同,在用例2中内核使用频域(快速卷积)处理,而非时域处理。这就是为何处理一个通道所需的内核MIPS比FIRA MIPS少的原因,这可导致直接替代使用模型实现负的内核MIPS节约。
图5.用例2方框图
结论
在本文中,我们看到如何利用不同的加速器使用模型实现所需的MIPS和处理目标,从而将大量内核MIPS转移到ADSP-2156x处理器上的FIRA和IIRA加速器。
作者
Mitesh Moonat
Mitesh Moonat目前在印度班加罗尔(ADBL)处理器应用团队担任应用工程师。他从事前/后晶片验证、外设驱动器开发和SHARC处理器支持工作。在ADI就职期间,他还从事Blackfin和21xx处理器工作。他的工作领域包括处理器架构、数字信号处理算法优化、模块以及嵌入式系统的系统级调试。Mitesh于2006年加入ADI公司。他毕业于印度瓦朗加尔国家技术学院,获得电子和通信工程学士学位。
Sanket Nayak
Sanket Nayak是印度班加罗尔(ADBL)处理器应用团队的产品应用工程师。他于2016年加入ADI公司,一直从事汽车DSP的前/后晶片验证、驱动器/FuSa ROM设计、开发和测试工作。他获得班加罗尔PES技术学院电子和通信工程学士学位。
相关问答
mdu3603可以用哪个代替?
您好,据了解mdu3603芯片可以考虑使用基于DSP架构的数字信号处理器替代。mdu3603是一种高效的数字信号处理芯片,可用于音频和语音信号处理等应用。如果寻找替...
DSRF什么意思?
DSRF的全称是DeeplySupervisedResidualU-Net,是一种深度监督残差U-Net结构的医学图像分割算法。这种算法主要应用于医学图像分割任务,尤其是针对肺部CT图像...
dsp芯片属于什么架构体系?
目前,数字信号处理(DigitalSignalProcessing,简称DSP)已经成为信号处理技术的主流。因为与早期的模拟信号相比,数字信号处理有着巨大的优势。早期的模拟信号...
paec3用什么芯片?
根据我所了解,paec3使用的芯片是由中国自主研发的芯片,具体型号可能是保密的。中国一直在加强自主研发芯片的能力,以减少对外依赖,并提高国家的信息安全。pae...
单片机、ARM、MUC、DSP、FPGA、嵌入式都有怎样错综复杂的关系?
一种架构!ARM是一...注意是基本功能!单片机种类很多,技术架构也各有不同!ARM是一种技术,是知识产权,是一种方法,是一种架构!ARM是一家公司,它授权给其他公司...
上海第二工业大学计算机与信息工程学院怎么样?设有哪些专业?...
[回答]~接下来我为大家简单介绍一下我们上海第二工业大学的计算机与信息工程学院开设的专业以及研究情况专业设置:电子信息工程、光电信息科学与工程、计...
什么是开放式wdm?
与传统的固定波长WDM系统相比,开放式WDM具有更高的灵活性、可扩展性和可维护性,能够更好地满足用户不断变化的需求。同时,开放式WDM还采用了先进的数字信号...
rru由哪些单板构成?
RRU(RemoteRadioUnit,远程射频单元)通常由以下几个单板构成:1.收发射板(TransceiverBoard):负责接收基站控制器(BasebandUnit,BBU)发送的数...
中科昊芯股票代码?-股票知识问答-我爱卡
[回答]中科昊芯不是上市公司,没有股票代码。中科昊芯是数字信号处理器专业供应商。作为中国科学院科技成果转化企业,瞄准国际前沿芯片设计技术,依托多年积...
信号塔怎么建的?
信号塔的建设需要经过以下几个步骤:1.规划:首先,应该对建设地点的地形、地貌、交通等进行调查、研究和分析,确定信号塔的位置。2.准备场地:其次,应当进...