[LLVMdev] Performance vs other VMs
Jon Harrop
jon at ffconsultancy.com
Fri Jan 30 12:56:44 PST 2009
The release of a new code generator in Mono 2.2 prompted me to benchmark the
performance of various VMs using the SciMark2 benchmark on an 8x 2.1GHz
64-bit Opteron and I have published the results here:
http://flyingfrogblog.blogspot.com/2009/01/mono-22.html
The LLVM results were generated using llvm-gcc 4.2.1 on the C version of
SciMark2 with the following command-line options:
llvm-gcc -Wall -lm -O2 -funroll-loops *.c -o scimark2
Mono was up to 12x slower than LLVM before and is now only 2.2x slower on
average. Interestingly, the JVM scores slightly higher than LLVM on this
benchmark on average and beats LLVM on two of the five individual tests.
The individual scores are particularly enlightening. Specifically:
. LLVM outperforms all other VMs by a significant margin on FFT, Monte Carlo
and sparse matrix multiply.
. LLVM is beaten by the JVM on successive over-relaxation (SOR) and LU
decomposition.
In the context of the SOR test, I suspect the JVM is using alias information
to perform optimizations that LLVM and llvm-gcc probably do not do.
I am not sure what causes the performance discrepancy on LU. Perhaps the JVM
is generating SSE instructions. Does llvm-gcc generate SSE instructions under
any circumstances?
--
Dr Jon Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/?e
More information about the llvm-dev
mailing list