Build a fast deep learning machine for under $1K
oreilly.com
oreilly.com
Same thing applies to storage, for the same reasons. There's a reason AMD is selling deep learning cards with Flash drives built in.
The choice of CPU cooler is silly. The CPU chosen is a 65W model, which will be cooled quietly even by the boxed cooler (and we don't need to care about overclocking with a non-K). By his own admission, the rig draws 250W, so the idea that 650W must be cooled is nonsense, and even then, only a part of that is due to the CPU.
It's probably worth looking more closely at the GPU, notably, if that cooler stays quiet when the card is under full load.
You do not need a monitor, keyboard or mouse to use such a machine. You can just ssh into it. You might need to borrow a set to set up the BIOS.
If you "run out of memory for your applications" on the GPU, have you considered simply lowering the mini-batch size? (See, this is why we got a good CPU, it removes the hurt from feeding smaller batches)
For those not familiar with them, this is the Radeon Pro SSG[1]
This has a built in M2 drive, but this is used as video card memory, NOT main storage. It could possibly allow big (HUGE) models or batches, but doesn't prove fast IO is often a bottleneck.
Practically no one[2] is using these for deep learning. They are marketed to the oil and gas modelling and visualization market and notably the product page (linked above) makes no mention of neural networks or deep learning, and it has never been mentioned in AMD's publicity.
Yes, it might be good for deep learning. And yet, modern deep models do want more memory. But there is a lot that needs to happen for this to be useful: AMD needs to release something like CuDNN and they need to make sure OpenCL is supported as well as CUDA is.
[1] https://arstechnica.com/gadgets/2016/07/amd-radeon-pro-ssg-g..., http://www.amd.com/en-us/press-releases/Pages/amd-radeon-pro...
[2] I'm sure you'll find someone. But show me a published paper or any kind, or even benchmarks showing the use of the extra memory somewhere.
It's not often a bottleneck. In fact it usually isn't. But when it is, you're left wondering why you didn't get an SSD. They're cheap enough now.
So, I have been sitting here wondering how I can make better use of it while it's practically parked in my server while I wait for some Pascal drivers to drop. I'm not so interested in robots / live video processing but it'd be neat if I could leverage its power for something fun or to assist the servers compute performance in some other ways that might be useful or interesting. I was running KVM with PCIe pass through passing the GPU to a guest VM running Steam as a steam streaming box but I got sick of having an OS on the network that I had to worry about Virus's, Malware and annoyingly slow and unreliable updates being installed when you least want it to happen and I got lazy and went back to playing PlayStation when I needed some time out from constructive work / research.
Open to ideas to any software I could tinker with if anyone has any interesting suggestions?
https://en.m.wikipedia.org/wiki/List_of_distributed_computin...
For reference, I built a home PC that I successfully do deep learning and data analysis on (mostly tensorflow and scipy stack) for about ~$10k. It's liquid cooled, has 15 fans, four radiators, an i7-6900K CPU, 128GB RAM, four GTX 1080 GPUs (controversial), four TBs of HDD space and 1TB of SSD space. I don't recommend you start with this at all, but my point is that porting your hardware from point A to point B will be a pain if it comes to it.
I used the guide here as a reference about 8 months ago when I built it: http://graphific.github.io/posts/building-a-deep-learning-dr.... My purpose in doing this was, essentially, to pay for electricity rather than AWS/GCP/Azure compute resources (and in that regard it's been very successful!).
I know I'm hijacking a thread here to talk about building home machines for professional deep learning work when this story is clearly not intended for that, but I wanted to throw in this perspective so that it's understood this is very different from just "build this machine to start out and upgrade it later." There's a law of diminishing returns here, but in general my point is that I do not think this is a minimum for "start doing deep learning effectively at home." If you want to learn hands on deep learning cheaply, my opinion is that it would be more efficient to use compute resources from a cloud provider before diving into this with a home-based custom machine.
tl;dr: The demographic of folks who probably want/should/need to build a home deep learning machine probably has little overlap with the demographic of folks who want to do it non-professionally, or at least with only $1k in resources.
The latter is more likely to happen if you start down this path at rock bottom prices.
Because as long as you're in the research and development phase, that'll help cut your coding/training/testing/adjusting cycle. I assume you'll be tuning your hyperparameters, perhaps on somewhat smaller test models, but they will still take half a day or so to train? That means you can try (almost) twice as many hyperparameter configurations in the same time. It still helps to spin up a second test with a different selection of parameters, even if you haven't gotten the results back from the first test, right?
(and as a bonus leftover: a nice machine to donate your local volunteer hackerspace, youth tech center, school etc etc)
I don't see the problem, as long as it's roughly 9-10x faster for an embarrassingly-parallel task of larger size, that 10% isn't going to make a big dent, is it? :-)
Leaving $700 for GPU's while providing reliable high end hardware pretty much designed to run GPU's for the base platform.
Also, paying $125 for 16GB of ram but not spending the extra $20 to have your CPU be able to overclock? I'm not sure where OP is building but I can find that much RAM for $20 less than they paid, and overclocking isn't really that difficult or unreliable these days.
On the other hand, it made the article more interesting for me. I can't really justify a home machine learning rig, but I was thinking I might soon replace that old mITX machine.
(edit - just reached the pics - really not sure why you'd go with a mini form factor and then add a 6" heatsink/fan!)
Anyone interested in deep learning should go that path instead of burning their money on Amazon.
Once you have the configuration you want, you just pay up and it arrives professionally assembled ready to rock. I don't think I'll ever by an off-the-shelf machine again.
Compatibility, price checking and searching are all available with PcPartPicker (UK site: https://uk.pcpartpicker.com/) which saved me an astonishing amount of time.
The hour or two building the machine were worth the few hundred it saved me, but everyone has different priorities.
Often times in those cases you also get great service because a) if you build PCs for a living you're a computer geek and it's fun to build an insane PC and b) they often use their biggest systems as advertisement. At least, that's what I've seen.
+cable management is like black magic to me. If I were to take the money saved as payment for me to get it as nice as those places get it, I'd be below minimum wage.
Don't lose 5 percent of your cpu overclock or more by having an itx friendly cooler instead of a D15 noctua or better.
Choose your video card wisely, AMD does some things better than NVIDIA depending on what software you're running.
If you chose an ITX platform for deep learning fun, uh, you should really add the couple shoeboxes extra space to your platform and have 4x-7x the power available to upgrade into.
What piece you would have use? Why? What tradeoffs you have considered?
You sound expert in the field, try to share your knowledge with the community in a constructive way so that we can all benefit from it.
I develop software for living and still I haven't any clue of what you said, while I followed quite well the article and I thought he was making reasonable choice.
Please show me better.
As the articles author himself questions, he should have gotten the marginally more expensive CPU, and definitely the GPU with more RAM.
* The overclockable CPU doesn't just mean that you very easily could get a 10%+ performance boost without much work, but also that you often (depending on your specific chip) can lower the voltage and make it run much cooler/quieter, which is something I increasingly care about if I'm using it a lot.
* He writes that fitting the model in RAM is basically the most important part, but then saves less than a dinner out by basically halving the RAM on the GPU he bought. The chip is otherwise the same though, so performance is only dependent on whether you fill that RAM or not.
* The Noctua D15 the parent mentioned is a CPU cooler where Noctua is a long standing high performant brand, and D15 is a specific model with a 15 inch fan and comparable sized heat sink. There are of course other brands, but I myself also usually end up with Noctuas. The reason it's important is that however fast you can dissipate heat from the cpu/case, the less chance of throttling, and the larger headroom for potential overclocks you get.
Airflow and room for larger heatsinks is also why he recommended not going for an ITX. A linked benefit is again the potential for a quieter system.
I haven't gone much into ML (yet), but I currently have a system with:
* I7 6700K (the difference to I5 6600K being higher base clock and hyperthreading, which is more important to computational work than to gaming, so if you have the money, definitely go for the I7)
* 32GB DDR4 (as author mentioned, RAM is cheap). The clock/timings on RAM isn't really as important, but try to find the best you can find for a given price point.
* An Nvidia GTX 1080: It's not Titan X or Z, but almost, at less price. It definitely blows the budget for a $1000 system, but I agree that the entire 10 series is good.
If the limit is a firm $1000, I would get something like this:
https://pcpartpicker.com/list/XHV9Fd
And if more funds is available, I'd get more storage and RAM, then a better CPU, then a better GPU, then maybe bump the chassis up to an R5 (same brand), possibly another motherboard. In that order. There's always something better, so you compromise based on budget.
It's been great sshing in from my laptop, submitting a job that completes far more quickly and keeping my laptop cool.
Yeah, it's supremely fast, my only regret is not having enough time to do something fun with it. For work I'm stuck with the clients platform approved machine, which is not what I would've picked. Tough to complain, but if I'm ever between contracts, I'll likely get into some fun project.
I would be interested to see what other people are using for their setups, and how that can differ for things like high-resolution style transfer or generic neural networks, etc...and at what point they have to switch from geforce/quadro cards to tesla.
I'm tempted in build a hackintosh:
https://www.tonymacx86.com/threads/hackintosh-cutting-edge-k...
- Intel i7 Kaby Lake - No decided on motherboard. The one that cause me less trouble (for hackintosh) is fine. - GTI 750ti (have) or buy a pascal nvidia. - NVMe drive if possible - 32 GB RAM. - Probably a Thermaltake CORE P3 case. Not decided.
I was thinking in use a Liquid Cooler but wonder if the Noctua could be better/less noise?
Depends, is your option of water cooling an All-In-One-solution that have become popular in recent years? Their performance is on par or slightly better than a large heat sink + large low speed fan(s), but they're not generally quieter, as you still have fans for them, as well as a pump.
I considered those options when building mine too, and as I wans't too enthusiastic about assembling my own water cooling system, I went for a large air cooled heatsink instead (the D15). No risk of leakage or pump failure, and proven performance/low noise.
However, I wish to have a quiet system, and my brother have it and it sound louder than I wish. I don't plan on overcloking.
http://www.anandtech.com/show/5054/corsair-hydro-series-h60-...
The "Silver Arrow" is an air cooler from Thermalright that is pretty equivalent to a Noctua or a Phantek or be Quiet! etc.
In that review it beats the H60 in both temperature and noise. The H60 is more than twice as loud.
So yes, unless you assemble your own water cooling system, I'd say definitely go for a regular heatsink+fan.
Deep learning toolkits basically have two modes of operation: the CPU way, and the proprietary NVIDIA way. There is no point to putting an AMD chip in a machine you hope to use for deep learning.
Some toolkits may go through the motions of supporting AMD via OpenCL, but that's not going to be the case that they make sure works well, or works at all.
This is a problem, as NVIDIA is awful at maintaining drivers, results are being published based on "well, my NVIDIA black box decided to do this", and it contributes to deep learning veering toward a local maximum. But specifically choosing to do deep learning with an AMD chip is a pointless sacrifice.