一、前言與任務說明

隨者 apple 公司在處理器上的成功,各家媒體都在介紹卓越的媒體製作效能、各情境下的處理器跑分驗證,但往往忽略 apple 處理器上特別的16核心的神經網路引擎(Neural Engine),這部分正是AI工程師非常好奇的地方,這神經網路引擎是否能帶給大家不同的體驗以及如何使用,所以本文與大家分享python調用Neural Engine的方法,從Neural Engine執行結果花費時間來看速度加速非常顯著。

這次的任務是做400 種鳥類的分類問題,從訓練到推論皆使用 m1 mac air完成,最後部署在iphone上,實現 apple 一條龍的實驗,這次的AI模型開發工具為 Pytorch_lightning,這是一個基於pytorch的開發工具,他整合工程師們在開發模型時會使用的函式,協助工程師們方便與快速開發,文末附有github連結,爾後範例皆以github內容為主。

最後提醒,以往AI開發工具皆以 Nvidia 的顯示卡設計與開發,而 apple 處理器是ARM架構跟以往差異盛巨大,在一些本來可以運作的開發工具功能 ,在適配上還沒有到位,但相信隨著ARM晶片越來越主流,相關功能也會越來越完善。

本次使用設備:

  1. Mac Air m1 : CPU 8 核心、GPU 8 核心、Neural Engine 16 核心、16g RAM
  2. Iphone12 : CPU 6 核心、GPU 4 核心、Neural Engine 16 核心、4g RAM

二、環境配置

開啟終端機,並輸入以下指令

Install Xcode

xcode-select --install

Setting Python Environment

  1. Install Homebrew

    在終端機輸入以下指令

    /bin/bash -c "$(curl -fsSL [<https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh>](<https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh>))"
    
  2. Install miniforge

    brew install miniforge
    

    *如果遇到 “command not found: brew” 錯誤訊息時,請輸入以下指令

    export PATH=/opt/homebrew/bin:$PATH
    

Conda environment

  1. 新增環境

    conda create -n torch python=3.10
    
  2. 啟動環境

    conda activate torch-gpu