hjwdzh / QuadriFlow

QuadriFlow: A Scalable and Robust Method for Quadrangulation
http://stanford.edu/~jingweih/papers/quadriflow/
Other
660 stars 76 forks source link

QuadriFlow consistently 10x slower than Instant Meshes on macOS, why? #31

Closed bitinn closed 5 years ago

bitinn commented 5 years ago

Perhaps I am missing something, but my manual benchmark suggests Instant Meshes somehow run much faster (5x-10x) than QuadriFlow:

$ time ./instantmeshes -v 2000 -S 2 -d -o test3_output2.obj test3.obj

real    0m2.338s
user    0m4.994s
sys 0m0.198s

$ time ./quadriflow -adaptive -i test3.obj -o test3_output1.obj -f 2000

real    0m23.900s
user    0m22.801s
sys 0m0.883s

$ time ./quadriflow -i test3.obj -o test3_output3.obj -f 2000

real    0m11.733s
user    0m11.051s
sys 0m0.567s

test3.obj is 3bommes/Buddha_input.obj, I have ran a few similar tests, on macOS they are consistently slower than Instant Meshes.

In the center is Instant Meshes' result, Left/Right are QuadriFlow's (Right: -adaptive enabled; Left: -adaptive disabled), all 3 results have tris count at around 15K.

Screen Shot 2019-05-26 at 21 13 32 Screen Shot 2019-05-26 at 21 13 25

(-mcf and -sat flags increases the compute time further, albeit with better results, so I omit them here.)

Is there an obvious reason as to why this contradicts with the paper's test results?

(The key difference here might be that I am on Intel GPU; but CPU speed is comparable.)

hjwdzh commented 5 years ago

The released version is purely implemented on the CPU with a single core rather than on the GPU.

hjwdzh commented 5 years ago

The released version is purely implemented on the CPU with a single core rather than on the GPU.

zhou13 commented 5 years ago

QuadriFlow internally calls the procedures in Instant Mesh. So it is expected that it will be slower than IM without GPU acceleration.

bitinn commented 5 years ago

Thx both for the explanation.