Hiểu sâu hơn về Redshift và VRAM với iRender
Khi chọn GPU cho render Redshift, ngoài việc xem xét tốc độ xung nhịp và nhân xử lý, chúng ta cần đảm bảo GPU có đủ dung lượng VRAM (bộ nhớ video). Cùng iRender tìm hiểu sâu hơn về Redshift và VRAM trong bài viết hôm nay. Chúng ta sẽ cùng hiểu về VRAM, cách Redshift sử dụng nó, lượng VRAM cần thiết để render Redshift và các phương pháp xử lý tình huống hết VRAM.
VRAM là gì?
Nguồn: Nvidia
VRAM (Video Random Access Memory) là bộ nhớ tốc độ cao nằm trên GPU (card đồ họa) của bạn. Nó đóng vai trò lưu trữ tạm thời, nhanh chóng cho bộ xử lý đồ họa nằm trên GPU để đảm bảo GPU có quyền truy cập vào dữ liệu cần thiết để xử lý và hiển thị hình ảnh một cách mượt mà.
Render có nghĩa là xử lý các tính toán đồ họa khác nhau để tạo ra kết quả cuối cùng trực quan khi kết hợp với nhau. Và GPU thực hiện một loạt các phép tính sử dụng dữ liệu được lưu trữ trong VRAM.
Trước khi GPU có thể xử lý một frame riêng lẻ, VRAM giữ tất cả các mô hình, kết cấu, hình học và bản đồ ánh sáng sẵn sàng để bộ xử lý đồ họa của GPU sử dụng khi render frame đó. Sau khi render xong, GPU sẽ lưu trữ frame đã hoàn thành trong VRAM dưới dạng framebuffer. Framebuffer này sau đó được gửi đến màn hình để xuất ra hình ảnh cuối cùng trên màn hình.
Redshift sử dụng VRAM như thế nào?
Nguồn: Techgage
Redshift sử dụng VRAM khá hiệu quả. Nó có thể chứa khoảng 20-30 triệu hình tam giác riêng nhất trong khoảng 1GB VRAM. Nếu một scene gồm 300 triệu hình tam giác, Redshift thường sẽ cần khoảng 10GB VRAM. GPU có 8GB VRAM vẫn có thể render những scene có lượng polygon lớn như vậy nhờ kiến trúc “out-of-core” của Redshift. Tuy nhiên, việc truy cập dữ liệu out-of-core quá mức đôi khi có thể tác động tiêu cực đến hiệu suất. Do đó, tốt hơn hết là bạn nên có sẵn nhiều VRAM khi render các scene có độ phân giải cao trong Redshift.
Tuy nhiên, kiến trúc “out-of-core” của Redshift không hỗ trợ tất cả các loại dữ liệu. Hiện tại, Redshift không thể lưu trữ volume grids (ví dụ OpenVDB) theo kỹ thuật này. Điều này có nghĩa là nếu bạn sử dụng các scene có hàng trăm megabyte dữ liệu OpenVDB, bạn có thể sẽ cần GPU có nhiều VRAM hơn. Nếu không, sẽ không thể render.
Việc có nhiều VRAM còn có một lợi ích khác. Bạn có thể chạy nhiều ứng dụng GPU cùng một lúc. Các ứng dụng như viewport OpenGL của Maya, Chrome và Windows có thể tiêu thụ một lượng VRAM đáng kể, chỉ để lại ít VRAM để Redshift dùng. Trên GPU có nhiều VRAM, vấn đề này ít xảy ra hơn. Nếu bạn không đủ tiền mua GPU có nhiều VRAM, bạn có thể thiết lập GPU bổ sung (rẻ hơn) để sử dụng cho mọi thứ ngoại trừ Redshift. Sau đó, bạn có thể ngắt (các) GPU còn lại khỏi (các) màn hình và do đó, sẽ có toàn bộ lượng VRAM để render Redshift (ngắt kết nối GPU khỏi màn hình được gọi là “headless mode”.)
VRAM trên hệ thống nhiều GPU cho Redshift
Redshift không kết hợp VRAM khi sử dụng nhiều GPU. Ví dụ: nếu bạn cài GPU 24 GB và GPU 16 GB trên một hệ thống thì tổng VRAM có sẵn cho Redshift sẽ không phải là 40 GB. Đây là một hạn chế của công nghệ GPU hiện nay và không liên quan tới Redshift.
Mỗi GPU chỉ có thể sử dụng VRAM riêng trừ khi chúng được liên kết với nhau bằng NVLink. (NVLink là một công nghệ từ NVidia, có thể “kết nối” hai GPU lại với nhau để chúng có thể chia sẻ bộ nhớ của nhau. Trong một số trường hợp, việc chia sẻ bộ nhớ có thể ảnh hưởng đến hiệu suất). Nếu có sẵn NVLink, Redshift sẽ tự động sử dụng.
Bạn cần bao nhiêu VRAM cho Redshift?
Hiệu suất render Redshift phụ thuộc rất nhiều vào khả năng xử lý của GPU và dung lượng VRAM của nó. Hãy đảm bảo scene của bạn vừa với VRAM để GPU hoạt động với hiệu suất tối đa.
Redshift có thể render các scene đơn giản với ít polygon và họa tiết có độ phân giải thấp một cách hiệu quả bằng cách sử dụng GPU VRAM 8GB. Tuy nhiên, đối với các dự án phức tạp hơn sử dụng kết cấu có độ phân giải cao và số lượng đa giác cao, tốt nhất nên có GPU có ít nhất 10GB VRAM. Điều này sẽ đảm bảo scene của bạn hoàn toàn vừa khớp với bộ nhớ GPU và không bị lưu trữ một phần trong RAM hệ thống, điều này có thể làm giảm đáng kể tốc độ. Với nhiều VRAM được phân bổ hơn, Redshift render nhanh hơn đáng kể, đặc biệt đối với các scene 3D phức tạp có số lượng đa giác lớn, họa tiết có độ phân giải cao và ánh sáng phức tạp.
Tóm lại, yêu cầu VRAM cho các mức khối lượng render của Redshift là:
-
- Scene đơn giản: 8GB VRAM
- Scene phức tạp vừa phải: 10-16GB VRAM (RTX 3080/RTX 4080)
- Scene rất phức tạp: 24+GB VRAM (RTX 3090/RTX 4090 hoặc A5000/A6000) hoặc nhiều GPU
Nguồn: Puget Systems
Xử lý lỗi Out-of-VRAM trong Redshift
Trong một số trường hợp, Redshift có thể thông báo lỗi hết VRAM sau và hủy render:
“Redshift cannot operate with less than 256MB of free VRAM. Frame rendering aborted“
hoặc…
“There is less than 128MB of free VRAM once fixed data and minimal ray memory are considered”
Mặc dù hỗ trợ render “out-of-core”, Redshift vẫn cần một lượng VRAM trống nhất định để hoạt động. Các thông báo trên có nghĩa là Redshift không tìm được lượng VRAM tối thiểu đó và không thể tiếp tục render.
Những thông báo này chủ yếu xảy ra trên GPU có lượng VRAM hạn chế (như 4GB – 6GB) hoặc khi có các ứng dụng sử dụng GPU khác đang chạy. GPU có VRAM 11GB trở lên ít có khả năng xảy ra lỗi như vậy.
Giải pháp tốt nhất cho lỗi này là sử dụng Redshift trên GPU có nhiều VRAM nhất có thể (như 24GB).
Nếu không đủ tiền mua GPU VRAM cao, bạn có thể thử dùng GPU tương đối rẻ làm màn hình chính bằng cách kết nối nó với khe PCIe thích hợp trong máy tính và đảm bảo màn hình được kết nối với GPU đó chứ không phải GPU khác mà bạn sẽ sử dụng cho Redshift! Như đã đề cập ở trên, việc ngắt kết nối màn hình khỏi GPU được gọi là “headless mode“. Khi ở chế độ này, các ứng dụng 3D và Windows sẽ không sử dụng GPU đó và do đó sẽ không lấy VRAM từ nó, nên Redshift sẽ có VRAM để render.
Ngoài hai phương pháp trên, còn có nhiều nguyên nhân khác khiến Redshift thiếu VRAM để render. Dưới đây là danh sách các nguyên nhân đó và giải pháp phổ biến bạn có thể tham khảo.
SLI
Nếu bạn đang chạy nhiều GPU và đã bật SLI, lỗi hết VRAM có thể xảy ra do hạn chế của CUDA.
Giải pháp: Tắt chế độ multi-GPU ở NVidia Control Panel. Khi đó, Redshift vẫn có thể phát hiện và sử dụng tất cả các GPU, nhưng các tựa games sẽ không thể sử dụng nhiều GPU cùng một lúc.
Google Chrome
Trình duyệt web Google Chrome có thể sử dụng lượng VRAM đáng kể, tùy thuộc vào nội dung web được hiển thị.
Giải pháp: Tắt Chrome hoặc đóng nhiều tab nhất có thể trước khi render.
Render viewport OpenGL
Một số phần mềm 3D (như Cinema 4D, Maya, 3Ds Max, Houdini, v.v.) render viewport bằng OpenGL. OpenGL sử dụng GPU nên nó có dùng VRAM. Tùy thuộc vào nội dung viewport, OpenGL có thể sử dụng ít hoặc nhiều VRAM. Các scene có nhiều polygon hoặc sử dụng nhiều họa tiết và bật hardware texturing trong cài đặt viewport có thể sẽ sử dụng một lượng nhất định VRAM.
Giải pháp: Nếu scene của bạn nặng về đa giác hoặc kết cấu viewport, bạn nên render bằng cách sử dụng bounding boxes và tắt hardware texturing.
Các ứng dụng GPU khác
Redshift không phải là ứng dụng duy nhất sử dụng GPU. Các ứng dụng khác như Photoshop, Nuke và Mudbox có thể sử dụng lượng kha khá VRAM nếu bật và sử dụng một số tính năng tăng tốc GPU nhất định.
Giải pháp: Không phải lúc nào cũng biết chính xác ứng dụng nào đang sử dụng GPU và chúng đang tiêu thụ bao nhiêu VRAM. Do đó, nếu không chắc chắn về bộ nhớ khả dụng, bạn nên đóng mọi ứng dụng này trước khi render.
Dùng driver cũ
Trong một số ít trường hợp, driver đồ họa cũ có thể gây ra lỗi hết VRAM. Ngoài ra, việc update driver hoặc phần mềm khác có thể tạo ra những thông báo này ngay cả trên những máy trước đây vẫn hoạt động tốt.
Giải pháp: Sử dụng Redshift với các bản driver mới, được phát hành trong vòng vài tháng thay vì mới nhất. Sau khi update driver, bạn cần khởi động lại máy tính. Việc khởi động lại đôi khi có thể giải quyết các sự cố hết VRAM do lỗi driver hoặc ứng dụng 3D “bị kẹt”.
Một phiên bản khác của ứng dụng 3D đang chạy
Chạy ứng dụng 3D nhiều lần cùng một lúc có thể tiêu tốn lượng VRAM đáng kể. Trong một số trường hợp, bạn có thể chạy nhiều phiên bản của một ứng dụng mà không nhận ra do lỗi phần mềm.
Giải pháp: Chỉ chạy một phiên bản ứng dụng 3D. Bạn cũng nên kiểm tra Task Manager trên Windows xem có bất kỳ quy trình trùng lặp nào đang chạy không, ví dụ như các ứng dụng 3D như Cinema 4D, Houdini, 3Ds Max hoặc Maya.
iRender - Render Farm nhanh nhất cho render Redshift
iRender có cấu hình máy tính mãnh mẽ nhất cho render
Chúng tôi cung cấp dịch vụ cho thuê server (máy tính từ xa), với cấu hình linh hoạt 1/2/4/6/8x RTX 4090 và RTX 3090. Với CPU khỏe là AMD Ryzen™ Threadripper™ PRO 3955WX @ 3.9 – 4.2GHz và AMD Ryzen™ Threadripper™ PRO 5975WX @ 3,6 – 4,5 GHz, bộ nhớ RAM 256GB và dung lượng ổ cứng NVMe SSD 2T, server của chúng tôi có thể xử lý hầu hết mọi mức độ phức tạp của các dự án 3D.
iRender cung cấp cho bạn quy trình làm việc tự do
Bạn sẽ có toàn quyền sử dụng máy thuê theo nhu cầu, để cài đặt Redshift, plugin và/hoặc bất kỳ phần mềm phiên bản nào trên máy của chúng tôi. Môi trường làm việc trên máy được bảo mật riêng theo tài khoản người dùng.
iRender có máy cài sẵn C4D và Redshift
Là đối tác của Maxon, chúng tôi cung cấp các máy cài sẵn C4D và Redshift. Hiện chúng tôi cung cấp free license C4D và Redshift giúp đơn giản hóa quy trình làm việc của người dùng.
Dưới đây là video hướng dẫn quy trình làm việc sử dụng C4D và Redshift thông qua desktop app (iRender GPU) của chúng tôi:
Nhận ưu đãi 100% cho khoản nạp đầu tiên trong vòng 24 giờ đăng ký từ chương trình ưu đãi đặc biệt tháng 4 của chúng tôi.
Để biết thêm thông tin, xin vui lòng liên hệ với chúng tôi qua email [email protected] hoặc số điện thoại +84915875500.
iRender – Happy Rendering!
Nguồn tham khảo: Nvidia, Techgage, Puget Systems