- Đã xây dựng một cụm AI trị giá khoảng 3.000 USD bằng 10 Raspberry Pi Compute Blade và các mô-đun CM5, nhưng kết quả không đạt kỳ vọng về hiệu năng lẫn giá trị trên chi phí
- Trong benchmark HPC, hệ thống đạt mức tăng hiệu năng gấp 10 lần (325 Gflops) so với một Pi đơn lẻ, nhưng vẫn chậm hơn 4 lần so với cụm máy bàn Framework
- Trong các bài kiểm tra AI, do không có hỗ trợ tăng tốc GPU nên hệ thống phải dựa vào suy luận chạy trên CPU, và khi chạy mô hình Llama 70B thì tốc độ sinh token chỉ ở mức 0.85 t/s, rất thấp
- Dù vậy, nhờ các ưu điểm tiêu thụ điện thấp, ít tiếng ồn, mật độ cao, nó vẫn có thể có ý nghĩa trong các trường hợp sử dụng đặc thù như tác vụ CI, triển khai edge yêu cầu bảo mật cao, hoặc các nút chuyển tiếp Tor
- Nhìn chung, đây là một dự án thú vị cho mục đích học tập và thử nghiệm, nhưng không phù hợp cho các nhu cầu AI/HPC thông thường, đồng thời cho thấy rõ những giới hạn của máy chủ blade
Giới thiệu và tổng quan về cụm
- Tác giả đã đặt mua 10 Compute Blade vào tháng 4/2023, tức 2 năm trước, và gần đây mới nhận đủ để hoàn thiện cụm
- Trong thời gian đó, Raspberry Pi đã được nâng cấp từ CM4 lên CM5, vì vậy tác giả đặt thêm 10 mô-đun CM5 Lite 16GB để hoàn thiện cấu hình với tổng cộng 160GB bộ nhớ
- Tổng chi phí là 3.000 USD (bao gồm phí vận chuyển), trở thành cụm Pi lớn nhất mà cá nhân tác giả từng xây dựng
- Trong số các máy tính blade dựa trên Pi còn có Xerxes Pi, nhưng khả năng ra mắt và giao hàng bị chậm là khá lớn; tác giả cũng đã ủng hộ dự án này vì tò mò
- Tác giả muốn kiểm chứng xem cụm Pi liệu còn đáng giá hay không, bằng cách so sánh hiệu năng, mật độ và hiệu quả với cụm máy bàn Framework để đánh giá có đáng đầu tư hay không
Quá trình xây dựng cụm và các lần làm lại
- Cụm đã phải lắp ráp lại tới ba lần vì nhiều vấn đề tương thích SSD và tản nhiệt
- Lần lắp lại thứ nhất: đã thử nhiều SSD NVMe khác nhau nhưng gặp vấn đề về tương thích và độ tin cậy, sau đó thay toàn bộ bằng SSD Patriot P300 và cải thiện được độ ổn định
- Lần lắp lại thứ hai: xuất hiện throttling do nhiệt, và vấn đề quản lý nhiệt được giải quyết bằng cách cố định chắc chắn heatsink
Kết quả benchmark HPC (High Performance Computing)
- Đo hiệu năng siêu máy tính bằng benchmark High Performance Linpack (Top500)
- Trước khi gắn heatsink, hệ thống đạt 275 Gflops; sau đó tăng lên tối đa 325 Gflops
- Con số này tương đương hiệu năng gấp 10 lần so với một node CM5 8GB đơn lẻ, với mức tiêu thụ điện 130W
- Tuy nhiên, khi so với cụm 4 node Framework Desktop giá 8.000 USD, cụm Pi vẫn chậm hơn 4 lần
- Về hiệu suất năng lượng (Gflops/W), nó nhỉnh hơn một chút, nhưng xét trên hiệu năng/giá thành thì vẫn kém cụm Framework
- Đây không phải là giải pháp phù hợp cho HPC quy mô lớn
Kiểm tra khả năng ứng dụng AI và các giới hạn
- Với 160GB bộ nhớ, tác giả kỳ vọng đây sẽ là một cụm AI, nhưng iGPU của Pi 5 không thể tăng tốc qua Vulkan
- Suy luận AI bị giới hạn ở CPU, và do giới hạn của Arm Cortex A76 nên hiệu năng xử lý giảm mạnh
- Với mô hình Llama 3.2:3B, một node chỉ xử lý được 6 token/giây (tương đối chậm)
- Ngay cả khi tận dụng toàn bộ các node để phân tán mô hình lớn (Llama 3.3:70B), tốc độ vẫn chỉ ở mức 0.28~0.85 token/giây (chậm hơn ít nhất 5~25 lần so với cụm Framework)
- Các công cụ AI phân tán khác như Exo hay distributed-llama cũng thiếu ổn định hoặc hiệu năng không đủ cho sử dụng thực tế
- Nhìn chung, hệ thống không phù hợp với workload AI
Kết luận và các đề xuất sử dụng thực tế
- Cụm blade Pi là một lựa chọn kém cạnh tranh về hiệu năng/giá thành, và khó có thể khuyến nghị ngoài các mục đích học tập, thử nghiệm, sở thích
- Tuy vậy, hệ thống vẫn có ưu điểm về dễ quản trị, ít ồn, gọn gàng, cùng mật độ node và khả năng tách biệt
- Trên thực tế, nó chỉ có thể được cân nhắc ở mức hạn chế cho tác vụ CI (tích hợp liên tục) hoặc các môi trường đòi hỏi cách ly như bảo mật cao và edge computing
- Unredacted Labs hiện đang sử dụng nó trong các môi trường nhiều node như Tor exit relay để tối đa hóa hiệu quả và mật độ node
- Tuy nhiên, với đa số người dùng thông thường, ở cùng mức chi phí vẫn có những lựa chọn khác cho hiệu năng và hiệu quả cao hơn
- Nhà sản xuất Gateworks cũng từng bán GBlade công nghiệp, nhưng không thành công về mặt thị trường và đã ngừng sản xuất
- Xét về bảo trì và tính thực dụng, nó đơn giản hơn vận hành các cụm lớn, nhưng nếu không có lý do thật đặc biệt thì khó có thể khuyến nghị
Danh sách linh kiện sử dụng
- (Tác giả có giới thiệu riêng danh sách linh kiện đã dùng, nhưng cũng lưu ý rằng không nên sao chép y nguyên cấu hình tương tự)
5 bình luận
Nói chính xác về Vulkan thì phải là: "API Vulkan mà iGPU của Pi 5 hỗ trợ hiện vẫn chưa được hỗ trợ trong llama.cpp". Cũng khá tò mò không biết nếu được hỗ trợ thì hiệu năng sẽ đạt tới mức nào.
Ý kiến trên Hacker News
Với những ai quan tâm đến hệ thống phân tán, tôi rất khuyến khích thử chạy 8 máy ảo trên một máy đơn dùng CPU AMD 16 nhân đời mới. Có thể cấp cho mỗi VM 4 hyperthread, mỗi VM dùng 1/8 tổng RAM, rồi tạo mạng ảo trong phần mềm ảo hóa như Proxmox để trải nghiệm môi trường cluster. Thực tế còn có thể kiểm thử khả năng chịu lỗi bằng cách tạm dừng từng VM chỉ với một cú nhấp chuột rồi khôi phục lại. Cách này vượt xa cluster Pi về Perf/W và độ tiện dụng. Không cần căng thẳng vì lắp ráp linh kiện, chỉ cần CPU, mainboard, SSD m.2 và hai thanh RAM là đủ. Tất nhiên, nếu chạy trực tiếp trên máy nhiều nhân mà không qua ảo hóa thì Perf/W sẽ cao nhất, nhưng điều thường bị bỏ qua trong benchmark là mức tiêu thụ điện khi idle. Nếu để cluster bật liên tục và chỉ thỉnh thoảng mới dùng thì điểm này cũng rất quan trọng
Tôi nghĩ không cần CPU mạnh đến vậy. Máy quad-core cũ cũng đủ làm được
Nói chuyện liên quan một chút, tôi từng nghĩ việc chạy các chương trình MPI cũ trên môi trường như workstation AMD multi-chip sẽ phổ biến hơn, nhưng hóa ra không phải, khá bất ngờ
Thật ra tôi cũng nghi ngờ liệu có cần từng đó sức mạnh CPU không. Nếu là để thực hành hệ thống phân tán thì chỉ cần một máy Linux cũ hoặc một chiếc Raspberry Pi, cài Erlang rồi dựng vài node là đã đủ để thử nghiệm
Vài năm trước, trong đợt khan hàng Raspberry Pi, tôi thấy tiếc khi mọi người đổ xô săn chúng chỉ để làm mấy cluster đồ chơi này. Pi vốn dành cho giáo dục, nhưng trên thực tế tôi thấy nó thường bị dùng rất lãng phí. Tôi đang chạy một "cluster" K8s bằng xcp-ng, mà thật ra còn có thể làm đơn giản hơn nữa. Docker Machine trước đây cũng có thể dựng nhiều host chỉ bằng một dòng lệnh. Giờ có vẻ dự án đã bị ngừng, nhưng nếu dùng Docker Swarm thì vẫn có thể scale dịch vụ dễ dàng mà không cần hypervisor
Tôi đã thực hành Postgres hot standby và read replica theo cách này. Tôi cũng học Hadoop và Cassandra cluster bằng cách đó. Chính nhờ có thể kể về kinh nghiệm cấu hình và mô phỏng khôi phục các hệ thống như vậy mà tôi kiếm được công việc mới với mức lương tăng gấp đôi, gấp ba. Tôi rất khuyên những lập trình viên đã có chút kinh nghiệm thực tế nên thử kiểu thực hành này. Nó cực kỳ hữu ích để nâng cấp sự nghiệp
Nó làm tôi nhớ đến phiên NormConf “Just use one big machine for model training and inference.”. Khuyên xem video liên quan. Và bài báo kinh điển cũ “Scalability! But at what COST?” (link) cũng rất thú vị. Tóm tắt kết luận thì ngoài Amdahl's Law còn có rất nhiều yếu tố ảnh hưởng đến hiệu năng của xử lý song song. Hệ thống scale-out đòi hỏi vô số công việc phụ mà node đơn không có. Thật ra đa luồng cũng phát sinh nhiều việc mà mã tuần tự không có. Bí quyết của hiệu năng thật sự là: “phép tính nhanh nhất là phép tính không phải thực hiện”
Benchmark đầu tiên tôi chạy là top500 High Performance Linpack cluster benchmark. Tôi thích nó vì đây là cách đo hiệu năng siêu máy tính rất truyền thống. Sau khi xử lý xong vấn đề nhiệt, hệ thống dùng khoảng 130W và đạt 325 Gflops. Vì danh sách trên trang top500 bắt đầu từ năm 1993, tôi đã hy vọng cluster Pi có thể chen vào lịch sử kỳ quặc tận từ thập niên 70, nhưng hóa ra cũng khá gần đây thôi. Từ 1993 (hạng 1: 131 Gflop/s, hạng 10: 15.24Gflop/s) đến 1997 (hạng 1: 1,830,40, hạng 10: 326.4), rồi có vẻ bị loại khỏi top500 vào 2002~2003. Theo Rpeak nên phải sắp lại theo Rmax mới chính xác, nhưng vì khó rà hết nên bỏ qua. Với một cluster đồ chơi thì tôi nghĩ nó đã thể hiện khá tốt. Vì đã quen với kiểu đùa “Apple Watch nhanh hơn máy tính Apollo” nên tôi còn tưởng nó sẽ quay ngược về quá khứ xa hơn nữa
RPI lúc nào CPU cũng rất yếu. Ngay từ đầu mục tiêu của Pi đã là tận dụng chip Broadcom giá rẻ dưới danh nghĩa “giáo dục”. Trẻ con dùng Raspberry Pi để làm LED chớp tắt và học về mạch điện. Nghĩ đến chuyện làm tính toán hiệu năng cao bằng Pi cluster ngay từ đầu đã là vô lý
Không nên hiểu nội dung bài viết một cách quá sát mặt chữ. Tác giả là một tech influencer thành công, kiếm tiền bằng cách mua thiết bị đắt tiền để khoe rồi càm ràm rằng nó không đáng giá. Quan điểm tiền bạc của anh ta không nhất thiết phải giống tôi
Điều đó thì hiển nhiên, nhưng điểm mấu chốt thực sự là nếu bây giờ bạn định làm gì đó, thì rất có thể Raspberry Pi không phải đáp án. Cấu hình trên giá tiền hoàn toàn không tương xứng và thị trường cũng đang chững lại
Dù vậy tôi vẫn thấy video của Jeff khá mới mẻ. Các YouTuber khác thì cứ lặp đi lặp lại nội dung so sánh “thời gian render cho video YouTube, độ chính xác màu, chất lượng camera, chất lượng âm thanh”, còn anh ấy thì khác
Tôi ước Dan Luu chuyển sang làm kiểu nội dung này
Ai biết tự làm thì đều đã rõ rằng chỉ cần một GPU là hiệu năng tính toán tăng gấp 10 lần
Tiêu đề có hơi giật gân, nhưng có vẻ tác giả thật sự rất thích bản thân thí nghiệm và cả quá trình lắp ráp thiết bị. Tuy nhiên, câu mở đầu “Tôi đặt bộ 10 Compute Blades vào tháng 4 năm 2023, và giờ nó mới tới” thì quả là đáng thất vọng
Nếu Pi cluster thực sự có tính cạnh tranh về chi phí trên hiệu năng, thì các data center đã đầy Raspberry Pi từ lâu rồi
Cái này giống hệt trò đùa trong kinh tế học về “tại sao không ai nhặt tờ 20 đô rơi trên đất”. Hiệu quả thị trường hoàn hảo có thể đúng trong dài hạn, nhưng trong ngắn hạn thì phần lớn vẫn là thói quen quen thuộc và trực giác từ kinh nghiệm
Đừng quên rằng người ta cũng từng nói y hệt như vậy về PlayStation
Pi cluster thì... có vẻ thật sự chẳng cạnh tranh về giá cho bất kỳ mục đích nào
Có công ty tên Mythic Beasts cung cấp dịch vụ thuê máy chủ rpi (link). Rõ ràng trong một vài thị trường ngách rất nhỏ vẫn có chỗ dùng được
Có lý do khiến siêu máy tính 10 năm qua dùng GPU. GPU hiệu quả hơn rất nhiều. Nếu cần xử lý song song 32bit thì chỉ việc mua GPU tiêu dùng, còn nếu cần 64bit thì cắm GPU prosumer như RTX 6000 Pro là xong. Bây giờ chẳng ai xây cluster CPU nữa
Không may là ngay cả RTX 6000 Pro cũng chỉ có hiệu năng double precision 2 TFLOPS, chậm hơn single precision tới 64 lần. EPYC 9755 đạt khoảng 10 TFLOPS mà còn dùng ít điện hơn. A100 cũng tương tự. Nếu làm HPC ở mức sở thích và cần tính toán DP thì mấy card AMD đời cũ còn hợp lý hơn. Giờ cả AMD lẫn NVIDIA đều biết khách hàng giới khoa học sẵn sàng trả giá rất đắt cho hiệu năng độ chính xác cao
Siêu máy tính El Capitan cũng dùng CPU AMD (có GPU tích hợp) và đang ở nhóm đầu bảng xếp hạng gần đây. Frontier cũng theo cấu hình tương tự ở ngay phía sau. GPU dạng tách riêng data bus và bộ nhớ không hẳn lúc nào cũng là tối ưu
Pi cluster thực ra không nhắm đến hiệu năng cao mà là món đồ chơi “dị” cho người thích vọc. Ngay từ đầu hầu như không ai kỳ vọng nó là cách làm hiệu quả về chi phí. Có vẻ đây là hiện tượng kiểu tiêu đề giật gân trên YouTube lan sang blog. Thực tế, nếu mục tiêu là học thực hành Linux cluster thì cài hypervisor trên CPU desktop rồi tạo VM sẽ kinh tế hơn rất nhiều. Trừ khi mục tiêu là tận hưởng cảm giác cắm thật nhiều dây cáp, còn không thì xét về mức tận dụng tài nguyên hệ thống và độ linh hoạt, cách này hiệu quả hơn hẳn
Nếu thật sự muốn thực hành với chi phí tối ưu thì dùng cloud là được. Thường sau khi học xong người ta cũng nhanh chán, nên có khả năng phí cloud còn kết thúc trước cả khi bạn tiêu đến mức bằng giá một bộ desktop
Tôi đã tính toán rồi, và mua Mac Studio với chip Mx Ultra mới nhất cùng dung lượng bộ nhớ tối đa là cách tiết kiệm chi phí nhất để thử nghiệm mô hình 100B+ tham số
Trong tính toán truyền thống thì chỉ thua về không gian, còn về điện và chi phí thì lại thắng. Nhưng trong AI thì không dùng được GPU, và phần mềm clustering của llama.cpp còn quá non nên khó rút ra kết luận có ý nghĩa. Nếu phần mềm tốt hơn thì có thể mọi chuyện sẽ thay đổi
Tôi nghĩ ngay cả khi không có nền tảng kỹ thuật thì trong các cuộc tranh luận kiểu này vẫn có thể rút ra kết luận rất rõ. Chỉ cần nhìn thực tế rằng ai cũng dùng GPU cho AI và giá cổ phiếu NVIDIA tăng vọt là đủ thấy câu trả lời. Tôi thực sự tự hỏi có phải OP nghĩ rằng cả thế giới chỉ chưa nhận ra là nên cắm đầy Raspberry Pi hay không
Một số sản phẩm Raspberry Pi được bán dưới giá vốn, nên riêng điều đó cũng có thể khiến người ta hiểu nhầm rằng “biết đâu nó có thể cạnh tranh về giá”
Tôi rất cảm kích câu tác giả nói rằng “Nếu bạn đã vào blog thì hẳn là thích đọc hơn xem video, nên tôi sẽ vào thẳng vấn đề”
Chơi vui quá trời xong lại bảo hối hận à, haha. Khác gì nói game không vui trong khi thời lượng chơi đã vượt 1000 giờ đâu chứ.
Phép ví von này chuẩn quá luôn haha
kkkkkkkkkk