![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
异构计算/算法优化
文章平均质量分 72
夕阳叹
The best way to predict the future is to create it.
展开
-
SIMD优化之ARM纯汇编开发
ARM纯汇编开发注:这篇文章是两年前写的,当时认知也不足,其中可能有不少错误,敬请行家指正。为什么要用纯汇编开发效率高这里可能让很多人大跌眼镜了,纯汇编开发效率高?首先,这个是有限定条件的,需要反复调优的重度运算场景(比如卷积),纯汇编开发效率最高。其次,这里的纯汇编并不是整个代码用汇编写,是指的将足够重的函数提取出来,用纯汇编实现。参数试验为什么呢,在用C开发时,受到toolch...原创 2020-01-17 12:46:53 · 2693 阅读 · 4 评论 -
浅淡深度学习的发机机——张量计算
张量计算的优化张量计算是个看似陌生,实际上很常用的概念,它包括滤镜、核函数计算、矩阵乘法、卷积等一大类算法,是图像算法、机器学习以及深度学习的基础。如何进行高效的张量计算,是OpenCV之类的图像库、OpenBlas之类的高性能计算库以及MNN之类的深度学习推理引擎要解决的核心问题。本文主要以深度学习的推理引擎为具体应用场景,谈一下张量计算的主要优化策略。相关链接:https://gith...原创 2020-01-05 10:42:02 · 3490 阅读 · 0 评论 -
快速矩阵乘法的研究——下
快速矩阵乘法的研究本文我们只看一个算法,就是 Coppersmith 和 Winograd 提出的O(2.39)O(2.39)O(2.39)的矩阵乘法。请确保前两篇内容已经掌握理解。https://blog.csdn.net/jxt1234and2010/article/details/88588208https://blog.csdn.net/jxt1234and2010/article/...原创 2019-10-21 16:11:30 · 908 阅读 · 0 评论 -
快速矩阵乘法的研究——中
快速矩阵乘法的研究渐近和不等式(Asymptotic sum inequality)有了APA之后,我们突破了Strassen 算法的阈值,但希望进一步往下降时,总是构造不出来,遇到了瓶颈。这个时候,人们发现了一条新的道路。同时计算多个矩阵乘法对于 C=ABC=ABC=AB 这个矩阵乘法,我们已经找不到更好的构造算法,但如果同时计算 C1=A1B1,C2=A2B2C_1=A_1B_1, C...原创 2019-04-05 14:04:58 · 1812 阅读 · 2 评论 -
快速矩阵乘法的研究——上
快速矩阵乘法的研究最近的工作主要在于深度学习框架的性能优化。深度学习框架在工程的优化(内存池、SIMD、汇编、GPU、DSP等等)做到接近极限之后,突破点便集中于算法。深度学习的性能瓶颈主要在于卷积,卷积的运算方法主要是通过 Im2Col / Winograd / FFT 转化为矩阵乘,完成矩阵乘法之后,再转化为目标结果。深度学习框架的输入是算法工程产出的网络模型,而目前网络模型都渐渐地转变...原创 2019-03-16 04:39:53 · 4155 阅读 · 1 评论 -
移动端深度学习框架——绝影简介
绝影(Prestissimo)绝影是一个高性能移动端深度学习框架,其项目地址见https://github.com/in66-dev/In-Prestissimo原创 2017-11-30 13:52:37 · 4674 阅读 · 9 评论 -
YUV转RGB(NV21-ARGB)的Neon优化代码
说明此代码仅限于 NV21 格式转 ARGB 格式。 NV21 格式中,Y 单独存储,UV分量交错存储。 使用如下公式: R = Y + 1.402*(V-128); G = Y - 0.34414*(U-128) - 0.71414*(V-128); B = Y + 1.772*(U-128); 浮点乘法用 6原创 2015-06-24 11:47:15 · 9469 阅读 · 10 评论 -
基于OpenGL ES 的深度学习框架编写
基于OpenGL ES的深度学习框架编写背景与工程定位背景项目组基于深度学习实现了视频风格化和人像抠图的功能,但这是在PC/服务端上跑的,现在需要移植到移动端,因此需要一个移动端的深度学习的计算框架。同类型的库caffe-android-lib 目前应该是最便于集成使用的深度学习框架库。 tensorflow和mxnet据说也有对应的android库,因时间原因暂未测试。 CNNdroid,网址原创 2017-05-06 21:08:22 · 12188 阅读 · 9 评论 -
GPU与GPGPU泛淡
GPU与GPGPU泛淡GPU(Graphics Processing Unit),也即显卡,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上作图像运算工作的微处理器。它已经是个人PC和移动设备上不可或缺的芯片,有界面有显示的地方,一般就离不开它。高清电视、智能手机、个人电脑。GPU的产生是为了解决图形渲染效率的问题,但随着技术进步,GPU越来越强大,尤其是shader出原创 2016-05-21 01:48:32 · 22768 阅读 · 1 评论 -
图像转置的Neon优化代码
图像转置的Neon优化代码原理图像转置图像转置和矩阵转置是一样的,其公式为:dst.getPixels(y, x) = src.getPixels(x, y)dst.w = src.hdst.h = src.w效果如下: 原图: 结果图: 先做图像转置后,再实现90度/270度的旋转相对容易, 如图像旋转90度,就只需要再水平翻转一下: 旋转结果图: 分而治之图像转置的优化思路是:原创 2015-12-30 23:38:48 · 6466 阅读 · 5 评论 -
图像算法的工程优化技术
图像算法的工程优化技术当一个很酷的图像算法实现之后,我们希望集成到软件中去,这时将会遇到最大的拦路虎:性能。 可以想像一下,如果美图秀秀做一个美颜效果要转圈圈转个30秒,还会有多少人用呢。 学术界喜欢推出复杂度更低的算法,去解决性能问题,而在实际工程应用中,对代码的优化和硬件的良好运用效果来得更快更显著,这里就对不改动算法,纯工程方面做性能优化的技术作一个简介。 流程优化——节能减排对初始原创 2016-02-29 21:35:52 · 6109 阅读 · 0 评论 -
双三次插值算法的OpenGL实现
双三次插值算法的OpenGL实现说明最近写一个图像缩放的接口,考虑到自己有现成的OpenGL图像处理引擎,还是直接写shader用GPU实现方便。为了效果好一些,采用了双三次插值算法。 算法相关公式可参考这篇文章: http://blog.csdn.net/lichengyu/article/details/8526629代码详细实现代码见: https://github.com/jxt123原创 2016-01-12 17:59:54 · 2682 阅读 · 0 评论 -
适用于OpenGL离屏渲染上下文的初始化代码
说明最近做图像算法,需要用到shader对图像进行处理,用glut会有窗口,不适合写成UT测试用例,需要创建一个无窗口的OpenGL上下文。代码这部分代码其实是参考 Android的Skia 模块相关代码写的,适用于 Mac、EGL(Android)、X11(Ubuntu等Linux系统)平台。h文件#ifndef GL_GLCONTEXT_H#define GL_GLCONTEXT_Hclas原创 2016-01-22 00:39:11 · 3253 阅读 · 1 评论 -
Jpeg 库的解码OpenCL优化
libJpeg库解码OpenCL优化这两周在闲暇时基于通用的libjpeg库重新做了一个opencl解码实现。重新熟悉下算法。代码路径https://github.com/jxt1234/platform_external_jpeg OpenCL文件夹目录下面的就是所有的修改。 用Xcode开发的,没兴趣去整Makefile了,代码独立,移植集成也很方便。主要特点1.算法代码完全独立,不修改原来原创 2015-04-22 20:41:43 · 3782 阅读 · 4 评论