Language开放运算语言)是第一个面向异构系统通用目的并行编程的开放式、免费标准,也是一个统一的编程环境便于软件开发人员为高性能计算服务器、桌面计算系统、手持设备编写高效轻便的代码,而且廣泛适用于多核心处理器(CPU)、图形处理器(GPU)、Cell类型架构以及(DSP)等其他并行处理器
(giga operations per second 每秒十亿次运算数(10的9次方),十亿次运算/秒)衡量处理器计算能力的指标单位。现在更为常用
运用OpenCL和定点CNN(fixed-point CNN)系统化的提出了如何运用有限的资源实现最小化的执行时间
2.3.3 作者在github公开了本文的代码鉯便他人使用。(作者在凑贡献点字数)
OpenCL是一个公开的跨平台的并行运算语言可以用于GPU和FPGA。设计流程见Fig.1
3.2.1 典型的CNN由数个卷積层池化层,全连接层组成
图中Conv kernel既可以实现公式(1)的3D求和相加也可以实现公式(2)的内积操作。
这是一个具有并行数据传输的单进程kernel可以用来實现卷积层和FC层。两个运算技巧被用于提升运算吞吐量和并行化处理
注:上文中Initial interval经常出现,也被称为IIII到底是什么意思?我们在HLS中见到過类似例如:
于是,输出在不同feature-map的fo中的Do会被并行的生成
logic模型可以支持对(L+1)个输入的均值和最大值计算。kernel可以被控制寄存器关閉
FPGA实现大型神经网络加速的方法:
更详细解析会持續补充更新欢迎提问与批评。