为RockChip的NPU开发开源驱动程序的工作已经开始

2024年 3月 16日 83.5k 0


托梅乌·维索 他最近一直致力于扩展Etnaviv开源图形驱动程序,以支持Vivante NPU IP, 与专有NPU驱动程序相比,性能具有竞争力和将聚四氟乙烯框架向上流到梅萨 处理神经处理单元Tomeu Vizoso现在已经将注意力转移到了为各种Rockchip SoC中的人工智能硬件开发开源、逆向工程的NPU驱动程序上。

随着Etnaviv/Vivante NPU开源驱动器的支持处于良好的状态,Tomeu的下一个挑战是为RK3588(S)和RK3568等SoC中的Rockchip NPU IP开发一个开源驱动器。

目前,官方的Rockchip驱动程序由一个GPL的树外内核驱动程序和一个闭源用户空间组成。Vizoso将当前的二进制驱动程序状态总结为:

RK3588中的NPU版本声称其3个核心的性能为6个TOP,尽管从我读到的内容来看,人们在使用关闭源代码驱动程序的并行使用多个核心时遇到了困难。

..。

内核驱动程序非常简单,并且在内部内核API的使用方面相对最新。用户空间堆栈是出了名的bug和难以使用,基本功能仍然没有实现,性能也远远低于硬件应该能够实现的水平。

要明确的是,这是与闭源驱动程序相关的常见问题之上的。我的印象是,Rockchip的NPU团队真的人手不足。”

他的最终目标是为RockChip NPU开发一个支持主线的开源内核驱动程序和相关的用户空间。到目前为止,他有了一个良好的开端:

“我开始查看一个缓冲区,从专有驱动程序的调试日志中包含寄存器写入,当查看TRM中的寄存器描述时,我发现它必须紧密基于NVIDIA的NVDLA开源NPU IP。

有了RockChip对寄存器的(简洁)描述,以及NVDLA的文档和硬件和用户空间驱动程序的源代码,我能够比VeriSilicon的驱动程序(我没有任何文档)取得更快的进展。

现在,我正处于能够正确执行TensorFlow Lite的Conv2D和DepthwieConv2D操作的阶段,这些操作具有不同的输入尺寸、重量尺寸、步长和填充组合。下一步就是支持多个输出通道。

有关这个新的开源NPU Linux驱动冒险的更多信息, Tomeu Vizoso的博客.

相关文章

塑造我成为 CTO 之路的“秘诀”
“人工智能教母”的公司估值达 10 亿美金
教授吐槽:985 高校成高级蓝翔!研究生基本废了,只为房子、票子……
Windows 蓝屏中断提醒开发者:Rust 比 C/C++ 更好
Claude 3.5 Sonnet 在伽利略幻觉指数中名列前茅
上海新增 11 款已完成登记生成式 AI 服务

发布评论