Hướng dẫn xây dựng phần cứng cho Deep Learning toàn diện

Mã tin: 2648753 - Lượt xem: 44 - Trả lời: 0
Đặt tin VIP ngày: Soạn CV3 2648753 gửi 8777 (15k/sms. Mỗi tin + 24 giờ)
Đặt tin VIP tháng? Bấm vào đây
  1. Linh vattubk
    Thành viên mới Tham gia: 04/05/2016 Bài viết: 1.793 Điện thoại: 0963237535
    Deep Learning rất nặng về xử lý, vì vậy bạn sẽ cần một CPU nhanh với nhiều lõi? Hoặc có thể bỏ tiền mua các CPU dòng cao? Một trong những điều tồi tệ nhất bạn có thể làm khi xây dựng một hệ thống deep learning là lãng phí tiền cho các phần cứng không cần thiết. Trong bài này, chúng tôi sẽ hướng dẫn bạn đi từng bước với hệ thống phần cứng mà bạn sẽ cần cho một hệ thống hiệu năng cao (high performance computing – HPC) giá rẻ.

    Trong thời gian qua, chúng tôi xây dựng nhiều máy trạm deep learning khác nhau, và mặc dù nghiên cứu và đánh giá cẩn thận, chúng tôi đã chia sẻ sai lầm của mình trong việc lựa chọn các linh kiện phần cứng. Trong hướng dẫn này, chúng tôi muốn chia sẻ kinh nghiệm đã đạt được trong nhiều năm qua để bạn không mắc phải những sai lầm tương tự.

    Nội dung bài đăng được sắp xếp theo mức độ nghiêm trọng của sai lầm. Điều này có nghĩa là những sai lầm thường lãng phí nhiều tiền nhất sẽ đề cập trước.

    GPU

    Bài đăng trên blog này giả định rằng bạn sẽ sử dụng GPU cho hệ thống deep learning của bạn. Nếu bạn đang xây dựng hoặc nâng cấp hệ thống của mình để phục vụ cho deep learning, việc bỏ GPU qua một bên sẽ là không hợp lý. GPU là trái tim của các ứng dụng deep learning – sự cải thiện về tốc độ xử lý là quá lớn để có thể bỏ qua.

    Chúng tôi đã nói nhiều về sự lựa chọn GPU trong một số bài đăng trên blog trước đây và lựa chọn GPU của bạn có lẽ là lựa chọn quan trọng nhất cho hệ thống deep learning của bạn. Có ba lỗi chính mà bạn có thể mắc phải khi chọn GPU: (1) chi phí / hiệu năng kém, (2) không đủ bộ nhớ, (3) làm mát kém.

    Để có chi phí / hiệu năng tốt, chúng tôi thường khuyên dùng RTX 2070 hoặc RTX 2080 Ti. Nếu bạn sử dụng các card này, bạn nên sử dụng các model 16-bit. Mặt khác, GTX 1070, GTX 1080, GTX 1070 Ti và GTX 1080 Ti là những lựa chọn hợp lý và bạn có thể sử dụng các GPU này với 32-bit (nhưng không phải 16-bit).

    NVIDIA GEFORCE GTX 1080Ti

    Hãy kiểm tra kỹ về các yêu cầu bộ nhớ khi bạn chọn GPU của mình. Card RTX, có thể chạy ở 16-bit, có thể đào tạo các mô hình lớn gấp đôi với cùng bộ nhớ so với card GTX. Vì các card RTX này có lợi thế về bộ nhớ, việc chọn card RTX và tìm hiểu cách sử dụng các mô hình 16-bit một cách hiệu quả sẽ giúp bạn trong một chặng đường dài. Nói chung, các yêu cầu cho bộ nhớ cơ bản sẽ như sau:

    • Các nghiên cứu cần các điểm số hiệu năng cao nhất: >= 11 GB

    • Các nghiên cứu cho các kiến trúc mới: >= 8 GB

    • Bất kỳ nghiên cứu nào khác: 8 GB

    • Kaggle: 4 – 8 GB

    • Các startup: 8 GB (nhưng kiểm tra từng ứng dụng cụ thể để biết quy mô của model)

    • Các công ty: 8 GB cho prototyping (tạo mẫu), >= 11 GB cho training (đào)
    Một vấn đề khác cần chú ý, đặc biệt nếu bạn mua nhiều card RTX. Nếu bạn muốn gắn GPU vào các khe PCIe cạnh nhau, bạn cần đảm bảo rằng GPU có quạt kiểu thổi luồng. Nếu không, bạn có thể gặp vấn đề về nhiệt độ và GPU của bạn sẽ chậm hơn (khoảng 30%) và nhanh “tèo” hơn.

    Các “trâu cày” được xem xét – Bạn có thể xác định phần cứng gây ra lỗi hoạt động kém không? Một trong những GPU này? Hoặc có thể đó là lỗi của CPU?

    >>> Xem thêm: máy chủ dell r760



    RAM

    Những sai lầm chính với RAM là mua RAM với tốc độ xung nhịp quá cao. Sai lầm thứ hai là mua không đủ RAM để có trải nghiệm prototyping mượt mà.

    Tốc độ xung nhịp RAM cần thiết

    Tốc độ xung nhịp RAM là những thông số hơi “mang tính tiếp thị”, trong đó các công ty RAM thu hút bạn mua các loại RAM “nhanh” hơn, điều này thực sự không mang lại nhiều hiệu quả. Vấn đề này được giải thích tốt nhất là xem clip “Does RAM speed REALLY matter?” được đăng trên kênh Youtube Linus Tech Tips.

    Hơn nữa, điều quan trọng cần biết là tốc độ RAM không liên quan nhiều đến giao tiếp từ RAM CPU → RAM GPU. Điều này xảy ra bởi vì (1) nếu bạn đã sử dụng “pinned memory”, các batch nhỏ của bạn sẽ được chuyển sang GPU mà không cần sự tham gia của CPU và (2) nếu bạn không sử dụng “pinned memory” thì mức tăng hiệu năng của RAM nhanh so với RAM chậm là 0-3% – Tốt hơn hết nên tiêu tiền của bạn ở chỗ khác!

    Kích thước RAM

    Kích thước RAM không ảnh hưởng đến hiệu suất deep learning. Tuy nhiên, nó có thể cản trở bạn thực thi mã GPU một cách thoải mái (không phải “swap” vào ổ đĩa). Bạn nên có đủ RAM để làm việc thoải mái với GPU của mình. Điều này có nghĩa là bạn nên có dung lượng RAM ít nhất là vừa đủ với card GPU lớn nhất của bạn. Ví dụ: nếu bạn có Titan RTX với bộ nhớ 24 GB, bạn nên có ít nhất 24 GB RAM. Tuy nhiên, nếu bạn có nhiều GPU hơn, bạn không nhất thiết cần thêm RAM.

    Vấn đề với chiến lược “bộ nhớ RAM vừa cho GPU lớn nhất” là bạn vẫn có thể bị thiếu RAM nếu bạn đang xử lý các dataset lớn. Chiến lược tốt nhất ở đây là phù hợp với GPU của bạn và nếu bạn cảm thấy rằng bạn không có đủ RAM, hãy mua thêm một chút.

    Một chiến lược khác được gợi ý từ lĩnh vực tâm lý học: Tâm lý học cho chúng ta biết rằng sự tập trung là một nguồn tài nguyên bị cạn kiệt theo thời gian. RAM là một trong số ít phần cứng cho phép bạn tiết kiệm tài nguyên tập trung cho các vấn đề lập trình khó khăn hơn. Thay vì dành nhiều thời gian giải quyết việc tắc nghẽn RAM lặp lại, bạn có thể đầu tư sự tập trung của mình vào các vấn đề cấp bách hơn nếu bạn có nhiều RAM hơn. Với nhiều RAM, bạn có thể tránh được những vướng mắc đó, tiết kiệm thời gian và tăng năng suất cho những vấn đề cấp bách hơn. Đặc biệt trong các cuộc thi Kaggle, tôi thấy RAM bổ sung rất hữu ích cho công nghệ feature. Vì vậy, nếu bạn có tiền và làm nhiều việc xử lý trước thì RAM bổ sung có thể là một lựa chọn tốt. Vì vậy, với chiến lược này, bạn muốn có nhiều hơn, RAM giá rẻ cho hiện tại hơn là sau này.

    >>> Xem thêm: máy chủ dell r760xs



    CPU

    Sai lầm chính mà mọi người mắc phải là mọi người chú ý quá nhiều đến các PCIe lane của CPU. Bạn không nên quan tâm nhiều về chúng. Thay vào đó, chỉ cần tra cứu nếu việc kết hợp CPU và bo mạch chủ của bạn hỗ trợ số lượng GPU mà bạn muốn chạy. Lỗi phổ biến thứ hai là chọn CPU quá mạnh.

    CPU và PCI-Express

    Mọi người thường quá quan tâm về PCIe lane! Tuy nhiên, điều này là gần như không ảnh hưởng đến hiệu suất học tập sâu. Nếu bạn có một GPU duy nhất, các PCIe lane chỉ cần trao đổi dữ liệu từ RAM CPU sang RAM GPU của bạn một cách nhanh chóng. Tuy nhiên, một batch ImageNet gồm 32 hình ảnh (32x225x225x3) và 32-bit cần 1.1 miliseconds với 16 lane, 2.3 miliseconds với 8 lane và 4,5 miliseconds với 4 lane. Đây là những con số lý thuyết và trong thực tế, bạn thường thấy PCIe chậm gấp đôi – nhưng điều này vẫn đã rất nhanh rồi! Các lane PCIe thường có độ trễ trong phạm vi nano giây và do đó độ trễ có thể bị bỏ qua.

    Kết hợp điều này với nhau, chúng ta có một loạt ảnh ImageNet gồm 32 hình ảnh và ResNet-152 theo các khoảng timing sau:

    • Forward and backward pass: 216 ms

    • PCIe 16 lane truyền từ CPU → GPU: Khoảng 2 ms (lý thuyết 1,1 ms)

    • PCIe 8 lane truyền từ CPU → GPU: Khoảng 5 ms (2,3 ms)

    • PCIe 4 lane truyền từ CPU → GPU: Khoảng 9 ms (4,5 ms)
    Do đó, từ 4 nâng lên 16 lane PCIe sẽ giúp bạn tăng hiệu suất khoảng 3,2%. Tuy nhiên, nếu bạn sử dụng PyTorch data loader với pinned memory, bạn sẽ đạt được hiệu suất chính xác 0%. Vì vậy, đừng lãng phí tiền của bạn cho các lane PCIe nếu bạn đang sử dụng một GPU!

    Khi bạn chọn các lane PCIe của CPU và các lane PCIe của bo mạch chủ, hãy đảm bảo rằng bạn chọn một tổ hợp hỗ trợ số lượng GPU mong muốn. Nếu bạn mua bo mạch chủ hỗ trợ 2 GPU và cuối cùng bạn muốn có 2 GPU, hãy đảm bảo rằng bạn mua CPU hỗ trợ 2 GPU, nhưng không nhất thiết phải nhìn vào các lane PCIe.

    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: [email protected]

    - website: https://maychuhanoi.vn/

    - facebook: https://www.facebook.com/maychuhanoi
    #1
backtop