It turns out that RPRs multi GPU performance on macOS 10.14.6 (now that VEGA drivers are fixed) is being affected negatively by a Noise Threshold Bug in the Blender plug-in when Noise Threshold is set to anything else except 0.00.
Question: Why is it quicker (Test 2: 9.74s) to render an image on 1 GPU than it is on 3 GPUs (Test 1: 10.63s)?
Answer: Noise Threshold is set to 0.05
Test 1: Vega 20 + RX 580 + WX 9100
Noise Threshold 0.05 (Max Samples 250)
Resulting image = almost no noise, pretty quick time.
10.63s
![pastedImage_9.png pastedImage_9.png](/t5/image/serverpage/image-id/16393i8D0765EEC953DE99/image-size/large?v=v2&px=999)
Test 2: Solo WX 9100
Noise Threshold 0.05 (Max Samples 250)
Resulting image = correct amount of noise, but faster time than above but image is noisy.
9.74s
![pastedImage_10.png pastedImage_10.png](/t5/image/serverpage/image-id/16394iFE2EAD827F79609B/image-size/large?v=v2&px=999)
Question 2: Why is is quicker to render on 3 GPUs (Test 4: 10.53s) than it is on 1 GPU (Test 3: 15.17s)?
Answer: It's meant to be. Noise Threshold was set to 0.00.
Test 3: - Solo WX 9100
Noise Threshold 0.00 (Max Samples 250)
Resulting image = no noise, a lot more time.
15.17s
![pastedImage_11.png pastedImage_11.png](/t5/image/serverpage/image-id/16395iF235D2305DD5F8E8/image-size/large?v=v2&px=999)
Test 4: Vega 20 + RX 580 + WX 9100
Noise Threshold 0.00 (Max Samples 250)
Resulting image = almost no noise. Suspicious time result - it's almost identical to Test 1. Suspiciously similar image output and time? Is the Noise Threshold setting being respected in Test 1? It seems to be a bug.
10.53s
![pastedImage_12.png pastedImage_12.png](/t5/image/serverpage/image-id/16396i71893DDAC5C55CC6/image-size/large?v=v2&px=999)
Conclusion: Noise Threshold is not being respected when multiple GPUs are used.
All tests conducted with latest Blender 2.80 Nightly (23 July 2019) using a 2019 MacBook Pro i9 8-core 2.4GHz 32GB RAM on macOS 10.14.6.
Sample file attached.
Update:
I'd like to also add that this bug also affects the Tiled Rendering feature.
Tiled rendering / Noise Threshold 0.1 / 3xGPUs = 1m44 - noiseless image:
![pastedImage_1.png pastedImage_1.png](/t5/image/serverpage/image-id/16397i93AC22CD1E09A27E/image-size/large?v=v2&px=999)
Tiled rendering / Noise Threshold 0.0 / 3xGPUs = 1m45 - noiseless image:
![pastedImage_2.png pastedImage_2.png](/t5/image/serverpage/image-id/16398iA7D9D1474443C810/image-size/large?v=v2&px=999)
Tiled rendering is not respecting Noise Threshold on multiple GPUs.
But it does respect Noise Threshold with Tiled Rendering when set to use 1 GPU (1m16). The resulting image is correctly noisy and the rendering time lower for 1 GPU than 3 GPUs:
![pastedImage_3.png pastedImage_3.png](/t5/image/serverpage/image-id/16399i60B948EB8BEE0AA4/image-size/large?v=v2&px=999)