nang2911
Thành viên
- Tham gia
- 12/10/2017
- Bài viết
- 4
Deep Learning là một lĩnh vực với các yêu cầu xử lý lớn và việc lựa chọn GPU của bạn sẽ quyết định rất lớn đến quá trình triển khai Deep Learning của bạn. Vậy những yếu tố nào là quan trọng khi bạn quyết định mua GPU mới cho mục đích Deep Learning? RAM GPU, Core, Tensor Core? Lựa chọn như thế nào để hiệu quả nhất về chi phí đầu tư? Bài này sẽ đi sâu vào những câu hỏi và sẽ cho bạn lời khuyên giúp bạn đưa ra lựa chọn phù hợp.
Việc có GPU chạy nhanh là một yếu tố rất quan trọng khi bắt đầu dự án Deep Learning vì điều này cho phép đạt được kết quả nhanh chóng theo kinh nghiệm thực tế, đó là chìa khóa để xây dựng chuyên môn mà bạn sẽ có thể áp dụng Deep Learning vào các vấn đề mới. Thiếu thiết bị có sức mạnh phù hợp, bạn chỉ mất quá nhiều thời gian để học hỏi từ những sai lầm của người khác và có thể nản lòng khi tiếp tục triển khai dự án Deep Learning. Với GPU, tôi đã học được cách áp dụng Deep Learning vào một loạt các cuộc thi Kaggle và tôi đã giành được vị trí thứ hai trong Partly Sunny với cuộc thi Chance of Hashtags Kaggle bằng cách sử dụng phương pháp Deep Learning, trong đó có một nhiệm vụ xếp hạng việc dự báo thời tiết. Trong cuộc thi, tôi đã sử dụng một deep neural network (DNN) hai lớp có quy mô lớn với các đơn vị tuyến tính được điều chỉnh để chuẩn hóa và DNN này chỉ vừa đủ trong bộ nhớ GPU 6GB của tôi. Các GPU GTX Titan hỗ trợ tôi trong cuộc thi là yếu tố chính giúp tôi đạt vị trí thứ 2 trong cuộc thi.
>>> Xem thêm: máy chủ dell t440
Tổng quan
Bài này được cấu trúc theo cách sau. Đầu tiên tôi thảo luận về việc có nhiều GPU sẽ hữu ích như thế nào, sau đó tôi thảo luận về tất cả các tùy chọn phần cứng có liên quan như GPU NVIDIA và AMD, Intel Xeon Phi, Google TPU và phần cứng cho startup mới. Sau đó, tôi thảo luận về thông số kỹ thuật GPU là chỉ số tốt cho hiệu suất của Deep Learning. Phần chính thảo luận về phân tích hiệu suất và hiệu quả chi phí. Tôi kết luận với các gợi ý GPU vừa tổng quan, vừa cụ thể hơn.
Nhiều GPU làm cho việc training của tôi nhanh hơn?
Khi bắt đầu sử dụng nhiều GPU, tôi rất hào hứng với việc thiết lập xử lý song song để cải thiện hiệu năng thời gian chạy cho cuộc thi Kaggle. Tuy nhiên, tôi thấy rằng rất khó để đạt được tốc độ mong muốn chỉ đơn giản bằng cách sử dụng nhiều GPU. Tò mò về vấn đề này, tôi bắt đầu thực hiện nghiên cứu vấn đề xử lý song song trong học Deep Learning. Tôi đã phân tích việc xử lý song song trong các kiến trúc Deep Learning, phát triển kỹ thuật lượng tử hóa 8 bit để tăng tốc độ trong các cụm GPU từ 23x lên 50x cho hệ thống 96 GPU và công bố nghiên cứu của tôi tại ICLR 2016.
Điểm quan trọng được nhận ra là các network thuộc kiểu “convolution” và “recurrent” lại khá dễ để song song hóa, đặc biệt nếu bạn chỉ sử dụng một máy tính hoặc 4 GPU. Tuy nhiên, các network được kết nối toàn phần bao gồm cả máy biến áp không đơn giản để song song và cần các thuật toán chuyên dụng để thực hiện tốt.
Các thư viện hiện đại như TensorFlow và PyTorch rất phù hợp để kết nối song song các mạng lặp và tích chập, và để tích chập, bạn có thể mong đợi tốc độ tăng lên khoảng 1,9x / 2,8x / 3,5x cho 2/3/4 GPU. Đối với các mạng lặp lại, độ dài chuỗi là tham số quan trọng nhất và đối với các sự cố NLP phổ biến, người ta có thể mong đợi các tốc độ tăng tốc tương tự hoặc kém hơn một chút so với các mạng chập. Các mạng kết nối đầy đủ, bao gồm cả máy biến áp, tuy nhiên, thường có hiệu suất kém đối với dữ liệu song song và các thuật toán tiên tiến hơn là cần thiết để tăng tốc các phần này của mạng. Nếu bạn chạy biến áp trên nhiều GPU, bạn nên thử chạy nó trên 1 GPU và xem nó có nhanh hơn hay không.
>>> Xem thêm: máy chủ dell r640
Sử dụng nhiều GPU mà không cần xử lý song song
Một lợi thế khác của việc sử dụng nhiều GPU, ngay cả khi bạn không song song hóa các thuật toán, là bạn có thể chạy nhiều thuật toán hoặc thử nghiệm riêng biệt trên mỗi GPU. Tìm kiếm hyperparameter một cách hiệu quả là cách vận dụng phổ biến nhất của thiết lập nhiều GPU. Bạn không tăng tốc, nhưng bạn có được thông tin nhanh hơn về hiệu suất của các thiết lập hyperparameter khác nhau hoặc kiến trúc mạng khác nhau. Điều này cũng rất hữu ích cho những người mới, vì bạn có thể nhanh chóng hiểu biết và trải nghiệm về cách bạn có thể training một kiến trúc Deep Learning không quen thuộc.
Sử dụng nhiều GPU theo cách này thường hữu ích hơn so với việc chạy một mạng trên nhiều GPU thông qua song song dữ liệu. Bạn nên ghi nhớ điều này khi bạn mua nhiều GPU: Chất lượng để có sự song song tốt hơn như số lượng làn PCIe không quan trọng khi bạn mua nhiều GPU.
Ngoài ra, lưu ý rằng một GPU duy nhất phải đủ cho hầu hết mọi tác vụ. Do đó, phạm vi trải nghiệm mà bạn có thể có với 1 GPU sẽ không khác so với khi bạn có 4 GPU. Sự khác biệt duy nhất là bạn có thể chạy nhiều thử nghiệm hơn trong một thời gian nhất định với nhiều GPU.
Công ty cổ phần thương mại Máy Chủ Hà Nội
- Trụ sở Hà Nội: Tầng 1,2,4 - Tòa nhà PmaxLand số 32 ngõ 133 Thái Hà - Q. Đống Đa
Hotline mua hàng Hà Nội: 0979 83 84 84 Điện thoai: 024 6296 6644
- CN Hồ Chí Minh: Lầu 1- Tòa nhà 666/46/29 Đường 3/2- Phường 14 - Quận 10
Hotline mua hàng Hồ Chí Minh: 0945 92 96 96 Điện thoai: 028 2244 9399
- Email: hotro@maychuhanoi.vn
- website: https://maychuhanoi.vn/
- facebook: https://www.facebook.com/maychuhanoi
Việc có GPU chạy nhanh là một yếu tố rất quan trọng khi bắt đầu dự án Deep Learning vì điều này cho phép đạt được kết quả nhanh chóng theo kinh nghiệm thực tế, đó là chìa khóa để xây dựng chuyên môn mà bạn sẽ có thể áp dụng Deep Learning vào các vấn đề mới. Thiếu thiết bị có sức mạnh phù hợp, bạn chỉ mất quá nhiều thời gian để học hỏi từ những sai lầm của người khác và có thể nản lòng khi tiếp tục triển khai dự án Deep Learning. Với GPU, tôi đã học được cách áp dụng Deep Learning vào một loạt các cuộc thi Kaggle và tôi đã giành được vị trí thứ hai trong Partly Sunny với cuộc thi Chance of Hashtags Kaggle bằng cách sử dụng phương pháp Deep Learning, trong đó có một nhiệm vụ xếp hạng việc dự báo thời tiết. Trong cuộc thi, tôi đã sử dụng một deep neural network (DNN) hai lớp có quy mô lớn với các đơn vị tuyến tính được điều chỉnh để chuẩn hóa và DNN này chỉ vừa đủ trong bộ nhớ GPU 6GB của tôi. Các GPU GTX Titan hỗ trợ tôi trong cuộc thi là yếu tố chính giúp tôi đạt vị trí thứ 2 trong cuộc thi.
>>> Xem thêm: máy chủ dell t440
Tổng quan
Bài này được cấu trúc theo cách sau. Đầu tiên tôi thảo luận về việc có nhiều GPU sẽ hữu ích như thế nào, sau đó tôi thảo luận về tất cả các tùy chọn phần cứng có liên quan như GPU NVIDIA và AMD, Intel Xeon Phi, Google TPU và phần cứng cho startup mới. Sau đó, tôi thảo luận về thông số kỹ thuật GPU là chỉ số tốt cho hiệu suất của Deep Learning. Phần chính thảo luận về phân tích hiệu suất và hiệu quả chi phí. Tôi kết luận với các gợi ý GPU vừa tổng quan, vừa cụ thể hơn.
Nhiều GPU làm cho việc training của tôi nhanh hơn?
Khi bắt đầu sử dụng nhiều GPU, tôi rất hào hứng với việc thiết lập xử lý song song để cải thiện hiệu năng thời gian chạy cho cuộc thi Kaggle. Tuy nhiên, tôi thấy rằng rất khó để đạt được tốc độ mong muốn chỉ đơn giản bằng cách sử dụng nhiều GPU. Tò mò về vấn đề này, tôi bắt đầu thực hiện nghiên cứu vấn đề xử lý song song trong học Deep Learning. Tôi đã phân tích việc xử lý song song trong các kiến trúc Deep Learning, phát triển kỹ thuật lượng tử hóa 8 bit để tăng tốc độ trong các cụm GPU từ 23x lên 50x cho hệ thống 96 GPU và công bố nghiên cứu của tôi tại ICLR 2016.
Điểm quan trọng được nhận ra là các network thuộc kiểu “convolution” và “recurrent” lại khá dễ để song song hóa, đặc biệt nếu bạn chỉ sử dụng một máy tính hoặc 4 GPU. Tuy nhiên, các network được kết nối toàn phần bao gồm cả máy biến áp không đơn giản để song song và cần các thuật toán chuyên dụng để thực hiện tốt.
Các thư viện hiện đại như TensorFlow và PyTorch rất phù hợp để kết nối song song các mạng lặp và tích chập, và để tích chập, bạn có thể mong đợi tốc độ tăng lên khoảng 1,9x / 2,8x / 3,5x cho 2/3/4 GPU. Đối với các mạng lặp lại, độ dài chuỗi là tham số quan trọng nhất và đối với các sự cố NLP phổ biến, người ta có thể mong đợi các tốc độ tăng tốc tương tự hoặc kém hơn một chút so với các mạng chập. Các mạng kết nối đầy đủ, bao gồm cả máy biến áp, tuy nhiên, thường có hiệu suất kém đối với dữ liệu song song và các thuật toán tiên tiến hơn là cần thiết để tăng tốc các phần này của mạng. Nếu bạn chạy biến áp trên nhiều GPU, bạn nên thử chạy nó trên 1 GPU và xem nó có nhanh hơn hay không.
>>> Xem thêm: máy chủ dell r640
Sử dụng nhiều GPU mà không cần xử lý song song
Một lợi thế khác của việc sử dụng nhiều GPU, ngay cả khi bạn không song song hóa các thuật toán, là bạn có thể chạy nhiều thuật toán hoặc thử nghiệm riêng biệt trên mỗi GPU. Tìm kiếm hyperparameter một cách hiệu quả là cách vận dụng phổ biến nhất của thiết lập nhiều GPU. Bạn không tăng tốc, nhưng bạn có được thông tin nhanh hơn về hiệu suất của các thiết lập hyperparameter khác nhau hoặc kiến trúc mạng khác nhau. Điều này cũng rất hữu ích cho những người mới, vì bạn có thể nhanh chóng hiểu biết và trải nghiệm về cách bạn có thể training một kiến trúc Deep Learning không quen thuộc.
Sử dụng nhiều GPU theo cách này thường hữu ích hơn so với việc chạy một mạng trên nhiều GPU thông qua song song dữ liệu. Bạn nên ghi nhớ điều này khi bạn mua nhiều GPU: Chất lượng để có sự song song tốt hơn như số lượng làn PCIe không quan trọng khi bạn mua nhiều GPU.
Ngoài ra, lưu ý rằng một GPU duy nhất phải đủ cho hầu hết mọi tác vụ. Do đó, phạm vi trải nghiệm mà bạn có thể có với 1 GPU sẽ không khác so với khi bạn có 4 GPU. Sự khác biệt duy nhất là bạn có thể chạy nhiều thử nghiệm hơn trong một thời gian nhất định với nhiều GPU.
Công ty cổ phần thương mại Máy Chủ Hà Nội
- Trụ sở Hà Nội: Tầng 1,2,4 - Tòa nhà PmaxLand số 32 ngõ 133 Thái Hà - Q. Đống Đa
Hotline mua hàng Hà Nội: 0979 83 84 84 Điện thoai: 024 6296 6644
- CN Hồ Chí Minh: Lầu 1- Tòa nhà 666/46/29 Đường 3/2- Phường 14 - Quận 10
Hotline mua hàng Hồ Chí Minh: 0945 92 96 96 Điện thoai: 028 2244 9399
- Email: hotro@maychuhanoi.vn
- website: https://maychuhanoi.vn/
- facebook: https://www.facebook.com/maychuhanoi