Microsoft DirectStorage: cách tận dụng SSD NVMe để giúp game chạy nhanh hơn nhiều

Duy Luân
7/5/2021 0:41Phản hồi: 46
Microsoft DirectStorage: cách tận dụng SSD NVMe để giúp game chạy nhanh hơn nhiều
DirectStorage sẽ giúp game load nhanh hơn, game chạy mượt hơn, và các hãng làm game có thể tạo ra những thế giới trong game rộng hơn, phức tạp hơn.

Trước khi đến với DirectStorage, bạn hãy xem game hiện tại hoạt động ra sao


Khi bạn chạy một game lên, game sẽ cần những dữ liệu như các họa tiết, bản đồ, các mô hình 3D của nhân vật, và cả âm thanh để tạo nên trải nghiệm chơi hoàn chỉnh. Những dữ liệu này được lưu trữ trên ổ HDD hay SSD trong máy tính của bạn. Game sẽ yêu cầu lấy những dữ liệu này thông qua một loạt các API.

Khi các hàm API này được gọi lên, chúng sẽ lấy dữ liệu từ ổ lưu trữ, đặt chúng vào RAM trước khi chuyển cho GPU để render thành hình ảnh mà bạn thấy. Tuy nhiên, dữ liệu chứa trên ổ đĩa đã được nén để tốn ít dung lượng, nên GPU không thể dùng trực tiếp mà dữ liệu phải đi qua CPU giải nén trước rồi GPU mới xài được.

Tóm lại, quy trình lấy dữ liệu của GPU sẽ như sau:

[​IMG]

mobile_cu.jpg

Giải pháp này có 2 hạn chế:
  • Việc giải nén dữ liệu tốn nhiều thời gian. Dù bạn cảm giác là nó không nhiều nhưng thực ra CPU đang phải làm nhiều việc lắm, và việc này chỉ nhằm mục đích tiết kiệm dung lượng lưu trữ chứ không phục vụ trực tiếp cho trải nghiệm chơi game. Với các CPU không đủ mạnh thì thời gian load game sẽ tăng lên, bạn phải ngồi chờ lâu hơn. Ngoài ra, khi GPU yêu cầu nhiều dữ liệu mà CPU không giải nén kịp thì sẽ có hiện tượng thắt cổ chai, dẫn đến rớt số khung hình (FPS) trong game.
  • Các API truy cập bộ nhớ hiện nay không thể tận dụng đầy đủ phần cứng hiện đại (ví dụ, NVMe SSD). Các API này đã có từ thời của ổ cứng, vốn chỉ có thể chuyển lượng dữ liệu nhỏ, trong khi SSD xịn ngày nay có thể stream nhiều gigabyte mỗi giây

Những thứ này sẽ làm giảm trải nghiệm chơi game của người dùng, khiến bạn cảm thấy mọi thứ load lâu hơn, và có thể bị rớt số FPS khiến game bị giật. Với những phần cứng không phải cao cấp, trải nghiệm càng bị ảnh hưởng nhiều hơn.

Giải pháp DirectStorage giúp ích như thế nào?


DirectStorage là một bộ hàm API mới dùng cho việc truy xuất dữ liệu. Khi nhà phát triển game dùng DirectStorage, quy trình lấy data sẽ như sau:


direct_storage.jpg

mobile_new.jpg

Quảng cáo


CPU bây giờ đã không còn xuất hiện trong quá trình giải nén dữ liệu, thay vào đó GPU sẽ làm chuyện giải nén. Vì không còn thông qua CPU nữa nên giảm độ trễ, cả ở khâu giải nén lẫn khâu di chuyển dữ liệu qua lại giữa các thành phần trong hệ thống. Cái này giống như việc nước ta đang cải cách hành chính, sử dụng cơ chế 1 cửa 😁, mọi thứ sẽ chạy nhanh hơn nhiều.

Thứ hai, DirectStorage tận dụng đầy đủ tốc độ cao của ổ SSD NVMe, và NVMe cũng là phần cứng bắt buộc phải có để dùng được DirectStorage. DirectStorage sẽ đọc một lượng rất lớn dữ liệu từ ổ SSD này ở mức nhiều GB/s, không phải chỉ MB/s như hàm API cũ.

Kết quả là GPU sẽ nhận một lượng lớn dữ liệu để bắt đầu quá trình giải nén, không cần phải đợi CPU đưa qua một cách chậm chạp như xưa. Ngoài ra, DirectStorage còn sử dụng các kĩ thuật giải nén dữ liệu mới dành cho GPU nên tốc độ giải nén sẽ nhanh hơn, duy trì được trong thời gian dài hơn so với việc dùng CPU để thực hiện tác vụ này.

Và bởi vì CPU giờ đã được “rảnh việc”, game có thể tận dụng CPU để làm những việc khác như xử lý âm thanh, chuẩn bị dữ liệu, điều phối hoạt động của các hệ thống mà game cần…

4937536_Tinhte.vn_WD_Blue_SN550-3.jpg

Tóm lại, việc chơi game sẽ được cải thiện ra sao?


Thứ nhất, tốc độ load game sẽ nhanh hơn đáng kể so với hiện nay, bạn không phải ngồi chờ game load lên ở khúc đầu nữa.

Quảng cáo



Thứ hai, CPU giờ được rảnh rỗi để xử lý tác vụ khác, nên tổng thể hiệu năng sẽ được cải thiện.

Và nhờ có DirectStorage, game giờ có thể sử dụng các bản đồ rộng hơn, thế giới rộng hơn, chi tiết hơn.

DirectStorage đã có sẵn trên Xbox Series X mới, và Microsoft đang đem nó lên Windows 10, giờ chỉ cần các nhà phát triển game sử dụng nó là được. Bản thân Microsoft cũng đang khuyến khích các hãng làm game tích hợp DirectStorage trong những tựa game mới. Hi vọng khi mà nhiều nhà sản xuất game sử dụng API này thì mọi thứ sẽ thay đổi.

Tham khảo: MakeUseOf, Microsoft
46 bình luận
Chia sẻ

Xu hướng

XBlue
CAO CẤP
3 năm
hay
nghp
TÍCH CỰC
3 năm
hok còn chơi game, nhưng cũng cảm thấy phấn khích cho các gamer
"Tuy nhiên, dữ liệu chứa trên ổ đĩa đã được mã hóa để tốn ít dung lượng"
nghe hơi sai
Cười vô mặt
quangminhmmc
ĐẠI BÀNG
3 năm
@kkzbanana Bạn trên nói đúng rồi bác à, dữ liệu nén và mã hoá là hai khái niệm hoàn toàn khác nhau nha. Người làm biên tập phim chuyên nghiệp sẽ hiểu rõ rất rõ khái niệm mã hoá, Thân.
dna
ĐẠI BÀNG
3 năm
@dangtantien1995 Khác nhau nhưng không phải khác nhau hoàn toàn, nén là 1 trường hợp con của mã hoá
data structure 101. Ngày xưa đi học mình viết ra cái program nến xong còn to hơn cái file nén 😁. 2 cái là một bạn à. Khác nhau bước sử lý cuối thôi. Bạn nói đến video nó còn phúc tạp hơn vì bạn đang nghĩ đến lossless hay lossy compression.
Anonymox
TÍCH CỰC
3 năm
@quangminhmmc lại sai nhé, encode khác hoàn toàn với encrypt nhé
"trong máu tính của bạn"
a hi hi
hatito
ĐẠI BÀNG
3 năm
ngon quá nhỉ. Không biết bgio game trên PC mới hỗ trợ cho anh em được nhờ.
Wow, hay nhỉ. Cách này có thể tận dụng cho các app đồ họa nữa nhỉ.
YoBak
TÍCH CỰC
3 năm
@noctunalguy Gần tương tự như vậy rồi bác, nhưng tác động lên game thì là phổ biến và dễ nhận ra nhất
Vậy GPU lại phải làm thay việc đó cho CPU. Liệu có xảy ra việc tụt giảm fps chỉ vì GPU nó đang bận “vật nhau” với dữ liệu ko ?
Gif
TÍCH CỰC
3 năm
@dualshoсk Về cơ bản là không khác biệt lắm vì gpu bây giờ đã quá mạnh. Hơn nữa quá trình nén và giải nén dữ liệu trên cpu hay gpu không mất quá nhiều thời gian hoặc tốc độ tính toán mà quá trình chuyển đổi dữ liệu qua lại mới làm giảm hiệu năng
@dualshoсk Có í, game open word mà xách xe chạy như con điên tầm 5p giật 1 lần.
Doderlein
ĐẠI BÀNG
3 năm
Vậy AI của NPC sẽ do GPU xử lí luôn hả ?!!?
@Doderlein Chỉ là tính toán thôi 😁 tuỳ task
iamcuong
TÍCH CỰC
3 năm
Giờ SSD NVMe dùng để đào CHIA coin.
Cười vô mặt
nvmnghia
ĐẠI BÀNG
3 năm
Nhưng sao vẫn phải load vào RAM ad ơi.

Edit: quadro/tesla có GPU Direct còn bá đạo hơn, bỏ qua RAM luôn. Nhưng mà nó dùng 1 cái pci switch gì đó để chuyển hướng dữ liệu sang VRAM. https://developer.nvidia.com/blog/gpudirect-storage/

GPUDirect Storage: A Direct Path Between Storage and GPU Memory | NVIDIA Technical Blog

As AI and HPC datasets continue to increase in size, the time spent loading data for a given application begins to place a strain on the total application’s performance. When considering end-to-end…
developer.nvidia.com


Nhưng vẫn chưa hỉu tại sao nó cần phải qua RAM, còn GPU Direct của bọn kia thì cần phần cứng riêng gì đó. không thể thẳng từ SSD -> VRAM với kiến trúc hiện tại sao?
tbdat11
CAO CẤP
3 năm
@nvmnghia Qua RAM để không chiếm dung lượng ổ đĩa cũng như tăng tốc độ trao đổi dữ liệu chứ sao, tốc độ đọc ghi của RAM cao gấp nhiều lần SSD.
nvmnghia
ĐẠI BÀNG
3 năm
@tbdat11 Mục tiêu là từ SSD đến VRAM, thế ghé qua RAM làm gì? Để cho nhanh hơn à :surrender:
@nvmnghia Chứ gì nữa :v
Ram kiểu như ổ lưu trữ tạm thời mà, ssd sẽ đẩy những dữ liệu cần thiết của game lên ram rồi ram rồi truy xuất tới những nơi cần thiết. Để ssd gánh hết thì vừa chậm mà ssd cũng nhanh đi luôn vì ssd nó có giới hạn ghi mà
nvmnghia
ĐẠI BÀNG
3 năm
Cái việc cache dữ liệu lên RAM thì máy nào chả làm, nhưng bản thân nó là một tính năng "trong suốt", tức là phần mềm dùng disk cache mà không được biết, cứ nghĩ là đọc thẳng từ ssd/hdd thôi. Vậy ghi vào làm gì :V nó cũng như kiểu ghi là SSD còn dùng DRAM tích hợp để cache, hay CPU có các tầng L1, L2,... kiểu đúng nhưng thừa ấy :V.

Cái nữa là hong biết việc cóp thẳng từ ssd sang vram có thể được không, bỏ qua hẳn luôn ram .

Cuối cùng là nếu RAM quan trọng thế, thì chẳng cần nvme mới dùng được directstorage, vì cuối cùng là dựa vào tốc độ cao của cache trên ram. Còn nếu bảo nvme nhanh hơn, thì bản thân tính năng DirectStorage là vô dụng, vì từ đầu ai cũng cache lên ram rồi :|

nchung là chờ mod viết một bài chi tiết hơn nữa, cái này còn nhiều tiểu tiết quá
_ Tốc độ tên lửa, load game trong 1 nốt nhạc, dự là về sau loading screen sẽ dần tuyệt chủng 😁
lgo.hoang
ĐẠI BÀNG
3 năm
hại ssd lắm nhé 😁
áp dụng lẹ lẹ đi chứ mình chơi game trên con msi gf65 này cpu nóng quá rồi
Lại đốt SSD như M1 nhỉ
@bomduc Ko đâu bác cái này chỉ là thay đổi api để dữ liệu trên ssd được truy xuất nhanh hơn(chủ yếu là đọc dữ liệu thôi nên chả ảnh hướng đến mấy tuổi thọ ssd) và gpu có thể nhận dữ liệu mà không cần thông qua cpu để giải nén.
@Trung Kiên7 Đi tắt ah, thế cũng ngon :3
jeetkunedo
TÍCH CỰC
3 năm
ngon quá nhưng tiếc là mới bán thùng PC để chuyển qa xài Macbook rồi, giá card thì cao, mấy năm gần đây quá ít game hay nên thôi, hẹn vài năm nữa vậy @@
Ước gì thằng call of duty warzone xài hộ cái này dùm , game làm online mà nặng 250gb =)).
@Trần Hùng TD cod dung lượng cao vì tối ưu dữ liệu cho console last gen với cpu yếu nên không thể nén nhiều được và hdd chậm chạp nên phải duplicate dữ liệu ở nhiều nơi
Người chơi game open world thích điều này.
Phannam 91
ĐẠI BÀNG
3 năm
bảo sao macos không mặn mà game 3A toàn game dung lượng nặng ai mà tải về được
grozar
CAO CẤP
3 năm
Còn coin thì game gủng gì tầm này

Xu hướng

Bài mới









  • Chịu trách nhiệm nội dung: Trần Mạnh Hiệp
  • © 2024 Công ty Cổ phần MXH Tinh Tế
  • Địa chỉ: Số 70 Bà Huyện Thanh Quan, P. Võ Thị Sáu, Quận 3, TPHCM
  • Số điện thoại: 02822460095
  • MST: 0313255119
  • Giấy phép thiết lập MXH số 11/GP-BTTTT, Ký ngày: 08/01/2019