NPU设计的数学模型比较简单,可以看成是对高维空间坐标向量进行一次仿射变换,公式如下图中的样子:
这份ANN IP实现包含两个部分,ANN 核心实现和ANN封装实现,封装实现的作用是可以将ANN的核心实现逻辑与不同的SOC系统总线对接,当前有实现和AXI4对接的wrapper实现。
IP核心是可以通过参数进行配置的,包括位宽,层数,输入维度,以及各层的神经元数,根据输入和输出并行、串行方式的不同,可以将各层分为三种类型,分别是"SP","PS","PP",当前的实现还不支持PP。当前的实现,数据操作是按照定点格式进行,目的是为了在有限的IP面积上使性能最大化。
可配置参数如下表所示: