avatar
文章
864
标签
158
分类
0

主页
文章归档
文章标签
文章归类
文章列表
  • Music
  • Movie
友情链接
关于我
麦溪·在路上
主页
文章归档
文章标签
文章归类
文章列表
  • Music
  • Movie
友情链接
关于我

麦溪·在路上

Android之性能监控框架
发表于2022-01-05
[TOC] 概述cmake –build . 和cmake ../cmake ./make 有什么区别? 通过cmake ./cmake .. 命令创建Makefile文件后,一般使用make命令编译文件。 这里的cmake –build .就与make一样的效果。 另外,还有cmake –build . –target xxx这个命令。 如果xxx用help替换,可以看到xxx可以替换若干选项。例如cmake –build . –target all/ cmake –build . –target clean等
Android之性能监控框架
发表于2022-01-05
[TOC] 概述假设我们需要生成一个可执行文件,该文件生成需要链接a.so b.so c.so d.so四个动态库 正常来讲,我们一把只需要以下两条指令即可: 12ADD_EXECUTABLE(main main.cpp)TARGET_LINK_LIBRARIES(main a.so b.so c.so d.so) 但是编译的时候报错,一些符号的定义找不到,而这些符号恰恰就在这几个库中,假设在a.so 和 b.so中,在上述两条指令之间加上一条指令即可编译通过: 1ADD_DEPENDENCIES(main a.so b.so) 原因比较简单,生成main需要依赖a.so和b.so中的符号定义,然而a.so和b.so库的生成是在main编译生产之后的,添加这条语句就是提醒编译器需要先生成main的依赖(a.so,b.so),然后再去生成main.
Android之性能监控框架
发表于2022-01-05
[TOC] 概述在很多时候,需要在cmake中创建一些目标,如clean、copy等等,这就需要通过add_custom_target来指定。同时,add_custom_command可以用来完成对add_custom_target生成的target的补充。 本文实例源码github地址:https://github.com/yngzMiao/yngzmiao-blogs/tree/master/2019Q4/20191029。 add_custom_target如果你写过MakeFile,那么一定知道,可以设定很多的目标来make,如: 12target ... : prerequisites ... command 其中: target是下面的命令的目标,即下面命令是为了target而生的。这个目标可以是*.o文件,也可以是可执行文件; prerequisites则是生成该目标所依赖的文件,如果找不到依赖的文件,下面的命令就不会执行且会中断make; command就是生成目标文件的命令,一般就是编译命令。 那么,如果使用CMakeLists.txt如何也生成 ...
ARM平台上的NEON加速基础
发表于2021-12-20
[TOC] 概述文章参考:https://arm-software.github.io/acle/neon_intrinsics/ 文章参考:https://developer.arm.com/documentation/102467/0100/ 文章参考:https://zhuanlan.zhihu.com/p/358603760 文章参考:https://zhuanlan.zhihu.com/p/143328317 文章参考:https://www.jianshu.com/p/16d60ac56249 文章参考:https://blog.csdn.net/chshplp_liaoping/article/details/12752749 文章参考:http://blog.csdn.net/chshplp_liaoping/article/details/12752749 文章参考:https://github.com/Denislyl/MyTechBlog2/issues/5 文章参考:https://blog.csdn.net/weixin_43475286/article/de ...
ARM平台上的NEON加速基础
发表于2021-12-20
[TOC] 概述NEON加速指令介绍汇编指令格式AArch64 与AArch32 / Armv7-A 的 NEON 汇编指令除了种类上存在差异,格式上也存在很大差异。 其中指令中有一些通用的书写格式, 含义如下: {}, 表示可选项 <>, 表示必选项 AArch64汇编指令格式1{<prefix>}<op>{<suffix>} Vd.<T>, Vn.<T>, Vm.<T> <prefix> 表示前缀名字,包括以下几类: S/U/F/P:表示数据类型,分别为 有符号整型/无符号整型/浮点型/布尔型。 Q:表示饱和(Saturating)计算。 R:表示舍入(Rounding)计算, Rounding 操作等价于加上 0.5 之后再截断。 H:表示折半(Halving)计算。 D:表示翻倍(Doubling)算。 <op> 表示具体的操作,例如 ADD,SUB 等 ...
ARM平台NEON instrinsics指令学习
发表于2021-12-20
[TOC] 概述文章参考:https://zhuanlan.zhihu.com/p/441686632 官网指令集汇总:https://arm-software.github.io/acle/neon_intrinsics/advsimd.html#markdown-toc-addition 文章参考:https://developer.arm.com/architectures/instruction-sets/intrinsics intrinsics指令分类正常指令:生成大小相同且类型通常与操作数向量相同的结果向量; 长指令:对双字向量操作数执行运算,生成四字向量的结果。所生成的元素一般是操作数元素宽度的两倍,并属于同一类型; 宽指令:一个双字向量操作数和一个四字向量操作数执行运算,生成四字向量结果。所生成的元素和第一个操作数的元素是第二个操作数元素宽度的两倍; 窄指令:四字向量操作数执行运算,并生成双字向量结果,所生成的元素一般是操作数元素宽度的一半; 饱和指令:当超过数据类型指定的范围则自动限制在该范围内。 功能类别 介绍 Load/Store 对数据进 ...
ARM平台上使用NEON加速完成3X3 max pool实现
发表于2021-12-20
[TOC] 概述代码示例
ARM平台上的图像格式转换的NEON加速函数实现
发表于2021-12-20
[TOC] 概述文章参考:https://blog.csdn.net/Yemiekai/article/details/108009701 ARGB转gray为了比较性能,现在用neon和纯C方法比较一下将彩色图片转成灰度的时间 1234567891011121314151617181920212223242526//纯C函数void method_argb2gray_c(AndroidBitmapInfo info, void *pixels) { // rgb转灰度值公式 // Gray = (R*38 + G*75 + B*15) >> 7 cv::TickMeter tm1; tm1.start(); uint32_t *pixel = NULL; int a = 0, r = 0, g = 0, b = 0; int rows=info.height; int cols=info.width; for (int y = 0; y < rows; ++y) { for (i ...
ARM平台上NEON加速常用的函数
发表于2021-12-20
[TOC] 概述文章参考:http://blog.csdn.net/may0324/article/details/72847800 文章参考:https://blog.csdn.net/fengbingchun/article/details/38085781 代码示例NEON 技术是 ARM Cortex™-A 系列处理器的 128 位 SIMD(单指令,多数据)架构扩展,旨在为消费性多媒体应用程序提供灵活、强大的加速功能,从而显著改善用户体验。它具有 32 个寄存器,64 位宽(双倍视图为 16 个寄存器,128 位宽。)目前主流的iPhone手机和大部分android手机都支持ARM NEON加速,因此在编写移动端算法时,可利用NEON技术进行算法加速,以长度为4的寄存器大小为例,相应的提速倍数约是原始的4倍。 NEON 指令可执行“打包的 SIMD”处理: 寄存器被视为同一数据类型的元素的矢量 数据类型可为:签名/未签名的 8 位、16 位、32 位、64 位单精度浮点 指令在所有通道中执行同一操作 float32x4_t本文主要介绍float32x4_t相 ...
ARM平台上YUV420SP转RGB实践优化
发表于2021-12-20
[TOC] 概述文章参考:https://zhuanlan.zhihu.com/p/397551265 练习用 C++ + arm neon + openmp 多线程优化。记录 7680x4320 大小的 NV21 图像转为 RGB 图像, 在 Android ARMv8 平台的耗时从 100ms 左右优化到 10 ms 的过程。 每次测试,循环 10 次取平均,以得到稳定耗时。绑定大核心, openmp 加速时使用4个大核心加速。 naive 实现naive 实现,不求速度,但求使用了正确的公式、实现过程无差错。 单个函数实现多个功能
1…414243…87
avatar
Frewen.Wang
在青麦地上跑着,雪和太阳的光芒
文章
864
标签
158
分类
0
关注我
公告
This is my Blog
最新文章
无题2023-12-22
无题2023-07-28
无题2023-07-27
基于Windows11安装Ubuntu双系统2023-07-20
无题2023-07-17
标签
系统源码 滤波算法 工具使用 云存储 卷积神经 Linux Android框架 STL函数 Activity pytorch NEON 编译脚本 go 渲染机制 OpenGL 编程工具 虚函数 RectNative JVM Linux命令 Kotlin基础 OpenMP AI const IDEA QNN C++ SELinux 目标检测 软件安装 threading 量化方法 四大组件 编译构建 SystemServer 开源项目 unique_ptr Java基础 系统安装 BroadcastReceiver
归档
  • 十二月 20231
  • 七月 20234
  • 六月 20231
  • 四月 20231
  • 三月 20232
  • 二月 202311
  • 一月 20232
  • 十二月 20221
网站资讯
文章数目 :
864
本站总字数 :
778.1k
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2023 By Frewen.Wang
框架 Hexo|主题 Butterfly