octave-bug-tracker
[Top][All Lists]
Advanced

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

[Octave-bug-tracker] [bug #62358] Performance of Matrix Multiplication s


From: Stefan Schlögl
Subject: [Octave-bug-tracker] [bug #62358] Performance of Matrix Multiplication significantly slower in 7.1.0 compared to 6.1.0
Date: Sun, 24 Apr 2022 12:42:29 -0400 (EDT)

URL:
  <https://savannah.gnu.org/bugs/?62358>

                 Summary: Performance of Matrix Multiplication significantly
slower in 7.1.0 compared to 6.1.0
                 Project: GNU Octave
            Submitted by: schinzilord
            Submitted on: Sun 24 Apr 2022 04:42:27 PM UTC
                Category: Performance
                Severity: 3 - Normal
                Priority: 5 - Normal
              Item Group: Performance
                  Status: None
             Assigned to: None
         Originator Name: 
        Originator Email: 
             Open/Closed: Open
                 Release: 7.1.0
         Discussion Lock: Any
        Operating System: GNU/Linux

    _______________________________________________________

Details:

Upon performing performance tests of matrix multiplication, it appears that at
least on my system the performance of Octave 7.1.0 is significantly slower
compared to Octave 6.1.0 by roughly +7% calculation increase time.

The following code has been executed to estimate the multiplication
performance:

N = 1000
    rand("seed",3298423492389472);
    a=single(rand(N,N));
    b=single(rand(N,N));
    for j=1:10
        tic;
        for i=1:100
            c=a*b;
        end
        t=toc;
        mf(j)=1999*100/t;
    end

    fprintf('Method 2: MEAN GFLOPS single: %5.5f\n',mean(mf ./ 1000))
    fprintf('Method 2: MAX GFLOPS single: %5.5f\n',max(mf)/1000)

After profiling the code snippet, the following emerged:
Octave 7.1.0:
Method 2: MEAN GFLOPS single: 317.06996
Method 2: MAX GFLOPS single: 319.74584

========   Profile Overview of 10 Functions   ========
   #   Function Attr     Time (s)   Time (%)        Calls
---------------------------------------------------------
  11   binary *             6.287      99.08         1010
   8       rand             0.039       0.62            3
   4 get_gflops             0.017       0.26            1
   9     single             0.002       0.04            2
  15       mean             0.000       0.00            1

Octave 6.1.0:
Method 2: MEAN GFLOPS single: 340.92255
Method 2: MAX GFLOPS single: 345.96801

========   Profile Overview of 10 Functions   ========
   #   Function Attr     Time (s)   Time (%)        Calls
---------------------------------------------------------
  11   binary *             5.844      98.96         1010
   8       rand             0.041       0.69            3
   4 get_gflops             0.018       0.31            1
   9     single             0.002       0.03            2
  15       mean             0.000       0.00            1

The performance degradation is seen in binary * multiplication operator.
However, I assume that both Octave versions just call the same OpenBLAS
version for matrix multiplication:
OpenBLAS 0.3.8

The following CPU is used:
Architektur:                     x86_64
CPU Operationsmodus:             32-bit, 64-bit
Byte-Reihenfolge:                Little Endian
Adressgrößen:                    39 bits physical, 48 bits virtual
CPU(s):                          8
Liste der Online-CPU(s):         0-7
Thread(s) pro Kern:              2
Kern(e) pro Socket:              4
Sockel:                          1
NUMA-Knoten:                     1
Anbieterkennung:                 GenuineIntel
Prozessorfamilie:                6
Modell:                          60
Modellname:                      Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz
Stepping:                        3
CPU MHz:                         959.614
Maximale Taktfrequenz der CPU:   4400,0000
Minimale Taktfrequenz der CPU:   800,0000
BogoMIPS:                        7995.78
Virtualisierung:                 VT-x
L1d Cache:                       128 KiB
L1i Cache:                       128 KiB
L2 Cache:                        1 MiB

Have there been any further changes introduced in calling the binary
multiplicator with Octave 7?
Best,
Stefan





    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?62358>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]