对 ncnn 中 element packing 的理解

arm neonelemsizeelempackfloat64x2_t162float32x4_t164int32x4_t164float16x4_t84int8x8_t88float64x2_t 是 arm neon 指令集中的一种数据类型,表示一个由两个浮点数组成的向量。每个浮点数的精度均为 6


浅尝神经网络量化

量化的概念概念:把高位宽(高精度浮点数,大概1E-38 ~ 1E38)所表示的 权值 和 激活值用更低位宽(比如低精度8比特定点,0~255,-128~127)来近似表示Float32 ---> int8 / uint8优点:定点运算指令比float32运算指令,单位时间能处理更多的数据模型大


浅尝 计算图优化&&算子融合

针对模型做图优化就两个目的减少计算图中的 node 数量不管是算子融合,还是无效节点去除,共同的目的就是减少整个 graph 中 node 的数量,因为对于框架来说,从一个 node 到另一个 node 之间就意味着数据的搬运。适配硬件的限制对于一些通用硬件来说基本没什么问题,但是有些硬件设备对算子


Protobuf为什么这么快?

数据传输的痛点和需求数据交换网络通信的场景中,存在的痛点在于 数据的体积大小 ,以及传输完成后 解析数据的速度 。我们横向对比下两种格式JSON 格式{ "id":1, "name":"czh", "hobby&


浅尝ncnn优化&&vulkan api的应用

vulkan的显存管理一个VkBuffer对象,多个offset使用同一块VkBuffer存储中间层的特征数据,不同的blob使用不同的offset进行区分 。可以在内存架构方面做到零拷贝集成显卡和手机上采用unified内存架构(统一内存架构),这种架构下,GPU可以直接访问CPU上的主存。利用这