Mining on Linux

20th December 2021 at 11:36pm

Got a couple of RTX3090s, mainly for ML, but to offset huge price markup created by miners I had to start mining myself. Need to install Nvidia drivers, CUDA, and miner - I used T-Rex. Lots of info on these things in internet, so I'm not going to repeat them. I run t-rex in screen like:

sudo ./t-rex -a ethash -o stratum+tcp://usw-eth.hiveon.net:4444 -u eth_wallet -p x --lock-cclock 1250

The idea behind –lock-cclock is to lower actual core clock, so that it would consume less energy. It won't lower your hashrate, but it will lower energy consumption and fan noise.

Another thing to try is to increase memory clock, for this we need to run nvidia-settings. Too bad it's tied to GUI and requires X server running. But it can be fixed:

nvidia-xconfig --allow-empty-initial-configuration --enable-all-gpus --cool-bits=28 --separate-x-screens nvidia-smi -pm ENABLED X :0 & export DISPLAY=:0

After that you should be able to run:

nvidia-settings -a "[gpu:x]/GPUMemoryTransferRateOffsetAllPerformanceLevels=1100" nvidia-settings -a "[gpu:x]/GPUFanControlState=1" nvidia-settings -a "[fan:x]/GPUTargetFanSpeed=70"

- where x is GPU number (starting from 0).

For actual hardware, I used one Aorus RTX 3090 WaterForce WB. This is GPU which came with waterblock only (unlike its more expensive counterpart with integrated watercooling kit), so I needed to add water cooling by myself.

For this I needed radiator (I took Corsair Hydro X XR5 360mm.), water pump (+ integrated water tank), connection tubes(I used soft tubing).

Later I realized I need also coolant (otherwise "flowering" might occur), barb fittings, rotatory extending fittings, much more coolers and cooler hubs. And even change chassis to MSI MPG Series GUNGNIR 100 (usual Supermicro chassis didn't have enough space for the radiator).

Coolant should flow from radiator to pump, then to GPU, then to radiator. Pump had strange ravel of wires. This is homogenizator, used to prevent bubbles forming.

After filling the whole system with liquid make sure no water leaks are present, also use some hair dryer in cold mode. And some adhesive sealant would come nice as well on connections.

For 2nd GPU I purchased usual air-cooled RTX 3090, but I used external GPU stand connected to M.2 - ADT-Link R43SG. I had an extra PSU which I could dedicate for the whole GPU. It takes ATX 24-pin plug and 4-pin CPU pin inputs and outputs 1-2 8-pin PCIe power, but another I took from PSU itself (to utilize different power rails). I could go with standard PCIe-splitter, like 16x to multiple x1 slots (x16 form-factor) via USB cables, but some ML models require higher PCIe throughput.