HPC(5) – chọn lựa phần cứng Motherboard và CPU

Computers  are useless. They can only give you answers. – Pablo Picasso

Như ở phần HPC 4 build trước, tôi đã giới thiệu về chọn lựa 4 card GPU GTX 780 Ti với tản nhiệt khí ACX 2.0 (2 quạt). Việc này cũng tạo rất nhiều “khoảng trống” để tôi tìm cách làm mát – xử lý nhiệt lượng –  khi GPU chạy hết tốc lực cho Deep Learning (DL). Đó là chuyện chút nữa nhé. Giờ thì tranh thủ lý giải về 2 thành phần quan trọng khác, vốn luôn được tôn thờ và cân nhắc đầu tiên trong khi bắt tay vào dựng các dàn máy tính thông dụng: CPU – vi xử lý trung tâm -“bộ não” và motherboard – bo mạch chủ -“cơ thể”. Tất nhiên, khi xây dựng đặc tả cho dàn máy chạy Deep Learning lần này, tôi đã bắt đầu với GPU trước tiên nhưng kế ngay sau đó là quyết định về 2 thành phần cần đặc biệt chú tâm tới ở trên.
Một yêu cầu phổ dụng để hỗ trợ tốc độ xử lý của GPU trong tổng thể 1 HPC là phải đáp ứng lượng dữ liệu dịch chuyển trong hệ thống ở băng thông và tốc độ đủ lớn để giúp tránh nghẽn cổ chai nhằm tận dụng năng lực của hàng nghìn nhân CUDA chạy song song hết tốc lực. Chuẩn kết nối thần thánh trong giới game thủ SLI Link của NVIDIA  chỉ đạt tốc độ tới 1GB/s, hầu như là quá chậm để tạo bộ đệm dữ liệu kịp thời cho năng lực xử lý của GPU. Thế nên, kể cho đúng ra, thì cái cầu nối 4 way-SLI tôi gắn trên HPC của mình làm màu cho vui và giữ 4 GPU thành khối gắn kết vững chắc hơn mà thôi :D. Cầu nối 4-way SLI  nguyên bản đi kèm với bo mạch chủ ASUS là bản mạch đen gắn chặt 4 đầu GPU lại với nhau như hình dưới.


Trong DL ở đây, việc giao tiếp và đồng bộ dữ liệu giữa các GPU sẽ chỉ còn thông qua khe PCI-e trên bo mạch chủ. Dữ liệu do CPU từ bộ nhớ RAM tới GPU cũng thông qua các cổng này. Luồng dữ liệu cơ bản dịch chuyển thực tế phức tạp hơn nhưng trong khuôn khổ bài viết này, tôi xin đơn giản hoá cho ngắn gọn như sau:
Neuron Network <–> Network card <–> [HDD/SSD<–>RAM<–>CPU<–>VRAM<–>GPU] x 4

Từ đó, có thể thấy hai yếu tố kết nối cơ bản trực tiếp liên quan và xác định năng lực hệ thống HPC chính là:

01. PCI-e trên bo mạch chủ (PCI:Peripheral Component Interconnect – Kênh liên kết các thiết bị ngoại vi) và

02. QPI trên CPU (QPI: Intel QuickPath Interconnect).

Hầu hết các bo mạch chủ ngày nay sử dụng các khe cắm mở rộng PCI Express để kết nối với card đồ hoạ. Đến giờ đang tồn tại các tiêu chuẩn PCI Express như sau:  Chuẩn PCI-e hiện hành cao nhất là 3.0 với băng thông x16 (16 làn) Số làn chính là số “đường dây đồng” vật lý liên kết các thiết bị lại với nhau. Từ đó, ở góc độ vật lý, bạn sẽ thấy động dài của các khe cắm này. Tuy nhiên, tốc độ của 1 khe cắm cũng rất linh hoạt, chạy từ x1, x2, x4, x8 hay x16 và để ý kĩ thì trên mạch in bo mạch cũng sẽ in rõ tốc độ tối đa của từng khe cắm PCI-e (3.0 x16 chẳng hạn). Nói chung, nếu thiết bị với khe dài thì không cắm vừa khe ngắn nhưng phần lớn các thiết bị ngắn cắm được vào khe dài và bo mạch chủ sẽ tự tính toán để giảm tốc độ và làn băng thông tương ứng.  Dưới đây là một ảnh minh hoạ. 

Để có thể nuôi dưỡng 4 GPU 780 Ti khủng mà tôi chọn ở tốc độ cao nhất, tôi phải đi kiếm tìm bo mạch chủ có thể đáp ứng việc cấp dữ liệu x16 đồng thời trên cả 4 khe cắm. Hầu như mọi kết quả tìm kiếm và tìm hiểu với tiêu chí trên đều đưa tới kết quả một, ASUS Z10PE-D8 WS,  bo mạch dành cho máy trạm làm việc (Workstation) hàng đầu, chất lượng cực đỉnh, có thể hỗ trợ tối đa 4 card đồ hoạ chạy hết tốc lực tại PCI-e 3.0 x16. Bo mạch chủ này có đủ 4 khe PCIe-x16 bố trí cách nhau với độ rộng 2 khe, đồng thời chạy được x16 cùng lúc cả ở 4 kết nối PCI-e màu xám, cách nhau đều đặn bở 3 khe PCIe x8 đen. Tổng số là 7 khe PCI-e tất cả với đặc tả trong sách đi kèm như sau:

  • 4x PCIe 3.0/2.0 x16 (dual x16 or quad x8; light gray)
  • 2x PCIe 3.0/2.0 x16 (dual x16; dark gray)
  • 1x PCIe 3.0/2.0 x16 (dual x8; dark gray)

Chính vì với 7 khe PCI-e mà bo mạch này to hơn hẳn kích thước Full ATX thông thường mà bước sang chuẩn công nghiệp không dành cho người dùng thông thường, bo mạch server ngoại cỡ theo chuẩn SSI – EEB (Server System Infrastructure – Enterprise Electronics Bay).

Tuy nhiên, chuẩn PCI-e với số làn như trên chỉ có thể có được trên các bo mạch Intel khi mà có số lược QPI tương ứng từ CPU để có thể cấp phát được băng thông dữ liệu tương ứng. QPI là một kiến trúc mới của Intel từ năm 2008 nhằm kết nối dịch chuyển dữ liệu vào ra I/O với các thiết bị ngoại vi. Đi vào chi tiết thì hơi loằng ngoằng nhưng mỗi CPU Intel nói chung có tối đa 40 làn dữ liệu QPI. Có nhiều thứ liên quan đến giá bán của một bộ vi xử lý CPU nhưng CPU có QPI 28 làn rẻ hơn rất nhiều so với CPU có QPI 40 làn. Nếu không tinh ý sẽ rất  dễ bị bỏ qua khi đánh giá lựa chọn mua. Ví như core I7 5820K chạy tốc độ 3.3GHz cao hơn Core I7 5960X chạy ở tốc độ 3.0GHz nhưng giá thì chưa đến một nửa đấy nhé.