この記事は Tuton Advent Calander 2025 の6日目の記事です。ほかの記事はこちらからどうぞ。
はじめに
こんにちは、 mitu です。
kendryte 社が製造している KPU シリーズには、CNN 向けのハードウェアアクセラレーターが搭載されているのですが、KPU 上で CNN を動かすための形式である .kmodel は、様々なバージョンがあり、なかなか厄介です。
そこで、この記事では現代でも使われることのありそうな kmodel v3, v4, v5 について、大雑把ではまとめてみたいと思います。
kmodel v3
- 変換対応形式:
.tflite - 対応 KPU:
K210
NNCase v0.1.x 系を使って作成できるモデルです。
このバージョンでは基本的に K210 がアクセラレーションできる演算にしか対応していません。
ただ、その分ファームウェアは軽量になっているため速度を重視するなら kmodel v3 一択だと思います。
kmodel v4
- 変換対応形式:
.tflite,.onnx,.caffemodel - 対応 KPU:
K210
NNCase v0.2.x 系を使って作成できるモデルです。
このバージョンでは、ハードウェアアクセラレーションできない演算を CPU 側で処理することによって、.tflite ならほとんどすべての演算が使用可能です。速度が出るかどうかは別ですが…
kmodel v5
- 対応変換形式:
.tflite,.onnx,.ncnn,.caffemodel - 対応 KPU:
K210,K230,K510
NNCase v1.x.x または v2.x.x 系を使って作成できるモデルです。
ようやく K210 以外の KPU もサポートするようになりました。v4 でサポートが薄かった .onnx の演算に対応し、量子化に関してもより多くの方式で行えるようになっています。
また、.kmodel への変換において、コマンドプロンプトを叩いて変換用のプログラムを実行するのではなく、Python のライブラリを用いて行うようになりました。
おわりに
K210 なら v3, それ以外なら v5 にするのが丸いと思います。