matiTechno / asm-fractal

me learning x86-64 linux assembly - the goal of the project is to render a fractal to a file using multiple threads and without any dependencies; +AVX2 version
2 stars 0 forks source link

performance test 2 #4

Open matiTechno opened 5 years ago

matiTechno commented 5 years ago

commit: 52cbedabcaba6b6e253dcea27318f33fe8342023

time ./render 8 4000 3000 8 threads, 4000 x 3000 px image

'static const' means that render width and height are defined as static const and not assigned at runtime in main().

Values are real time statistics reported by time command, in seconds. I ran each version couple of times and chose the best result.

version time(s)
asm 3.420
gcc -O3 2.423
gcc -O3 static const 2.413
clang -O3 2.957
clang -O3 static const 2.364

clang -O3 static const is quite surprising. gcc -O3 static const produces artifacts (https://github.com/matiTechno/asm-fractal/issues/3). I have not done any gcc and clang assembly analysis.

matiTechno commented 5 years ago

new asm version (83164efb465f87825a806dd2fdd85884501db607) with thread local pixel buffer 3.344 s