读了一遍 repo 里所有的文档,有些很有意思的点:
1. Apple Neural Engine (ANE) 是和 CPU/GPU 不一样的计算核心,专门用来处理神经网络的计算。理想的情况下,最好把所有神经网络的计算任务交给 ANE,而不是 CPU 或者 GPU;
2. 但是呢,我们无法强制指定任务给 ANE,只能告诉任务去尝试使用 ANE。大体的原因是因为,不是所有的 layer 都可以在 ANE 里计算。Core ML 会把合适的 layer 放在 ANE 里计算,把不合适的放在 CPU 或者 GPU 里计算;
3. 也就是说 Core ML 会自行判断具体的 layer 调用哪个计算核心,CPU / GPU / ANE,所以开发者只能不断尝试,将不支持的 layer 替换成支持 ANE 的 layer。
Post #124
390
DPS Build 关于 Apple neural engine 的细节 https://github.com/hollance/neural-engine