Hi, I see sth that to me looks like a JIT bug. The program is the KMeans benchmark from the STAMP benchmark suite (http://stamp.stanford.edu). Overwrite ./common/Defines.common.mk with the attached files to make CC/LD customizable. in ./kmeans, for ./kmeans -m40 -n40 -t0.00001 -i inputs/random-n65536-d32-c16.txt -p 1 : make -f Makefile.seq clean CC='llvm-gcc' LD='llvm-gcc -lm' make -f Makefile.seq -->works, but is slower than gcc (35s vs 16s on my Intel 32b system) CC='llvm-gcc -emit-llvm' LD='llvm-ld -lm' make -f Makefile.seq --> does not work (lot's of NaN's in the output, and much faster (11s)) CC='llvm-gcc -emit-llvm' LD='llvm-ld -lm -disable-opt' make -f Makefile.seq --> does not work either CC='llvm-gcc -emit-llvm' LD='llvm-ld -lm -disable-opt -native' make -f --> looks as if it would work (and is faster, 16s) CC='llvm-gcc -emit-llvm' LD='llvm-ld -lm -native' make -f Makefile.seq --> looks as if it would work (and is faster, 16s) CC='llvm-gcc -emit-llvm' LD='llvm-ld -link-as-library' make -f Makefile.seq llc -f -o kmeans.s kmeans gcc -o kmeans kmeans.s -lm -lpthread --> looks as if it would work (and is faster, 16s) Any suggestions? Is this a known limitation? Is there more information necessary (eg, for a bug report)? thanks, Torvald -------------- next part -------------- A non-text attachment was scrubbed... Name: Defines.common.mk Type: text/x-makefile Size: 653 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20080618/1aaeb028/attachment.bin>
Are you really running the JIT? IT seems like you are just using the static compiler. Unless the code is using some idiom that we happen to miss badly, it's uncommon to see this kind of performance issue. What's the optimization level you are building the benchmark at? Anyway, please file a bug about the performance issues. If the source code is freely available, someone can download it and try it out. Thanks, Evan On Jun 18, 2008, at 2:35 PM, Torvald Riegel wrote:> Hi, > > I see sth that to me looks like a JIT bug. The program is the KMeans > benchmark > from the STAMP benchmark suite (http://stamp.stanford.edu). > Overwrite ./common/Defines.common.mk with the attached files to make > CC/LD > customizable. > > in ./kmeans, for > ./kmeans -m40 -n40 -t0.00001 -i inputs/random-n65536-d32-c16.txt -p > 1 : > > make -f Makefile.seq clean > > CC='llvm-gcc' LD='llvm-gcc -lm' make -f Makefile.seq > -->works, but is slower than gcc (35s vs 16s on my Intel 32b system) > > CC='llvm-gcc -emit-llvm' LD='llvm-ld -lm' make -f Makefile.seq > --> does not work (lot's of NaN's in the output, and much faster > (11s)) > > CC='llvm-gcc -emit-llvm' LD='llvm-ld -lm -disable-opt' make -f > Makefile.seq > --> does not work either > > CC='llvm-gcc -emit-llvm' LD='llvm-ld -lm -disable-opt -native' make - > f --> > looks as if it would work (and is faster, 16s) > > CC='llvm-gcc -emit-llvm' LD='llvm-ld -lm -native' make -f Makefile.seq > --> looks as if it would work (and is faster, 16s) > > CC='llvm-gcc -emit-llvm' LD='llvm-ld -link-as-library' make -f > Makefile.seq > llc -f -o kmeans.s kmeans > gcc -o kmeans kmeans.s -lm -lpthread > --> looks as if it would work (and is faster, 16s) > > Any suggestions? Is this a known limitation? Is there more information > necessary (eg, for a bug report)? > > thanks, > Torvald > <Defines.common.mk>_______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
> If the source code is freely available, someone can download it > and try it out.The web site says the code is BSD, it's freely downloadable.
On Thursday 19 June 2008, Evan Cheng wrote:> Are you really running the JIT? IT seems like you are just using the > static compiler.When using llvm-ld without -native, yes, I'm pretty sure. Besides the lower performance in only the first case, cases 2 and 3 also produce incorrect output. When the program is llvm-ld'ed with -native or if llc is uses, it seems to work fine. I will check optz levels for the first case again, and file bug(s). torvald> > Unless the code is using some idiom that we happen to miss badly, it's > uncommon to see this kind of performance issue. What's the > optimization level you are building the benchmark at? Anyway, please > file a bug about the performance issues. If the source code is freely > available, someone can download it and try it out. > > Thanks, > > Evan > > On Jun 18, 2008, at 2:35 PM, Torvald Riegel wrote: > > Hi, > > > > I see sth that to me looks like a JIT bug. The program is the KMeans > > benchmark > > from the STAMP benchmark suite (http://stamp.stanford.edu). > > Overwrite ./common/Defines.common.mk with the attached files to make > > CC/LD > > customizable. > > > > in ./kmeans, for > > ./kmeans -m40 -n40 -t0.00001 -i inputs/random-n65536-d32-c16.txt -p > > 1 : > > > > make -f Makefile.seq clean > > > > CC='llvm-gcc' LD='llvm-gcc -lm' make -f Makefile.seq > > -->works, but is slower than gcc (35s vs 16s on my Intel 32b system) > > > > CC='llvm-gcc -emit-llvm' LD='llvm-ld -lm' make -f Makefile.seq > > --> does not work (lot's of NaN's in the output, and much faster > > (11s)) > > > > CC='llvm-gcc -emit-llvm' LD='llvm-ld -lm -disable-opt' make -f > > Makefile.seq > > --> does not work either > > > > CC='llvm-gcc -emit-llvm' LD='llvm-ld -lm -disable-opt -native' make - > > f --> > > looks as if it would work (and is faster, 16s) > > > > CC='llvm-gcc -emit-llvm' LD='llvm-ld -lm -native' make -f Makefile.seq > > --> looks as if it would work (and is faster, 16s) > > > > CC='llvm-gcc -emit-llvm' LD='llvm-ld -link-as-library' make -f > > Makefile.seq > > llc -f -o kmeans.s kmeans > > gcc -o kmeans kmeans.s -lm -lpthread > > --> looks as if it would work (and is faster, 16s) > > > > Any suggestions? Is this a known limitation? Is there more information > > necessary (eg, for a bug report)? > > > > thanks, > > Torvald > > <Defines.common.mk>_______________________________________________ > > LLVM Developers mailing list > > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev