How is that For Flexibility?
As everyone is well conscious, the world is still going nuts attempting to develop more, newer and better AI tools. Mainly by tossing absurd quantities of money at the issue. Much of those billions go towards constructing inexpensive or free services that run at a significant loss. The tech giants that run them all are intending to draw in as many users as possible, so that they can capture the market, and become the dominant or only party that can use them. It is the timeless Silicon Valley playbook. Once dominance is reached, expect the enshittification to begin.
A likely method to make back all that money for establishing these LLMs will be by tweaking their outputs to the taste of whoever pays the many. An example of what that such tweaking appears like is the refusal of DeepSeek's R1 to discuss what occurred at Tiananmen Square in 1989. That one is certainly politically encouraged, however ad-funded services will not exactly be enjoyable either. In the future, I fully anticipate to be able to have a frank and truthful conversation about the Tiananmen events with an American AI representative, but the just one I can pay for will have presumed the persona of Father Christmas who, while holding a can of Coca-Cola, will sprinkle the recounting of the awful occasions with a cheerful "Ho ho ho ... Didn't you know? The holidays are coming!"
Or possibly that is too improbable. Right now, dispite all that cash, the most popular service for code completion still has difficulty dealing with a number of easy words, in spite of them existing in every dictionary. There must be a bug in the "free speech", or something.
But there is hope. Among the techniques of an upcoming gamer to shake up the market, is to undercut the incumbents by releasing their model free of charge, under a permissive license. This is what DeepSeek simply did with their DeepSeek-R1. Google did it earlier with the Gemma designs, as did Meta with Llama. We can download these models ourselves and run them on our own hardware. Better yet, individuals can take these models and scrub the biases from them. And we can download those scrubbed designs and run those on our own hardware. And after that we can finally have some truly useful LLMs.
That hardware can be a hurdle, however. There are 2 alternatives to select from if you wish to run an LLM locally. You can get a huge, effective video card from Nvidia, or you can buy an Apple. Either is costly. The main specification that indicates how well an LLM will carry out is the amount of memory available. VRAM in the case of GPU's, normal RAM in the case of Apples. Bigger is better here. More RAM implies larger models, which will significantly enhance the quality of the output. Personally, I 'd say one needs at least over 24GB to be able to run anything beneficial. That will fit a 32 billion specification design with a little headroom to spare. Building, or buying, a workstation that is equipped to manage that can quickly cost thousands of euros.
So what to do, if you don't have that amount of money to spare? You purchase pre-owned! This is a practical option, however as constantly, there is no such thing as a totally free lunch. Memory may be the main concern, however don't underestimate the importance of memory bandwidth and other specs. Older devices will have lower performance on those elements. But let's not worry too much about that now. I have an interest in building something that a minimum of can run the LLMs in a functional way. Sure, the latest Nvidia card might do it quicker, however the point is to be able to do it at all. Powerful online designs can be nice, but one should at least have the choice to change to a regional one, if the situation requires it.
Below is my attempt to develop such a capable AI computer system without spending excessive. I ended up with a workstation with 48GB of VRAM that cost me around 1700 euros. I might have done it for less. For example, it was not strictly necessary to purchase a brand name brand-new dummy GPU (see listed below), or I might have found someone that would 3D print the cooling fan shroud for me, instead of shipping a ready-made one from a distant nation. I'll confess, I got a bit impatient at the end when I learnt I had to buy yet another part to make this work. For me, this was an appropriate tradeoff.
Hardware
This is the complete cost breakdown:
And this is what it looked liked when it up with all the parts installed:
I'll offer some context on the parts listed below, and after that, I'll run a few quick tests to get some numbers on the performance.
HP Z440 Workstation
The Z440 was a simple pick due to the fact that I currently owned it. This was the starting point. About 2 years earlier, I desired a computer that might function as a host for my virtual machines. The Z440 has a Xeon processor with 12 cores, and this one sports 128GB of RAM. Many threads and a lot of memory, that ought to work for hosting VMs. I bought it secondhand and then swapped the 512GB tough drive for a 6TB one to store those virtual machines. 6TB is not needed for running LLMs, and therefore I did not include it in the breakdown. But if you plan to gather lots of models, 512GB may not be enough.
I have pertained to like this workstation. It feels all extremely solid, and I haven't had any issues with it. At least, till I began this project. It turns out that HP does not like competition, and I encountered some problems when swapping elements.
2 x NVIDIA Tesla P40
This is the magic component. GPUs are expensive. But, as with the HP Z440, often one can discover older devices, that used to be leading of the line and is still really capable, pre-owned, for fairly little money. These Teslas were implied to run in server farms, for things like 3D rendering and other graphic processing. They come equipped with 24GB of VRAM. Nice. They suit a PCI-Express 3.0 x16 slot. The Z440 has two of those, so we buy two. Now we have 48GB of VRAM. Double good.
The catch is the part about that they were indicated for servers. They will work great in the PCIe slots of a regular workstation, however in servers the cooling is handled differently. Beefy GPUs take in a great deal of power and can run extremely hot. That is the factor consumer GPUs always come geared up with big fans. The cards require to look after their own cooling. The Teslas, however, have no fans whatsoever. They get simply as hot, however anticipate the server to supply a consistent circulation of air to cool them. The enclosure of the card is somewhat shaped like a pipe, and you have 2 choices: blow in air from one side or blow it in from the other side. How is that for versatility? You definitely should blow some air into it, however, or you will harm it as quickly as you put it to work.
The solution is easy: just install a fan on one end of the pipeline. And certainly, it appears an entire cottage market has actually grown of individuals that offer 3D-printed shrouds that hold a standard 60mm fan in simply the best location. The issue is, the cards themselves are already rather bulky, and it is not simple to find a configuration that fits two cards and two fan installs in the computer case. The seller who offered me my two Teslas was kind adequate to consist of 2 fans with shrouds, but there was no other way I might fit all of those into the case. So what do we do? We buy more parts.
NZXT C850 Gold
This is where things got irritating. The HP Z440 had a 700 Watt PSU, which might have sufficed. But I wasn't sure, and I required to buy a brand-new PSU anyway since it did not have the ideal adapters to power the Teslas. Using this convenient website, I deduced that 850 Watt would suffice, and I bought the NZXT C850. It is a modular PSU, indicating that you only need to plug in the cables that you actually require. It came with a neat bag to store the spare cables. One day, I might give it a good cleaning and use it as a toiletry bag.
Unfortunately, HP does not like things that are not HP, so they made it challenging to switch the PSU. It does not fit physically, and they also changed the main board and CPU adapters. All PSU's I have ever seen in my life are rectangular boxes. The HP PSU also is a rectangle-shaped box, however with a cutout, making certain that none of the regular PSUs will fit. For no technical factor at all. This is just to mess with you.
The mounting was ultimately solved by utilizing 2 random holes in the grill that I in some way managed to align with the screw holes on the NZXT. It sort of hangs stable now, and I feel lucky that this worked. I have actually seen Youtube videos where people resorted to double-sided tape.
The port required ... another purchase.
Not cool HP.
Gainward GT 1030
There is another problem with using server GPUs in this consumer workstation. The Teslas are meant to crunch numbers, not to play computer game with. Consequently, they don't have any ports to link a monitor to. The BIOS of the HP Z440 does not like this. It declines to boot if there is no way to output a video signal. This computer system will run headless, however we have no other option. We have to get a third video card, that we don't to intent to utilize ever, simply to keep the BIOS pleased.
This can be the most scrappy card that you can find, obviously, however there is a requirement: we need to make it fit on the main board. The Teslas are large and fill the 2 PCIe 3.0 x16 slots. The only slots left that can physically hold a card are one PCIe x4 slot and one PCIe x8 slot. See this site for some background on what those names imply. One can not purchase any x8 card, however, because often even when a GPU is advertised as x8, the real port on it might be just as large as an x16. Electronically it is an x8, physically it is an x16. That will not deal with this main board, we really require the small adapter.
Nvidia Tesla Cooling Fan Kit
As said, the challenge is to find a fan shroud that fits in the case. After some browsing, I found this package on Ebay a bought 2 of them. They came delivered total with a 40mm fan, and it all fits completely.
Be warned that they make a dreadful lot of sound. You do not wish to keep a computer with these fans under your desk.
To watch on the temperature level, I whipped up this quick script and put it in a cron job. It occasionally reads out the temperature level on the GPUs and sends that to my Homeassistant server:
In Homeassistant I included a graph to the dashboard that displays the values in time:
As one can see, the fans were loud, but not especially efficient. 90 degrees is far too hot. I searched the internet for a sensible ceiling but might not find anything specific. The documents on the Nvidia website discusses a temperature level of 47 degrees Celsius. But, what they mean by that is the temperature level of the ambient air surrounding the GPU, not the measured worth on the chip. You understand, the number that in fact is reported. Thanks, Nvidia. That was valuable.
After some additional browsing and reading the viewpoints of my fellow internet people, my guess is that things will be fine, provided that we keep it in the lower 70s. But don't quote me on that.
My very first effort to remedy the circumstance was by setting a maximum to the power consumption of the GPUs. According to this Reddit thread, one can lower the power usage of the cards by 45% at the expense of just 15% of the performance. I tried it and ... did not notice any difference at all. I wasn't sure about the drop in efficiency, having only a couple of minutes of experience with this setup at that point, but the temperature level qualities were certainly the same.
And then a light bulb flashed on in my head. You see, right before the GPU fans, there is a fan in the HP Z440 case. In the image above, it remains in the best corner, inside the black box. This is a fan that draws air into the case, and I figured this would operate in tandem with the GPU fans that blow air into the Teslas. But this case fan was not spinning at all, since the remainder of the computer system did not require any cooling. Looking into the BIOS, I discovered a setting for the minimum idle speed of the case fans. It ranged from 0 to 6 stars and library.kemu.ac.ke was presently set to 0. Putting it at a higher setting did marvels for the temperature level. It also made more sound.
I'll reluctantly admit that the third video card was valuable when adjusting the BIOS setting.
MODDIY Main Power Adaptor Cable and Akasa Multifan Adaptor
Fortunately, often things simply work. These two items were plug and play. The MODDIY adaptor cable television linked the PSU to the main board and CPU power sockets.
I used the Akasa to power the GPU fans from a 4-pin Molex. It has the nice feature that it can power two fans with 12V and two with 5V. The latter certainly minimizes the speed and thus the cooling power of the fan. But it also reduces sound. Fiddling a bit with this and the case fan setting, I found an acceptable tradeoff in between sound and temperature level. For now a minimum of. Maybe I will need to revisit this in the summertime.
Some numbers
Inference speed. I collected these numbers by running ollama with the-- verbose flag and asking it five times to compose a story and balancing the outcome:
Performancewise, ollama is set up with:
All models have the default quantization that ollama will pull for you if you don't define anything.
Another crucial finding: Terry is without a doubt the most popular name for a tortoise, followed by Turbo and Toby. Harry is a favorite for hares. All LLMs are loving alliteration.
Power usage
Over the days I watched on the power usage of the workstation:
Note that these numbers were taken with the 140W power cap active.
As one can see, there is another tradeoff to be made. Keeping the design on the card improves latency, but consumes more power. My existing setup is to have actually two models packed, one for coding, the other for generic text processing, and keep them on the GPU for approximately an hour after last usage.
After all that, am I pleased that I began this task? Yes, I think I am.
I spent a bit more cash than prepared, but I got what I desired: a way of locally running medium-sized models, entirely under my own control.
It was a great choice to begin with the workstation I already owned, and see how far I might include that. If I had begun with a brand-new machine from scratch, it certainly would have cost me more. It would have taken me a lot longer too, as there would have been lots of more options to pick from. I would also have been extremely lured to follow the buzz and buy the current and biggest of whatever. New and glossy toys are fun. But if I purchase something new, I want it to last for years. Confidently anticipating where AI will enter 5 years time is difficult today, so having a cheaper maker, that will last a minimum of some while, feels acceptable to me.
I wish you great luck on your own AI journey. I'll report back if I find something new or fascinating.