If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

PGI 18.10 Compiler Benchmarks Against GCC 8.2, LLVM Clang 7.0

Given the recently release of the PGI 18.10 Community Edition compiler by NVIDIA, I was curious to see how the performance on the CPU is looking for this proprietary compiler on Linux. For those curious as well, here are some benchmarks of the PGI 18.10 C/C++ compiler against the GCC 8.2.0 and LLVM Clang 7.0 open-source compilers.

Comment

Ok, something is wrong with Michael's benchmark setup (not the first super weird result we've seen), thanks for testing. Why do you think it's a very bad benchmark test ?

Because it claims to be multithreaded raytracer but it is unrealistically simple for that. It only suports spheres and it mostly tests particular capability of inliner:

There is function trace that iterates over spheres for given ray and calls ray_sphere for each of them. ray_sphere calculates some stuff based on ray only and some stuff based on sphere. The basic idea for success is to make inliner realize that inlining ray_sphere despite the fact it is not small will make most of the calculations based on ray loop invariant.

So it tests one particular feature of inliner and not much of the overall code generation quality. SPEC contains povray which is a lot more realistic test for raytracing performance.

Comment

These results are yet again smell fishy and are mismatching with similar data posted elsewhere. One thing that's surely off is that here -march is not used at all.

I realized when trawling through the data dumps of the last few days: the GCC 9 benchmarks happen to use the same hardware and partially matching compilers, but show completely different performance. Is there any analysis of the date pumped out? There is simply no point to these auto-generated articles which show nothing more than bar plots for some often arbitrary configuration. Why not use compiler tuning here? Why use Ubuntu 18.10 here and in the gcc 9 benchmark clear linux?