嘉楠勘智K230D: 首款基于新32位 RuyiSDK 的AIoT量产芯片
在上期文章中,向大家介绍了《玄铁团队与PLCT实验室联合发布:新32位产品级开源工具链及Linux内核》,本期为大家带来新32位(RV64ILP32)产品化的最新进展:嘉楠勘智K230D。去年,嘉楠推出 K230,它基于玄铁c908 打造,是世界上第一款带有 VECTOR 1.0 的 RISC-V 64位 AIOT 芯片。今年,嘉楠勘智推出更高集成度的 K230D AIoT 芯片,内存由原来外挂 256MB/512MB 改为内封 128MB。原先基于 LP64 ABI 的软件内存开销过大,不再适合 K230D,而新32位技术可同时提升内存与缓存的效率。PLCT实验室联合玄铁团队,一起为 K230D 打造基于新32位的 RuyiSDK,第一次实现新32位 AIoT 产品的落地。相比原先基于 LP64 ABI 的 SDK,新32位 SDK 内存开销下降 30%,同时链表遍历性能提升 20%,兼顾成本和性能。
达摩院玄铁团队联手嘉楠科技和中科院软件所PLCT实验室,将新32位落地到Banana Pi开源社区的BPI-CANMV-K230D-Zero 开发板,并与PLCT实验室的 RuyiSDK 集成,一起为用户提供便捷的使用体验:
-
升级 Linux 内核至 6.6、升级工具链
-
新增32位根系统 和 LVGL
-
基于 VECTOR 的图形加速
-
支持 Linux + Nuttx 双系统,大小核任意切换
-
支持传统64位和新32位,两种系统配置
内核配置:
传统64位(64LP64) | 新32位(64ILP32) | |
---|---|---|
内核编译命令 | make ARCH=riscv k230_defconfig all | make ARCH=riscv k230_defconfig 64ilp32.config all |
默认配置差异仅2行:
CONFIG_ARCH_RV64ILP32=y
CONFIG_32BIT=y
内存对比
下面的视频和图片展示了,传统64位(左)与新32位(右)对比 LVGL 的运行:
动态内存对比 | 传统64位 (RV64 LP64) | 新32位 (RV64 ILP32) |
---|---|---|
used | 37MB | 24MB |
静态内存对比 | 传统64位 (RV64 LP64) | 新32位 (RV64 ILP32) |
---|---|---|
kernel code | 10282KB | 10456KB |
rwdata | 1126KB | 832KB |
rodata | 5105KB | 4464KB |
bss | 500KB | 376KB |
相比传统64位,新32位 RuyiSDK 大幅提升内存使用效率,避免了 K230D 产品化中的内存浪费。
性能对比
由于 LP64 的指针数据类型比 ILP32 大一倍,导致 LP64 的缓存利用率偏低。下面,基于 K230D 对比二者的双向链表遍历性能: