jimmy60504 commited on
Commit
9a7fc67
·
1 Parent(s): a29ae51

docs: add support for Apple MPS inference backend and improve device selection logic

Browse files
Files changed (2) hide show
  1. app.py +3 -0
  2. changelog.md +23 -1
app.py CHANGED
@@ -18,6 +18,9 @@ plt.rcParams['axes.unicode_minus'] = False # 解決負號顯示問題
18
  if torch.cuda.is_available():
19
  device = torch.device("cuda")
20
  logger.info("使用 GPU")
 
 
 
21
  else:
22
  device = torch.device("cpu")
23
  logger.info("使用 CPU")
 
18
  if torch.cuda.is_available():
19
  device = torch.device("cuda")
20
  logger.info("使用 GPU")
21
+ elif torch.mps.is_available():
22
+ device = torch.device("mps")
23
+ logger.info("使用 Apple MPS")
24
  else:
25
  device = torch.device("cpu")
26
  logger.info("使用 CPU")
changelog.md CHANGED
@@ -4,6 +4,29 @@
4
 
5
  ## [Unreleased]
6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  ## [Sprint 003] — 震央資訊 JSON 管理化 (2025-10-26)
8
 
9
  ### Added
@@ -187,4 +210,3 @@ GPL-3.0
187
  ---
188
 
189
  **最後更新**:2024 年 10 月 26 日
190
-
 
4
 
5
  ## [Unreleased]
6
 
7
+ ### Added
8
+ - **MPS(Apple Metal Performance Shaders)推論後端**
9
+ - 新增對 macOS Apple Silicon 上 PyTorch MPS 裝置的支援,可在 Apple M1/M2 系列上使用 GPU 加速推論。
10
+ - 自動裝置選擇:優先選擇 `mps`(若可用),其次 `cuda`,最後降級到 `cpu`。
11
+ - 支援透過環境變數 `TTSAM_DEVICE` 或設定覆寫裝置選擇(例如強制使用 `cpu`)。
12
+ - 若 MPS 不可用或出現錯誤,會自動降級到可用的裝置並記錄 Warning(參照 `spec/03-error-handling.md` 的降級策略)。
13
+ - **相容性與說明**
14
+ - 需要安裝具備 MPS 支援的 PyTorch 版本;若環境不支援,程式仍保持向後相容(不會改變公開 API)。
15
+
16
+ ### Changed
17
+ - 自動裝置選擇與初始化邏輯新增日誌(INFO/WARNING),以便排查裝置選擇與降級原因。
18
+
19
+ ### Improved
20
+ - 在 Apple Silicon(M1/M2)上進行推論時的效能相對於純 CPU 運算有明顯改善。
21
+ - 針對 MPS 裝置的錯誤與邊界情況加入更寬鬆的降級路徑,確保單點錯誤不會中止整個流程(遵循 spec/03-error-handling.md)。
22
+
23
+ ### Technical Details
24
+ - 程式碼語法驗證通過 ✅(無 `SyntaxError`)。
25
+ - 冒煙測試:已在開發機(macOS Apple Silicon)執行初步冒煙測試並驗證主流程可執行(波形載入、推論、地圖生成)。
26
+ - 不變條件:本次變更為向後相容,未改變外部 API 或資料契約 ✅。
27
+
28
+ ---
29
+
30
  ## [Sprint 003] — 震央資訊 JSON 管理化 (2025-10-26)
31
 
32
  ### Added
 
210
  ---
211
 
212
  **最後更新**:2024 年 10 月 26 日