Hướng dẫn render với GPU

book-montage-narrow-1024x541

Những cuộc hội thảo render với GPU thường kết thúc với rất nhiều câu hỏi. Tôi nên mua card màn hình nào? Nên mua card pro hay card game? Bộ nhớ card cần bao nhiêu là đủ? CUDA hay Open CL? và còn rất nhiều câu hỏi nữa.

Chaosgroup đã quyết định trả lời các câu hỏi đó qua 1 bài hướng dẫn, các bạn có thể download tại đây https://hoc3dsumo.edu.vn/guide-gpu-rendering.html

Trong bài hướng dẫn, Chaosgroup sẽ sơ lược về lịch sử render với GPU và CPU, xu hướng phần cứng và phần mềm hiện tại, những điều mong đợi cho tương lai. Sau đây tôi xin tóm lược những vấn đề chính trong bài hướng dẫn render với GPU của Chaosgroup

Khi nói đến render, tốc độ là yếu tố quan trọng nhất với các artist làm Kiến trúc hoặc film. Hiện tại có 2 công nghệ khác nhau: CPU(Central Processing Unit) và GPGPU (General Purpose Graphics Processing Unit), cả hai đều là những phần thiết yếu của 1 máy tính nhưng cách làm việc của chúng thì hoàn toàn khác nhau. Bài hướng dẫn này sẽ chỉ ra những ưu điểm và khuyết điểm của mỗi option

Mặc dù GPU đang là 1 chọn lựa hợp lý cho nhiều trường hợp nhưng không phải lúc nào nó cũng là chọn lựa tốt nhất hay duy nhất. Vray đã tích hợp sẵn GPU từ phiên bản năm 2008 và cho phép chọn 1 trong 2 để render CPU-GPU. Phần cuối cùng của hướng dẫn này sẽ tìm hiểu sâu về cách khai thác hiệu quả tối đa khi render với GPU.

dabarti-guitar-vrayrt-gpu-02-1024x576

Khác biệt giữa CPU và GPU

Để hiểu hơn sự khác biệt giữa CPU và GPU chúng ta bắt đầu với độ trễ và lưu lượng.

Độ trễ cho chúng ta biết thời gian cần để hoàn thành 1 tác vụ. Ví dụ chúng ta có 1 chiếc xe cần di chuyển từ A đến B, thì độ trễ sẽ cho ta biết khi nào xe sẽ đến B.

GPUguide_v1-8

Lưu lượng sẽ cho ta biết có bao nhiêu chiếc xe đi từ A đến B trong 1 khoảng thới gian nhất định. Như vậy, để tăng lưu lượng chỉ có 1 cách là làm giảm độ trễ bằng cách tăng tốc độ của xe

Hoặc chúng ta có thể thêm số xe với cách tăng thêm làn đường, với nhiều làn đường bạn có thể đạt được lưu lượng cao hơn thậm chí với tốc độ thấp hơn hoặc độ trễ cao hơn

GPUguide_v1-9

CPU được thiết kế cho độ trễ thấp (tốc độ nhanh hơn) và được tối ưu hóa cho các tác vụ đơn lẻ.

Mặt khác GPU được thiết kế cho các nhiệm vụ chạy song song ồ ạt (tới tấp) chẳng hạn như tính toán màu sắc của mội pixel trên màn hình. Một GPU có “giới hạn về tốc độ” nếu so sánh với CPU là khá chậm nhưng nó có thể mang nhiều xe đến cùng 1 lúc.

Driver là công cụ kết nối giữa các ứng dụng, hệ điều hành và phần cứng. Nếu driver đứng 1 mình thì nó là vô dụng, do đó cần 1 softwear để cho nó biết làm gì và làm như thế nào? Với CPU nó hoàn toàn dựa vào hệ điều hành như OS X, Windows hay Linux. Còn GPU dựa trên driver – kết nối giữa phần cứng và hệ điều hành.

Với các program non-GPU chỉ bao gồm các ứng dụng và hệ điều hành, còn GPU thì ngoài 2 yếu tố đó còn có thêm driver.

GPUguide_v1-12

Như vậy, chúng ta cũng đã hiểu phần nào về CPU và GPU. Tiếp tục, chúng ta sẽ tìm hiểu thêm khi render thì CPU và GPU có tác động như thế nào? ưu điểm hay nhược điểm khi người dùng chuyển từ CPU sang GPU với cùng 1 khung cảnh có cùng 1 chất liệu như nhau?

dabarti-guitar-vrayrt-gpu-01-1024x576

Render với CPU 

Ưu điểm:

  • Có lịch sử lâu đời: nói chung cái gì có thâm niên thì đều tốt và nó đã quen thuộc với mọi người hay nói cách dễ hiểu là “Gừng càng già càng cay”
  • Lựa chọn tốt nhất cho các tác vụ đơn luồng – single thread
  • Hầu như sử dụng toàn bộ tài nguyên sẵn có của máy tính: ví dụ CPU có thể sử dụng thêm RAM, ổ cứng để mở rộng thêm bộ nhớ, điều này làm cho nó linh hoạt hơn, ví dụ bạn có thể sử dụng thêm ổ SSD
  • Ổn định hơn

Nhược điểm:

  • Khó thêm CPU: vì khi muốn thay hoặc thêm CPU chúng ta phải thay luôn cả Mainboard, coi như mua 1 cái máy mới (Freelancer với phí thiết kế bèo bọt ko thích điều này ^^)
  • Muốn máy càng mạnh thì càng tốn tiền
  • Không hiệu quả: CPU thường lãng phí rất nhiều tài nguyên để cho ra kết quả

Hãy nhớ rằng: CPU thực sự tốt cho những tác vụ lớn, khi chúng ta có trong tay nhiều CPU ví dụ công ty hoặc tập đoàn thì CPU trở nên tốt hơn, đặc biệt là Render farm hoặc Cloud render

dabarti-excavator-vrayrt-gpu-01-1024x576

Render với GPU 

Ưu điểm:

  • Khả năng mở rộng: Thường thì 1 Mainboard có nhiều khe PCIe vì vậy việc lắp thêm các GPU cho 1 CPU là khả thi, điều này tiết kiệm hơn khi chúng ta chỉ cần 1 CPU và 1 bản quyền cho máy tính. Thường Bus speed cho PCIe là x1, x4, x8, x12, x16, x32, tôi khuyên các bạn nên dùng bus cao hơn vì nó có băng thông rộng hơn, nếu chỉ dùng để render bình thường (Production) mà không xài Interactive(Vray RT) thì trung bình khoảng x8-x16 là OK
  • Khả năng mở rộng độc lập: việc tăng số lượng GPU cho phép Vray tăng tốc theo GPU(ví dụ 2 GPU thì tốc độ tăng gấp đôi). Do đó thông thường bạn không cần 1 CPU mạnh để kéo các GPU mà cần 1 PSU-nguồn đủ tốt vì các GPU sẽ rất hao điện (khoảng 250W/GPU)
  • Tốc độ render rất nhanh: Rất nhiều setup render phù hợp cho GPU (các bạn có thể thấy vray 3.5 vừa ra có những cải tiến cho GPU rất đáng kể) Vray 3.5 có gì mới? . Nếu so sánh CPU và GPU với 1 giá tiền xấp xỉ thì GPU có thể nhanh hơn gấp 2 đến 15 lần CPU.
  • Có thể lợi dụng các bộ vi xử lý tích hợp sẵn trong GPU

Nhược điểm:

  • Bộ nhớ ít: GPU là 1 máy tính mini có bộ nhớ riêng nên thường bị hạn chế (GDDR3, GDDR5 hoặc HBM)
  • Bị nghẽn giao tiếp: Vì GPU muốn giao tiếp phải thông qua CPU nên nó không có quyền truy cập trực tiếp do đó độ trễ thông tin sẽ cao hơn và làm giảm hiệu suất. Mỗi GPU thường phải chứa toàn bộ Scene và texture để render nên nếu bạn có 2 video card 4Gb và 12Gb thì Scene render phải phù hợp với 4Gb còn nếu muốn mở rộng bộ nhớ hơn các bạn phải vô hiệu hóa card 4Gb để dùng card 12Gb
  • Phụ thuộc nhiều vào driver: vì drive được update và thay đổi thường xuyên
  • Phải cập nhật phần cứng thường xuyên
  • Sai sót trong tính toán với các GPU dành cho Game

render with gpu

Làm sao để chọn được GPU phù hợp?

Một artist chuyên nghiệp có thể sử dụng 1 trong 2 dòng card (Pro hoặc game) cho công việc của họ. Phổ biến dòng chuyên nghiệp là NVIDIA (Quadro) và AMD (Firepro), dòng phổ thông là NVIDIA (Geforce) và AMD (Radeon). Render với Vray không cần thiết chúng ta phải dùng những Card chuyên nghiệp đắt tiền, tùy Card, dòng phổ thông thậm chí có thể vượt trội hơn dòng chuyên nghiệp mà không phải tốn quá nhiều chi phí.

Các nhà sản xuất GPU sử dụng các APIs khác nhau cho card của họ. Chúng ta chỉ tập trung vào NVIDIA (CUDA) và AMD (Open CL) vì nó mang lại nhiều lợi ích cho người dùng Vray hơn. Qua hình dưới chúng ta có thể thấy CUDA độc quyền hơn, nó chỉ chạy với GPU NVIDIA còn OpenCL thì tương thích nhiều hơn. Vì vậy, bạn nào xài CPU chip Intel(i3, i5, i7) thì nên dùng OpenCL.

GPUguide_v1-18

Sử dụng Vray RT trong 3d max

  1. Mở bảng setting render (F10)\
  2. Ở phần trên cùng(max 2017) Target chọn Activeshade mode
  3. Renderer chọn Vray RT
  4. Engine type Chọn CUDA hoặc OpenCL tùy vào GPU của bạn
  5. Khi mở cửa sổ Activeshade thì Vray sẽ bắt đầu tính toán

GPUguide_ONLINE_new

Làm sao sử dụng GPU để render Production trong 3d max?

Trong bảng setting render -> Target-> Production rendering mode

Renderer chọn Vray RT

GPUguide_ONLINE_new

Kết luận

GPU đang dần trở nên khả thi hơn sau nhiều năm thống trị của CPU, tuy nhiên GPU vẫn không phải là lựa chọn tốt nhất cho mọi trường hợp. Hiện tại người dùng đa số vẫn yêu thích CPU hơn, và một số công việc làm trên CPU vẫn nhanh hơn. Để GPU được sử dụng rộng rãi hơn tôi nghĩ cần phải có thời gian để nó phát triển, hy vọng là 2 hoặc 3 năm nữa.

Biên soạn: SumoD

Tham khảo: https://labs.chaosgroup.com

 

13:31 23/03/2017
12586 lượt xem