树莓派上运行 Stable Diffusion,260MB 的 RAM「hold」住 10 亿参数大模型
机器之心报道
Stable Diffusion 能在树莓派上运行了!
推理引擎与 WeightsProvider 解耦 WeightsProvider 可以是 DiskNoCache、DiskPrefetch 或自定义 注意力切片 动态量化(8 bit 无符号、非对称、百分位数) 静态量化(W8A8 无符号、非对称、百分位数) 轻松校准量化模型 支持 FP16(使用或不使用 FP16 运算) 实现了 24 个 ONNX 算子(最常用的算子) 运算按顺序执行,但所有算子都是多线程的 单一实现文件 + header 文件 XNNPACK 调用被封装在 XnnPack 类中 (用于将来的替换)
OnnxRuntime 的第一次运行是预热推理,因为它的 InferenceSession 是在第一次运行前创建的,并在随后的所有运行中重复使用。而 OnnxStream 没有预热推理,因为它的设计是纯粹「eager」的(不过,后续运行可以受益于操作系统对权重文件的缓存)。 目前 OnnxStream 不支持 batch size ! = 1 的输入,这与 OnnxRuntime 不同,后者在运行 UNET 模型时使用 batch size = 2 可以大大加快整个扩散过程。 在测试中,改变 OnnxRuntime 的 SessionOptions(如 EnableCpuMemArena 和 ExecutionMode)对结果没有产生明显影响。 在内存消耗和推理时间方面,OnnxRuntime 的性能与 NCNN(另一个框架)非常相似。 测试的运行条件:Windows Server 2019、16GB 内存、8750H CPU (AVX2)、970 EVO Plus SSD, VMWare 上的 8 个虚拟内核。
© THE END
转载请联系本公众号获得授权
投稿或寻求报道:[email protected]
微信扫码关注该文公众号作者
戳这里提交新闻线索和高质量文章给我们。
来源: qq
点击查看作者最近其他文章