1 How is that For Flexibility?
alexisgullett edited this page 2025-02-11 16:43:37 +01:00


As everyone is aware, the world is still going nuts attempting to establish more, more recent and better AI tools. Mainly by tossing unreasonable amounts of money at the problem. Many of those billions go towards constructing inexpensive or complimentary services that operate at a significant loss. The tech giants that run them all are hoping to attract as many users as possible, so that they can catch the marketplace, and become the dominant or only party that can provide them. It is the traditional Silicon Valley playbook. Once supremacy is reached, expect the enshittification to begin.

A most likely method to earn back all that money for developing these LLMs will be by tweaking their outputs to the preference of whoever pays the most. An example of what that such tweaking looks like is the rejection of DeepSeek's R1 to discuss what took place at Tiananmen Square in 1989. That one is certainly politically motivated, but ad-funded services will not exactly be enjoyable either. In the future, I fully expect to be able to have a frank and honest discussion about the Tiananmen events with an American AI representative, but the only one I can afford will have assumed the personality of Father Christmas who, while holding a can of Coca-Cola, will intersperse the recounting of the tragic events with a happy "Ho ho ho ... Didn't you know? The holidays are coming!"

Or perhaps that is too far-fetched. Today, dispite all that cash, the most popular service for code completion still has problem dealing with a couple of easy words, despite them existing in every dictionary. There must be a bug in the "complimentary speech", or something.

But there is hope. Among the tricks of an approaching player to shake up the market, is to undercut the incumbents by launching their design totally free, under a permissive license. This is what DeepSeek just made with their DeepSeek-R1. Google did it earlier with the Gemma designs, bio.rogstecnologia.com.br as did Meta with Llama. We can download these designs ourselves and run them on our own hardware. Even better, individuals can take these models and scrub the predispositions from them. And we can download those scrubbed models and run those on our own hardware. And then we can lastly have some truly helpful LLMs.

That hardware can be an obstacle, though. There are 2 choices to select from if you wish to run an LLM in your area. You can get a huge, effective video card from Nvidia, or you can buy an Apple. Either is expensive. The main spec that indicates how well an LLM will perform is the amount of memory available. VRAM when it comes to GPU's, typical RAM in the case of Apples. Bigger is much better here. More RAM indicates larger designs, which will dramatically enhance the quality of the output. Personally, I 'd say one needs a minimum of over 24GB to be able to run anything helpful. That will fit a 32 billion criterion design with a little headroom to spare. Building, or buying, a workstation that is equipped to deal with that can easily cost countless euros.

So what to do, if you don't have that amount of money to spare? You buy pre-owned! This is a viable alternative, but as always, there is no such thing as a complimentary lunch. Memory might be the main issue, but do not underestimate the significance of memory bandwidth and other specs. Older devices will have lower performance on those elements. But let's not worry excessive about that now. I have an interest in constructing something that at least can run the LLMs in a functional method. Sure, the current Nvidia card might do it much faster, however the point is to be able to do it at all. Powerful online designs can be good, but one need to at the minimum have the choice to change to a local one, if the scenario calls for it.

Below is my effort to construct such a capable AI computer without spending excessive. I ended up with a workstation with 48GB of VRAM that cost me around 1700 euros. I could have done it for less. For example, it was not strictly necessary to purchase a brand brand-new dummy GPU (see listed below), or I might have discovered someone that would 3D print the cooling fan shroud for me, rather of shipping a ready-made one from a distant country. I'll admit, I got a bit impatient at the end when I discovered I had to buy yet another part to make this work. For me, this was an acceptable tradeoff.

Hardware

This is the complete cost breakdown:

And this is what it looked liked when it initially booted up with all the parts set up:

I'll provide some context on the parts listed below, and after that, I'll run a few fast tests to get some numbers on the performance.

HP Z440 Workstation

The Z440 was a simple pick because I currently owned it. This was the beginning point. About two years ago, I wanted a computer that might act as a host for my virtual devices. The Z440 has a Xeon processor with 12 cores, and this one sports 128GB of RAM. Many threads and a lot of memory, that should work for hosting VMs. I purchased it secondhand and after that switched the 512GB hard disk drive for a 6TB one to save those . 6TB is not needed for running LLMs, and for that reason I did not include it in the breakdown. But if you plan to collect numerous designs, 512GB may not suffice.

I have actually pertained to like this workstation. It feels all extremely solid, and I haven't had any issues with it. A minimum of, until I began this project. It turns out that HP does not like competition, and I came across some troubles when swapping components.

2 x NVIDIA Tesla P40

This is the magic component. GPUs are costly. But, similar to the HP Z440, frequently one can discover older equipment, that utilized to be top of the line and is still really capable, pre-owned, for fairly little cash. 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 2 of those, so we buy 2. Now we have 48GB of VRAM. Double nice.

The catch is the part about that they were suggested for servers. They will work great in the PCIe slots of a normal workstation, however in servers the cooling is managed differently. Beefy GPUs consume a lot of power and can run extremely hot. That is the reason customer GPUs always come equipped with big fans. The cards require to look after their own cooling. The Teslas, nevertheless, have no fans whatsoever. They get just as hot, however anticipate the server to supply a steady flow of air to cool them. The enclosure of the card is rather shaped like a pipeline, and you have two choices: blow in air from one side or blow it in from the other side. How is that for flexibility? You definitely need to blow some air into it, however, or you will harm it as quickly as you put it to work.

The solution is basic: just mount a fan on one end of the pipe. And certainly, it seems a whole home industry has actually grown of people that sell 3D-printed shrouds that hold a standard 60mm fan in simply the best place. The problem is, the cards themselves are already rather large, and it is difficult to discover a configuration that fits 2 cards and 2 fan mounts in the computer system case. The seller who offered me my 2 Teslas was kind sufficient to include two fans with shrouds, however there was no chance I could fit all of those into the case. So what do we do? We buy more parts.

NZXT C850 Gold

This is where things got bothersome. The HP Z440 had a 700 Watt PSU, which might have sufficed. But I wasn't sure, and I required to buy a new PSU anyway because it did not have the ideal connectors to power the Teslas. Using this handy site, I deduced that 850 Watt would suffice, and I bought the NZXT C850. It is a modular PSU, meaning that you just need to plug in the cables that you in fact need. It featured a cool bag to store the extra cables. One day, I might give it an excellent cleansing and utilize it as a toiletry bag.

Unfortunately, HP does not like things that are not HP, so they made it hard to switch the PSU. It does not fit physically, and they likewise altered the main board and CPU connectors. All PSU's I have ever seen in my life are rectangle-shaped boxes. The HP PSU likewise is a rectangle-shaped box, however with a cutout, making certain that none of the typical PSUs will fit. For no technical factor at all. This is simply to mess with you.

The installing was eventually fixed by utilizing 2 random holes in the grill that I in some way managed to line up 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 turned to double-sided tape.

The adapter needed ... another purchase.

Not cool HP.

Gainward GT 1030

There is another issue with using server GPUs in this consumer workstation. The Teslas are intended to crunch numbers, not to play computer game with. Consequently, they don't have any ports to connect a monitor to. The BIOS of the HP Z440 does not like this. It refuses to boot if there is no other way to output a video signal. This computer system will run headless, but we have no other choice. We need to get a third video card, that we do not to intent to use ever, simply to keep the BIOS delighted.

This can be the most scrappy card that you can find, naturally, but there is a requirement: we must make it fit on the main board. The Teslas are bulky and fill the two 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 website for some background on what those names imply. One can not buy any x8 card, though, because frequently even when a GPU is marketed as x8, the actual adapter on it may be simply as large as an x16. Electronically it is an x8, physically it is an x16. That will not work on this main board, we truly need the little connector.

Nvidia Tesla Cooling Fan Kit

As said, the difficulty is to discover a fan shroud that suits the case. After some searching, I found this set on Ebay a bought 2 of them. They came provided total with a 40mm fan, and everything fits completely.

Be warned that they make a horrible lot of noise. You do not wish to keep a computer with these fans under your desk.

To watch on the temperature level, I whipped up this fast script and put it in a cron task. It occasionally reads out the temperature on the GPUs and sends out that to my Homeassistant server:

In Homeassistant I added a graph to the control panel that shows the values over time:

As one can see, the fans were loud, but not particularly efficient. 90 degrees is far too hot. I browsed the internet for a sensible ceiling however might not find anything particular. The documents on the Nvidia site mentions a temperature of 47 degrees Celsius. But, what they indicate by that is the temperature level of the ambient air surrounding the GPU, not the measured value on the chip. You know, the number that really is reported. Thanks, Nvidia. That was helpful.

After some additional searching and checking out the opinions of my fellow web residents, my guess is that things will be fine, supplied that we keep it in the lower 70s. But do not estimate me on that.

My first attempt to remedy the situation was by setting a maximum to the power usage of the GPUs. According to this Reddit thread, one can decrease the power intake of the cards by 45% at the cost of just 15% of the performance. I attempted it and ... did not notice any difference at all. I wasn't sure about the drop in performance, having just a number of minutes of experience with this configuration at that point, but the temperature qualities were certainly the same.

And after that a light bulb flashed on in my head. You see, just before the GPU fans, there is a fan in the HP Z440 case. In the picture above, it remains in the ideal corner, inside the black box. This is a fan that draws air into the case, and I figured this would work in tandem with the GPU fans that blow air into the Teslas. But this case fan was not spinning at all, due to the fact that the remainder of the computer did not need any cooling. Checking out the BIOS, I found a setting for the minimum idle speed of the case fans. It varied from 0 to 6 stars and was presently set to 0. Putting it at a higher setting did wonders for the temperature. It also made more noise.

I'll unwillingly confess that the third video card was helpful when changing the BIOS setting.

MODDIY Main Power Adaptor Cable and Akasa Multifan Adaptor

Fortunately, in some cases things just work. These 2 products were plug and play. The MODDIY adaptor cable television connected the PSU to the main board and CPU power sockets.

I utilized the Akasa to power the GPU fans from a 4-pin Molex. It has the good feature that it can power two fans with 12V and two with 5V. The latter certainly decreases the speed and thus the cooling power of the fan. But it likewise reduces noise. Fiddling a bit with this and the case fan setting, I discovered an appropriate tradeoff in between noise and temperature level. For now at least. Maybe I will need to revisit this in the summer.

Some numbers

Inference speed. I gathered these numbers by running ollama with the-- verbose flag and asking it 5 times to write 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 do not define anything.

Another crucial finding: Terry is by far the most popular name for a tortoise, followed by Turbo and Toby. Harry is a favorite for hares. All LLMs are loving alliteration.

Power intake

Over the days I kept an eye on the power consumption 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 model on the card enhances latency, however consumes more power. My current 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 believe I am.

I invested a bit more cash than planned, but I got what I desired: a way of locally running medium-sized models, totally under my own control.

It was an excellent choice to start with the workstation I currently owned, and see how far I could come with that. If I had begun with a brand-new maker from scratch, it certainly would have cost me more. It would have taken me a lot longer too, as there would have been a lot more choices to pick from. I would likewise have actually been very lured to follow the hype and purchase the most recent and biggest of everything. New and shiny toys are enjoyable. But if I purchase something new, I desire it to last for several years. Confidently forecasting where AI will go in 5 years time is impossible right now, so having a cheaper maker, that will last a minimum of some while, feels acceptable to me.

I want you best of luck on your own AI journey. I'll report back if I discover something new or intriguing.