So you want OpenCL-benchmarks? Phoronix is a benchmark for OSX and Linux, created by Michael Larabel, Matthew Tippett (http://en.wikipedia.org/wiki/Phoronix_Test_Suite). On Ubuntu Phoronix version 2.8 is in the Ubuntu “app store” (Synaptic), but 3.0 has those nice OpenCL-tests. The tests are based on David Bucciarelli‘s OpenCL demos. Starting to use Phonornix 3.0 (beta 1) is done in 4 easy steps:
- Download the latest beta-version from http://www.phoronix-test-suite.com/?k=downloads
- Extract. Can be anywehre. I chose /opt/phoronix-test-suite
- Install. Just type ./phoronix-test-suite in a terminal
- Use.
WARNING: It is beta-software and the following might not work on your machine! If you have problems with this tutorial and want or found a fix, post a reply.
Let’s start with listing all tests:
> ./phoronix-test-suite list-available-suites
Generating this takes a while, so here are the results for the impatient:
Phoronix Test Suite v3.0.0b1 Available Suites pts/audio-encoding - Audio Encoding System pts/chess - Chess Test Suite Processor pts/compilation - Timed Code Compilation Processor pts/compiler - Compiler Processor pts/compression - Timed File Compression Processor pts/computational - Computational Test Suite System pts/computational-biology - Computational Biology Test Suite Processor pts/cpu - CPU / Processor Suite Processor pts/cryptography - Cryptography Processor pts/daily-kernel-tracker - Daily Kernel Tracker System pts/daily-system-tracker - Daily System Tracker System pts/database - Database Test Suite System pts/desktop-graphics - Desktop Graphics System pts/disk - Disk Test Suite Disk pts/encoding - Encoding System pts/favorites - Favorites System pts/gaming - Gaming System pts/gaming-closed - Closed-Source Gaming System pts/gaming-free - Free Software Gaming System pts/gui-toolkits - GUI Toolkits Graphics pts/ioquake3-games - Games Using The ioquake3 Engine System pts/iqc - Image Quality Comparison Suite Graphics pts/java - Java System pts/java-opengl - Java OpenGL System pts/kernel - Kernel System pts/linux-system - Linux System System pts/memory - Memory Test Suite Memory pts/mesa - Mesa Test Suite Graphics pts/motherboard - Motherboard System pts/multicore - Multi-Core Processor pts/netbook - Netbook Test Suite System pts/network - Networking Test Suite Network pts/nevada - OpenSolaris Nevada Test Suite System pts/opencl - OpenCL System pts/opengl-demos - OpenGL Demos Test Suite System pts/opengl-workstation - OpenGL Workstation Test Suite System pts/pts-desktop-live - PTS Desktop Live System pts/ray-tracing - Ray-Tracing Test Suite System pts/server - Server Motherboard System pts/unigine - Unigine Test Suite Graphics pts/universe - Universe Test Suite System pts/universe-cli - Universe CLI Test Suite System pts/universe-x - Universe X Test Suite System pts/video-encoding - Video Encoding System pts/workstation - Workstation System pts/workstation-graphics - Workstation Graphics Graphics pts/xrender - X Render Extension Testing Graphics
OpenCL
You saw the bold-printed “OpenCL”. We can start the test with:
> ./phoronix-test-suite benchmark pts/opencl
In my case I got a message
The following dependencies are needed and will be installed: - libsdl1.2-dev - libsdl-gfx1.2-dev - libsdl-net1.2-dev - libsdl-image1.2-dev - libsdl-ttf2.0-dev - lib3ds-dev
It was automatically installed, so very user-friendly. So it *seems* to work well, but then the error-messages pop up.
Fixing the tests
The tests are made for 64-bit Linux with an AMD/ATI GPU. You might not have it.
Go to ~/.phoronix-test-suite/installed-tests/pts/juliagpu-1.1.0 and open the zip-file. In the zip-file you need to edit “Makefile”, which looks like this:
(...) ATISTREAMSDKROOT=/home/david/src/ati-stream-sdk-v2.0-lnx64 CC=gcc CCFLAGS=-O3 -msse2 -mfpmath=sse -ftree-vectorize -funroll-loops -Wall -I$(ATISTREAMSDKROOT)/include -L$(ATISTREAMSDKROOT)/lib/x86_64 -lglut -lglut -lOpenCL # Jens's patch for MacOS, comment the 2 lines above and un-comment the lines below #CCFLAGS=-O3 -ftree-vectorize -msse -msse2 -msse3 -mssse3 -fvariable-expansion-in-unroller # -cl-fast-relaxed-math -cl-mad-enable -Wall -framework OpenCL -framework OpenGl -framework Glut (...)
So there is a patch to get it working on Apple (you lucky folks!). For BSD/Linux we need to patch this, to get it also working with NVIDIA-32, NVIDIA-64 and AMD-32 from the right directory. Just edit the Makefile from the zip as below (uncomment the right driver and fix the location).
# NVIDIA 32 #OPENCLLIB=/usr/local/cuda/lib/ #OPENCLINC=/usr/local/cuda/include/ # NVIDIA 64 #OPENCLLIB=/usr/local/cuda/lib64/ #OPENCLINC=/usr/local/cuda/include/ # AMD 32 #OPENCLLIB=/opt/ati-stream-sdk-v2.0-lnx32/lib/x86 #OPENCLINC=/opt/ati-stream-sdk-v2.0-lnx32/include # AMD 64 #OPENCLLIB=/opt/ati-stream-sdk-v2.0-lnx64/lib/x86_64 #OPENCLINC=/opt/ati-stream-sdk-v2.0-lnx64/include CC=gcc CCFLAGS=-O3 -msse2 -mfpmath=sse -ftree-vectorize -funroll-loops -Wall -I$(OPENCLINC) -L$(OPENCLLIB) -lglut -lglut -lOpenCL # Jens's patch for MacOS, comment the 2 lines above and un-comment the lines below #CCFLAGS=-O3 -ftree-vectorize -msse -msse2 -msse3 -mssse3 -fvariable-expansion-in-unroller # -cl-fast-relaxed-math -cl-mad-enable -Wall -framework OpenCL -framework OpenGl -framework Glut (...)
Save the file and say yes to update the zip-file. We can test the fix with:
> ./phoronix-test-suite benchmark pts/juliagpu-1.1.0
If it works, you can make the same changes for pts/mandelbulbgpu-1.1.0, pts/smallpt-gpu-1.1.0 and pts/mandelgpu-1.1.0
Bad luck? Try your luck with the originals of these tests.
Related Posts
Benchmarks Q1 2011
... Benchmark Month. The idea is that you do at least one of the following ... benchmark, please put a comment under this ...