-
Notifications
You must be signed in to change notification settings - Fork 766
Performance
Lingzhu Xiang edited this page Feb 18, 2016
·
48 revisions
Benchmarking setup:
- Report CPU and GPU models
- Report OS version (include kernel version if Linux), compiler version, API versions (OpenGL/CUDA/OpenCL if you can find it)
- Report date of testing.
- Build with
-DENABLE_CXX11=ON
- Set environment variable
export LIBFREENECT2_DETAILED_TIMING=1
.
Benchmarking cases:
- Linux
- CPU/TurboJPEG
LIBVA_DRIVER_NAME=none Protonect -noviewer cpu
- The pure software pipeline - OpenGL/TurboJPEG
LIBVA_DRIVER_NAME=none Protonect -noviewer gl
- The OpenGL compatibility pipeline - Intel-OpenCL/VAAPI
Protonect -noviewer cl
- The full Intel pipeline - CUDA-OpenCL/VAAPI
Protonect -noviewer cl
- The how-poorly-does-Nvidia-support-OpenCL pipeline - CUDA/VAAPI
Protonect -noviewer cuda
- The Nvidia and VAAPI mixed pipeline - CUDA/TegraJPEG
Protonect -noviewer cuda
- The Jetson TK1 pipeline
- Windows
- CPU/TurboJPEG
Protonect -noviewer cpu
- The pure software pipeline - OpenGL/TurboJPEG
Protonect -noviewer gl
- The OpenGL compatibility pipeline - Intel-OpenCL/TurboJPEG
Protonect -noviewer cl
- The full Intel pipeline - CUDA/TurboJPEG
Protonect -noviewer cuda
- The Nvidia and VAAPI mixed pipeline
- Mac OS X
- CPU/TurboJPEG
Protonect -noviewer cpu
- The pure software pipeline - OpenGL/VT
Protonect -noviewer gl
- The OpenGL compatibility pipeline - OpenCL/VT
Protonect -noviewer cl
- The OpenCL pipeline
If a particular configuration is tested but fails:
- If the failure is a known unsolved issue, report it.
- If the failure is a solved issue that can be fixed by the user, do not report it.
TODO: Maybe use -gpu=0
or -gpu=1
to select GPU?
The page is work in progress.
- VA-API (Intel, Linux): Good
- Intel Media SDK (Intel, Windows): possible to implement. mfx_mft_mjpgvd_64.dll 91CD2D6E-897B-4FA1-B0D7-51DC88010E0A Intel Hardware M-JPEG decoder MFT - it's probably an abstraction over DXVA/D3D11.
- VDPAU (Nvidia): No. Does not support JPEG at all.
- Tegra: In fact in all of Nvidia's products, only Tegra has hardware JPEG decoder (A separate tegra libjpeg decoder is being worked on).
- AMD implements JPEG decoder with OpenCL, but we don't want it to compete with depth decoding for resources. (I evaluated GPUJPEG, and it was not good.)
- Samsung's Exynos4 provides JPEG codec via v4l2, but this is for mobile devices.
- I looked at mpv and ffmpeg. They have no hardware acceleration for JPEG at all.
- Chromium uses VAAPI and V4L2.
- On Mac a new decoder is provided by @fran6co. (@fran6co: The mac decoder is not hardware accelerated yet, if they ever decide to do it my implementation is going to have it.)