Hello,
I am reaching out to get some advice on inconsistent performance running tesseract on different machines.
Machine 1 is running in a vm on a vps with a AMD Ryzen 9 5950x cpu, with 4 vcores, with this version of tesseract:
tesseract 5.5.1-1-gde09
leptonica-1.82.0
libgif 5.1.9 : libjpeg 8d (libjpeg-turbo 2.1.1) : libpng 1.6.37 : libtiff 4.3.0 : zlib 1.2.11 : libwebp 1.2.2 : libopenjp2 2.4.0
Found AVX2
Found AVX
Found FMA
Found SSE4.1
Found OpenMP 201511
Found libarchive 3.6.0 zlib/1.2.11 liblzma/5.2.5 bz2lib/1.0.8 liblz4/1.9.3 libzstd/1.4.8
Found libcurl/7.81.0 OpenSSL/3.0.2 zlib/1.2.11 brotli/1.0.9 zstd/1.4.8 libidn2/2.3.2 libpsl/0.21.0 (+libidn2/2.3.2) libssh/0.9.6/openssl/zlib nghttp2/1.43.0 librtmp/2.3 OpenLDAP/2.5.16
Machine two is running an AMD ryzen 5 5625u virtual machine limited to one core or 4 cores, however tested with all 6 cores, with this version of tesseract
tesseract 5.3.0
leptonica-1.82.0
libgif 5.2.1 : libjpeg 6b (libjpeg-turbo 2.1.2) : libpng 1.6.39 : libtiff 4.5.0 : zlib 1.2.13 : libwebp 1.2.4 : libopenjp2 2.5.0
Found AVX2
Found AVX
Found FMA
Found SSE4.1
Found OpenMP 201511
Found libarchive 3.6.2 zlib/1.2.13 liblzma/5.4.1 bz2lib/1.0.8 liblz4/1.9.4 libzstd/1.5.4
Found libcurl/7.88.1 OpenSSL/3.0.16 zlib/1.2.13 brotli/1.0.9 zstd/1.5.4 libidn2/2.3.3 libpsl/0.21.2 (+libidn2/2.3.3) libssh2/1.10.0 nghttp2/1.52.0 librtmp/2.3 OpenLDAP/2.5.13
Machine 1 is getting inconsistent results, and much worse performance then machine 2.
Machine 1 averages around 70-90ms, however on occasion timings are above 100ms. Machine 2 averages 34-37ms, on bare metal, and very rarely deviates from these values. In the vm, it's a bit slower at close to 50ms.
We are using the tesseract-rs library in rust, however tested using the c++ api, which still produces the same results. We are using the 4mb eng fast tesseract dataset in both machines, comparing the sha256sum for both files they are identical.
I am looking for some guidance since running machine 2 with 1 or 4 cores, is still much faster then machine 1. What can I test? How can I test? Is there some caveats I am unaware of?
Sincerely,
gwapes