Trong thế giới máy tính, tài nguyên không được sử dụng đại diện cho cơ hội bị bỏ lỡ. Triết lý này đã dẫn đến sự phát triển của các công cụ như vramfs, một tiện ích chuyển đổi bộ nhớ video (VRAM) không sử dụng từ card đồ họa thành phương tiện lưu trữ tệp chức năng bằng cách sử dụng thư viện FUSE (Filesystem in Userspace). Mặc dù dự án này không mới, nó tiếp tục tạo ra những cuộc thảo luận thú vị về các giải pháp lưu trữ thay thế và việc tái sử dụng sáng tạo các thành phần phần cứng.
Giới hạn hiệu suất và các giải pháp thay thế
Phiên bản hiện tại của vramfs đạt tốc độ đọc khoảng 2,4 GB/giây và tốc độ ghi 2,0 GB/giây, mà một số thành viên cộng đồng chỉ ra rằng chỉ tương đương với các ổ SSD NVMe hiện đại chứ không nhanh hơn đáng kể. Các điểm chuẩn này được thu thập trên phần cứng tương đối cũ (Intel Core i5-2500K với GPU AMD R9 290), dẫn đến suy đoán rằng hiệu suất có thể tốt hơn đáng kể trên các hệ thống hiện đại với PCIe 4.0/5.0 và các phiên bản FUSE mới hơn.
Một số người bình luận đã gợi ý rằng cách tiếp cận dựa trên FUSE tạo ra chi phí xử lý không cần thiết. Một giải pháp thay thế được đề xuất là sử dụng mô-đun kernel phram, tạo ra một thiết bị khối bỏ qua hoàn toàn FUSE. Những người khác đề xuất rằng một mô-đun kernel Linux thích hợp sử dụng hệ thống con DRM (Direct Rendering Manager) sẽ cung cấp hiệu suất tốt hơn với bộ nhớ đệm thích hợp, hỗ trợ mmap trực tiếp và hệ thống tệp đáng tin cậy, đồng thời.
Thông số kỹ thuật hệ thống kiểm thử (từ các đánh giá vramfs ban đầu)
- Hệ điều hành: Ubuntu 14.04.01 LTS (64 bit)
- CPU: Intel Core i5-2500K @ 4.0 GHz
- RAM: 8GB DDR3-1600
- GPU: AMD R9 290 4GB (Sapphire Tri-X)
Chỉ số hiệu suất
- Hiệu suất đọc: ~2.4 GB/s
- Hiệu suất ghi: ~2.0 GB/s
- Kích thước khối tối ưu: 128KiB (cho hiệu suất) hoặc 64KiB (cho chi phí không gian thấp hơn)
Hạn chế về triển khai
- Khóa mutex đơn cho hầu hết các hoạt động (hạn chế xử lý đồng thời)
- Tất cả dữ liệu truyền tải phải đi qua bus PCIe
- Yêu cầu hỗ trợ OpenCL 1.2
- Kích thước tối đa được khuyến nghị: 50% dung lượng VRAM khả dụng
Thách thức triển khai
Phiên bản vramfs hiện tại đối mặt với một số trở ngại kỹ thuật. Có lẽ đáng kể nhất, dự án sử dụng một khóa mutex duy nhất cho hầu hết các hoạt động, nghĩa là chỉ một luồng có thể sửa đổi hệ thống tệp tại một thời điểm. Lựa chọn thiết kế này hạn chế nghiêm trọng khả năng xử lý đồng thời và hiệu suất tổng thể.
Một thách thức khác là nút thắt cổ chai vốn có trong việc truyền dữ liệu từ CPU đến GPU. Vì tất cả các thao tác đọc và ghi phải đi qua bus PCIe và thông qua CPU, tốc độ tối đa về lý thuyết bị giới hạn ở mức thấp hơn nhiều so với việc truy cập trực tiếp từ GPU đến VRAM. Hạn chế này khiến một số người đặt câu hỏi về tính thực dụng của phương pháp này so với việc đơn giản là bổ sung thêm RAM hệ thống, thứ đã trở nên tương đối giá rẻ.
Sử dụng vram quý giá để lưu trữ tệp là một kiểu hài hước đặc biệt, đặc biệt là khi có người thực sự triển khai nó.
Cân nhắc thực tế và các trường hợp sử dụng
Cuộc thảo luận của cộng đồng tiết lộ một số mối quan tâm thực tế về việc sử dụng VRAM làm hệ thống tệp. Một vấn đề đáng kể là quản lý năng lượng - sử dụng VRAM để lưu trữ sẽ ngăn GPU chuyển sang trạng thái tiêu thụ điện năng thấp hơn, có thể làm tăng mức tiêu thụ điện năng của hệ thống. Mặc dù một số GPU có thể cấp nguồn có chọn lọc cho các phần bộ nhớ trong khi giữ các phần khác hoạt động, chi tiết triển khai khác nhau trên các phần cứng khác nhau.
Một mối quan tâm khác liên quan đến việc sử dụng VRAM làm không gian hoán đổi (swap space). Mặc dù về mặt kỹ thuật là có thể, nhiều người dùng đã báo cáo hệ thống đóng băng khi cố gắng thực hiện điều này, vì các quy trình quản lý GPU có thể bị hoán đổi ra ngoài, dẫn đến lỗi trang không thể khôi phục. Điều này làm nổi bật một thách thức rộng hơn với không gian hoán đổi trên bất kỳ phương tiện lưu trữ phụ thuộc vào trình điều khiển nào.
Mặc dù có những thách thức này, một số trường hợp sử dụng ngách vẫn tồn tại. Đối với các hệ thống có RAM hạn chế nhưng GPU tốt, vramfs có thể cung cấp bộ nhớ tốc độ cao bổ sung. Cũng có suy đoán về lợi ích hiệu suất tiềm năng cho các khối lượng công việc được tăng tốc GPU cụ thể có thể hoạt động trực tiếp trên dữ liệu được lưu trữ trong hệ thống tệp VRAM.
Tuy nhiên, đối với hầu hết người dùng, ý kiến chung dường như là việc bổ sung thêm RAM hệ thống đại diện cho một giải pháp thực tế và hiệu quả về chi phí hơn. Như một người bình luận đã lưu ý, 192GB RAM hệ thống có giá khoảng 500 đô la Mỹ, trong khi VRAM GPU tương đương sẽ có giá khoảng 40.000 đô la Mỹ - làm cho lựa chọn trở nên đơn giản đối với những người chỉ tìm kiếm thêm bộ nhớ tốc độ cao.
Mặc dù vramfs có thể không cách mạng hóa công nghệ lưu trữ, nó đại diện cho loại thử nghiệm sáng tạo thúc đẩy đổi mới trong lĩnh vực máy tính. Như một người bình luận đã nói một cách thích hợp, các dự án như thế này thể hiện triết lý đừng hỏi tại sao, hãy hỏi tại sao không tiếp tục mở rộng ranh giới của những gì có thể thực hiện với phần cứng hiện có.
Tham khảo: vramfs