下载linux版本的arm-compute-library,解压出来即可使用。compute library支持neon和opencl方式,neon方式时利用原生的ARM的neon硬件进行加速。而opencl是一个并行计算框架,同时支持neon硬件和GPU硬件。由于现在使用的ARM的GPU还不支持OpenCL方式,因此就使用预编译库中的linux-armv7a-neon目录中的库文件。编译一个程序的命令如下:
arm-linux-gnueabihf-g++ examples/neon_convolution.cpp utils/Utils.cpp -I. -Iinclude -std=c++11 -mfpu=neon -L. -larm_compute -larm_compute_core -o neon_convolution
在eclipse中进行开发时,只需要像上面命名行一样配置好头文件目录,库文件目录以及库文件即可。
注意
当使用预编译版本的compute library时,在后面使用impott_memory出现段错误问题。所以按照官方法自行编译了neon版本的compute library,将动态库替换后问题得到解决。
图像的存取与转换
在Compute Library中数据都是按照张量的形式存储和使用的。数组为一维张量,图像为二维张量,而像神经网络中使用的卷积核可用三维张量描述。因此在Tensor.h中可以看到如下的一句:
using Image= Tens