广告

实测!AlexNet卷积核在FPGA占90%资源仍跑750MHz

2020-04-25 10:00:49 杨宇,Achronix资深现场应用工程师 阅读:
本文将重点描述基于AlexNet的2D卷积核的实例应用。

MLP_Conv2D是功能齐全的设计,可将2D输入图像与多个内核同时进行卷积。 该设计充分利用了MLP和BRAM模块,每个MLP一个周期执行12个int8乘法。此外,MLP列和BRAM块均等级联以有效地将图像数据传递,从而允许同时处理多个内核。NwZednc

该设计使用NoC接入点(NAP)从片上网络(NoC)读取或写入数据。NoC连接到Speedster7t器件中的GDDR6控制器再到外部存储器。NwZednc

AlexNet

尽管最初为AlexNet图像和内核大小配置了MLP_Conv2D设计,但是2D卷积是一个通用过程,因此可以重新配置该设计并使其适应许多不同的2D方法。NwZednc

2D卷积的一般原理是在图像(实际上是另一个2D矩阵)上传递内核(2D矩阵)。对于每次计算,内核均以输入图像的像素为中心,并对每个内核值(称为权重)与其当前对齐的像素执行乘法运算。这些乘法的总和给出了原始图像像素的特定卷积结果。然后将内核移至下一个像素,并重复该过程。NwZednc

经过训练的内核,2D卷积生成一个输出结果图像,突出显示输入图像的特定特征,例如垂直线,水平线,变化角度的对角线和变化半径的曲线。然后可以将这些特征输入到其他处理层(包括其他2D卷积),然后可以将其标识为(通常在软件中)为特定对象。NwZednc

因此,二维卷积处理不应被视为图像识别的完整解决方案,而应被视为处理操作链中的单个关键组件。NwZednc

乘法密度

2D卷积的挑战是所需的乘法数量,这就是MLP中专用的乘法器阵列。对于AlexNet配置,每个内核为11×11= 121个权重值。但是,卷积实际上是3D的,因为输入图像具有三层(RGB),因此一组内核有121×3 = 363个乘法来产生单个输出结果。AlexNet输入图像为227×227;但是,此图像的stride为4(在计算之间内核移动了四个像素)。此过程导致输出结果矩阵为54×54 = 2916个结果。因此,对于一幅图像需要363×2916 = 1,058,508次乘法;即处理一个图像需要进行一百万次以上的累加运算。其中单个Kernel进行2D卷积的动态示意图如下:NwZednc

NwZednc

图表 1 单个Kernel进行2D卷积的动态示意图NwZednc

对于MLP_Conv2D,其设计旨在一次处理一幅图像中的60个内核,单次执行超过6000万次乘法累加操作。NwZednc

性能

MLP_Conv2D设计可以以750 MHz的频率运行。单个MLP能够在137 µs内对具有11×11内核的单个227×227 RGB输入图像进行卷积,相当于每秒15.4GOPS(包含乘和加)。 但一个MLP_Conv2D实例由60个并行运行的MLP构成,可以同时对60个输入图像进行卷积,相当于924GOPS。 最后,将多达40个MLP_Conv2D实例化到单个器件中,每个实例都通过自己的NAP将数据传输到GDDR6存储器,从而实现了组合高达37 TOPS的性能-相当于每秒处理28,8000张图像(本设计主要针对卷积核)。NwZednc

资源

MLP_Conv2D围绕MLP和BRAM块功能而设计,并使用它们各自的内部级联走线。 同样,NAP允许直接从外部存储器路由数据互联。这些功能可实现最小的附加逻辑或路由要求,利用率表如下:NwZednc

NwZednc

图表 2 单个MLP_Conv2D实例资源使用NwZednc

NwZednc

图表 3 并行40个MLP_Conv2D实例资源使用NwZednc

NwZednc

图表 4 MLP_Conv2D框图NwZednc

数据流:单个MLP

每个MLP都有一个邻近的BRAM。 在此设计中BRAM用于存储内核并将其多次传递到MLP。 初始化时,将从输入NAP中读取不同的内核,并将其写入相应的BRAM。 BRAM在写侧配置为72位,而读取设置为144位。在操作期间,仅将96位用作内核权重,即读取为4个权重×3层×8位。初始图像数据从NAP读取到输入FIFO中,该输入FIFO用于将图像存储为一系列行。尽管此输入存储器被列为FIFO,但仍可作为可重复读取的FIFO,因为可以多次从中读取行。该存储器配置为144位宽,仅使用96位,由两个BRAM72K组成。每个字由4个像素×3层×8位组成。初始化时,将读取足够的行以匹配内核中的行数加上垂直跨步所需的行数。即NwZednc

NwZednc

一旦加载了初始数据和内核,便开始计算。NwZednc

从输入FIFO中读取第一条图像行,并读取与内核水平大小匹配的图像数据像素数量。在读取这些像素时,将读取匹配的内核权重。MLP将这些96位流的每一个乘以12个int8值并累加结果。输入FIFO前进到第二行,重复此过程,直到内核的所有行都与输入图像左上角的适当像素相乘。在此过程中,MLP积累了结果;现在,该结果是图像与内核卷积的左上角的2D卷积。该结果以16位结果的形式从MLP输出。重复此过程,输入FIFO跨行超前STRIDE参数设置的像素数(对于当前设计,STRIDE固定为4)。在每个处理周期包括在内时,都会生成另一个结果,直到水平地获取了适当数量的结果为止。NwZednc

然后,将输入FIFO下移STRIDE行数,然后重复该过程以生成输入图像中下一组线的卷积结果。当输入FIFO向下移动时,不再需要FIFO中的初始行,因此与MLP计算并行时,将加载下一组用于输入图像的STRIDE行。考虑外部存储源的带宽要求时,可以看到映像和内核仅从内存中读取一次。然后,它们可以从各自的BRAM中重新使用,从而减少了外部存储器带宽的总体负担,其过程参考图表1。NwZednc

数据流:多个MLP

MLP的一个显著特点是能够将数据和结果从一个MLP或BRAM级联到同一列中。 MLP_Conv2D通过将MLP及其关联的BRAM放在列组中来利用这些级联路径。在将BRAM加载到内核时,级联路径用于将数据流水线传输到每个BRAM,并且使用BRAM块地址模式选择要写入内核的BRAM。NwZednc

在计算过程中,输入的图像数据将在MLP的列中级联,以便每个MLP在其下一个邻居之后的一个周期接收到图像数据。同时,控制内核读取的BRAM读取地址以一个周期的延迟级联到BRAM列中。这样,每个MLP在其先前的MLP之后一个周期接收相同的图像数据和相同的内核读取地址。每个MLP的计算差异在于,其关联的BRAM将具有不同的内核数据。结果是一个图像并行地与多个内核卷积。并行卷积的数量称为BATCH。NwZednc

数据流:计算结果

如前所述,每个MLP为内核和图像部分的每个卷积生成16位结果。NwZednc

MLP排列在16列中,因此从该列中生成一个256位字,该字由该列中每个MLP的结果组成。然后将此256位字写入输出NAP。 这种安排导致卷积结果作为同一图像的图层存储在内存中;因此,当三层或RGB存储在单个输入字中时,匹配输入字排列。NwZednc

然后,由于可以在完整的256位结果上的16个并行实例中执行激活功能,因此该安排允许将涉及的结果并行处理到激活层中。同样,一旦256位结果通过输出NAP写回到存储器中,则可以将结果读回到另一个2D卷积电路中。NwZednc

NwZednc

图表 5 MLP_Conv2D布局示意图NwZednc

布局

在Speedster7t架构中,每个NAP对应32个MLP。该设计经过优化,可使用两个NAP,一个用于读取,一个用于写入,因此可以对应64个MLP。NwZednc

但是,输入和输出FIFO需要两个BRAM 72K存储块才能创建一个256位宽的组合存储器。因此,这些存储器将消耗64个可用位置中的四个用于数据I / O。NwZednc

设计被安排为使用与两个NAP相关联的四列MLP。但是,第一列和最后一列都使用14个MLP,剩下两个MLP位置分别用于输入和输出FIFO。中间两列使用所有16​​个可用的MLP。在平面图中,各列的排列方式是使第一列(底部具有输入FIFO存储器)与NAP相邻,以改善时序。NwZednc

下面显示了一个实例,即使用了60个MLP(Batch=60)的设计实际布局图(突出显示了路线):NwZednc

NwZednc

图表 6 60个MLP布局图NwZednc

在全芯片构建中使用40个实例时,尽力使每个实例都使用NAP与内存进行通信。结果,FMax仍能达到750MHz,并使用掉芯片中的所有80个NAP以及94%的MLP和BRAM72K。NwZednc

NwZednc

图表 7 2400个MLP布局图NwZednc

  • “占90%资源”这个真是厉害了!
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
  • 高通发布4nm骁龙W5+骁龙W5芯片,专为可穿戴设计 据EDN电子技术设计报道,高通7月20日正式发布了全新4nm制程的骁龙可穿戴平台W5 Gen1和骁龙W5+ Gen。与两年前的上一代产品骁龙wear 4100相比,骁龙W5与W5+采用了全新的命名方式,整体功耗降低超50%。SoC工艺从12nm提升到4nm,协处理器使用22nm制程工艺。
  • 苹果新款Apple Watch Series 8新增内置传感器,可监测体 据最新报道称,由于新的内置传感器,即将推出的Apple Watch Series 8将能够告诉佩戴者是否体温高于正常水平。
  • 小米12s系列发布:首款徕卡品牌、1 英寸摄像头传感器、 继一加牵手哈苏(HASSELBLAD)以及 Vivo 牵手蔡司之后,小米和徕卡在今年早些时候也宣布建立合作伙伴关系。小米在六月底宣布,小米 12S 系列将成为该交易的第一批手机,就在昨日,小米举办了小米12S系列新品发布会,包括小米12S、小米12S Pro、小米12S Ultra三款手机,这三款手机均提供徕卡 Summicron 镜头以减少眩光并提高透光率,同时还提供徕卡成像配置文件。
  • 手动拆解十万元的比亚迪“元”,附详细拆解图 大家是不是对手机、电脑等小型消费电子的拆解已经习以为常了?这次有个券商搞了个大动作,动手拆了一辆市场价值十万元的比亚迪“元”,还撰写了一份详细的拆解报告,刷屏了券商、汽车等行业,网友们也大呼“硬核”。
  • 莱迪思半导体CEO Jim Anderson:“与优秀的人一起工作 我父亲一直是我的导师。他是一名高中理科老师,后来成了校长。在我的成长过程中,他一直都会给我我所需要的建议——并不总是我所想要的,而是我所需要的建议。他给我最好的建议是要我和我后来娶的那个女孩约会。我们结婚已经超过25年了。对于任何重大的个人决定,我仍然会征求他的意见。
  • 苹果最新芯片技术曝光:A16仍使用5nm,M2将升级为3nm 据EDN电子技术设计报道,日前Twitter 用户“ShrimpApplePro”爆料称苹果正在开发“最终”的 M1 芯片变体,它使用 A15 中更强大的内核。郭明錤今天在Twitter 上引用 ShrimpApplePro 的帖子,证实了有关 A16 和“M2”芯片的这些传闻。
  • 苹果iPhone 14的最新爆料:关于摄像头、处理器、基带、 选用的将是夏普和LG Innotek供应iPhone14的前置摄像头,也有其它渠道消息显示两家制造商的供应比例是相同的。
  • AMD 推出了基于其 Kria FPGA 模块的机器人入门套 AMD 推出了基于其 Kria FPGA 模块的机器人入门套件,售价 349 美元,交付周期为 20 周。这是 Kria 自适应系统模块(SOM)和开发套件组合的最新产品。
  • 赛灵思强劲的AI引擎能为AMD带来哪些新发展? AMD收购赛灵思的目的在于将其差异化IP集成到公司未来旗下的CPU中,Xilinx无论是从丰富的计算引擎还是其AI引擎技术都能让AMD在服务器CPU市场上扩大影响力
  • 为何10BASE-T1S是汽车通信中缺失的以太网链路 新的IEEE汽车以太网标准不断涌现,10BASE-T1S以太网是最新标准之一。本文讨论汽车行业的发展趋势,它们反映了汽车电子/电气(E/E)架构的变化,以及新10BASE-T1S标准如何支持和推动这种新架构的部署。
  • 工程师如何打造专属居家办公室? 2021年11月初,当我提笔写这篇文章时,掐指一算,自己在家工作的岁月将近25个年头了。诸如‘Zoom’等视频会议如今已是常态,说不定摄影机也都得处于常开状态。除了我那只丑陋的马克杯和自己单调的表达方式之外,接下来分享我所学到的:如何影音双管齐下地在在线展现自我……
  • 传感器技术在构建实时监控系统中的作用 无线传感器技术正在成为一个有前途的概念,这对每个虚拟市场都有重大影响。随着需要更快计算处理的数据密集型应用的数量增加,对实时监控系统的需求呈指数增长。尽管传感器节点的需求随着应用的规模而扩大,但终端设备却已通过对智能传感器的高效建模不断改进数据处理。
广告
热门推荐
广告
广告
EE直播间
在线研讨会
广告
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了