2017年12月24日 星期日

跑 AI 程式時出現 illegal instruction 錯誤

跑 AI 程式時出現 Illegal instruction (core dumped) 這樣的錯誤, 很有可能是因為 CPU 太舊/太弱, 不支援某些向量運算。 先前 玩 face_recognition 的時候 遇到的是 dlib 函式庫需要 sse2/sse4 指令; 這次則是玩 ENet 又遇到 illegal instruction。 看了一些不完全相關的文章和錯誤訊息, 包含: draw_net 的 "OpenBLAS : Your OS does not support AVX instructions" 警告、 caffe 的 issue intel 論壇 等等, 最後的結論是: ENet 版的 caffe 需要 CPU 支援 avx 指令。 可以用 grep -i avx /proc/cpuinfo 查看你的 CPU 是否符合要求。 雖然沒有力氣重新編譯 ENet 版的 caffe 所以無法百分之百確認, 不過曾在五部電腦上測試過, 三部沒有 avx 指令的電腦在 python 程式碼 import caffe 時都出現 illegal instruction 的訊息; 兩部有 avx 指令的電腦確實都能順利執行。 如果你也跟我一樣拿古老的文書機來跑 AI 程式, 而且遇到相同的錯誤訊息, 請留言確認一下這個規則是否也適用你的狀況囉!

沒有留言:

張貼留言