Matrix multiplication. Naive shader v.1 benchmark

WebGL2-compute based NxN matrix multiplication C = A x B Naive shader v.1 benchmark. Fixed random A, B 4096x4096 buffers are used for calculations, therefore You can set new N value (up to N=4096, multiple of TS). Shaders with tile sizes (local_size_x,y) TS = 8, 16, 32 are precompiled. it - number of iterations. FLOPS = 2 N3it / time. Random CGPU and CGPU - CCPU are shown.

calculating
N= TS= it=

GeForce GT 710     12.4 GFLOPS (N=2048, TS=32).
Intel Atom Z3735F   1.7 GFLOPS (N=1024, TS=32).

I re-run all programs many times (press "Run" button) and try to choose "representative" values. Results differ very much on different GPUs.

Comments

Dummy operator gl.getBufferSubData()
  gl.dispatchCompute(N/TS, N/TS, 1)
  gl.memoryBarrier(gl.SHADER_STORAGE_BARRIER_BIT)
  gl.getBufferSubData(gl.SHADER_STORAGE_BUFFER, 0, result)
  var ti = performance.now()
is used to get compute execution time.
SGEMM in WebGL2-compute     updated 26 Mar 2019