Bạn nên sử dụng NVLink hay SLI hay đa GPUs để kết xuất?
Việc dùng nhiều GPU đang trở nên phổ biến hơn bao giờ hết, bởi vì các tác vụ tính toán đang ngày càng phức tạp hơn. Điều này dẫn đến xu hướng mở rộng điện toán GPU. Đặc biệt là trong Kết xuất 3D, nơi bạn muốn đạt được thời gian kết xuất nhanh hơn bất kỳ thứ gì khác. Để đáp ứng xu hướng này, có những công nghệ giúp bạn kết nối hai hoặc nhiều GPU và tăng quy mô hiệu suất, như NVLink hay SLI. Tuy nhiên, bạn có thể mong đợi sự trợ giúp hoàn hảo từ chúng hay không, hay chúng có chứa đựng những mặt trái? Hãy cùng iRender khám phá những câu hỏi đó.
SLI là gì?
SLI là viết tắt của Scalable Link Interface. Nó được NVIDIA phát hành lần đầu tiên vào năm 2004 (trước đó công ty 3dfx – sau đó được NVIDIA mua lại, đã giới thiệu nó với thế giới vào năm 1998), với mục đích cải thiện hiệu suất của nhiều GPU GeForce khi chúng hoạt động cùng nhau.
Công nghệ này cho phép bạn sử dụng tối đa bốn cards cùng một lúc. Nó hoạt động theo mối quan hệ phân cấp, với thuật toán xử lý song song, trong đó một GPU sẽ là master và GPUs còn lại sẽ là slaves. Master sẽ lấy thông tin, chia thành nhiều phần nhỏ hơn, chi phối và chỉ đạo khối lượng công việc của các slaves. Bây giờ, công việc sẽ được xử lý cùng một lúc bằng nhiều cards.
Khi là mối quan hệ phân cấp, nó có nghĩa là nếu bạn có hai card 11GB, bạn sẽ không có tổng cộng 22 GB VRAM mà chỉ có 11 GB của master.
NVLink là gì?
NVLink là một dạng cao cấp hơn của SLI. Nó được sử dụng để kết nối nhiều GPU để chúng có thể hoạt động cùng một lúc. Tuy nhiên, đây là công nghệ mới nên sẽ có những điểm khác biệt so với SLI.
Trước hết, NVLink chỉ có thể kết nối hai card cho người dùng thường và tối đa 16 cards cho cards kiểu doanh nghiệp. Vậy là số lượng GPU có thể được kết nối nhiều hơn SLI.
Thứ hai, bạn có thể mong đợi nhiều băng thông hơn với NVLink. Trong khi SLI chỉ có thể đạt được 2 GB/s thì NVLink có thể giúp bạn đạt tốc độ tới 200GB/s. Vì vậy, NVLink giải quyết được nút thắt cổ chai về tốc độ truyền thông tin của SLI.
Một điểm tiến bộ quan trọng của NVLink so với SLI là NVLink không hoạt động theo mối quan hệ master – slave. Nó hoạt động dựa trên mesh networking, nơi có giao tiếp hai chiều và mỗi card có thể truy cập bộ nhớ của card kia.
Vậy nó tốt hơn mối quan hệ master-slave của SLI như thế nào? Với SLI, bạn có một card master, nó sẽ sử dụng phần lớn sức mạnh tính toán của mình để thu thập và định hướng dữ liệu từ các card slaves khác. Vì vậy, tất nhiên, bạn không thể có được toàn bộ sức mạnh của card master để kết xuất. Với NVLink, bạn có mỗi GPU hoạt động độc lập với nhau. Mỗi GPU có thể giao tiếp với nhau và với CPU trực tiếp mà không cần phải gửi thông tin đến một master.
Trong khi sự kết hợp của 2 cards sử dụng SLI không thể đạt được VRAM gấp đôi, thì có thể nói rằng với NVLink, bạn sẽ có được gấp đôi VRAM. NVLink cho phép bạn gộp VRAM lại, biến nó thành một lựa chọn thích hợp cho các tác vụ tính toán phức tạp.
Ưu và nhược điểm của SLI và NVLink
Khái niệm cơ bản của NVLink hay SLI là làm cho 2 hoặc nhiều GPU hoạt động cùng nhau và tăng hiệu suất của chúng. Trên thực tế, hai công nghệ này đã giúp nhiều GPUs hoạt động và giao tiếp với nhau. Và tất nhiên, làm việc với nhiều GPUs sẽ tốt hơn một GPU; và làm việc với nhiều GPUs, nơi chúng có thể nói chuyện và hoàn thành một công việc cùng nhau sẽ tốt hơn nếu chúng chỉ làm riêng lẻ.
Tuy nhiên, đối với hầu hết các trường hợp, nó có thực sự xứng đáng không? Một quan niệm sai lầm về SLI và NVLink là bạn có thể nhận được tốc độ gấp đôi, gấp ba, thậm chí gấp bốn lần hoặc nhiều bộ nhớ VRAM khi dùng nhiều card đồ họa hơn. Thật không may, nó không lý tưởng như vậy. Việc các GPUs của bạn được kết nối với nhau bằng cầu nối SLI hoặc NVLink có nghĩa là bạn có thể gặp nhiều rắc rối tiềm ẩn về nhiệt và lỗi.
Với SLI, bạn không thể truy cập nhiều VRAM hơn GPU master, khiến bạn không thể làm việc với một tác vụ lớn và phức tạp. NVLink, mặc dù có thể giúp bạn truy cập thêm VRAM, băng thông nhưng hầu như cũng chỉ thế. Nó sẽ là một vị cứu tinh nếu cảnh của bạn quá phức tạp và VRAM có sẵn của một card là không đủ. Nhưng đối với cảnh đơn giản có thể tận dụng chỉ một card, tại sao phải thêm nhiều phần cứng hơn và buộc PC của bạn phải phân phối tài nguyên của mình để phục vụ nó?
Bạn nên sử dụng NVLink hay SLI hay đa GPUs để kết xuất?
Cái này thực sự phụ thuộc vào nhu cầu của bạn và vào phần mềm của bạn. Hãy nói về một số công cụ kết xuất có thể chạy đa GPUs như Arnold, Octane, Redshift, V-Ray, Cycles, v.v.
Một số phần mềm hỗ trợ NVLink hay SLI, thế thì bạn có thể sử dụng chúng. Một số không hỗ trợ những công nghệ đó, do đó bạn không thể sử dụng chúng. Một số được khuyến nghị sử dụng với SLI, một số thì không. Ví dụ: các nhà phát triển của Arnold và Vray đề xuất bật SLI, trong khi các nhà phát triển Octane, Redshift và Cycles không đề xuất điều đó. Với NVLink, nó liên quan đến mức độ phức tạp của cảnh của bạn.
Trước hết, bạn có thực sự cần SLI hoặc NVLink để có thể kết xuất đa GPUs không? Câu trả lời là không. Về tự nhiên, tất cả phần mềm kết xuất đa GPUs đều có thể chạy nhiều GPUs riêng biệt mà không cần bất kỳ công nghệ nào để kết nối chúng. Khi tạo ra các kết xuất cuối cùng, công cụ kết xuất thường thích kết xuất theo bucket, có nghĩa là hình ảnh được kết xuất dần, từ những ô vuông nhỏ, được gọi là bucket. Số lượng bucket được xác định bởi số lượng GPU bạn có trong hệ thống của mình.
Bạn có thể thấy trong hình bên dưới, đó là quá trình kết xuất cuối cùng, với một hình ảnh lớn bao gồm nhiều bucket, mỗi bucket là một hình vuông nhỏ.
Câu hỏi thứ hai là: SLI và NVLink có tăng tốc thời gian kết xuất chính xác như số lượng GPU bạn có không? Câu trả lời rất tiếc là không. Việc sử dụng trình kết nối và buộc máy tính của bạn phải phân phối tài nguyên cho nó sẽ khiến nó không sử dụng công nghệ đó một cách hoàn hảo. Hãy xem thử nghiệm của Chaos về kết xuất V-Ray GPU, có và không có NVLink.
Bốn cảnh đầu tiên cho cùng một kết quả, trong đó việc bật NVLink chỉ làm tăng thời gian kết xuất so với việc tắt NVLink. Chỉ có cảnh cuối cùng là kết xuất được với sự trợ giúp của NVLink, do độ phức tạp của nó và VRAM 11 GB của một card RTX2080Ti không thể xử lý.
Câu hỏi thứ ba là: không dùng NVLink hay SLI, thời gian kết xuất sẽ tăng tốc gấp 2 lần nếu bạn có 2 GPUs so với 1 GPU? Câu trả lời cũng là không. Đây là trường hợp tốt nhất mà không dễ đạt được trong thực tế. Ngay cả công cụ kết xuất như Octane, vốn tuyên bố rằng tốc độ kết xuất của nó là hoàn toàn tuyến tính, cũng không thể đạt được điều đó. Hãy xem thử nghiệm của chúng tôi đối với Redshift, Octane và V-Ray trên các máy chủ của chúng tôi 1/2/4/6/8 x RTX3090:
Hiệu suất kết xuất Redshift trên máy đa RTX 3090s của iRender
Hiệu suất kết xuất Octane trên máy đa RTX 3090s của iRender
Hiệu suất kết xuất V-Ray trên máy đa RTX 3090s của iRender
Thời gian kết xuất sẽ giảm đáng kể khi sử dụng nhiều GPU hơn, nhưng nó không phải là tuyến tính trong mọi trường hợp. Với Redshift và Octane, nếu bạn sử dụng 2 GPUs, bạn có thể kết xuất nhanh hơn 2 lần so với 1 GPU. Nhưng nó lại không áp dụng cho V-Ray. Hoặc máy 4 GPUs nhanh hơn khoảng 1,8 lần so với máy 2 GPUs khi bạn kết xuất Redshift. Hoặc máy 8 GPUs nhanh hơn khoảng 1,6 lần so với máy 4 GPUs khi bạn kết xuất Octane.
Vì vậy, bạn nên nhớ rằng nhiều GPUs hơn, ngay cả khi bạn kết nối chúng hoặc sử dụng chúng riêng biệt, chỉ giúp bạn kết xuất nhanh hơn thôi chứ không phải kết xuất nhanh hơn chính xác tuyến tính gấp đôi, gấp tư.
Kết luận
Ý tưởng kết nối hai GPUs để chúng có thể hoạt động như một không phải là mới, và với những nỗ lực không ngừng, chúng ta đã thấy nhiều công nghệ được giới thiệu. Tuy nhiên, cho đến nay, không có công nghệ nào có thể giúp bạn kết nối hai (hoặc nhiều) GPUs và làm cho chúng hoạt động hoàn hảo như một. NVLink, theo một nghĩa nào đó, có thể làm được điều đó. Tuy nhiên, việc các GPUs có thể giao tiếp với nhau nhanh hơn và chia sẻ VRAM, thì còn xa cái thực tế là các GPU này sẽ trở thành một và giúp bạn có được tốc độ kết xuất tuyến tính.
Để đạt được hiệu suất tốt hơn, đôi khi điều đó dễ dàng hơn bạn nghĩ. Tối ưu hóa cảnh của bạn, giảm bớt một số thứ không cần thiết có thể sẽ hữu ích hoặc chỉ cần bạn kết xuất bằng các GPUs mà không cần bất kỳ trình kết nối nào như SLI hoặc NVLink. Bạn sẽ cần chúng cho những trường hợp đặc biệt, nhưng trong hầu hết các trường hợp, chúng là rào cản và bạn chỉ cần đơn giản thôi.
Đăng ký tài khoản ngay hôm nay để nhận bonus 20% cho người dùng mới trải nghiệm dịch vụ của iRender. Hoặc liên hệ với chúng tôi qua Zalo: (+84) 916 806 116 để được tư vấn và hỗ trợ.
Happy rendering!