Closed porst17 closed 9 years ago
It seems that fbsuite
is mostly unusable since it contains ELF 32-bit dynamic executables: piozone, bonnie++, stream, cachebench
, which cannot be run (i suspect: because of incompatible modern amd64 linux kernels or libc used by our images) :(
Fortunately after some searching i was able to uncover these tools:
Bonnie++
(Filesystem) is available as a standard packageX11perf
(2D Performance) seems to be a standard X11 tool.Stream
(RAM) is available from http://www.cs.virginia.edu/stream/FTP/Code/stream.cCachebench
(L1/L2 Cache) cachebench is nowadays being a part of llcbenchnbench
(CPU) - the only static 32 bit tool which can be run. It is available from http://www.tux.org/~mayer/linux/bmark.html. Although they look ancient i can build and bundle them for us (64 bit modern libc/linux kernel) but would like to look for more recent alternatives... ok?
Besides:
glxinfo | grep rendering
gives direct rendering: Yes
, glxdemo & glxgears can be run. glxgears: windowed ~100 fps, fullscreen: ~38 fps.GpuTest 0.7.0
seems to run (after installing pciutils
) but its performance is not good for me :(In order to be able to compare benchmarks i would propose to measure them as follows:
what do you think?
Just one short comment: direct rendering: Yes
just means that X11 is bypassed for the most part and most OpenGL calls are send directly to the OpenGL implementation (usually to the device driver via a certain library). Also the Mesa software renderer is such an implementation. Check if glxinfo | grep "renderer string"
gives something with Gallium
, which is the Mesa software renderer or Chromium
, which is the OpenGL driver of VirtualBox, which in turn gives access to the 3D acceleration of the VM host.
Benchmarking Gallium is certainly not very meaningful.
glxinfo | grep "renderer string
gives Gallium 0.4 on llvmpipe (LLVM 3.4, 128 bits)
independent on whether LIBGL_ALWAYS_INDIRECT
was set or not.
setting LIBGL_ALWAYS_INDIRECT=1
indeed results in
direct rendering: No (LIBGL_ALWAYS_INDIRECT set)
and GpuTest would not even start anymore. :-(
note that i currently have x11 image running Xorg (no Guest Additions) in a separate container and GpuTest
in another container.
my understanding was that we use VirtualBox for testing the proof-of-concept and we are not planning to run heavy 3D or GPU-demanding applications from under VirtualBox due to its limitations... or am i wrong?
i am planning to run GpuTest
(with and without LIBGL_ALWAYS_INDIRECT
) using x11 with guest additions (e.g. using vboxvideo
) under my testing VM... and will also check the glxinfo
...
should i skip that?
The point of accessing the VirtualBox dri
module is that it provides hardware acceleration (though virtualized), while Mesa with Gallium 0.4 on llvmpipe (LLVM 3.4, 128 bits)
is just software rendering. The Proof-Of-Concept must prove that it can actually run our target applications on docker, i.e. this is part of the concept to be proven. If we are able to use the VirtualBox driver properly (meaning: reliably, without using ugly hacks), we should be able to use the Intel, NVidia and AMD drivers as well when the platform is running a physical, not a virtual host.
Regarding your request about demanding 3D applications in VirtualBox: There are two kinds of demands: OpenGL feature set and OpenGL speed. The feature set is limited to OpenGL 2.x in VirtualBox, but the speed should be comparable to OpenGL 2.x speed on the VM host due to OpenGL call forwarding (+ some overhead which makes some simple applications like glxgears
quite slow). Hence, we could even add some of the demanding OpenGL 2.x applications of IMAGINARY to the Proof-Of-Concept if we get VirtualBox 3D acceleration to work properly in a docker container.
Hm, do you think we should try 3D benchmarking on Intel & ATI GPU's as well?
No, I think the result will be similar. We now know what actually affects the performance of programs running in a container (esp. related to 3D) due to your extensive testing.
Now that we have basic support for graphics, audio, etc., we have to test the various requirements of some apps in a real world setting.
The following things have to be tested and compared between host and docker container:
sudo apt-get install mesa-utils
,glxinfo
, also check forglxinfo | grep rendering
This should also be tested on a physical system, not only in a VM.
If there are significant differences between host and docker container, we have to find out, if this can be fixed and how, and how this influences or infrastructure.
Independent issues should be opened for issues that arise during benchmarking. This issue is for general discussion of the benchmark, posting of benchmark results and its consequences.