Khi việc đào tạo và sử dụng các mô hình ngôn ngữ lớn (LLM - Large Language Model) hay AI đang dần trở nên phổ biến, người ta sẽ có xu hướng tự trang bị 1 mini AI cho nhu cầu cá nhân, với hệ thống máy tính hiện có. Thông thường, thành phần đóng vai trò quan trọng cho tốc độ của huấn luyện và sử dụng AI là GPU, với bộ nhớ đồ họa càng lớn càng tốt, nhưng giới hạn của nó sẽ là máy tính để bàn, chiếm diện tích, giá card mắc... Nếu chỉ cần có dung lượng bộ nhớ đồ họa lớn với băng thông cao, độ trễ thấp thì các máy tính chạy Apple Silicon có 1 thứ gọi là Unified Memory, vậy liệu nó có thay thế được không?
Unified Memory (bộ nhớ hợp nhất) là công nghệ bộ nhớ cho phép tất cả các thành phần xử lý của hệ thống máy tính được phép truy cập. Điều này có nghĩa là 2 thành phần chủ chốt - CPU và GPU - sẽ cùng chia sẻ 1 bộ nhớ chung thay vì phân bổ riêng và loại bộ nhớ khác biệt. Hiện tại anh em thấy máy tính sẽ có phần RAM cho hệ thống (CPU) riêng và phần VRAM cho GPU riêng, còn unified memory là 1 không gian bộ nhớ xài chung cho cả 2, vì vậy không cần VRAM cho GPU nữa.
Unified Memory không mới nhưng tới năm 2020 thì Apple mới bắt đầu đem xuống cho các sản phẩm tiêu dùng với con chip M1. Thay vì để riêng, RAM hay unified memory architecture (UMA - thứ Apple gọi là kiến trúc bộ nhớ hợp nhất) được gắn chung đế với CPU và GPU. Tài nguyên này được chia sẻ cho bất kỳ thành phần xử lý nào của chip M1, áp dụng cho tất cả mọi vị trí bộ nhớ vật lý được tích hợp.
Unified Memory là gì?
Unified Memory (bộ nhớ hợp nhất) là công nghệ bộ nhớ cho phép tất cả các thành phần xử lý của hệ thống máy tính được phép truy cập. Điều này có nghĩa là 2 thành phần chủ chốt - CPU và GPU - sẽ cùng chia sẻ 1 bộ nhớ chung thay vì phân bổ riêng và loại bộ nhớ khác biệt. Hiện tại anh em thấy máy tính sẽ có phần RAM cho hệ thống (CPU) riêng và phần VRAM cho GPU riêng, còn unified memory là 1 không gian bộ nhớ xài chung cho cả 2, vì vậy không cần VRAM cho GPU nữa.
Unified Memory không mới nhưng tới năm 2020 thì Apple mới bắt đầu đem xuống cho các sản phẩm tiêu dùng với con chip M1. Thay vì để riêng, RAM hay unified memory architecture (UMA - thứ Apple gọi là kiến trúc bộ nhớ hợp nhất) được gắn chung đế với CPU và GPU. Tài nguyên này được chia sẻ cho bất kỳ thành phần xử lý nào của chip M1, áp dụng cho tất cả mọi vị trí bộ nhớ vật lý được tích hợp.
Khi sử dụng unified memory, CPU hay GPU có thể tự do tăng nhu cầu chiếm dụng bộ nhớ bất cứ khi nào cần thiết. Giả sử CPU cần dung lượng bộ nhớ nhiều hơn, nó sẽ lấy phần cần thiết, còn trong trường hợp ngược lại là GPU cũng tương tự, không có giới hạn trước. Dữ liệu được lưu trữ trên unified memory luôn sẵn sàng cho CPU hay GPU truy cập để lấy khi nó cần sử dụng. Việc này giảm bớt công đoạn di chuyển dữ liệu không cần thiết giữa các phần bộ nhớ riêng biệt theo kiểu thông thường, từ đó tăng tốc độ xử lý và giảm độ trễ.
RAM quen thuộc thì sao?
RAM hay Random Access Memory là công nghệ lưu trữ tạm cho thiết bị máy tính, thiết kế dễ thay đổi hoặc không tùy theo nhu cầu và môi trường sử dụng. RAM được phát triển cách đây hơn 70 năm và là định dạng bộ nhớ chủ yếu cho hầu hết máy tính cá nhân, trước khi Apple chuyển qua unified memory thì vẫn sử dụng RAM cho máy tính của hãng.
RAM chỉ có khả năng lưu trữ tạm hay ngắn hạn, miễn khi nào nguồn điện còn được cung cấp, mất điện là mất dữ liệu. Có nhiều loại RAM khác nhau tính đến nay, được đồng bộ hóa với clock hệ thống. Hiện tại phổ biến nhất là SDRAM (Synchronized Dynamic Random Access Memory) với các thế hệ công nghệ DDR (Double Data Rate) nhằm tăng tốc cho RAM cũng như giảm độ trễ. Mới nhất trên nền tảng Intel socket LGA 1700 và AMD AM5 là DDR5.
Đối với card đồ họa, GPU cũng cần trang bị bộ nhớ riêng gọi là VRAM (Video Random Access Memory). Về cơ bản thì VRAM cũng là 1 loại RAM nhưng với định dạng chuyên dụng để có thể đáp ứng nhu cầu kỹ thuật của GPU. VRAM đóng vai trò quan trọng trong xử lý đồ họa, cải thiện hiệu năng và cả tăng tốc ứng dụng đồ họa. Hiện tại VRAM mới nhất được trang bị cho card đồ họa tiêu dụng mạnh nhất - RTX 4090 - là GDDR6X.
So sánh điểm giống và khác nhau của Unified Memory và RAM
RAM hay unified memory về cơ bản là giống nhau, tức đều có chức năng bộ nhớ, tuy nhiên RAM thì chỉ có khả năng lưu trữ tạm thời, mất điện đồng nghĩa với mất hết, ngược lại unified memory vẫn lưu trữ được dữ liệu kể cả khi không có điện. Không gian unified memory được xài chung cho tất cả mọi thành phần hệ thống, đặc biệt là CPU và GPU, còn RAM chỉ phục vụ GPU hoặc CPU, nếu muốn chia sẻ dữ liệu thì cần tốn thêm quá trình sao chép.
Thông thường RAM có khả năng tháo rời, thay thế và nâng cấp dễ dàng, trong khi unified memory được tích hợp sẵn, là 1 phần của SoC nên không thể nâng cấp, chỉ có thể chọn từ đầu. Ngoài ra, giá bán của RAM rẻ hơn và nhiều thương hiệu để lựa, còn unified memory có giá mắc. Tính tới thời điểm hiện tại và ở các sản phẩm máy tính tiêu dùng, unified memory chỉ có trên những sản phẩm của Apple với con chip M1, M2 và M3.
Hồi cuối năm 2023, Apple ra mắt framework nguồn mở MLX, thiết kế đặc biệt để thực hiện các tác vụ máy học (machine learning) trên Apple Silicon. Động thái này cho thấy Apple hướng tới kiểm soát toàn bộ và mở rộng thêm cho hệ sinh thái của hãng, đáp ứng nhu cầu các nhà phát triển phần mềm AI. Trước đây, các nhà phát triển AI phải sử dụng hệ thống chạy Linux hoặc Microsoft nguồn mở, MLX có nhiệm vụ giải quyết những vấn đề về hiệu năng và khả năng tương thích lâu dài liên quan tới kiến trúc và phần mềm của Apple. MLX lấy cảm hứng từ các framework nổi tiếng như PyTorch, Jax và ArrayFire, tạo ra quy trình hợp lý hơn để đào tạo và triển khai mô hình học tập AI trên thiết bị Apple.
Điểm đặc biệt và khác biệt của MLX so với các framework khác là tận dụng được unified memory, cho phép hoạt động trên bất kỳ thiết bị hỗ trợ nào mà không cần tốn thêm quá trình sao chép dữ liệu từ RAM qua RAM. Trên máy tính Apple, con chip M Series trang bị cả CPU lẫn GPU, chúng chia sẻ unified memory thay vì RAM cho CPU và VRAM cho GPU, tăng tính linh hoạt, tốc độ và giảm độ trễ. Thay vì thông thường phải mua máy tính hiệu năng cao rồi bổ sung GPU cao cấp có lượng VRAM lớn, người dùng chỉ cần mua máy tính Apple, xài unified memory cho mọi thứ.
Các nhà phát triển trước đây phải chuyển đổi mô hình qua CoreML để chạy với máy tính Apple, đương nhiên việc phụ thuộc vào 1 trình biên dịch sẽ không thể có được hiệu năng tối ưu nhất. CoreML làm nhiệm vụ chuyển đổi các mô hình ML có sẵn, tối ưu hóa cho thiết bị Apple, trong khi MLX có khả năng tạo và thực thi mô hình ML trực tiếp trên phần cứng Apple. Trước mắt thể hiện của MLX là khá tốt, tính tương thích với Stable Diffusion và Whisper của OpenAI cũng đáng kể, đồng thời hiệu quả của MLX vượt trội hơn PyTorch trong việc tạo hình ảnh trên nhóm kích thước lớn.
Do xu hướng về AI còn quá mới nên chúng ta chưa có các tiêu chuẩn nhất định. Anh em thấy có các mô hình tận dụng được CUDA của NVIDIA, có mô hình thì tương thích tốt hơn trên AMD GPU, do đó cần thêm thời gian để tất cả đi theo 1 hướng cụ thể, tính tương thích và linh hoạt cao hơn. Xét ở lý thuyết, unified memory sẽ có lợi thế hơn việc sử dụng RAM và VRAM hiện tại, khi khác biệt tốc độ, băng thông và độ trễ giữa RAM và VRAM khá cao. Không chỉ vậy, unified memory còn giảm bớt công đoạn khi thực thi tác vụ, cụ thể là sao chép dữ liệu giữa những loại bộ nhớ thiết bị khác nhau. Với dung lượng unified memory lớn sẽ có lợi cho huấn luyện mô hình AI và MLX sẽ cần thêm chút thời gian để trưởng thành, song song với đó là các framework khác hỗ trợ cũng như tương thích tốt hơn.
Điểm đặc biệt và khác biệt của MLX so với các framework khác là tận dụng được unified memory, cho phép hoạt động trên bất kỳ thiết bị hỗ trợ nào mà không cần tốn thêm quá trình sao chép dữ liệu từ RAM qua RAM. Trên máy tính Apple, con chip M Series trang bị cả CPU lẫn GPU, chúng chia sẻ unified memory thay vì RAM cho CPU và VRAM cho GPU, tăng tính linh hoạt, tốc độ và giảm độ trễ. Thay vì thông thường phải mua máy tính hiệu năng cao rồi bổ sung GPU cao cấp có lượng VRAM lớn, người dùng chỉ cần mua máy tính Apple, xài unified memory cho mọi thứ.
Các nhà phát triển trước đây phải chuyển đổi mô hình qua CoreML để chạy với máy tính Apple, đương nhiên việc phụ thuộc vào 1 trình biên dịch sẽ không thể có được hiệu năng tối ưu nhất. CoreML làm nhiệm vụ chuyển đổi các mô hình ML có sẵn, tối ưu hóa cho thiết bị Apple, trong khi MLX có khả năng tạo và thực thi mô hình ML trực tiếp trên phần cứng Apple. Trước mắt thể hiện của MLX là khá tốt, tính tương thích với Stable Diffusion và Whisper của OpenAI cũng đáng kể, đồng thời hiệu quả của MLX vượt trội hơn PyTorch trong việc tạo hình ảnh trên nhóm kích thước lớn.
Do xu hướng về AI còn quá mới nên chúng ta chưa có các tiêu chuẩn nhất định. Anh em thấy có các mô hình tận dụng được CUDA của NVIDIA, có mô hình thì tương thích tốt hơn trên AMD GPU, do đó cần thêm thời gian để tất cả đi theo 1 hướng cụ thể, tính tương thích và linh hoạt cao hơn. Xét ở lý thuyết, unified memory sẽ có lợi thế hơn việc sử dụng RAM và VRAM hiện tại, khi khác biệt tốc độ, băng thông và độ trễ giữa RAM và VRAM khá cao. Không chỉ vậy, unified memory còn giảm bớt công đoạn khi thực thi tác vụ, cụ thể là sao chép dữ liệu giữa những loại bộ nhớ thiết bị khác nhau. Với dung lượng unified memory lớn sẽ có lợi cho huấn luyện mô hình AI và MLX sẽ cần thêm chút thời gian để trưởng thành, song song với đó là các framework khác hỗ trợ cũng như tương thích tốt hơn.