December 22, 2022 Yen Lily

Giải quyết sự cố GPU driver bị crash trong Unreal Engine 5 (phần 2)

Trong phần 1 của bài viết, chúng ta đã thảo luận về sự cố GPU crash là gì, tại sao nó xảy ra, gỡ lỗi và cách giải quyết sự cố GPU hết bộ nhớ. Trong phần này, chúng ta sẽ tiếp tục khắc phục sự cố khác có thể gây ra việc GPU crash trong Unreal Engine 5.

Tìm hiểu về GPU Time Out do hoạt động tốn thời gian gây ra (Sự kiện TDR)

Hãy cùng giải thích nguyên nhân gây ra sự kiện TDR. Nó sẽ xảy ra khi GPU mất quá nhiều thời gian để hoàn thành tác vụ do CPU chỉ định. Theo mặc định thì GPU cần hoàn thành thao tác trong hai giây trong Windows. Nếu mất nhiều thời gian hơn, CPU sẽ reset lại driver. Điều đó dẫn đến việc GPU bị crash.

Công cụ không nên gửi một lượng công việc lớn như vậy tới GPU, vì nó có thể kích hoạt sự kiện TDR. Để tránh xảy ra TDR, công cụ nên chia tác vụ thành các phần nhỏ hơn hoặc bạn có thể tăng thời gian cần thiết để timeout diễn ra bằng cách chỉnh sửa Windows Registry.

Để thay đổi registry key, bạn nên tạo hai keys mới là TdrDelay và TdrDiDelay. Key đầu tiên là để đặt ngưỡng timeout. Đó là số giây mà GPU trì hoãn yêu cầu ưu tiên từ GPU scheduler (GPU scheduler dùng để xử lý quá trình và bộ nhớ (VRAM). Key thứ hai là để đặt lượng thời gian mà hệ điều hành (HĐH) cho phép các luồng rời khỏi driver. Sau khi thời gian đó trôi qua, lỗi trễ timeout sẽ xảy ra.

Xin lưu ý rằng việc thay đổi registry keys trên HĐH Windows của bạn có thể dẫn đến những hậu quả không mong muốn và yêu cầu cài đặt lại Windows từ đầu.

Bạn có thể tham khảo cách thay đổi keys tại đây: thay đổi Registry Keys.

Mặc dù đây là một cách tốt để hạn chế việc GPU crash dựa trên kết xuất, nhưng cách này cũng không giải quyết được tất cả các sự cố. Nếu bạn cố xử lý quá nhiều dữ liệu cùng một lúc, GPU có thể bị timeout bất kể bạn đặt độ trễ timeout là bao lâu. Giải pháp này chỉ được thiết kế để cung cấp thêm thời gian cho card đồ họa của bạn.

Có một số công nghệ có thể chiếm nhiều tài nguyên và dễ dàng kích hoạt sự kiện TDR. Hardware Ray Tracing là một trong số đó. Nếu bạn sử dụng các đường dò tia tốn kém như Ray Tracing Global Illumination hoặc reflections ở độ phân giải rất lớn, thì có thể mất nhiều thời gian hơn để kết xuất và cuối cùng có thể xảy ra sự kiện TDR.

Bạn có thể tránh việc timeout bị phát hiện bằng cách hiển thị các passes thành các tiles thay vì chỉ 1 pass. Để làm điều đó, bạn nên làm theo các biến điều khiển sau:

        • RayTracing.GlobalIllumination.RenderTileSize
        • RayTracing.Reflections.RenderTileSize

Nếu kích thước tile của một pass lớn hơn 0, thì các passes này sẽ được render các tiles N x N pixel, trong đó mỗi tile được gửi dưới dạng bộ đệm lệnh GPU riêng biệt.

Điều tra bugs trong mã engine, drivers và hệ điều hành

Có nhiều nguyên nhân dẫn đến việc GPU bị crash và nó có thể xảy ra khi bạn gặp lỗi trong mã engine, drivers hoặc hệ điều hành. Nếu bạn đã kiểm tra và biết rằng các sự kiện OOM và TDR không phải là nguyên nhân, bạn có thể điều tra thêm để xác định nguyên nhân gốc rễ là gì như sau:

        • Chạy công cụ với -gpucrashdebugging và -d3ddebug. Hãy chạy riêng từng cái.
        • Bắt buộc engine chỉ chạy với một luồng bằng cách sử dụng -onethread và -forcerhibypass. Nó sẽ xác định xem vấn đề tiềm ẩn có phải là vấn đề về luồng/thời gian hay không.
        • Chạy engine với RDG.Debug=1 để cung cấp thông tin về các render pass chưa được đặt đúng cách.
        • Buộc Render Dependence Graph(RDG) thực thi các passes ngay sau khi tạo bằng cách chạy công cụ với RDG.ImmediateMode=1.
        • Chuyển sang một RHI khác. Ví dụ: nếu bạn đang sử dụng DirectX 12 (DX12), bạn có thể chuyển sang DirectX 11 (DX11). Tuy nhiên, một số tính năng chỉ hoạt động với một RHI cụ thể (chẳng hạn như Hardware Ray Tracing chỉ được hỗ trợ bởi DX12).
        • Sử dụng A/B Testing cho cảnh của bạn:
          • Bật và tắt rendering passes để kiểm tra xem sự cố có xảy ra không. Đôi khi một pass bị lỗi có thể là nguyên nhân gây ra sự cố.
          • Bật và tắt các tính năng kết xuất, chẳng hạn như Lumen, Nanite, Ray Tracing.
          • Ẩn/Hiện các đối tượng cụ thể trong cảnh. Điều này có thể giúp xác định nếu các vấn đề liên quan đến một asset cụ thể.

Tất cả các thông tin trên áp dụng cho GPU bị crash trong Unreal Engine 5 liên quan đến sự cố driver hoặc hệ điều hành. Đối với driver, bạn nên sử dụng phiên bản mới nhất hiện có. Đối với hệ điều hành, đặc biệt là Windows, team Unreal Engine khuyên bạn nên sử dụng phiên bản 20H2. Bạn có thể kiểm tra bằng cách nhấn phím Windows và nhập winver.

iRender - Dịch vụ cloud rendering tốt nhất cho Unreal Engine

iRender cung cấp cho bạn hệ thống máy chủ cấu hình cao và hiệu suất cao để phục vụ kết xuất 3D, VR & AR, mô phỏng, v.v. Với hệ thống máy chủ từ xa của chúng tôi, bạn có thể cài đặt bất cứ phần mềm nào, thêm license của bạn và có thể làm bất cứ việc gì bạn cần để hoàn thành project. Unreal Engine cũng không phải ngoại lệ.

Tại iRender, chúng tôi cung cấp cho bạn máy chủ 3P với GPU RTX3090 đơn và phần cứng mạnh mẽ như Bộ xử lý AMD Ryzen Threadripper Pro 3955 WX 3.9GHz, RAM 256GB và SSD NVMe 2TB. Với những đặc điểm kỹ thuật đó, máy chủ từ xa có thể phục vụ bất kỳ dự án nào của bạn trong Unreal, đảm bảo render và tải cảnh nhanh hơn và ổn định hơn.

Ngoài ra, iRender còn có các tính năng hữu ích khác. Chúng tôi có sẵn NVlink nếu bạn muốn thử nghiệm (liên hệ để biết thêm chi tiết) và công cụ truyền files miễn phí iRender drive/GPUhub sync. Bộ phận hỗ trợ của chúng tôi hoạt động 24/7 qua livechat và có thể giúp bạn khắc phục mọi sự cố.

iRender có nhiều tính năng khác giúp bạn kết xuất nhanh hơn và dễ dàng hơn. Bạn có thể tạo tài khoản qua liên kết này để trải nghiệm dịch vụ của chúng tôi. Và đừng ngần ngại liên hệ với chúng tôi qua Zalo: (+84) 916806116 để được tư vấn và hỗ trợ.

 

Cảm ơn bạn & Happy rendering!

Nguồn và hình ảnh trong bài: docs.unrealengine.com
, , , , , , , , , , , , , , , , , , , , , , , ,

Yen Lily

Hi everyone. Being a Customer Support from iRender, I always hope to share and learn new things with 3D artists, data scientists from all over the world.
Contact

INTEGRATIONS

Autodesk Maya
Autodesk 3DS Max
Blender
Cinema 4D
Houdini
Maxwell
Nvidia Iray
Lumion
KeyShot
UE4
Twinmotion
Redshift
Octane
And many more…

iRENDER TEAM

MONDAY – SUNDAY
9:00 AM – 8:00 PM
Hotline: 0916 806 116
Zalo: 0916 806 116
Skype: iRender Support
Email: [email protected]
CÔNG TY CỔ PHẦN CÔNG NGHỆ IRENDER VIỆT NAM
MST: 0108787752
Office: 5/82 Dịch Vọng Hậu, Cầu Giấy, Hà Nội.

Contact
0916806116