Skip to content

Performance Comparison #116

@yomaytk

Description

@yomaytk

Environment

$ uname -a
Linux snail24 5.15.0-135-generic #146-Ubuntu SMP Sat Feb 15 17:06:22 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Benchmark

  1. Wasm converted by elfconv(4d3555d)
Average rolled and unrolled performance:

    Reps Time(s) DGEFA   DGESL  OVERHEAD    KFLOPS
----------------------------------------------------
       1   0.00    nan%    nan%    nan%        inf
       2   0.00   0.00% 100.00%   0.00%  353274.711
       4   0.00 100.00%   0.00%   0.00%  707392.560
       8   0.00 100.00%   0.00%   0.00%  1412089.007
      16   0.00  33.31%  33.34%  33.35%  1414110.127
      32   0.01  59.99%  19.99%  20.02%  1413351.530
      64   0.01  70.01%  20.00%   9.99%  1256187.678
     128   0.02  85.01%   9.99%   5.00%  1190172.093
     256   0.04  90.00%   2.50%   7.50%  1222407.311
     512   0.08  87.18%   2.56%  10.26%  1292244.525
    1024   0.16  87.50%   5.62%   6.87%  1214117.907
    2048   0.32  89.13%   4.97%   5.90%  1194108.214
    4096   0.64  90.64%   4.37%   4.99%  1188219.330
    8192   1.05  89.54%   4.09%   6.37%  1469289.680
   16384   2.11  86.95%   6.07%   6.97%  1476045.394
   32768   4.19  86.79%   6.09%   7.12%  1488562.382
   65536   8.50  87.27%   5.56%   7.16%  1466871.847
  131072  16.86  86.74%   6.00%   7.26%  1480560.779
  1. ELF/aarch64 on Wasm with container2wasm
Array size: 100
Memory required:  79K.


LINPACK benchmark, Double precision.
Machine precision:  15 digits.
Array size 100 X 100.
Average rolled and unrolled performance:

    Reps Time(s) DGEFA   DGESL  OVERHEAD    KFLOPS
----------------------------------------------------
       1   0.04  62.24%   8.41%  29.35%   7139.489
       2   0.03  78.23%  12.99%   8.78%  12592.065
       4   0.05  82.31%   8.13%   9.56%  17305.416
       8   0.09  78.92%   9.05%  12.03%  18823.112
      16   0.17  81.15%   9.15%   9.70%  18628.969
      32   0.32  81.84%   8.06%  10.10%  19770.356
      64   0.61  82.17%   7.75%  10.08%  20625.264
     128   1.20  82.91%   7.30%   9.80%  20879.982
     256   2.37  83.71%   7.02%   9.27%  21053.060
     512   4.74  84.02%   6.87%   9.11%  21002.397
    1024   9.36  84.35%   6.87%   8.77%  21178.223
    2048  18.49  84.23%   6.90%   8.87%  21473.161
  1. Wasm by Emscripten from source code (command is as follows)
elfconv/examples/benchmarks/linpack/$ emcc -O3 nostdin_linpack.c -o exe.js -sALLOW_MEMORY_GROWTH -sASYNCIFY -sEXPORT_ES6 -sENVIRONMENT=web --js-library ~/elfconv/xterm-pty/emscripten-pty.js
elfconv/examples/benchmarks/linpack/$ cp exe.wasm ../../browser
elfconv/examples/benchmarks/linpack/$ cp exe.js ../../browser
elfconv/examples/benchmarks/linpack/$ emrun --no_browser --port 8080 ../../browser/exe.html # can access to localhost:8080
Array size: 100
Memory required:  79K.

LINPACK benchmark, Double precision.
Machine precision:  15 digits.
Array size 100 X 100.
Average rolled and unrolled performance:

    Reps Time(s) DGEFA   DGESL  OVERHEAD    KFLOPS
----------------------------------------------------
       1   0.00  74.07%   7.41%  18.52%  1606060.606
       2   0.00  83.33%   8.33%   8.33%  1606060.606
       4   0.00  82.42%   5.49%  12.09%  1766666.667
       8   0.00  85.23%   3.98%  10.80%  1800424.628
      16   0.00  84.83%   4.49%  10.67%  1777777.778
      32   0.00  82.38%   6.99%  10.63%  1769431.403
      64   0.01  80.60%   5.32%  14.09%  1748904.357
     128   0.01  84.11%   5.11%  10.77%  1728187.492
     256   0.03  83.56%   5.23%  11.21%  1770123.940
     512   0.06  83.75%   5.32%  10.93%  1655441.679
    1024   0.13  83.31%   5.26%  11.43%  1632584.303
    2048   0.25  83.80%   5.23%  10.97%  1657375.385
    4096   0.50  83.82%   5.33%  10.85%  1609597.319
    8192   1.01  83.78%   5.35%  10.87%  1606265.596
   16384   2.08  83.60%   5.51%  10.89%  1564530.543
   32768   4.18  83.83%   5.29%  10.88%  1555394.049
   65536   8.39  83.85%   5.28%  10.87%  1548246.415
  131072  16.87  83.84%   5.31%  10.86%  1539738.189```

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions