問題現象
CPU 模式下 MatCaffe 正常運行,GPU 模式編譯成功後,執行 classification_demo.m 時 MatLab 提示內部錯誤並直接崩潰。
可能原因
- GPU 驅動與 CUDA/cuDNN 版本不匹配。
- MatLab 與 Caffe 連接層(mex 檔)在 GPU 記憶體管理上出現錯誤。
- 環境變數 `LD_LIBRARY_PATH`(Windows 下為 `PATH`)未正確包含 CUDA、cuDNN、Caffe DLL 路徑。
- MatLab 版本不支援當前 Caffe 編譯目標架構。
排查步驟
- 在 MatLab 中執行
gpuDevice 檢查 GPU 是否被正確識別。
- 編寫最小測試腳本,逐行執行
classification_demo.m,定位崩潰行(如 `caffe.set_mode_gpu()` 或 `net.forward()`)。
- 檢查 Caffe 編譯日誌,確認 `WITH_CUDA=1`、`USE_CUDNN=1` 且庫路徑正確。
- 嘗試降級/升級 CUDA、cuDNN 至 MatLab 支援版本(參考 MatLab 官方文檔)。
- 若問題依舊,考慮使用 CPU 模式或升級 MatLab 至較新版本。
建議
優先在 Caffe 官方 Issue 或 MatLab 社區搜尋相同錯誤堆疊,許多版本組合已有已知解決方案。