Arm
文章平均质量分 81
洛克希德马丁
当你凝视深渊的时候深渊也在凝视你!
展开
-
查看linux开发板gpu使用量
有时候我们开发的时候可能需要看下gpu占用,安卓就很简单了,linux稍微有点麻烦,需要开下几个配置文件,这几个文件会随着gpu运行状态的变化内容发生变化。不同的板子可能略有差别,但差不多。1、可以写个脚本或程序将数据图形化2、读不要权限,写要权限。原创 2024-08-22 09:58:15 · 69 阅读 · 0 评论 -
shell 获取秒、毫秒和纳秒
有时候我们在写shell的时候需要获取时间戳(秒、毫秒和纳秒),shell本省不像C++代码那样容易,使用起来也没那么顺畅,但是可以满足我们的需求。1、总体不算太难,所有结果得到的是字符串,可以通过$(())进行数学运算2、不加-d选项,获取到的时间都是当前的本机时间,如果你的时间错乱,可能影响最终结果;在实际操作前,请确认你的系统时间是对的。3、可以使用RTC或时间同步让你的系统时间保持正确。原创 2023-06-15 17:43:39 · 7177 阅读 · 2 评论 -
RK3399核心板CPU实际功耗测试
最近突然突发奇想来测试下RK3399的CPU功耗,由于我们的项目用不到GPU,所以这次测试就没有测试GPU。功率采用市场上的普通功率计测试,不是实验室专用的,精度上没法比,可以做参考。提示:这里对文章进行总结:例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。原创 2023-06-01 10:53:08 · 2351 阅读 · 2 评论 -
cron的正确食用方法
cron这个东西相信使用linux系统的人都不陌生,可以说是最常用的一个命令了。虽然我已经用的滚瓜烂熟了,还是想写一个博客来给那些不太会用的小伙伴们细致讲解下。注:本篇以Ubuntu-20.04系统展开,其它发行版基本差不多乍一看命令挺多挺杂的,实际上蛮简单的。原创 2022-10-19 14:20:34 · 3889 阅读 · 0 评论 -
WSL2使用USB设备
WSL2现在虽然称不上完美,但是绝对秒杀一众虚拟机,再加上WSL-GUI的出现,让我重新燃起了对WSL的信心,美中不足的是不支持USB设备,特别是诸如USB Camera这样的必需品,本文章我就介绍i怎么在WSL2中使用USB设备,Camera后面的文章再探讨。1、对操作系统和内核没什么经验的人来说还是有一定的难度,但是只要跟着教程一步步来应该没有问题的。2、如果实在不行的话可以安装和我一样的内核版本,只要操作正确理论上一定成功,除非出现不可抗力,可以在下面留言,我们一起解决。原创 2022-09-05 15:55:49 · 3229 阅读 · 11 评论 -
ARM整形算力计算
之前做人工智能使用RK3399的CPU去推理,发现效果不理想,现在基本上是采用NPU来推理了。我内心不禁萌生一个想法,ARM的CPU算力到底有多少,为什么推理方面干不过NPU,这里我借用经常使用的RK3399来对比下1、市面上很多模型都是基于INT8的,精度和FLOAT肯定是差一些的,大多数人都是采用牺牲一些精度换取大量的性能提升,这个是目前边端设备上的主流做法。2、没有测试GPU,RK3399这个GPU在嵌入式设备上还是蛮强的,但是实际上在推理场景发挥有限,至少我是没有获得过巨大的性能提升。...原创 2022-09-01 11:00:51 · 4750 阅读 · 0 评论 -
localhost的真实带宽
最近在做一个AI相关的项目,我这里主要做视频的解码和预处理,然后送到另一个同事那里推理。一直很纠结使用什么方式传输,首先想到的最简单的方法莫过于localhost的网络传输,由于数据量巨大就测试了下localhost的带宽。可以这样认为,localhost的实际带宽就是把cpu和mem吃满的带宽,实际使用过程中操作系统也要占一部分资源,不可能所有的资源都提供给localhost开销,但是这个带宽也是很恐怖了,日常使用肯定足够了。以上测试是在Arm和x86机器上,其他的架构没有试过,应该是大同小异。...原创 2022-07-15 15:07:25 · 968 阅读 · 0 评论 -
RK3399实际解码能力测试
最近在做一个基于RK3399的项目,要用到硬解码能力。RK3399的硬解码事基于MPP的,所以顺手测试了下H264的解码能力。之前网上找了很多资料都没有发现相关解码能力测测试,更多的是格式测试的比较多,今天自己亲自动手测试下还是吓了一跳,没想到RK3399居然有这么强的解码能力?Media Process Platform (MPP) module directory description:MPP : Media Process PlatformMPI : Media Process Int原创 2022-06-10 11:23:50 · 3156 阅读 · 7 评论 -
Linux创建临时Swap空间
前言:有一次在RK3399上面编译tensorflow的时候出现被操作系统强制杀死的情况,经过排查发现是RAM耗尽导致的。由于tensorflow只能用bazel编译,而bazel是使用java虚拟机运行的,对内存的占用很大。所以应该怎么办呢,其实这个时候可以使用时间换空间的做法,通过临时创建swap交换空间来解决这个问题。很多人可能要问了swap交换空间不可以在刷写镜像的时候就分好吗?这个当然是可以的,只不过受限于emmc(开发板很少ufs这么高级的闪存)容量一般为了节省成本很多嵌入式设备都是采用8g/1原创 2021-04-16 11:32:11 · 2145 阅读 · 0 评论 -
负数强转unsigned类型
环境:操作系统:Ubuntu 18.04.3 LTS架构:Aarch64内核:Linux 4.4.167机器型号:RK3399CMake:3.10.2GCC:Ubuntu/Linaro 7.5.0-3ubuntu1~18.04G++:Ubuntu/Linaro 7.5.0-3ubuntu1~18.04GDB:GNU gdb (Ubuntu 8.1-0ubuntu3.2) 8.1.0.20180409-gitMake:GNU Make 4.1前言:好久没写博客了,最近临原创 2021-01-27 18:01:33 · 4082 阅读 · 0 评论 -
C++寄存器变量和普通变量的速度对比
最近对寄存器比较感兴趣就特地研究了下,之前也看过几篇博主的文章感觉没有完全说清楚,我自己找了几台设备(aarch64&x86_64)写了测试代码对比了速度,接下来就讲一下测试过程。原创 2020-06-16 11:14:50 · 816 阅读 · 4 评论 -
Disruptor-cpp移植到ARM教程
Disruptor-cpp移植到ARM教程背景安装编译环境开始编译写在最后背景最近在做一个嵌入式AI项目,对并发有很高的的要求,因为嵌入式设备本身性能要落后台式机不少,加上对成本等等因素的考量,为了将产品能做成具有竞争力的产品可谓是费尽心机哪怕一个操作大于几毫秒我都得想方设法找到性能的最优解,之前是基于Android做的,由于很多框架对安卓的支持不如Linux,现在要把项目迁移到Linux A...原创 2019-11-30 15:20:30 · 474 阅读 · 0 评论