Re: PostgreSQLv14 TPC-H performance GCC vs Clang

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi 

@imre : Thank you sharing the links on “ Phoronix has been tested the PostgreSQL 13”.
I compared my test results with Phoronix test suit” . It has too deviations(may be hardware environment and PostgreSQL version) 
I think PostgreSQLv13 may have issues with Auto vacuum and currently I’m using with PostgreSQLv14 


In my environment GCC performs better than Clang(llvm) the reason would  be “int128”performance better in GCC compared to Clang.
1.Clang(__int128) require 4 additional functions like “__divti3 , __modti3, __udivti3, __umodti3” and these additional not required in GCC . So it may lead performance drop in Clang.
2.__int128 aligned 16 bytes boundaries (MAXALIGN) supported in GCC and may this in not support in Clang

@postgresql- performance: kindly let know your view on those two points.





On Wednesday, November 3, 2021, Imre Samu <pella.samu@xxxxxxxxx> wrote:
> .. optimisation flags like O3
> And please suggest ...  to check on the performance difference 

The Phoronix has been tested the PostgreSQL 13 with Clang 12 + GCC 11.1 On Xeon Ice Lake
  "The CFLAGS/CXXFLAGS set throughout testing were "-O3 -march=native -flto" 
  as would be common for HPC systems when building performance sensitive code."
and the results:
only the Postgres ( GCC 11 vs. LLVM Clang 12 Benchmarks On Xeon Ice Lake ) 
  maybe you can replicate the Phoronix results  ( but this is only gcc11.1 ! )
  "Compare your own system(s) to this result file with the Phoronix Test Suite 
    by running the command: phoronix-test-suite benchmark 2105299-IB-COMPILERT91"

Regards.
  Imre

arjun shetty <arjunshetty955@xxxxxxxxx> ezt írta (időpont: 2021. nov. 2., K, 18:13):
Hi 
PostgreSQLv14 source code build  with GCCv11.2 and Clangv12(without JIT) with  optimisation flags like O3 and tested with HammerDB
Observed TPC-H , GCC performance better than Clang(without JIT). The performance difference ~22% and also noticed the assembly code difference GCC vs Clang( e.g. GCC inlined functionality compared to Clang). 

Environment details:
————————-
OS :RHEL8.4
Bare metal : Apple/AMD EPYC/IBM
Test(TPC-H) Benchmark Environment:HammerDB

Is the performance difference mainly because of below points ?
1 data over flow and calculations like int128(int128.c) and C arithmetic operations(functions include in float.h e.g float4_mul)   

And please suggest is any another functionality or code points need to check on the performance difference 

[Postgresql General]     [Postgresql PHP]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Yosemite]

  Powered by Linux