Walking down to the supermarket on Saturday, I saw a PC tower, which looked like an old gaming computer, half opened in a large carry bag on the side of the street. There was a Post-It on it, with the garbage collection reference for Paris sanitation to pick it up, with a small sub-title: “Functioning, just needs hard drive”. I pulled open the case and found an old dusty motherboard and very interestingly a GPU. I decided to take it home and give it a second life. Photos included at the end of the post.

After some initial sanitation and a SSD with CrunchBangPlusPlus, it booted first go, straight into X Windows, all the hardware was detected and enabled.

Time to see what I picked up:

  • Intel Core i5 3rd Gen i5-3450, 3.1Ghz base, 3.5 GHz turbo
  • 6Gb DDR3 SD RAM (in 2 x 1 and 2 x 2 matched dual channel RAM DIMMs): Mix of G.Skill and Kingston
  • AsusTeK p8z77-V LX motherboard: supports 2nd Gen and 3rd Gen Intel Core CPUs, with some nice over clocking and under volting features.
  • AsusTeK NVidia GTX 560 ti DirectCU II TOP, a slightly tweaked NVidia non-reference GPU design, with an over specified cooler for overclocking
  • Antec 300 case, damaged (missing front face, side panel bent): required some metal work to close and slightly damaged power button.
  • Antec Earthwatts 500w power supply
  • 2 x Antec 3 speed fans (I disabled both, as they were not required, the missing face allows for normal convection)
  • Asus DVD Writer (IDE interface, I don’t know why given the SATA interface on the motherboard!)

The final build is using a separate SATA DVD writer, which I also found on the roadside in Montmartre.

Performance Optimisations

Installing nvidia-detect and reading Debian’s documentation allowed me to install the NVidia legacy driver. After that, it was configuring Chrome acceleration (see here).

After my disappointing Raspberry Pi 4 desktop experience, the first thing to try was Google Meet. It ran flawlessly: 30% CPU utilisation, no slowdown, no big fan noise, nothing. Quake 3 fullscreen, at highest res and textures, ran 400+ fps on a time demo. Clearly, the CPU of this machine would meet my workload requirements. RAM use was high, but I found a second hand vendor of DDR3 RAM, so I will plan that upgrade soon.

Some synthetic benchmarks from stress-ng caused concern with high core temperatures (of 70C) during the benchmark. Intel recommends a maximum temperature of 67C for the i5 3rd Gen, so some work was needed. I did some deep cleaning by removing the cooling systems of the CPU and GPU, and replaced the dry thermal paste. The benchmarks improved by about 15% and the temperature dropped to 60C.

The machine (hereby called Monolith) is now used as my daily desktop for video conferencing and personal work.

Benchmarking

Monolith is fast enough for my daily use. Compared to my laptop on stress-ng about 194962 (and later 222941 after cleaning) vs 111350 or 75% faster on CPU bound work and the GPU I estimate to be at least 300% faster (at least).

This shouldn’t be a surprise given it is a comparison between a laptop and desktop processor of similar generations (a tick vs tock from Intel perspective): 2 cores vs 4 cores, 3Mb vs 6Mb cache, and 1.6GHz vs 3.1GHz base frequency. 

Laptop: Elitebook 820 G1 Intel Core i5-4200U
~$ stress-ng --cpu 4 --timeout 180 --metrics
stress-ng: info:  [20124] dispatching hogs: 4 cp
stress-ng: info:  [20124] successful run completed in 180.13s (3 mins, 0.13 secs)
stress-ng: info:  [20124] stressor       bogo ops real time  usr time  sys time   bogo ops/s   bogo ops/s
stress-ng: info:  [20124]                           (secs)    (secs)    (secs)   (real time) (usr+sys time)
stress-ng: info:  [20124] cpu              111350    180.09    702.76      3.11       618.32       157.75
 
Monolith: Intel Core i5-3450, pre heatsink and thermal paste cleaning, running at 70C
~$  stress-ng --cpu 4 --timeout 180 --metrics
stress-ng: info:  [8163] dispatching hogs: 4 cpu
stress-ng: info:  [8163] successful run completed in 180.05s (3 mins, 0.05 secs)
stress-ng: info:  [8163] stressor       bogo ops real time  usr time  sys time   bogo ops/s   bogo ops/s
stress-ng: info:  [8163]                           (secs)    (secs)    (secs)   (real time) (usr+sys time)
stress-ng: info:  [8163] cpu              194962    180.03    719.47      0.11      1082.97       270.94
 
Monolith: Intel Core i5-3450, after heatsink and new thermal paste, running at 60C
stress-ng --cpu 4 --timeout 180 --metrics
stress-ng: info:  [1537] dispatching hogs: 4 cpu
stress-ng: info:  [1537] successful run completed in 180.03s (3 mins, 0.03 secs)
stress-ng: info:  [1537] stressor       bogo ops real time  usr time  sys time   bogo ops/s   bogo ops/s
stress-ng: info:  [1537]                           (secs)    (secs)    (secs)   (real time) (usr+sys time)
stress-ng: info:  [1537] cpu              222941    180.02    713.21      0.32      1238.41       312.45

Next Steps

This was probably one of the easiest machines to commission into daily use. The compatibility of older machines make them fantastic for use in 2021.