The benchmark script sets the enabled devices itself, hence the script to enable all GPUs has no effect. Since the purpose of the benchmark is to evaluate the performance of a specific CPU or GPU, it only enables one (compute) device at a time. This can be seen by taking a look at the benchmark scripts.
main.py it first parses the supplied arguments and starts the benchmark. You can specify which device shall be used through the optional
--device argument. The
_benchmark() function gets the requested device as an argument and calls the
render() function from the
render.py script. It enables the requested device either through
_enable_device() which in turn calls
_enable_cpu_device(), depending whether the benchmark should be performed for a GPU or CPU. In your case it would be using the former function.
_enable_compute_device() first disables all enabled graphics cards. If you supplied a specific GPU, it will try to enabled it. If no GPU was given as an argument (
requested_device.name is None), it first tries to find one that isn't used as display device and if no such GPU exists, it picks the first one available. In both cases it only enables one GPU and it's the first one that matches the criteria.
Therefore you need to call the benchmark script multiple times and supply the GPU name through the
--device argument for each run. The available device names can be printed to the terminal by using the
Alternatively you would have to modify the script. However, this would also break the JSON reporting function since it expects exactly one device to be enabled. The report format could be modified as well, but it would not be possible to upload the modified reports to the Open Data platform.