How to improve Steem mining performance

in steem •  3 years ago 

You can get ~10% performance improvements if you recompile fc with libgmp support, using following instruction.

  1. Install libgmp (requires only for compilation) using command: sudo apt-get install libgmp-dev
  2. Make change to fc library described in this commit
  3. Reconfigure and recompile Steem as usual (cmake . & make)
  4. Enjoy!

Please post here how much performance boost you get.

Feel free to share the link to this page. At this page I will publish updates and future optimizations if any.

If you found this information useful, any donations will be greatly appreciated. My Steem and BitShares account is testz

PS: For some non-modern systems you can get additional performance improvements by using compiler optimization options described in this commit

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Tested with an AWS 36core VPS. hps 116k -> 119k.

AWS 36 core VPS with MPIR , hps 125k

sudo apt-get remove libgmp-dev
wget -c
tar xjf mpir-2.7.2.tar.bz2
cd mpir
./configure --enable-gmpcompat
sudo make install
cd ..

cd steem
cmake ...

By the way, an earlier version of @testz's patch will link libgmp dynamically, don't know if it's fixed.


Here is my quick and dirty patch to link libgmp statically (it's not perfect, but just works):

cd steem
cd libraries/fc
git checkout master
git pull
git remote add abit
git fetch abit
git merge -m "merge abit/libgmp-static" abit/libgmp-static
cd ../..
cmake ...

When building with MPIR are you making tweaks to support it to the Steem source or build commands? Or should it pick it up automatically and work?

Can''t reply to your comment, but you say "build commands" are used to tweak Steem build yet your instructions just say"cd steem
cmake ..."

Thats not any change to the source/build!

  ·  3 years ago (edited)

Looks like some misunderstandings.

By saying "tweaks to build commands", I mean we did some changes to the config files, so we'll build with libgmp (the steps are listed somewhere below this comment).

Then we remove the libgmp provided bylibgmp-dev package, and build & install our own libgmp from MPIR source. So it will be picked up automatically when building the final binaries.

Any further questions please let me know.

Build commands. Details described above.

Building with MPIR (thank you for all your help with that by the way) on an i5-2500K Sandy Bridge CPU performance is about the same as when using the libgmp-dev library. It's probably better with newer CPUs that have more specialty instruction sets. Someone commented in the slack it could be AVX2.

Anyone know if anything on this page is still relevant with build 12.x? Specifically on the MPIR support, the above doesnt suggest any changes are needed to steem source to avail of MPIR.. ? I tried it and it made no difference (Haswell CPU).

I just built every new release with MPIR, didn't check if there are still performance improvement though.

Only just?

  ·  3 years ago (edited)

Hi, abit..
I want to know how to mine Steem.
Do you know that or posts?
I plan to use AWS.. Thanks..

I got an 8% increase : From 13.6Khps to 14.7 ;-) thx.

Before & After

It's should link statically with libgmp by default.

How about linking libgmp statically?

It’s should link statically with libgmp by default.

Отличный пост, пойду только сначала разберусь как вообще майнить. :)

I saw an 8.5-9% increase in hps. Thanks for sharing!

Went from ~24k to ~26k. :)