Tôi nên sử dụng GPU hoặc CPU để suy luận?


11

Tôi đang điều hành một mạng lưới thần kinh học tập sâu đã được đào tạo bởi GPU. Bây giờ tôi muốn triển khai nó đến nhiều máy chủ để suy luận. Câu hỏi đặt ra là các điều kiện để quyết định tôi nên sử dụng GPU hay CPU để suy luận?


Thêm chi tiết từ các ý kiến ​​dưới đây.

Tôi mới làm điều này vì vậy hướng dẫn được đánh giá cao.

  • Bộ nhớ : GPU là K80

  • Khung : Cuda và cuDNN

  • Kích thước dữ liệu trên mỗi khối lượng công việc : 20G

  • Tính toán các nút để tiêu thụ : một nút cho mỗi công việc, mặc dù muốn xem xét tùy chọn tỷ lệ

  • Chi phí : Tôi có thể chi trả tùy chọn GPU nếu lý do hợp lý

  • Triển khai : Chạy trên các máy chủ kim loại trần được lưu trữ riêng, không phải trên đám mây.

Ngay bây giờ tôi đang chạy trên CPU đơn giản vì ứng dụng chạy ổn. Nhưng ngoài lý do đó, tôi không chắc tại sao người ta thậm chí sẽ xem xét GPU.


Để tư vấn về so sánh giữa hai cách tiếp cận tiềm năng, sẽ hữu ích cho những người khác biết một số chi tiết về nhiệm vụ của bạn. Ví dụ, kích thước dữ liệu của bạn là bao nhiêu, dung lượng bộ nhớ của GPU là bao nhiêu, số nút máy tính bạn dự định sử dụng và có lẽ cũng là khung làm việc giảm bản đồ nào bạn có.
Stardust năng động

@D bitStardust ... và chi phí. Các nút CPU EC2 giá rẻ hoặc các nút GPU ECW đắt tiền? Đây là cách quá mơ hồ một câu hỏi.
Spainedman

Câu trả lời:


7

@Dan @SmallChess, tôi không hoàn toàn đồng ý. Đúng là để đào tạo rất nhiều sự tương đồng có thể được khai thác bởi GPU, dẫn đến việc đào tạo nhanh hơn nhiều. Đối với suy luận, sự tương đồng hóa này có thể ít hơn, tuy nhiên CNN vẫn sẽ có được lợi thế từ việc này dẫn đến suy luận nhanh hơn. Bây giờ bạn chỉ cần tự hỏi: suy luận nhanh hơn có quan trọng không? Tôi có muốn phụ thuộc thêm này (GPU tốt, cài đặt đúng tệp v.v.) không?

Nếu tốc độ không phải là vấn đề, hãy tìm CPU. Tuy nhiên, lưu ý rằng GPU có thể khiến nó trở nên nhanh hơn theo kinh nghiệm của tôi.


Điểm thú vị mà bạn nêu ra, tại sao CNN sẽ được hưởng lợi từ việc xử lý song song trong quá trình suy luận?
Dan

1
Với việc đào tạo các tính toán song song có thể rõ ràng: bạn có nhiều đầu vào, mỗi đầu vào phải được chuyển tiếp nguồn cấp dữ liệu, hoàn toàn độc lập với nhau. Đối với tích chập, hạt nhân được nhân lên trên nhiều 'bản vá' đầu vào. Đây có thể được thực hiện song song quá. Đó là điều làm cho CNN trở nên mạnh mẽ: họ không chỉ cần ít thông số hơn để đào tạo, mà còn song song hơn, do đó làm cho GPU trở nên mạnh mẽ. Tôi không biết bạn làm việc trên cái gì, nhưng tôi làm việc phân đoạn (phân loại theo pixel) của hình ảnh và khi sử dụng GPU để suy luận, tôi nhận được sự cải thiện tốc độ rất lớn (> x10).
Laurens Meeus

@LaurensMeeus Tôi cũng chưa quen với phổ này và đang thực hiện phân tích chi phí cho máy ảo đám mây. Tôi vẫn sẽ sử dụng GPU để đào tạo nếu tôi chỉ đào tạo phân tích văn bản chứ không phải hình ảnh?
Squ1rr3lz

1
@ Squ1rr3lz Tôi nên 95%. Mọi hình thức tính toán song song sẽ có được lợi thế trên GPU. Tôi không phải là chuyên gia trong lĩnh vực này, nhưng cho rằng phân tích văn bản cũng với các lớp chập (có thể là 1D thay vì 2D), đây đã là một lý do khiến nó có thể / nên nhanh hơn. Nếu có thể, chỉ cần tự mình thử những gì ảnh hưởng đến việc kích hoạt / vô hiệu hóa GPU.
Laurens Meeus

5

Chạy suy luận trên GPU thay vì CPU sẽ giúp bạn tăng tốc độ tương tự như khi luyện tập, ít hơn một chút so với chi phí bộ nhớ.

Tuy nhiên, như bạn đã nói, ứng dụng chạy ổn trên CPU. Nếu bạn đến điểm mà tốc độ suy luận là một nút cổ chai trong ứng dụng, thì việc nâng cấp lên GPU sẽ làm giảm bớt nút thắt đó.


Hoàn toàn đồng ý. Vẫn không hiểu tại sao bài viết CPU được đứng đầu.
Laurens Meeus

1
GeForce GTX Titan X mang lại hiệu năng cao hơn giữa 5,3 và 6,7 lần so với 16-core Intel Xeon E5 CPU - đó là hạ thấp hơn nhiều so với tốc độ tăng đạt được trong đào tạo - từ riêng trên blog của NVIDIA: devblogs.nvidia.com/...
seanhalle

4

Bạn chỉ sử dụng GPU để đào tạo vì học sâu đòi hỏi tính toán lớn để đi đến một giải pháp tối ưu. Tuy nhiên, bạn không cần máy GPU để triển khai .

Hãy lấy iPhone X mới của Apple làm ví dụ. IPhone X mới có thuật toán học máy tiên tiến để phát hiện trực diện. Nhân viên của Apple phải có một cụm máy móc để đào tạo và xác nhận. Nhưng iPhone X của bạn không cần GPU chỉ để chạy mô hình.


Cảm ơn lời giải thích đó. Điều tôi không hiểu là tại sao Nvidia lại thúc đẩy việc sử dụng GPU như là giải pháp tốt nhất để suy luận nếu CPU có thể làm tốt. Ngoài ra, tại sao Google cũng thúc đẩy TPU suy luận nếu họ làm tất cả với CPU? Nó có liên quan gì đến điện toán song song không?
Dan

3
@SmallChess IPhone X không có bộ xử lý giống như TPU tiên tiến trong đó hoàn toàn là để suy luận? extremetech.com/mobile/ từ
Laurens Meeus

3
@SmallChess Nhưng tại sao không thể? Có lẽ tôi hoàn toàn không hiểu. Bạn vẫn không nhận được một số cải thiện về tốc độ?
Laurens Meeus

2
Thành thật mà nói, NVidia có một bộ phận tiếp thị tuyệt vời và việc quảng bá sử dụng GPU NVidia để suy luận là điều tốt nhất. Đó là vì lợi ích tốt nhất của họ, không phải của bạn.
seanhalle

1
Từ blog của NVidia: "258 so với 242 hình ảnh / giây" cho CPU NVIDIA Tegra X1 so với i7 6700K khi thực hiện suy luận: devblogs.nvidia.com/ Thẻ
seanhalle
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.