⚠ 弃用通知 24.01公告:未来的版本中,将逐步从代码库中移除NCHW数据格式特定的优化。这意味着用户需要将NCHW模型转换为NHWC格式,以便从优化中受益。
计算库
计算库是一系列为Arm® Cortex®-A、Arm® Neoverse®和Arm® Mali™ GPU架构优化的低级机器学习函数集合。
与其他开源替代方案相比,该库提供更出色的性能,并能立即支持新的Arm®技术,如SVE2。
主要特点:
- 基于宽松的MIT许可证的开源软件
- 提供100多种用于CPU和GPU的机器学习函数
- 多种卷积算法(GeMM、Winograd、FFT、直接和间接GeMM)
- 支持多种数据类型:FP32、FP16、INT8、UINT8、BFLOAT16
- 关键机器学习原语的微架构优化
- 高度可配置的构建选项,实现轻量级二进制文件
- 先进的优化技术,如内核融合、快速数学启用和纹理利用
- 使用OpenCL调谐器和GeMM优化启发式方法进行设备和工作负载特定的调优
仓库 | 链接 |
---|---|
发布版 | https://github.com/arm-software/ComputeLibrary |
开发版 | https://review.mlplatform.org/#/admin/projects/ml/ComputeLibrary |
文档
注意:文档包括参考API、更新日志、构建指南、贡献指南、勘误表等。
预构建二进制文件
所有二进制文件可以从这里或下方表格下载。
预构建二进制文件使用以下与安全性/良好编码实践相关的标志生成:
-Wall, -Wextra, -Wformat=2, -Winit-self, -Wstrict-overflow=2, -Wswitch-default, -Woverloaded-virtual, -Wformat-security, -Wctor-dtor-privacy, -Wsign-promo, -Weffc++, -pedantic, -fstack-protector-strong
支持的架构/技术
-
Arm® CPU:
- 使用Arm® Neon™技术的Arm® Cortex®-A处理器系列
- Arm® Neoverse®处理器系列
- 使用Arm® Neon™技术的Armv8-R AArch64架构的Arm® Cortex®-R处理器系列
- 使用Arm® Neon™技术的Arm® Cortex®-X1处理器
-
Arm® Mali™ GPU:
- Arm® Mali™-G处理器系列
- Arm® Mali™-T处理器系列
-
x86
支持的系统
- Android™
- 裸机
- Linux®
- OpenBSD®
- macOS®
- Tizen™
## 资源 - [教程:在树莓派上使用Compute Library运行AlexNet](https://community.arm.com/processors/b/blog/posts/running-alexnet-on-raspberry-pi-with-compute-library) - [Gian Marco关于优化嵌入式深度学习推理软件性能分析的演讲](https://www.embedded-vision.com/platinum-members/arm/embedded-vision-training/videos/pages/may-2019-embedded-vision-summit) - [Gian Marco在EVS上关于使用Winograd算法优化CNN的演讲](https://www.embedded-vision.com/platinum-members/arm/embedded-vision-training/videos/pages/may-2018-embedded-vision-summit-iodice) - [Gian Marco关于使用SGEMM和FFT加速深度学习的演讲](https://www.embedded-vision.com/platinum-members/arm/embedded-vision-training/videos/pages/may-2016-embedded-vision-summit-iodice)
实验性构建
⚠ 重要提示 Bazel和CMake构建是实验性的仅支持CPU的构建,更多详情请参阅文档。
如何贡献
我们非常欢迎对Compute Library的贡献。如果您有兴趣贡献,请查看我们的贡献指南。
开发者原创声明(DCO)
在Compute Library接受您的贡献之前,您需要证明其来源并给予我们许可。为了管理这个过程,我们使用开发者原创声明(DCO)V1.1 (https://developercertificate.org/)
为表明您同意DCO的条款,您需要在每个git提交消息中添加一行包含您的姓名和电子邮件地址的"签署"信息:
Signed-off-by: 约翰·多伊 <john.doe@example.org>
您必须使用真实姓名,不接受匿名或使用假名的贡献。
公共邮件列表
对于技术讨论,ComputeLibrary项目有一个公共邮件列表:acl-dev@lists.linaro.org 无论是Arm内部还是外部的任何人都可以自由订阅该列表。要订阅,请访问以下网站: https://lists.linaro.org/mailman3/lists/acl-dev.lists.linaro.org/
许可和贡献
本软件采用MIT许可证提供。对该项目的贡献也接受相同的许可。
其他项目
本项目包含来自其他项目的代码,如下所列。这些源文件中包含原始许可文本。
-
OpenCL头文件库采用Apache License 2.0版许可,这是一个与MIT许可兼容的宽松许可。
-
half库采用MIT许可。
-
libnpy库采用MIT许可。
-
stb图像库采用MIT许可或属于公共领域。本项目根据MIT许可条款使用它。
商标和版权
Android是Google LLC的商标。
Arm、Cortex、Mali和Neon是Arm Limited(或其子公司)在美国和/或其他地区的注册商标或商标。
Bazel是Google LLC在美国和其他国家注册的商标。
CMake是Kitware, Inc.在美国和其他国家注册的商标。
Linux®是Linus Torvalds在美国和其他国家的注册商标。
Mac和macOS是Apple Inc.在美国和其他国家注册的商标。
Tizen是Linux基金会的注册商标。
Windows®是微软公司集团的商标。