算法优化学习:(一)基础知识准备

       近期主要参与项目中的算法优化工作,把相关学习内容整理总计一下,加深自己理解的同时也能惠及他人。首先对基础知识准备做一个汇总。

        算法优化后运行的平台主要是ARM平台,因此算法优化主要从以下几个方面实现。

1)代码级别,主要是指使用效率更高、计算量更小的算法

2)线程级,利用CPU多通道多核等特性,使用多线程加速运算

3)指令级,实际上没有接触汇编指令,而是使用平台基于汇编指令层面“封装”了一层的内置函数,这里主要用到NEON指令集

4)GPU,利用OPENGL做通用计算,或者使用OPENCL/CUDA利用GPU加速

        当前只接触到2)和3),下面对自己搜索到的学习资料做个汇总。

        Pthread:即POSIX线程(POSIX threads),简称Pthreads,是线程的POSIX标准,该标准定义了创建和操纵线程的一整套API,在类操作系统(Unix、Linux、Mac OS X等)中都使用Pthreads作为操作系统的线程操作规范。因此使用它实现多线程,就不用担心在移植中遇到系统不支持或者需要第三方库的问题了。

1)Pthreads使用学习:参考《Linux环境C程序设计》第17章部分

2)Windows中使用Pthreads:https://blog.csdn.net/Rongbo_J/article/details/45055029

        Neon:ARM公司为ARM Cortex-A系列处理器和Cortex-R52处理器设计的SIMD(单指令多数据)指令集,主要目的是提升多媒体用户体验,可以加速音视频的编解码、用户界面、2D/3D图像渲染,我们主要使用NEON加速算法计算。学习资料汇总:

1)Neon官网:https://developer.arm.com/technologies/neon

2)Neon指令查询:https://developer.arm.com/technologies/neon/intrinsics

3)Neon小结:https://blog.csdn.net/a568478312/article/details/80937797

4)ARM Neon编程学习:https://www.cnblogs.com/xylc/p/5398706.html

5)DEN0018A_neon_programmers_guide 

        后面以二维高斯滤波为例进行算法优化的实施与验证。

猜你喜欢

转载自blog.csdn.net/lwx309025167/article/details/82733537
今日推荐