• [^] # Re: Comparatif Intel C++ 7.0 / Gcc 3.2.1

    Posté par . En réponse à la dépêche Comparatif Intel C++ 7.0 / Gcc 3.2.1. Évalué à 1.

    Bon, j'ai fait également quelques tests...


    Machine de test :

    $ cat /proc/cpuinfo
    processor : 0
    vendor_id : GenuineIntel
    cpu family : 6
    model : 11
    model name : Intel(R) Celeron(TM) CPU 1200MHz
    stepping : 1
    cpu MHz : 1211.945
    cache size : 256 KB
    fdiv_bug : no
    hlt_bug : no
    f00f_bug : no
    coma_bug : no
    fpu : yes
    fpu_exception : yes
    cpuid level : 2
    wp : yes
    flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr sse
    bogomips : 2418.27

    $ cat /etc/mandrake-release
    Mandrake Linux release 9.0 (dolphin) for i586

    $ gcc --version
    gcc (GCC) 3.2 (Mandrake Linux 9.0 3.2-1mdk)

    $ bc++
    Borland C++ 5.7 Open Edition Copyright (c) 1987, 2002 Borland
    (Kylix3 OpenEdition US)


    Avec gcc et optimisation pour Pentium2 :

    CFLAGS = -O3 -funroll-all-loops -fomit-frame-pointer --fast-math -march=pentium2

    Composite Score: 277.95
    FFT Mflops: 207.65 (N=1024)
    SOR Mflops: 367.74 (100 x 100)
    MonteCarlo: Mflops: 78.95
    Sparse matmult Mflops: 316.60 (N=1000, nz=5000)
    LU Mflops: 418.81 (M=100, N=100)


    Avec gcc et optimisation pour Pentium3 :

    CFLAGS = -O3 -funroll-all-loops -fomit-frame-pointer --fast-math -march=pentium3

    Composite Score: 277.61
    FFT Mflops: 208.64 (N=1024)
    SOR Mflops: 366.34 (100 x 100)
    MonteCarlo: Mflops: 79.18
    Sparse matmult Mflops: 315.08 (N=1000, nz=5000)
    LU Mflops: 418.81 (M=100, N=100)


    Avec le compilateur BCC de Borland (PentiumPro + Fast floating point) :

    CFLAGS = -6 -O2 -ff

    Composite Score: 200484266.47
    FFT Mflops: 61416923.94 (N=1024)
    SOR Mflops: 376358400.00 (100 x 100)
    MonteCarlo: Mflops: 41553476.16
    Sparse matmult Mflops: 180043956.04 (N=1000, nz=5000)
    LU Mflops: 343048576.21 (M=100, N=100)


    Remarque : Les chiffres sont nettement plus trop gros pour le compilateur de Borland... Je n'ai pas le temps de regarder de où ça vient... Si quelqu'un à une idée... Moi je pense que ça vient simplement de la conversion flops vers Mflops qui n'est pas réalisée ! (car le temps d'exécution est comparable à celui de gcc...)