1. Lỗi liên quan đến CPU instruction của tensorflow
- Định cài đặt
tensorflow-gputrên con máy già chạyIntel Xeon X5672và có gắngGTX 1060 3Gđể nghịch chút. - Nhưng khi kiểm tra xem có chạy được không:
>>> import tensorflow as tf
Illegal instruction (コアダンプ)
- Vâng, là lỗi run-time - chỉ xảy ra khi chạy, chứ cài thì chưa xuất hiện vấn đề.
2. AVX là gì
- Ta tìm hiểu một chút về lỗi kể trên, thì hầu hết đề nói rằng: máy sử dụng CPU không hỗ trợ đầy tập lệnh mà tensorflow đang dùng.
- Phổ biến là thiếu là
AVX - Advanced Vector Extension. - Theo wikipedia:
Advanced Vector Extension là phần mở rộng cho bộ vi xử lý kiến trúc x86 (cả Intel và AMD), được Intel đề xuất năm 2008. Lần đầu tiên được hỗ trợ trên bộ xử lý
Sandy Bridgenăm Q1/2011. Sau đó đến Q3/2011 thì AMD cũng hỗ trợ.AVXcung cấp tính năng mới cùng các lệnh mới và cấu trúc thực hiện cũng khác.
- Trong đó,
AVXcó giới thiệu một loại phép tính toán gọi làfused multipl-add(dịch là tổ hợp nhân cộng). Phép tính này giúp làm tăng đáng kể việc tính toán số học như: phép nhân ma trận (dot-product, convolution). Nó có thể làm tăng tốc độ lên gấp 3 với các phép tính kiểu này. - Một nữa, tất cả những điều này chỉ dành cho
CPUthôi.
3. Tại sao lại dùng nó và không dùng AVX
- Thông thường,
tensorflowvẫn có thể built được mà không cầnphần mở rộng của CPUnhưSSE4.1,SSE4.2,AVX,AVX2,FMA…etc. Vì như thế sẽ tương thích với nhiềuCPUnhất có thể. - Và tốc độ của nó so với
GPUthì ko đáng kể gì. Bởi vậy, với quy mô chạy hơi lớn một chút thì ta nên dùngGPU.
4. Giải quyết vấn đề lỗi với AVX như thế nào
- Tải phiên bản cũ từ
1.5trở về trước:
pip install tensorflow==1.5