I'm shopping for a PC upgrade; are these specs optimal for Unity, or are they excessive?

I’m on the verge of a minor work-related financial windfall, and I’d like to upgrade my dev machine accordingly. I’d like to set something up that will make iteration as fast as possible, but I don’t want to spend money on things that won’t actually be useful.

This is the build proposed by a family member. For the purpose of this thread, the most important parts of it include the RAM, CPU, GPU, and SSD storage.

Here is some information about my use case and circumstances:

  • I’m developer, and therefore beholden to domain reloads and script compilation.

  • I use Windows 10.

  • I primarily use Rider as my IDE, but I occasionally dip into Visual Studio for some specific tools I need.

  • I intend to keep my project’s system requirements as low as possible; this beef is entirely for the benefit of development.

  • I do play PC games, of course, but I actually play most of my games on consoles. So I’m not optimizing this machine for gaming.

  • I am based in the United States (in case shipping and taxes are important factors).

And here is my understanding of its impact on system resources:

  • RAM access will always be faster than disk access

  • Since OSes cache recently-loaded files in RAM, more RAM means less disk access (especially if I’m doing more reads than writes).

  • Unity has a mix of single-thread and parallel processes. Domain reloads tend to be single-threaded, but script compilation (including player builds) tend to be parallel.

What do you think? Can this setup bring out the best in Unity?

The Threadripper 2970WX is based on Zen+. It isn’t a bad CPU by any means, but it will have inferior single thread performance than any current gen or even last gen mainline processor.

Since a lot of Unity still revolves around the main thread, I’d say the answer is no.

More RAM means less disk access in the case of file cache only in the case where your OS otherwise would run out of free memory to use as the file cache, and only when the file is being read a second time. The first time a file is read, it is always from disk.

For that amount of money, I’d buy a Ryzen 5950X. I’d also save about $250 getting a used GTX 980 instead of the 1050 TI. The 980 is a faster card, same amount of VRAM, and available on Ebay for under $200. Upgrade when current gen cards become readily available. I’d also get a bigger PSU, so you don’t need to replace that if/when you get a better video card.

1 Like

Thank you for the reply.

What about the choice of RAM and disk? Any opinions there?

I highly recommend the following changes. Like @Joe-Censored mentioned the 2970WX is based off of an older architecture. Worse yet it uses a process node from Global Foundries that was never designed for performance which means it’s at best tied with the 5950X and at worst around 15% slower.

Higher memory capacity is not even an advantage thanks to the 5000 series supporting 128GB. Having more PCIe lanes would be an advantage if you needed 64 lanes but if you don’t have sufficient devices to take advantage of all of them the 5000 series is superior thanks to having faster PCIe 4.0 lanes.

Basically the 2970WX only makes sense now in very limited situations and yours doesn’t match any of them.

CPU: AMD Ryzen 9 5950X 3.4 GHz 16-Core Processor ($1199.00 @ Amazon)
CPU Cooler: Noctua NH-D15S 82.52 CFM CPU Cooler ($89.95 @ Amazon)
Motherboard: Gigabyte B550 AORUS MASTER ATX AM4 Motherboard ($252.99 @ Amazon)
Memory: G.Skill Trident Z Neo 64 GB (2 x 32 GB) DDR4-3600 CL16 Memory ($439.99 @ Newegg)
Total: $1981.93

Concerning memory that’s up to you. I recommend 64GB only because I have yet to see a need for more than 32GB for Unity but if you use programs other than Unity then you would know better than I would concerning your needs. Regardless of which size you choose you want 3600. It’s the ideal speed for the 5000 series.

There is a warning when you configure the above components but that’s because it may require an updated BIOS for the motherboard. The B550 AORUS MASTER supports BIOS flashback so you won’t need the CPU to update it.

2 Likes

Okay, no ThreadRipper for me then.

What constitutes a “device” exactly?

99.9% of the time I use Rider at the same time I use Unity, so there’s that. Ultimately my rationale for more RAM is to reduce disk access for frequently-read files (like source code…I think).

In this context a “device” would be any component attached to the PCIe lanes or inserted in a PCIe slot. Typically that would be NVME SSD’s and graphics cards.

Source code are just text files, and in the grand scheme of things use a rather trivial amount of both RAM and disk space. A few textures in your project probably use more than all the project’s source code combined.

Let’s see, then. How many PCIe slots will I need…

  • One for a GPU (including media ports like HDMI)

  • One for the networking hardware

  • One or two for disk storage

  • One for audio, I think (including a microphone for Zoom)

  • One or two for a bunch of USB ports, I think

Is this an accurate accounting?

Maybe so, but that’s just one example. Everything in my Library folder is fair game for minimizing disk access, right? Right now my Library folder is 8.2GB, and a debug build for a certain platform is about 3.2GB (including all debugging data and IL2CPP content).

And that’s before I start doing things outside of Unity or Rider.

I have a AM4 setup with a Asus Crosshair VIII Hero and 5950x. I have one gen3 nvme as C drive. One gen4 nvme were my unity projects are. One nvidia 3090 running 16x

The lanes are enough for that config. btw, i would go with 3800 cl14

edit:

One of the two disks are SATA over m.2 not nvme.
I would go with Samsung 980 PRO 2x1tb

I would get a Titan certified PSU. Like a Seasonic one. Never cheap out on the PSU

What led you to split your storage that way?

What’s the difference?

on c I have windows and programs.
on disk 2 I only have unity projects.

3800 cl14 are the sweet spot for Zen 3

Sure, but why? Is one of your drives better for performance, or is it just personal preference?

How so?

the gen4 is much better than gen3, plus its dedicated to only unity projects.

What do you mean how so? 1900 mhz is the sweet spot for zen 3 infinity fabric.

Typically your networking, audio, and USB controllers will be built into the motherboard, unless you have specific needs that require an add on card. So they may use PCIe lanes, but won’t use slots.

You’d only get a benefit from file cache if Unity reads the same files from the library folder multiple times. I don’t know exactly how Unity accesses the library folder data, but I have doubts they repeatedly read from the same files over and over. I guess you’d see the benefit if you frequently closed Unity entirely, then reopened it.

Ah, I see. I’m gonna guess that Unity projects involve lots and lots of disk operations?

I’m saying I don’t know what that means because I’ve never built a machine before and don’t really know what I’m doing.

Actually a big difference, here I open a large scene and after build game on gen3 nvme, also 3950x

https://www.youtube.com/watch?v=Tcd47_e5XF8

Here I do the same with gen4 and 5950x

https://www.youtube.com/watch?v=KzFH4HJr3Ng

The optimum frequency for the infinity fabric is 1900mhz, which means 3800 mhz memory . Timings is also important with Zen and thats why cl14 gives that extra performance nudge.

I think you’re pointing the OP in the wrong direction. From this conversation, I don’t think the OP is here for overclocking advice, or has much experience in that area. (my guess)

The official spec for Zen 3 desktop CPU’s is 3200MHz memory. I know people routinely go with 3600MHz to 3800MHz, with any issues being rare, but for someone without much computer building experience I think it is not good advice to suggest going above official spec.

This guess is correct. I may try it if I can do so quickly, easily, and without repercussions but I’m not factoring overclocking into my purchasing decisions.

What are these issues and how are they resolved?

infinity fabric below 1800 (3600mhz) will see perfomance drop. Not so big difference between 1800 and 1900 though. I have yet to hear about a 5950x that cant go 3600

edit: 3200 cl14 will see about the same perfoamnce as 3600 cl16. Just make sure you run infinity fabric 1:1 to ram otherwise you will introduce latency

1 Like

I wouldn’t call operating the hardware at the officially advertised specification a “performance drop”.

Well run a bench and see for yourself, you will se a drop between 3200 and 3600. Not so large drop when going from 3800 to 3600

1 Like