this post was submitted on 20 Feb 2024
144 points (95.0% liked)

Selfhosted

40394 readers
304 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS
 

It looks like !buildapc community isn't super active so I apologize for posting here. Mods, let me know if I should post there instead.

I built my first PC when I was I think 10-11 years old. Built my next PC after that and then sort of moved toward pre-made HP/Dell/etc. My last PC's mobo just gave out and I'm looking to replace the whole thing. I've read over the last few years that prefabs from HP/Dell/etc. have gone to shit and don't really work like they used to. Since I'm looking to expand comfortably, I've been thinking of giving building my own again.

I remember when I was a young lad, that there were two big pain points when putting the rig together: motherboard alignment with the case (I shorted two mobos by having it touch the bare metal of the grounded case; not sure how that happened but it did) and CPU pin alignment so you don't bend any pins when inserting into the socket.

Since it's been several decades since my last build, what are some things I should be aware of? Things I should avoid?

For example, I only recently learned what M.2 SSD are. My desktop has (had) SATA 3.5" drives, only one of which is an SSD.

I'll admit I am a bit overwhelmed by some of my choices. I've spent some time on pcpartpicker and feel very overwhelmed by some of the options. Most of my time is spent in code development (primarily containers and node). I am planning on installing Linux (Ubuntu, most likely) and I am hoping to tinker with some AI models, something I haven't been able to do with my now broken desktop due to it's age. For ML/AI, I know I'll need some sort of GPU, knowing only that NVIDIA cards require closed-source drivers. While I fully support FOSS, I'm not a OSS purist and fully accept that using a closed source drivers for linux may not be avoidable. Happy to take recommendations on GPUs!

Since I also host a myriad of self hosted apps on my desktop, I know I'll need to beef up my RAM (I usually go the max or at least plan for the max).

My main requirements:

  • Intel i7 processor (I've tried i5s and they can't keep up with what I code; I know i9s are the latest hotness but don't think the price is worth it; I've also tried AMD processors before and had terrible luck. I'm willing to try them again but I'd need a GOOD recommendation)
  • At least 3 SATA ports so that I can carry my drives over
  • At least one M.2 port (I cannibalized a laptop I recycled recently and grabbed the 1TB M.2 card)
  • On-board Ethernet/NIC (on-board wifi/bluetooth not required, but won't complain if they have them)
  • Support at least 32 GB of RAM
  • GPU that can support some sort of ML/AI with DisplayPort (preferred)

Nice to haves:

  • MoBo with front USB 3 ports but will accept USB 2 (C vs A doesn't matter)
  • On-board sound (I typically use headphones or bluetooth headset so I don't need anything fancy. I mostly listen to music when I code and occasionally do video calls.)

I threw together this list: https://pcpartpicker.com/list/n6wVRK

It didn't matter to me if it was in stock; just wanted a place to start. Advice is very much appreciated!

EDIT: WOW!! I am shocked and humbled by the great advice I've gotten here. And you've given me a boost in confidence in doing this myself. Thank you all and I'll keep replying as I can.

(page 2) 50 comments
sorted by: hot top controversial new old
[–] MonkderZweite@feddit.ch 3 points 9 months ago

Btw, there are fast and beautiful M.2/NVMe to USB cases, for your SSD.

[–] tabular@lemmy.world 3 points 9 months ago* (last edited 9 months ago) (3 children)

The responsiveness between a hard drive and an SSD is night and day. NVMe is even faster but not noticeable unless you move a hell of a lot of data around. A motherboard having at least 1 M.2 NVMe slot is common, so installing the OS on it is an option. Hard drives have more storage per price, but unless space is significant factor I suggest using SSDs (also quieter than a spinning disk!). More info on storage formats in this video

Recent generations of motherboards use DDR5 RAM, which were very expensive on release. I think the price has come down but I am not up to date this generation. You may be able to save money making a DDR4 system but you'll be stuck on a less supported platform.

AMD had like ~10 years of bad/power hungry processors and Intel stagnated, re-releasing 4-core processors over and over. AMD made a big comeback with their Ryzen series becoming best bang for buck, then even over taking Intel. I think it's pretty even now.

If you don't intend to game or do certain compute workloads then you can avoid buying a GPU. Integrated CPUs have come quite far (still low end compared to a dedicated GPU). Crypto mining, Covid and now AI has made the GPUs market expensive and boring. Nvidia has more higher-end cards, mid range is way more expensive for both and low end sucks ass. On Linux AMD GPUs drivers come with the OS, but Nvidia you have to get their proprietary drivers (Linux gaming has come a long way).

[–] PipedLinkBot@feddit.rocks 3 points 9 months ago

Here is an alternative Piped link(s):

this video

Piped is a privacy-respecting open-source alternative frontend to YouTube.

I'm open-source; check me out at GitHub.

[–] CosmicTurtle@lemmy.world 2 points 9 months ago (6 children)

I was really hoping to cannibalize the 32 GBs of DDR3 RAM but I couldn't find a MoBo that supports it anymore. Then I saw DDR5 is the latest!

I don't really do any gaming. If I wasn't going to tinker with AI, I'd just need a card for dual DisplayPort output. I can support HDMI but...I prefer DP

load more comments (6 replies)
[–] jjlinux@lemmy.ml 2 points 9 months ago (2 children)

DDR5 has gone down dramatically compared to launch. You can get 64GB with a very fast bus for under 200 dollars now. At launch 32GB would easily set you back 250+. AMD has made a killing with Ryzen. Never mind the new naming convention that Intel came up with to make it even more complicated to choose the right CPU for your use cases, ridiculous. As for Nvidia GPU drivers, at the end of the day, they just work, regardless their proprietary drivers philosophy (which, again, I agree sucks). But if the OP is going to be doing AI development, machine learning and all that cool stuff, he'd be better served by getting a few CUDA TPUs. You can get those anywhere from 25 dollars to less than 100, and they come in all types (USB, PCI, M.2). https://coral.ai/products/#prototyping-products I have 1 USB Coral running the AI on my Frigate dicker for 16 cameras, and my CPU never reaches more than 12% while the TPU itself barely touches 20% utilization. You put 2 of those bad boys together, and the CPU would probably not even move from idle 🤣

[–] fubbernuckin@lemmy.world 3 points 9 months ago (1 children)

Hold on a second, how come every time i look for TPUs i get a bunch of not-for-sale nvidia and Google cards, but this just exists out there and i never heard of it?

load more comments (1 replies)
[–] CeeBee@lemmy.world 2 points 9 months ago* (last edited 9 months ago) (1 children)

getting a few CUDA TPUs

https://coral.ai/products/#prototyping-products

Those aren't "CUDA" anything. CUDA is a parallel processing framework by Nvidia and for Nvidia's cards.

Also, those devices are only good for inferencing smaller models for things like object detection. They aren't good for developing AI models (in the sense of training). And they can't run LLMs. Maybe you can run a smaller model under 4B, but those aren't exactly great for accuracy.

At best you could hope for is to run a very small instruct model trained on very specific data (like robotic actions) that doesn't need accuracy in the sense of "knowledge accuracy".

And completely forgot any kind of generative image stuff.

[–] jjlinux@lemmy.ml 1 points 9 months ago* (last edited 9 months ago) (6 children)

Same reply. And you can add as many TPUs as you want to push it to whatever level you want. At 59 bucks a piece, they'll blow any 4070 out of the water for the same or less cost. But to the OP, you don't have to believe any of us. You're in that field, I'm sure you can find the jnfo on if these would fit your needs or not.

load more comments (6 replies)
[–] possiblylinux127@lemmy.zip 3 points 9 months ago (1 children)

Could you buy both an AMD GPU and a Nvidia GPU? You could pass the Nvidia GPU into a VM with vfio for AI and then you could daily drive AMD with Foss drivers. (AMD is in a little less demand) There is also the option of Intel GPUs as they should work pretty well under Linux.

I personally would avoid Ubuntu do to snaps as there are many other options. Do what you feel comfortable with but you also could go with Linux mint or Fedora both of which don't have snap.

For AI I'm less experienced but I would use containers as that will make the setup much nicer.

[–] CosmicTurtle@lemmy.world 2 points 9 months ago (10 children)

Two GPUs? Is that a thing? How does that work on a desktop? Honestly, if it wasn't for my curiosity into AI, I'd just go with the onboard video though given my need for specific resolutions, I find comfort in having a dedicated card.

I've been using ubuntu exclusively for 10 some years and don't use snap at all. tbh, not even sure what snap is.

If it's not apt, then I don't use it.

[–] possiblylinux127@lemmy.zip 2 points 9 months ago

You do use it as a bunch of snap packages automatically install the snap instead.

For Nvidia I still think passthough is the best option as it isolates the Nvidia issues to a VM instead of the host. If you aren't going to spend a bunch of time on AI then you can just use a CPU as long as you have enough ram.

[–] CeeBee@lemmy.world 1 points 9 months ago

Two* GPUs? Is that a thing? How does that work on a desktop?

I've been using two GPUs in a desktop since 15 years ago. One AMD and one Nvidia (although not lately).

It really works just the same as a single GPU. The system doesn't really care how many you have plugged in.

The only difference you have to care about is specifying which GPU you want a program to use.

For example, if you had multiple Nvidia GPUs you could specify which one to use from the command line with:

CUDA_VISIBLE_DEVICES=0

or the first two with:

CUDA_VISIBLE_DEVICES=0,1

Anyways, you get the idea. It's a thing that people do and it's fairly simple.

[–] jjlinux@lemmy.ml 1 points 9 months ago

SNAP is just a proprietary packaging by Canonical. Basically the same as a flatpak, but fully controlled by Canonical, store and all. Integrated graphics will give you as much resolution as most GPUs, albeit they won't be able to render at dedicated GPU speeds. But unless you're actually rendering very heavy videos, integrated, matched together with 1 or more CUDA TPUs, and YOU set the limits.

load more comments (7 replies)
[–] Decronym@lemmy.decronym.xyz 2 points 9 months ago* (last edited 9 months ago)

Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I've seen in this thread:

Fewer Letters More Letters
NAS Network-Attached Storage
NVMe Non-Volatile Memory Express interface for mass storage
PCIe Peripheral Component Interconnect Express
PSU Power Supply Unit
RAID Redundant Array of Independent Disks for mass storage
SATA Serial AT Attachment interface for mass storage
SSD Solid State Drive mass storage
ZFS Solaris/Linux filesystem focusing on data integrity

8 acronyms in this thread; the most compressed thread commented on today has 5 acronyms.

[Thread #529 for this sub, first seen 20th Feb 2024, 23:55] [FAQ] [Full list] [Contact] [Source code]

load more comments
view more: ‹ prev next ›