借助 bnns graph builder api,开发者现在可以使用熟悉的 swift 语言来编写操作图,从而生成预处理和后处理例程以及小型机器学习模型。bnns 可在执行前先编译图形,并支持那些具有实时性和延迟敏感性的应用场景,例如音频处理。在本次讲座中,我们将重温去年的比特失真器示例,通过移除对单独 python 文件的依赖性来简化 swift 组件,并转而完全用 swift 实现音频效果。此外,bnns graph builder api 还适用于在将图像数据传递到机器学习模型之前对数据进行预处理。本次讲座还将演示如何裁剪一张带有 alpha 通道的图像中的透明像素。
此文章由AI生成,可能存在错误,如有问题,请联系djs66256@163.com
BNNS Graph 新功能:用 Swift 构建高性能机器学习处理图
在 WWDC 演讲中,Apple 的向量与数值计算组工程师 Simon Gladman 介绍了 BNNS Graph 的最新功能——BNNS Graph Builder API,这项技术让开发者能够使用 Swift 语言创建高效的机器学习预处理/后处理图和小型模型。
技术背景与概述
BNNS(Basic Neural Network Subroutines)是 Apple 提供的高性能机器学习库,特别适合需要实时处理和低延迟的应用场景,如音频处理和图像分析。在去年的 WWDC 中,Apple 推出了 BNNSGraph API,它能够将整个模型作为一个图对象处理,带来显著的性能优化和能效提升。
今年新增的 BNNS Graph Builder API 进一步简化了开发流程,开发者现在可以直接使用 Swift 语言编写操作图,无需依赖外部工具或文件。
BNNSGraph 的核心优势
BNNSGraph 的主要优势在于其对模型整体的优化能力,包括:
- 数学变换优化(如操作重排序)
- 层融合(将多个操作合并为单操作)
- 内存优化(消除不必要的复制和共享内存)
- 权重重新打包(改善缓存局部性)
与传统方法相比,开发者不再需要手动编写每一层的代码,只需描述整个计算图即可获得这些优化好处。
BNNS Graph Builder API 工作流
新的 Builder API 提供了更加直接的工作流程:
- 使用 Swift 编写操作图
- 通过单次函数调用创建执行上下文
- 重复使用优化后的上下文进行推理
这种方法消除了中间步骤,特别适合小型模型和预处理/后处理操作图的创建。
新 API 的技术亮点
强类型 Swift 接口
1 | let x: BNNSNDArrayDescriptor = ... |
这种强类型系统带来多项优势:
- 编译时类型检查
- Xcode 自动补全
- 运行时错误减少
- 中间张量属性可查询
丰富的操作支持
BNNS Graph Builder 支持广泛的操作类型:
- 数学运算(矩阵乘法、卷积等)
- 归约操作
- 数据重组操作(填充、重塑、转置)
- 算术和逻辑运算符
高效的切片操作
1 | let centerCrop = SliceRange(from: 240, upTo: 880) |
切片操作通过引用而非复制来实现,大大提高了内存效率。
实际应用案例
图像预处理
开发者可以通过简单的 Swift 代码实现复杂的预处理:1
2
3let grayscale = input.mean(axis: -1) // 转换为灰度
let threshold = grayscale > meanValue // 阈值处理
let binary = threshold.to(.float16) // 转换为二进制输出
模型后处理
1 | let softmaxOutput = modelOutput.softmax() |
音频处理升级
去年的 Bitcrusher 音频效果示例现在可以完全用 Swift 实现,无需依赖 PyTorch 或 CoreML 中间文件。
性能与适用性
BNNS Graph Builder 特别适合:
- 实时音频处理(如 Logic Pro 插件)
- 延迟敏感型应用
- 需要高能效的场景
- 小型机器学习模型
开发者还可以通过简单的类型别名切换(如 FP16 和 FP32)来优化性能,在演示案例中,FP16 版本表现出显著的性能优势。
总结
BNNS Graph Builder API 代表了 Apple 在机器学习基础设施上的重要进步,它让开发者能够使用熟悉的 Swift 语言创建高效的计算图,同时享受编译时检查和运行时优化的双重好处。这项技术特别适合需要实时处理和低延迟的应用场景,为开发者提供了强大的新工具来构建高性能的机器学习功能。
学习资源
对于希望深入了解 BNNS Graph 的开发者,Apple 提供了以下资源:
相关视频
探索 Apple 平台上的机器学习和 AI 框架
在 CPU 上助力实现实时 ML 推理