In Which a Hardware Platform was Chosen, Part 1
![]() |
Minecraft Oil Rig Platform by N11ck (YouTube link) |
A New Machine
To study deep learning, one must eventually run training algorithms for the neural networks, and this requires quite a bit of computational power. Depending on how recently you purchased your computer, and what it is used for, it may or may not be enough. Perhaps you are a heavy PC gamer, perhaps you use your computer to do video editing, or perhaps you are a game developer and have a top of the line PC, in which case it's likely that your current computer can handle the load for networks up to a certain complexity. As my laptops are several years ago by now, they will not be able to handle the workload, and I must look for an alternative.
Cloud Versus Personal Computer
![]() |
Cloud Strife from Final Fantasy VII. He won't run your workloads, but he will save your planet from destruction. |
The first choice to be made is whether you will rely on computational resources in the cloud, or have a personal machine to run deep learning algorithms on. The benefits of running compute in the cloud are:
- No need to manage your own computer, whether that's maintaining the hardware (upgrading obsolete components, cooling, replacing broken components) or software (upgrading to newest version, antivirus, backups)
- Pay as you go, no need to shell out a large amount of cash upfront to pay for a machine, rather it is rented per unit time used, so if you use heavy compute infrequently, this might make more sense (there are some free cloud compute providers as well, but they often come with severe limitations, such as maximum runtime duration, which could hamper any serious work)
- Can access compute anywhere you can get an internet connection, no need to lug your computer with you everywhere you go, a simple client such as a web browser can often be enough to use cloud compute resources, which means an ultrabook (or even a smartphone with some finagling) can be enough to set up and train neural networks
For smaller projects and experiments, the free cloud compute providers could be sufficient, such as Google Colab (Google link) or Kaggle Kernels (Kaggle link). The major service providers also offer free trials or free credits. Here are some lists of available cloud server providers: fast.ai's detailed list (fast.ai link), cloud GPU vendor list with pricing (GitHub link).
You also need to consider what your other use cases are. If you:
- Are an avid gamer and want to have a hefty GPU at your disposal,
- Edit video and want to use the GPU acceleration that many professional video editing software are now utilizing,
- Do any graphics work such as rendering computer generated images,
- Or any other situation where you would like to rely on having local GPU resources,
Personally, besides training neural networks, my other major use cases are some mild gaming and video editing. Although I do not do either heavily, when I run into poor performance issues due to insufficient GPU specs, it's frustrating enough that I am willing to consider having my own machine to cover all three scenarios.
Desktop Versus Laptop
![]() |
I find that some people don't appreciate the portability of the 27" iMac. |
- Install multiple GPUs into one machine
- Buy better GPUs and swap them into the desktop as the GPUs come down in price
CPUs are another component that can be upgraded more easily in a desktop, although CPU performance is not paramount when used for training neural networks. Also, sometimes when upgrading a CPU, the motherboard needs to be upgraded as well, so it's not as clear cut an easy upgrade path as the GPU.
Another benefit of a desktop is the ability to easily connect large and multiple monitors, if having lots of screen space is important for you. If you multi-task a lot, or if you like being able to see everything easily without having to raise and lower windows, then having multiple monitors is for you. It's possible to have multiple monitors connected to a laptop as well, but that negates the portability aspect, arranging the monitors position is not as easy since the laptop's monitor is not detachable, and also there may be limitations to the number or resolution of monitors that can be supported.
Even the heaviest laptop is leagues above a desktop in terms of portability. Not only is the desktop bulky, but you would also need to transport the monitor as well, neither of which are typically built to be easily packaged and transported. If you intend to travel with your machine, then a laptop is the way to go. As I sometimes travel between different countries and stay at each location for some time, I wanted a main computing device which is portable. Getting a mini-desktop would make portability less of a problem, but then I give up the ability to install large and/or multiple GPUs, which is the main point of a desktop.
The Next Step
The next decisions to be made are the specs for the actual machine you are going to get. Please follow along in my next blog article, In Which a Hardware Platform was Chosen, Part 2 (link), where I discuss the various specs of interest of a good machine for deep learning. And if you haven't read it, please also see my previous blog entry, In Which a Goal was Set (link), where I talked about my fascination with and motivation for studying artificial intelligence.To be continued...
Comments
Post a Comment