Toybrick

标题: RV1126 NPU计算精度 [打印本页]

作者: ozgaga    时间: 2022-5-31 22:12
标题: RV1126 NPU计算精度
本帖最后由 ozgaga 于 2022-5-31 22:13 编辑

阅读Rockchip_User_Guide_RKNN_API_V1.7.0_CN这个文档(里面有介绍NPU的相关内容)后
我发现RKNN模型有个量化的过程,量化后的选择有以下三种:float32分别转“uint8”、“int8”和“int16”;不量化则是“float16”,共四种,NPU则按照这四种精度之一进行计算
意思是原始数据需要是float32数据类型,同时,NPU处理的最高精度是float16,是这样吗?
那pytorch模型中一般都是double64数据类型,rknn工具在模型转化的时候应该是会考虑到NPU精度的问题吧,不用修改pytorch模型中的计算精度吧
最后一个问题就是:NPU这样降低精度的计算,能保证和原来本地GPU上pytorch模型一样的结果吗,计算精度的下降会对结果产生影响吧

作者: jefferyzhang    时间: 2022-6-1 08:51
本帖最后由 jefferyzhang 于 2022-6-1 08:57 编辑

1. RKNN量化默认INT8精度,INT16和F16都会影响性能
2. 你站的角度是实验室,RK要考虑的是客户工程化落地问题,F32固然无脑迁移模型,但功耗、价格和芯片面积就直线上升
3. 就连Tensorflow、pytorch也考虑工程化问题,都支持训练量化,只要你用TF训练量化的模型转RKNN,精度是完全一样的。
4. 如果你的项目对功耗和价格或者芯片面积不敏感,那这颗芯片其实并不合适你的项目使用。




欢迎光临 Toybrick (https://t.rock-chips.com/) Powered by Discuz! X3.3