Bạn đang tìm kiếm một chiếc máy trạm, hay máy chủ HPC cho tải xử lý của mình để tăng tốc công việc? Bạn tự hỏi liệu có nên sử dụng hệ thống cấu hình CPU kép (dual-CPU) để có hiệu suất cao hơn không? Bài này sẽ làm rõ một số vấn đề trong việc cân nhắc tùy chọn CPU kép và nêu ra những ưu điểm cũng như những điều cần tính đến của hệ thống CPU kép so với CPU đơn.
Bạn nhận được gì với hệ thống CPU kép?
Hệ thống CPU kép yêu cầu mainboard chuyên dụng cho phép lắp đặt hai CPU. Theo đó, các CPU phải giống hệt nhau, nếu không máy tính của bạn sẽ không khởi động được, và thậm chí là làm hư luôn cả hệ thống.
Một cách lý tưởng thì nền tảng CPU kép sẽ cung cấp gấp đôi số lượng khe cắm bộ nhớ, hai bộ nhớ đệm độc lập và nhiều lane PCIe hơn được kết nối để có thêm card đồ họa hoặc card mở rộng khác, cũng như hỗ trợ nhiều bộ nhớ hơn. Tuy nhiên, với kích thước của bộ xử lý ngày càng lớn hơn so với kích thước mainboard tiêu chuẩn, có thể có những điều chỉnh giảm về mặt I/O, tùy thuộc vào loại chassis.
Mục đích của việc thiết lập CPU kép không chỉ là tăng số lượng cổng và I/O mà còn tăng gấp đôi số nhân và sức mạnh xử lý riêng biệt để có băng thông bộ nhớ tốt hơn, hiệu suất song song và cải thiện tính đa nhiệm. Các tải xử lý như thể hiện cảnh 3D phức tạp, xuất file video lớn, triển khai máy ảo đa instance, đào tạo AI phức tạp, v.v. có thể tận dụng nhiều tài nguyên xử lý hơn và nhiều nhân hơn.
Các hệ thống CPU kép có thể nâng cao hiệu suất so với các hệ thống CPU đơn bằng cách chia sẻ tài nguyên bộ nhớ và phân chia tải xử lý giữa hai hệ thống. Việc tăng gấp đôi số lượng bộ xử lý sẽ tăng gấp đôi hiệu suất của tải xử lý một cách hiệu quả. Vậy tại sao không phải bất cứ ai cũng cần chạy cấu hình CPU kép?
Tải xử lý của bạn có yêu cầu đến 2 CPU không?
Nhiều tải xử lý phổ biến mà mọi người làm việc hàng ngày như chơi game, lướt web, live streaming hoặc thiết kế đồ họa và tạo nội dung thường thì không cần gì đến một chiếc CPU thứ 2. Hầu hết các tải xử lý thông thường thậm chí không thể tận dụng được CPU thứ 2 và thực sự sẽ bị ảnh hưởng về hiệu suất. CPU 2 ở trạng thái không hoạt động, tiêu thụ điện năng và sinh nhiệt mà không thực hiện bất kỳ công việc nào, chưa kể phần chi phí phát sinh.
Với những tiến bộ công nghệ trong việc tối ưu hóa GPU và các CPU socket đơn như AMD Threadripper PRO và Intel Xeon W, các tác vụ tính toán chuyên sâu có thể đạt được hiệu suất tối ưu mà không cần đến CPU thứ hai. Bỏ qua yếu tố GPU, các CPU hiện đại giờ đây có số lượng nhân, số luồng, bộ nhớ đệm và sức mạnh xử lý cao hơn bao giờ hết, hoàn toàn có thể thay thế thiết lập CPU kép bằng cấu hình CPU đơn tiết kiệm hơn.
Một yếu tố khác cần xem xét là sự liên lạc giữa hai CPU. Nếu tải xử lý của bạn đạt thông lượng cao, cần lưu ý rằng máy chủ CPU kép có độ trễ phát sinh do NUMA (truy cập bộ nhớ không đồng nhất) trong đó hai CPU phải giao tiếp để chia sẻ tài nguyên. NUMA không phải là nút thắt cổ chai, nó chỉ là thiết kế vốn có của việc kết hợp số lượng lớn lõi trên hai bộ xử lý. NUMA thực sự khá hiệu quả trong việc giải quyết vấn đề này khi chia sẻ tải xử lý của CPU1 với CPU2. Tuy nhiên, nếu có thể tránh được vấn đề của NUMA, bạn có thể giảm thiểu độ trễ bằng cách phân vùng tải xử lý giữa hai CPU. NUMA không phải là nhược điểm hay bất lợi mà chỉ là sự cân nhắc/phòng ngừa.
Một điều quan trọng nữa là phải xem xét liệu tải xử lý đó có hỗ trợ và tối ưu hóa với CPU kép hay không. Một số tải xử lý sẽ không nhận ra CPU thứ hai là tài nguyên có sẵn.
Nếu bạn đang chọn giữa CPU 32 nhân kép hoặc CPU 64 nhân đơn, tốt nhất bạn nên sử dụng cấu hình CPU đơn để tránh chi phí giao tiếp CPU kép và tối ưu hóa cho các vấn đề không xác định được, đặc biệt khi tải xử lý của bạn không xử lý phân vùng như trong ảo hóa và cung cấp sức mạnh cho các cloud instance.
Khi nào hệ thống CPU kép được sử dụng?
Tính đến năm 2024, các CPU ngày nay đã tiến bộ rất nhiều so với trước đây; số lượng nhân cao, khả năng đa luồng và hiệu suất cao; CPU kép hiếm khi có mặt trên bàn làm việc của bạn mà chỉ thấy ở các trung tâm dữ liệu.
Ví dụ: hãy xem xét việc live streaming cho các game, trong đó về mặt lý thuyết, việc thiết lập CPU kép có thể có lợi. Tải xử lý cho gaming và tải xử lý video/live streaming có thể được phân vùng giữa hai CPU để tránh sử dụng các tài nguyên xử lý quan trọng cho cả quá trình chơi game và ghi hình, nhờ đó cung cấp stream chất lượng cao hơn. Tuy nhiên, thay vì đầu tư vào mainboard và máy trạm CPU kép, tải xử lý này thường sử dụng thiết lập với hai hệ thống CPU đơn. Tính linh hoạt bổ sung cho phần cứng như GPU mạnh mẽ chuyên dụng cho một hệ thống và storage controller và card ghi hình để ghi các stream trong hệ thống còn lại. Ở đây, việc có không gian cho mỗi thành phần quan trọng hơn mật độ.
Hệ thống CPU kép thực sự được dành riêng cho các máy chủ HPC được thiết kế cho diện tích nhỏ nhất. Hạ tầng trung tâm dữ liệu lớn sẽ chứa hàng nghìn máy chủ thực hiện các tác vụ hiệu suất cao. Việc triển khai 5.000 máy thay vì 10.000 máy có thể tiết kiệm không gian trên rack và thời gian bảo trì các máy này.
Một số ứng dụng cho hệ thống CPU kép bao gồm:
- Mô phỏng khoa học
- Các server farm lớn kết xuất cho nội dung 3D và video
- Đào tạo và suy luận AI trong Deep Learning
- Computer Aided Engineering (CAE)
- Phương pháp/Phân tích phần tử hữu hạn (FEM/FEA)
- Động lực học chất lỏng tính toán (CFD)
- Lưu trữ mật độ cao
- Môi trường ảo hóa
Ưu điểm của hệ thống CPU kép là mật độ hiệu suất. Các ứng dụng sử dụng nhiều CPU đa luồng có thể được thực thi một cách dễ dàng, thậm chí xử lý nhiều cơ sở dữ liệu dung lượng cao nhờ sức mạnh tuyệt đối của chúng. AMD EPYC 64 nhân 128 luồng là vua về hiệu năng đa luồng; với 2 trong số chúng trong một hệ thống, sức mạnh xử lý của chúng là rất lớn.
Hơn nữa, các trung tâm dữ liệu tối ưu hóa các CPU này để thực hiện một loạt tác vụ ở tốc độ cực cao mà không lãng phí việc sử dụng CPU. Đối với một hệ thống vừa với một rack duy nhất tại trung tâm dữ liệu, không có gì có thể đánh bại được hệ thống CPU kép có thể được ảo hóa thành hai hệ thống. Các hệ thống CPU kép này thực sự có hai hệ thống CPU đơn cấp doanh nghiệp chỉ chiếm một không gian rack duy nhất trong trung tâm dữ liệu có thể xử lý lượng dữ liệu khổng lồ cần đến hiệu năng cực cao, chúng có thể đạt được với tiêu hao điện năng thấp.
Hệ thống CPU kép cũng hỗ trợ nhiều lane PCIe hơn cho nhiều GPU, hữu ích cho hoạt động đào tạo AI, xây dựng các thuật toán phức tạp hoặc động lực phân tử. Bằng cách tăng số lượng CPU và lane PCIe, bạn có thể tăng gấp đôi số lượng GPU và giảm thời gian đào tạo hoặc chạy mô phỏng.
Tuy nhiên, một số tải xử lý trong danh sách đôi khi không thể tận dụng được thiết lập CPU kép hoặc không phụ thuộc vào CPU mà chủ yếu dựa vào GPU. Các chương trình mô phỏng Life Science như AMBER và GROMACS thực tế sẽ mất hiệu suất khi chạy trên cấu hình CPU kép và sẽ hoạt động tốt hơn với một bộ xử lý đơn.
Máy trạm CPU kép cũng tồn tại. Tuy nhiên, không gian cần thiết để chứa 2 CPU hiện đại (đặc biệt là AMD EPYC 9004 với kích thước rất lớn) trên bo mạch chủ ATX hoặc EATX tiêu chuẩn có thể trở nên chật chội. Việc nhồi nhét phần cứng vào một khung máy ít mật độ hơn có thể khiến các lane PCIe bổ sung không dùng đến, gây ra các hạn chế về RAM và giảm số lượng khoang lưu trữ. Máy trạm CPU kép được dành riêng cho những người đang tìm kiếm nhiều CPU hơn trong kiểu dáng máy trạm linh hoạt.
Cách tối ưu hóa tải xử lý của hệ thống CPU kép
Yếu tố lớn nhất khi quyết định giải pháp CPU kép hay CPU đơn là tải xử lý. Mặc dù hệ thống CPU kép có thể có lợi cho tính toán song song (các phép tính được thực hiện đồng thời) như kết xuất hình ảnh đồ họa, nhưng chúng có thể gây ra vấn đề về độ trễ khi thực hiện các tác vụ một cách tuần tự (các phép tính được thực hiện nối tiếp nhau). Trong khi thử nghiệm Cinebench (song song) có thể cho thấy hiệu suất gấp đôi thì thử nghiệm 7zip (nối tiếp) sẽ không thể tận dụng CPU kép và chậm hơn trong một số lỗi.
Cách tốt nhất để tối ưu hóa CPU kép là tách biệt các tập dữ liệu và tải xử lý. Khi đào tạo mạng thần kinh học sâu để xử lý ngôn ngữ tự nhiên, hãy phân chia các nhiệm vụ tiền xử lý và nhiệm vụ đào tạo để sử dụng hiệu quả cả hai CPU. Hoặc đối với nghiên cứu khoa học trong việc phân loại cryo-EM 2D và tái tạo 3D, hãy phân bổ tài nguyên cho phân loại 2D trong khi phần còn lại được phân bổ cho tái tạo 3D. Hầu hết mọi ứng dụng HPC đều có thể được tăng tốc đáng kể nếu bạn có thể song song hóa các bước trong tải xử lý vì thời gian cần thiết để hoàn thành 2 tác vụ liên kết có thể nhanh hơn so với việc thực hiện chúng theo tuần tự.
Triển khai một máy ảo bằng cách sử dụng bộ ảo hóa như VirtualBox hoặc RedHat có thể tạo ra hai hệ thống riêng biệt cho hai mục đích riêng biệt. Chạy hai bộ dữ liệu riêng biệt trên hai máy ảo. Vì VM1 và VM2 là các máy độc lập hoạt động giống như một hệ thống CPU duy nhất nên các CPU này có thể hoạt động song song thực hiện các tác vụ nối tiếp.
Một số tổ chức nghiên cứu sẽ chọn cấu hình toàn cụm và phân vùng tài nguyên cho các bước cụ thể trong nghiên cứu. Một số máy tính cho mô phỏng động lực phân tử, một số cho công cụ cryo-EM trong phòng thí nghiệm, một số máy cho việc gói protein để khái niệm hóa các mục tiêu liên kết, như bạn có thể hiểu. Bằng cách phân chia tài nguyên cho các tải xử lý có chi phí xử lý thấp hơn sẽ mang lại quy trình làm việc hợp nhất và hiệu quả trong đó tất cả dữ liệu làm việc đều ở một nơi duy nhất. Giảm thời gian truyền dữ liệu từ máy trạm này sang máy trạm khác, giữ dữ liệu được lưu trữ trong cụm và tính toán mọi thứ song song giúp tăng tốc đáng kể quá trình nghiên cứu và giảm tổng thời gian hoàn thành.
Vậy bạn có cần CPU kép không?
Các CPU thế hệ hiện tại được tạo ra với rất nhiều sức mạnh, nhu cầu về hệ thống CPU kép cho mục đích sử dụng phổ thông của người dùng là không thực sự cần thiết. Các tải xử lý đào tạo AI và deep learning chuyên dụng có thể được hưởng lợi từ xử lý song song thông qua một CPU có nhiều GPU.
Tuy nhiên, nếu tải xử lý của bạn ở cấp độ HPC như xử lý các bộ dữ liệu cực lớn, đào tạo các mô hình AI lớn với hiệu quả cao nhất hoặc chạy các mô phỏng khoa học chuyên sâu về điện toán quy mô lớn và bạn muốn thực hiện các tác vụ này với chi phí tiêu hao năng lượng nhỏ nhất, việc triển khai cấu hình nhiều CPU kép có thể là câu trả lời dành cho bạn.
Bài viết liên quan
- 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