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).
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?
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.
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.
Lane PCIe và cơ chế song song đa GPU
Các làn PCIe có quan trọng không nếu bạn train các network trên nhiều GPU với dữ liệu song song? Chúng tôi có thể gợi ý bạn rằng nếu bạn có (ví dụ) 96 GPU thì các lane PCIe thực sự quan trọng. Tuy nhiên, nếu bạn có 4 GPU trở xuống thì điều này không thành vấn đề. Nếu bạn xử lý song song trên 2-3 GPU, tôi sẽ không quan tâm đến tất cả các lane PCIe. Với 4 GPU, có thể chắc chắn rằng ta có thể nhận được hỗ trợ từ 8 lane PCIe cho mỗi GPU (tổng cộng 32 lane PCIe). Vì hầu như không ai chạy một hệ thống có nhiều hơn 4 GPU, như một nguyên tắc: Đừng chi thêm tiền để có thêm các lane PCIe trên mỗi GPU – Điều đó không có ý nghĩa nhiều!
Số cores CPU cần thiết
Để có thể đưa ra lựa chọn sáng suốt cho CPU, trước tiên chúng ta cần hiểu về CPU và cách nó liên quan đến deep learning như thế nào. CPU làm được gì với deep learning? CPU xử lý khá ít khi bạn chạy các deep network của mình trên GPU. Chủ yếu là nó (1) khởi tạo các lệnh gọi đến function của GPU, (2) thực thi các function của CPU.
Cho đến nay, ứng dụng hữu ích nhất cho CPU của bạn là vấn đề tiền xử lý cho dữ liệu (data preprocessing). Có hai chiến lược xử lý dữ liệu phổ biến khác nhau có nhu cầu CPU khác nhau.
Chiến lược đầu tiên là tiền xử lý trong khi bạn đào tạo:
Loop:
- Load mini-batch
- Preprocess mini-batch
- Train on mini-batch
Chiến lược thứ hai là tiền xử lý trước khi đào tạo:
- Preprocess data
- Loop:
- Load preprocessed mini-batch
- Train on mini-batch
Đối với chiến lược đầu tiên, một CPU tốt với nhiều lõi có thể tăng hiệu năng đáng kể. Đối với chiến lược thứ hai, bạn không cần những CPU tốt nhất. Đối với chiến lược đầu tiên, chúng tôi khuyên dùng tối thiểu 4 luồng cho mỗi GPU – thường là hai lõi cho mỗi GPU. Chúng tôi chưa thực hiện các bài kiểm tra khó cho việc này, nhưng bạn sẽ đạt được hiệu suất tăng thêm khoảng 0-5% cho mỗi lõi / GPU bổ sung.
Đối với chiến lược thứ hai, chúng tôi khuyến nghị tối thiểu 2 luồng cho mỗi GPU – thường là một lõi cho mỗi GPU. Bạn sẽ không thấy hiệu suất tăng đáng kể khi bạn có nhiều lõi hơn nếu bạn đang sử dụng chiến lược thứ hai.
Tốc độ xung nhịp CPU cần thiết (Frequency)
Khi mọi người nghĩ về CPU nhanh, trước tiên họ thường nghĩ về tốc độ xung nhịp. 4GHz tốt hơn 3,5GHz, hay là vậy? Điều này thường đúng khi so sánh các bộ xử lý với cùng kiến trúc, ví dụ như “Ivy Bridge”, nhưng nó không so sánh tốt giữa các bộ xử lý. Ngoài ra, không phải nó luôn luôn là thước đo tốt nhất của vấn đề hiệu suất.
Trong trường hợp học sâu, CPU sẽ thực hiện rất ít tính toán: Tăng giá reị một vài biến chỗ này, đánh giá một số biểu thức Boolean chỗ kia, thực hiện một số lệnh gọi trên GPU hoặc trong chương trình – tất cả đều phụ thuộc vào tỷ lệ xung nhịp của core CPU.
Trong khi lý do này nghe có vẻ hợp lý, có một thực tế là CPU có mức sử dụng 100% khi chúng tôi chạy các chương trình học sâu, vậy vấn đề ở đây là gì? Chúng tôi đã thực hiện một số thử nghiệm tốc độ lõi CPU để tìm hiểu.
CPU ép xung trên MNIST và ImageNet: Hiệu suất được đo bằng thời gian trên 200 epochs MNIST hoặc một phần tư epoch trên ImageNet với tốc độ xung nhịp lõi CPU khác nhau, trong đó tốc độ xung nhịp tối đa được lấy làm đường cơ sở cho mỗi CPU. Để so sánh: Nâng cấp từ GTX 680 lên GTX Titan có hiệu suất khoảng + 15%; từ GTX Titan đến GTX 980 khác hiệu suất + 20%; Ép xung GPU mang lại hiệu suất khoảng + 5% cho bất kỳ GPU nào
Lưu ý rằng các thử nghiệm này nằm trên phần cứng đã lỗi thời, tuy nhiên, các kết quả này vẫn giống nhau đối với CPU / GPU hiện đại.
Ổ cứng HDD / SSD
Ổ cứng thường không phải là nút cổ chai cho việc học sâu. Tuy nhiên, nếu bạn làm những điều ngớ ngẩn, điều đó sẽ làm bạn thiệt hại: Nếu bạn đọc dữ liệu của mình từ ổ đĩa khi cần (blocking wait) thì ổ cứng 100 MB/s sẽ tiêu tốn của bạn khoảng 185 miliseconds cho một mini-batch có kích thước 32 của ImageNet! Tuy nhiên, nếu bạn “fetch” bất đồng bộ (ascync) dữ liệu trước khi nó được sử dụng (ví dụ: các torch vision loaders), thì bạn sẽ tải mini-batch trong 185 miliseconds trong khi thời gian tính toán cho hầu hết các mạng thần kinh sâu trên ImageNet là khoảng 200 miliseconds. Do đó, bạn sẽ không phải đối mặt với bất kỳ thiệt hại hiệu suất nào kể từ khi bạn tải mini-batch tiếp theo trong khi hiện tại vẫn đang xử lý.
Tuy nhiên, tôi khuyên dùng SSD để thoải mái và cho năng suất cao hơn: Các chương trình bắt đầu và phản hồi nhanh hơn và xử lý trước với các file lớn nhanh hơn một chút. Nếu bạn mua SSD NVMe, bạn sẽ có trải nghiệm thậm chí mượt mà hơn khi so sánh với SSD thông thường.
Do đó, cấu hình lý tưởng là có một ổ cứng lớn và chậm cho các dataset và một ổ SSD cho hiệu suất và sự thoải mái.
Bộ cung cấp điện (PSU)
Nói chung, bạn sẽ muốn có một PSU đủ để chứa tất cả các GPU trong tương lai của bạn. GPU thường sẽ sử dụng năng lượng hiệu quả hơn theo thời gian; Vì vậy, trong khi các thành phần khác sẽ cần phải được thay thế, một PSU sẽ tồn tại trong một thời gian dài vì vậy một PSU tốt là một khoản đầu tư hợp lý.
Bạn có thể tính toán số lượng watt cần thiết bằng cách cộng số watt của CPU và GPU của bạn, và cộng thêm 10% watt cho các thành phần khác và xem như dự trù cho các đột biến về năng lượng. Ví dụ: nếu bạn có 4 GPU với mỗi cái có 250 watt TDP và CPU có 150 watt TDP, thì bạn sẽ cần một PSU với tối thiểu 4 × 250 + 150 + 100 = 1250 watt. Chúng tôi thường sẽ thêm 10% nữa để đảm bảo mọi thứ đều ổn, trong trường hợp này sẽ dẫn đến tổng cộng 1375 Watts. Tôi sẽ làm tròn trong trường hợp này để có được PSU 1400 watt.
Một phần quan trọng cần lưu ý là ngay cả khi PSU có công suất cần thiết, nó có thể không có đủ đầu nối PCIe 8 chân hoặc 6 chân. Đảm bảo bạn có đủ trình kết nối trên PSU để hỗ trợ tất cả các GPU của bạn!
Một điều quan trọng khác là mua một PSU có xếp hạng hiệu suất năng lượng cao – đặc biệt nếu bạn chạy nhiều GPU và sẽ chạy chúng trong thời gian dài hơn.
Chạy hệ thống 4 GPU trên toàn bộ công suất (1000-1500 watt) để đào tạo mạng lưới tích chập (convolutional net) trong hai tuần sẽ lên tới 300-500 kWh, mà nếu ở Đức – nơi chi phí điện năng khá cao là 20 cent mỗi kWh – sẽ lên tới 60-100€ (hay $66 – 111). Nếu mức giá này là cho hiệu quả 100%, thì việc đào tạo một mạng lưới như vậy với nguồn cung cấp 80% sẽ làm tăng chi phí thêm 18-26€ – Wow! Điều này ít hơn nhiều đối với một GPU đơn lẻ, nhưng vẫn còn một điểm – chi thêm một chút tiền cho một nguồn cung cấp năng lượng hiệu quả sẽ có ý nghĩa hơn.
Làm mát cho CPU và GPU
Làm mát rất quan trọng và nó có thể là một nút cổ chai đáng kể làm giảm hiệu suất hơn so với việc lựa chọn các phần cứng kém. Bạn sẽ ổn với tản nhiệt tiêu chuẩn hoặc giải pháp làm mát bằng nước tất cả trong một (AIO) cho CPU của bạn, nhưng với GPU của bạn, bạn cần phải cân nhắc gì đặc biệt?
GPU làm mát bằng không khí
Làm mát bằng không khí là giải pháp an toàn và vững chắc cho một GPU hoặc nếu bạn có nhiều GPU và có khoảng cách trống giữa chúng (2 GPU trong các case/chassis dành cho 3-4 GPU). Tuy nhiên, một trong những sai lầm lớn nhất có thể xảy ra khi bạn cố gắng làm mát 3-4 GPU và bạn cần suy nghĩ cẩn thận về các lựa chọn của mình trong trường hợp này.
Các GPU hiện đại sẽ tăng tốc độ của chúng – và do đó tiêu thụ năng lượng – lên đến mức tối đa khi chúng chạy các thuật toán, nhưng ngay khi GPU chạm tới rào cản nhiệt độ – thường là 80°C – GPU sẽ giảm tốc độ để ngưỡng nhiệt độ không bị vượt qua. Điều này cho phép hiệu suất tốt nhất trong khi giữ cho GPU của bạn an toàn, không bị quá nóng.
Tuy nhiên, các schedule được lập trình sẵn để điều khiển tốc độ quạt được thiết kế rất tệ cho các chương trình học sâu, vì thế ngưỡng nhiệt độ này đạt được chỉ trong vòng vài giây sau khi bắt đầu chương trình học sâu. Kết quả là hiệu suất giảm (0-10%), có thể càng tệ hại đối với nhiều GPU (10-25%) khi các GPU làm nóng lẫn nhau.
Vì GPU NVIDIA là GPU ban đầu được thiết kế cho gamming, chúng được tối ưu hóa cho Windows. Bạn có thể thay đổi schedule của quạt với một vài lần nhấp trong Windows, nhưng điều này không có với Linux và vì hầu hết các thư viện học sâu được viết cho Linux, đây là một vấn đề.
Lựa chọn duy nhất trong Linux là sử dụng để đặt cấu hình cho Xorg server (Ubuntu) của bạn, nơi bạn đặt tùy chọn “coolbits”. Điều này hoạt động rất tốt đối với một GPU duy nhất, nhưng nếu bạn có nhiều GPU trong đó một số trong số chúng dạng headless, tức là chúng không có màn hình gắn vào, bạn phải mô phỏng một màn hình, điều đó khó khăn và mang tính hacking. Chúng tôi đã thử nó trong một thời gian dài và có nhiều giờ bực bội với CD khởi động trực tiếp để khôi phục cài đặt đồ họa của mình – tôi không bao giờ có thể chạy nó trên headless GPU.
Điểm cân nhắc quan trọng nhất nếu bạn chạy 3-4 GPU khi làm mát không khí là chú ý đến thiết kế quạt. Thiết kế của kiểu quạt thổi (blower) sẽ đẩy không khí ra phía sau vỏ máy để không khí trong lành, mát hơn được hút vào GPU. Quạt không thuộc dạng blower hút không khí vào và làm mát GPU. Tuy nhiên, nếu bạn có nhiều GPU cạnh nhau thì không có không khí mát xung quanh và GPU có quạt kiểu non-blower sẽ nóng lên nhiều hơn cho đến khi chúng tự điều tiết xuống để đạt nhiệt độ mát hơn. Tránh quạt non-blower trong các thiết lập 3-4 GPU bằng mọi giá nhé các bạn!
GPU làm mát bằng nước cho nhiều GPU
Một lựa chọn khác, tốn kém hơn và thủ công hơn là sử dụng nước làm mát. Tôi không khuyên bạn nên làm mát bằng nước nếu bạn có một GPU hoặc nếu bạn có khoảng trống giữa hai GPU của bạn (lắp 2 GPU trong case/chassis dành cho 3-4 GPU). Tuy nhiên, làm mát bằng nước đảm bảo rằng ngay cả GPU mạnh nhất vẫn mát trong thiết lập 4 GPU, điều này là không thể khi bạn làm mát bằng không khí. Một ưu điểm khác của việc làm mát bằng nước là nó hoạt động im lặng hơn nhiều, đây là một điểm cộng lớn nếu bạn chạy nhiều GPU trong khu vực nơi có người khác làm việc. Làm mát bằng nước sẽ tiêu tốn của bạn khoảng 100 USD cho mỗi GPU và một số chi phí trả trước bổ sung (khoảng 50 USD). Làm mát bằng nước cũng sẽ cần một số nỗ lực bổ sung để lắp ráp máy tính của bạn, nhưng có nhiều hướng dẫn chi tiết về điều đó và nó chỉ cần tổng cộng một vài giờ nữa. Bảo trì cũng không quá phức tạp hoặc khó khăn.
Dùng một case lớn để làm mát?
Chúng tôi đã thử các bộ tower lớn cho cụm học tập sâu của mình, vì chúng có thêm quạt cho khu vực GPU, nhưng điều này phần lớn không liên quan: Giảm khoảng 2-5°C, không đáng để đầu tư và sự cồng kềnh của các case to. Phần quan trọng nhất thực sự là giải pháp làm mát trực tiếp trên GPU của bạn – không chọn case đắt tiền cho khả năng làm mát GPU của nó. Hãy chọn case giá rẻ ở đây. Case này phải phù hợp với GPU của bạn, là điều tiên quyết!
Kết luận về vấn đề làm mát
Vì vậy, cuối cùng thật đơn giản: Đối với 1 GPU làm mát không khí là tốt nhất. Đối với nhiều GPU, bạn nên làm mát không khí kiểu quạt gió và chấp nhận mức thiệt hại hiệu suất nhỏ (10 – 15%) hoặc bạn phải trả thêm tiền để làm mát nước, điều này cũng khó thiết lập hơn và bạn không bị thiệt hại hiệu năng. Không khí và nước làm mát là những lựa chọn hợp lý trong những tình huống nhất định. Tuy nhiên, chúng tôi khuyên bạn nên làm mát không khí vì đơn giản – hãy lấy GPU kiểu quạt thổi / blower nếu bạn chạy nhiều GPU. Nếu bạn muốn dùng kiểu làm mát bằng nước, hãy thử tìm giải pháp làm mát nước tất cả trong một (AIO) cho GPU.
Bo mạch chủ / Mainboard
Bo mạch chủ (mainboard) của bạn nên có đủ cổng PCIe để hỗ trợ số lượng GPU bạn muốn chạy (thường giới hạn ở bốn GPU, ngay cả khi bạn có nhiều khe cắm PCIe hơn); hãy nhớ rằng hầu hết các GPU có chiều rộng của hai khe PCIe (hay còn gọi double-width GPU card), vì vậy hãy mua bo mạch chủ có đủ không gian giữa các khe PCIe nếu bạn có ý định sử dụng nhiều GPU. Đảm bảo bo mạch chủ của bạn không chỉ có các khe cắm PCIe mà còn thực sự hỗ trợ thiết lập GPU mà bạn muốn chạy. Bạn thường có thể tìm thấy thông tin trong phần này nếu bạn tìm kiếm linh kiện bo mạch chủ trên Thế Giới Máy Chủ và xem phần PCIe ở mục thông số kỹ thuật.
Case / chassis
Khi bạn chọn case, bạn nên đảm bảo rằng nó hỗ trợ GPU có chiều dài đầy đủ (full length) nằm trên bo mạch chủ của bạn. Hầu hết các case đều hỗ trợ full length GPU, nhưng bạn nên kiểm tra kỹ nếu mua một chiếc case nhỏ. Kiểm tra kích thước và thông số kỹ thuật của nó; bạn cũng có thể thử tìm kiếm hình ảnh google của model đó và xem liệu bạn có tìm thấy hình ảnh có GPU trong đó không.
Nếu bạn sử dụng giải nhiệt nước tùy chọn, hãy chắc chắn rằng case của bạn có đủ không gian cho bộ tản nhiệt. Điều này đặc biệt đúng nếu bạn sử dụng giải nhiệt nước cho GPU của mình. Bộ tản nhiệt của mỗi GPU sẽ cần một khoảng trống – đảm bảo thiết lập của bạn thực sự phù hợp với GPU.
Màn hình
Đầu tiên chúng tôi nghĩ sẽ thật ngớ ngẩn khi viết về màn hình, nhưng chúng tạo ra sự khác biệt rất lớn và quan trọng đến mức chúng tôi phải viết về chúng.
Số tiền chúng tôi chi cho 3 màn hình 27 inch của mình có lẽ là số tiền tốt nhất tôi từng bỏ ra. Năng suất tăng lên rất nhiều khi sử dụng nhiều màn hình. Tôi cảm thấy tuyệt vọng đến tê liệt nếu tôi phải làm việc với một màn hình duy nhất. Đừng thay đổi bản thân về vấn đề này. Điều gì tốt là một hệ thống học sâu nhanh nếu bạn không thể vận hành nó một cách hiệu quả?
Bố cục màn hình điển hình khi học sâu: Bên trái: Giấy tờ, tìm kiếm Google, gmail, stackoverflow; Ở giữa: Code; Bên phải: Cửa sổ output, R, thư mục, màn hình hệ thống, màn hình GPU, danh sách việc cần làm và các ứng dụng nhỏ khác.
Đôi điều về việc dựng PC
Nhiều người sợ việc tự dựng máy tính. Các thành phần phần cứng đắt tiền và bạn không muốn làm gì sai. Nhưng nó thực sự đơn giản vì các thành phần không thuộc về nhau sẽ không khớp được với nhau. Hướng dẫn sử dụng mainboard thường rất cụ thể cách lắp ráp mọi thứ và có hàng tấn hướng dẫn và các video step-by-step hướng dẫn bạn trong suốt quá trình nếu bạn không có kinh nghiệm.
Điều tuyệt vời khi build máy tính là bạn biết mọi thứ cần biết về việc dựng lên một máy tính khi bạn đã làm qua một lần, bởi vì tất cả máy tính đều được chế tạo theo cùng một cách – vì vậy, dựng máy tính sẽ trở thành một kỹ năng sống mà bạn sẽ có thể áp dụng nhiều lần. Vì vậy, không có lý do gì để nghĩ lại!
Kết luận
Các gợi ý cho phần cứng deep learning và một số gợi ý từ Thế Giới Máy Chủ như sau:
GPU: RTX 2070 hoặc RTX 2080 Ti, GTX 1070, GTX 1080, GTX 1070 Ti và GTX 1080 Ti
CPU: 1-2 core cho mỗi GPU, tùy thuộc vào cách bạn xử lý dữ liệu. > 2GHz; CPU nên hỗ trợ số lượng GPU mà bạn muốn chạy. Số PCIe lane không quan trọng.
RAM :
– Tốc độ xung nhịp không thành vấn đề – mua RAM rẻ nhất.
– Mua ít nhất nhiều RAM CPU để phù hợp với RAM của GPU lớn nhất của bạn.
– Chỉ mua thêm RAM khi cần.
– Nhiều RAM hơn có thể hữu ích nếu bạn thường xuyên làm việc với các bộ dữ liệu lớn.
Ổ cứng / SSD:
– Ổ cứng cho dữ liệu (>= 3TB)
– Sử dụng SSD để thoải mái và tiền xử lý các bộ dữ liệu nhỏ.
PSU:
– Cộng sô watt của GPU và CPU. Sau đó nhân tổng số cho 110% để ra công suất yêu cầu.
– Chọn loại có xếp hạng hiệu quả năng lượng (energy efficiency) cao nếu bạn sử dụng nhiều GPU.
– Đảm bảo PSU có đủ đầu nối PCIe (6 + 8 chân)
Làm mát:
– CPU: chọn bộ làm mát CPU tiêu chuẩn hoặc giải pháp làm mát bằng nước tất cả trong một (AIO)
– GPU:
. Sử dụng làm mát không khí
. Chọn GPU với kiểu quạt thổi / blower nếu bạn dùng cho nhiều GPU
. Flag “coolbits” trong cấu hình Xorg của bạn để kiểm soát tốc độ quạt
Bo mạch chủ / Motherboard:
– Nhận số lượng khe cắm PCIe như bạn cần cho GPU (tương lai) của bạn (một GPU mất hai khe cắm; tối đa 4 GPU cho mỗi hệ thống)
Màn hình :
– Một màn hình bổ sung có thể giúp bạn làm việc hiệu quả hơn GPU bổ sung.
Dành cho nhà đầu tư dự án AI
Trong trường hợp bạn đang chuẩn bị cho một dự án về trí tuệ nhân tạo / AI, hãy tham khảo các hệ thống chuyên dùng cho Deep Learning mà Thế Giới Máy Chủ đang là nhà phân phối.
Xem thêm các hệ thống máy chủ, máy trạm chuyên dùng cho Deep Learning.
Bài viết liên quan
- Tôi có cần CPU kép không?
- Hướng dẫn lựa chọn GPU phù hợp cho AI, Machine Learning
- HPE với các giải pháp phát triển mô hình Trí tuệ nhân tạo
- Các ứng dụng của Generative AI trong Học sâu, Khoa học đời sống và Sáng tạo nội dung
- Dask – Một thư viện mã nguồn mở cho tính toán song song với Python
- NVIDIA CUDA trong AI Deep Learning