Spaces:
Running
Running
Commit
·
9a7fc67
1
Parent(s):
a29ae51
docs: add support for Apple MPS inference backend and improve device selection logic
Browse files- app.py +3 -0
- 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 日
|
|
|