Mice World

记录点滴 探索无限

本次环境为Arch Linux,内核版本6.12.46-3-cachyos-lts,perf版本6.16-3

前言:为什么 perf 让人望而生畏?

perf 是 Linux 世界中无可争议的性能分析神器。然而,很多开发者(包括曾经的我)在第一次看到 perf stat 那满屏飞舞的专业术语时,都会感到一丝困惑和畏惧:task-clock, IPC, stalled-cycles-frontend… 这些到底意味着什么?

阅读全文 »

2 块钱,我学会了比 异地组网 和 SSH 更重要的一课

今天是我新实习的第二天。

上午的状态堪称完美,灵感迸发,顺手修复了团队内部工具的几个历史遗留 Bug,提交了几个赏心悦目的 PR。午饭后,我泡了杯咖啡,准备按照计划,深入学习一下性能分析领域的圣经——Brendan Gregg 的‘perf’教程

阅读全文 »

读到这里,你已经陪我走完了 rkyolo 从一个想法到一个功能完备的框架的全过程。但在这个故事开始之前,还有一段小插曲。它虽然只占了大概三个小时,却为后面所有的“顺利”铺平了道路,也算是一场有惊无险的“系统急救”演练。

阅读全文 »

好了好了,到了给这个系列收尾的时候了。回头看看,这个叫 rkyolo 的小东西,从一个念头开始,居然真的被我一点点攒成了一个能跑、能看、还能给自己打分的 Rust 推理框架,想想也是挺神奇的。

在这最后一篇,咱不吹牛,就唠点实在的。说说我都捣鼓了啥,还有哪些地方让我挠头,以及以后还能怎么接着玩。

阅读全文 »

在完成了rKYOLO核心推理引擎和多种 IO 功能后,项目已经具备了完整的应用能力。然而,我深知在机器学习项目中,可靠的评估体系与高效的推理能力同等重要。为此,我构建了rkyolo-eval工具链,为项目增添了专业的模型评估能力。

阅读全文 »

在前几轮的扎实工作后,RKYOLO 的核心推理引擎已经变得相当可靠:安全、自适应且性能良好。但它当时更像一个“库”,离一个开箱即用的“工具”还有一步之遥。我的下一个目标,就是为这个强大的引擎,打造一个完整的外壳,让它能灵活地处理现实世界中的各种视觉输入。

阅读全文 »

前面的文章里,我们给 RKYOLO 搭好了结实的地基——安全的 FFI 层和聪明的后处理。项目是能跑了,但作为一个爱折腾的人,我总觉得还能再抠点性能出来。

当我琢磨怎么用它来处理实时视频流时,我意识到真正的挑战来了。目标不再是“能跑”,而是得“跑得飞起”。为此,我决定去碰一碰性能优化里最硬的那块骨头——零拷贝(Zero-Copy)

阅读全文 »

上一篇文章里,我们好不容易打赢了“数值之战”,让模型终于能看清楚东西了。我美滋滋地想,导师给的玉米穗模型部署任务,这下总该顺利了吧?

于是,我满心期待地把模型从 COCO 的yolo11n.rknn换成了自己的MTDC-UAV.rknn。结果……程序又扑街了。

阅读全文 »

上一篇文章,我们聊了为什么我选择用 Rust 来为 RKNN 库构建一个安全、独立的地基。当地基打好,我信心满满地将所有模块串联起来,加载了官方示例中那张经典的bus.jpg,期待着一次完美的推理。

程序没有崩溃,有输出了!我兴奋地将结果绘制出来,然后……我傻眼了。

案发现场:一切混乱的开始

眼前的景象让我大跌眼镜。这哪里是目标检测,这简直是抽象艺术……

阅读全文 »

大家好,我是个大三的学生。最近因为导师的一个课题,需要把一个我自己训练的、用于识别玉米穗的 YOLO11n 模型,部署到一块 Rockchip RK3588 开发板上。

这其实还有个“前传”:为了让板子支持最新的模型,我已经折腾了好一阵子,把整个 Linux 内核连带 RKNPU 驱动都给交叉编译升级了一遍。所以,当底层环境就绪,模型也转换成.rknn格式后,我当时觉得,接下来应该就是顺理成章的“应用开发”了。

很自然地,我找到了野火社区的“鲁班猫”AI 教程,他们提供了一个yolo11的 C++示例。我寻思着,既然有现成的,改改用就行了呗?

事实证明,我还是太年轻了。

阅读全文 »
0%