CNN Plus加速器IP

使用低功耗FPGA实现AI加速

莱迪思半导体CNN Plus加速器IP核是用于定点权重深度神经网络的计算引擎。它通过执行莱迪思sensAI™神经网络编译器生成的具有权重值的序列代码来计算神经网络的各层,包括卷积层、池化层、批量归一化层和全连接层。该引擎针对卷积神经网络进行了优化,因此可用于各类视觉应用,例如分类或目标检测和追踪。IP核不需要额外的处理器,它可以自行执行所有必需的计算。

CNN Plus加速器IP核提供三种类型的实现方式:紧凑型CNN资源利用较少,适用于小型FPGA;优化型CNN可以并行执行四个卷积计算,适用于高速应用;扩展型CNN提供与优化型CNN相同的功能,另外还支持max argument的最大池化/反池化。

客制化卷积神经网络(CNN)IP —— CNN Plus IP是一种灵活的加速器IP,通过莱迪思FPGA的并行处理能力、分布式存储器和DSP资源,轻松实现超低功耗AI。

可配置的使用模式 —— 提供两种实现模式:低能耗(Compact)和高性能。低能耗模式是使用FPGA本地存储器的低功耗处理模式。 而高性能模式专为较大的网络实现而优化。

易于实现 —— 采用TensorFlow等常见的机器学习框架训练出来的模型可使用莱迪思神经网络编译器工具进行编译,然后通过CNN Plus加速器IP在硬件上实现。

特性

  • 可选择三种实现类型:紧凑型CNN、优化型 CNN、扩展型CNN
  • 可选AXI4或FIFO接口
  • 支持卷积层、最大池化层、全局平均池化层、批量归一化层和全连接层
  • 可配置的激活位宽(16/8位)
  • 可配置的存储块数量,用于权衡资源和性能

跳转到

框图

CNN Plus加速器功能框图(紧凑型CNN)

资源使用情况

LFCPNX-100-9BBG484I
配置3 clk_i, aclk_i Fmax (MHz)2 寄存器 LUT LRAM4 EBR Logical DSP
MULT9, MULT18 REG18, PREADD9
Default 121.448, 127.081 2566 3626 2 13 13, 1 13, 13
Scratch Pad Memory Size=2K, Others=Default 119.104, 125.078 2578 3639 2 15 13, 1 13, 13
Scratch Pad Memory Size=4K, Others=Default 116.469, 124.270 2582 3650 2 19 13, 1 13, 13
Scratch Pad Memory Size=8K, Others=Default 122.160, 130.022 2590 3657 2 27 13, 1 13, 13
Scratch Pad Memory Mode=OCTA, Others=Default 120.685, 127.275 2710 3844 2 15 13, 1 13, 13
Scratch Pad Memory Mode=OCTA, Scratch Pad Memory Size=2K, Others=Default 123.183, 129.149 2714 3840 2 19 13, 1 13, 13
Scratch Pad Memory Mode=OCTA, Scratch Pad Memory Size=4K, Others=Default 122.085, 123.047 2722 3858 2 27 13, 1 13, 13
Memory Type=SINGLE_LRAM, Others=Default 130.005, 130.463 2565 3608 1 13 13, 1 13, 13
Memory Type=QUAD_LRAM, Others=Default 116.564, 122.011 2573 3677 4 13 13, 1 13, 13
Machine Leaning Type=OPTIMIZED_CNN, Others=Default 113.869, 129.601 5470 7226 2 17 48, 4 48, 48
Machine Leaning Type=OPTIMIZED_CNN, Scratch Pad Memory Size=2K, Others=Default 112.803, 123.686 5475 7240 2 21 48, 4 48, 48
Machine Leaning Type=OPTIMIZED_CNN, Scratch Pad Memory Size=4K, Others=Default 114.863, 124.409 5486 7265 2 29 48, 4 48, 48
Machine Leaning Type=OPTIMIZED_CNN, Scratch Pad Memory Size=8K, Others=Default 113.353, 122.234 5490 7279 2 45 48, 4 48, 48
Machine Leaning Type=OPTIMIZED_CNN, Scratch Pad Memory Size=8K, Others=Default 113.353, 122.234 5490 7279 2 45 48, 4 48, 48
Machine Leaning Type=OPTIMIZED_CNN, Line Buffer Size=1024, Others=Default 115.473, 126.662 5475 7250 2 21 48, 4 48, 48
Machine Leaning Type=OPTIMIZED_CNN, Line Buffer Size=2048, Others=Default 118.161, 122.609 5477 7266 2 30 48, 4
Machine Leaning Type=OPTIMIZED_CNN, Scratch Pad Memory Size=8K, Maximum Burst Length=256, Others=Default 119.446, 126.263 5491 7279 2 45 48, 4 48, 48
Machine Leaning Type=OPTIMIZED_CNN Convolution Engine=DUAL_CONV, Others=Default 113.225, 124.657 7394 9585 2 21 84, 4 84, 84
Machine Leaning Type=OPTIMIZED_CNN Convolution Engine=QUAD_CONV, Others=Default 117.233, 124.008 11023 14216 2 29 156, 4 156, 156
Machine Leaning Type=OPTIMIZED_CNN LRAM Enable Output Register=Checked, Others=Default 147.842, 131.027 5475 7252 2 17 48, 4 48, 48
Embedded Mode=Checked, Others=Default 127.259, N/A 1737 2474 2 5 13, 1 13, 13
Embedded Mode=Checked, Machine Leaning Type=OPTIMIZED_CNN, Others=Default 120.715, N/A 4673 6109 2 9 48, 4 48, 48
Embedded Mode=Checked, Line Buffer Size=1024, Machine Leaning Type=OPTIMIZED_CNN, Others=Default 114.116, N/A 4677 6112 2 13 48, 4 48, 48
Embedded Mode=Checked, Machine Leaning Type=OPTIMIZED_CNN, Convolution Engine=DUAL_CONV, Others=Default 118.991, N/A 6596 8463 2 13 84, 4 84, 84
Machine Leaning Type=EXTENDED_CNN, Others=Default 134.120, 124.750 5798 8049 2 20 48, 4 48, 48
Machine Leaning Type=EXTENDED_CNN, Scratch Pad Memory Size=2K, Others=Default 126.406, 130.497 5803 8051 2 24 48, 4 48, 48
Machine Leaning Type=EXTENDED_CNN, Scratch Pad Memory Size=4K, Others=Default 150.466, 114.403 5811 8059 2 32 48, 4 48, 48
Machine Leaning Type=EXTENDED_CNN, Scratch Pad Memory Size=8K, Others=Default 132.732, 127.926 5815 8041 2 48 48, 4 48, 48
Machine Leaning Type=EXTENDED_CNN, Maximum Argument Size=8192, Others=Default 143.947, 128.287 5798 8051 2 22 48, 4 48, 48
Machine Leaning Type=EXTENDED_CNN, Convolution Engine=DUAL_CONV, Others=Default 144.071, 127.665 7722 10404 2 24 84, 4 84, 84
Machine Leaning Type=EXTENDED_CNN, Convolution Engine=QUAD_CONV, Others=Default 146.585, 135.208 11352 15002 2 32 156, 4 156, 156
Embedded Mode=Checked, Machine Leaning Type=EXTENDED _CNN, Others=Default 134.88, N/A 5000 6929 2 12 48, 4 48, 48

注释:
1. 使用不同版本的软件或不同密度或速度等级的器件时,性能可能会有所不同。
2. Fmax是FPGA设计中仅包含CNN Plus加速器IP核的数值。将用户逻辑添加到FPGA设计中时,这些值可能会降低。
3. “Scratch Pad Memory Size=*K”中的K值相当于2个字节× 1024个entry。例如,4K等于8 kB的暂存器内存。
4. OPTIMIZED_CNN实现有更多的EBR,因为它复制了卷积暂存存储中的EBR,以实现并行处理。此外,一些重复的子模块有自己的EBR:CONV_EU(每个单元有1个EBR)和POOL(2个单元共享1个EBR)。

订购信息

产品系列 订购编号
多站点永久许可 单机器年度许可
CertusPro-NX CNNPLUS-ACCEL-CPNX-UT CNNPLUS-ACCEL-CPNX-US
Certus-NX CNNPLUS-ACCEL-CTNX-UT CNNPLUS-ACCEL-CTNX-US
CrossLink-NX CNNPLUS-ACCEL-CNX-UT CNNPLUS-ACCEL-CNX-US

欲下载该IP的完整评估版,请访问Lattice Radiant的IP Server页面。该IP核支持莱迪思的IP硬件评估功能,无需IP许可即可生成IP核并在有限时间(约4小时)内在硬件上运行。

如需了解如何购买CNN Plus Accelerator IP核,请联系您当地的莱迪思销售办事处

文档

快速参考
标题 编号 版本 日期 格式 文件大小
选择全部
CNN Plus Accelerator IP Core - User Guide
FPGA-IPUG-02115 1.5 12/5/2023 PDF 853.8 KB