Puget Systems HPC Blog
In this post I'll be working up, analyzing, visualizing, and doing Gradient Descent for Linear Regression. It's a Jupyter notebook with all the code for plots and functions in Python available on my github account.
In Part 3 of this series on Linear Regression I will go into more detail about the Model and Cost function. Including several graphs that will hopefully give insight into the their nature and serve as a reference for developing algorithms in the next post.
In Part 2 of this series on Linear Regression I will pull a data-set of house sale prices and "features" from Kaggle and explore the data in a Jupyter notebook with pandas and seaborn. We will extract a good subset of data to use for our example analysis of the linear regression algorithms.
Linear regression could possibly be considered the "Hello World" problem of Machine Learning. It's implementation touches on many of the fundamental ideas and problems in this field. I'll give you some guidance for understanding and implementation of this fundamental idea.
This is the start of a series of posts on Machine Learning and Data Science. I'll be exploring the algorithms and tools of Machine Learning and Data Science. It will be tutorials, guides, how-to, reviews and "real world" application. The post will be done using Juypter notebooks and the notebooks will be available on GitHub.
I've been doing this series of posts about setting up Docker for your desktop system, so why not literally add containers to your desktop! The way we have Docker configured, containers are the same as other applications you run. In this post I'll show you how to add icons and menu items to launch containers.
NVIDIA has released the Titan Xp which is an update to the Titan X Pascal (they both use the Pascal GPU core). They also recently released the GTX1080Ti which proved to be every bit as good at the Titan X Pascal but at a much lower price. The new Titan Xp does offer better performance and is currently their fastest GeForce card. How much faster? I decided to find out by running a large Deep Learning image classification job to see how it performs for GPU accelerated Machine Learning.
Docker can be complex but for use on single-user-workstation you can get a lot done with just a few commands. This post will go through some commands to manage your images and containers. We will also go through the process of building a docker image for CUDA development that includes OpenGl support.
A few weeks ago I wrote a blog post titled Should You Learn to Program with Python. If you read that and decided the answer is yes then this post is for you.
You can use graphical application with Docker and NVIDIA-Docker by attaching your X-Window server socket to a container. And, it can be done in a relatively safe and secure way. I will take advantage of the Docker security and usability enhancements from the configuration with User-Namespaces that we setup in the previous post and show you how to run a CUDA application with OpenGL output support.
How good is the NVIDIA GTX 1080Ti for CUDA accelerated Machine Learning workloads? About the same as the TitanX! I ran a Deep Neural Network training calculation on a million image dataset using both the new GTX 1080Ti and a Titan X Pascal GPU and got very similar runtimes.
In this third post on Docker and Nvidia-Docker we will configure "kernel user namespaces" for use with Docker. This will increase the security and usability of Docker on your desktop. This is a relatively new feature in Docker and is a key component for the viability of "Docker on your workstation".
In this second post on Docker and Nvidia-Docker we will do an install and setup on an Ubuntu 16.04 workstation.
Docker containers together with the NVIDIA-docker can provide relief from dependency and configuration difficulties when setting up GPU accelerated machine learning environments on a workstation. In this post I will discuss motivation for considering this.
NVIDIA has released the Quadro GP100 bringing Tesla P100 Pascal performance to your desktop. This new card gives you the compute performance of the NVIDIA Tesla P100 together with Quadro display capability. That means full double precision floating point capability of the P100 and NVLINK for multiple cards.
Does PCIe X16 give better performance than X8 for training models with Caffe when using cuDNN? Yes, but not by much!
OK, Intel Core-i7 7th gen Kabylake is out. Of course the first thing I want to do is drop a Core i7 7700K in a new Z270 based motherboard, install Linux and run a Linpack benchmark. You know, GFLOP/s and all that. We installed Ubuntu 1610 with a recent release of Intel MKL and fired up a few Linpack job runs. Read on for the not-so dramatic results.
NVIDIA's Pascal GPU's have twice the computational performance of the last generation. A great use for this compute capability is for training deep neural networks. We have tested NVIDIA DIGITS 4 with Caffe on 1 to 4 Titan X and GTX 1070 cards. Training was for classification of a million image data set from ImageNet. Read on to see how it went.
You got your new wonderful NVIDIA Pascal GPU ... maybe a GTX 1080, 1070, or Titan X(P) ... And, you want to setup a CUDA environment for some dev work or maybe try some "machine learning" code with your new card. What are you going to do? At the time of this writing CUDA 8 is still in RC and the deb and rpm packages have drivers that don't work with Pascal. I'll walk through the tricks you need to do a manual setup of CUDA 7.5 and 8.0 on top of Ubuntu 16.04 or 14.04 that will work with the new Pascal based GPU's
I have a Titan Black, Titan X (Maxwell) and a new Titan X (Pascal) in a system for a quick CUDA performance test. Install is on Ubuntu 16.04 with CUDA 8.0rc. We'll look at nbody from the CUDA samples code and NAMD Molecular Dynamics. It is stunning to see how much the CUDA performance has increased on these wonderful GPU's in just 3 years.
Intel's Xeon E5 v4 processors are available and there are lots of them! The changes from the v3 Haswell are mostly small clock changes and increases in core count. You can now get a E5-2699v4 with 22 cores. In a dual socket system that's 44 cores to work with. If the programs you want to run scale well with thread count then that could be a great processor for you. However, if your parallel scaling is not near linear then it may not be the best value. We have a dynamic chart of performance based on Amdahl's Law that may help you decide which processor is best for your uses.
The new NVIDIA GeForce GTX 1080 and GTX 1070 GPU's are out and I've received a lot of questions about NAMD performance. The short answer is -- performance is great! I've got some numbers to back that up below. We've got new Broadwell Xeon and Core-i7 CPU's thrown into the mix too. The new hardware refresh gives a nice step up in performance.
Just got a NVIDIA GTX 1080 for testing. I hacked up an install with Ubuntu 16.04 and CUDA 7.5 along with a beta display driver that works! First run after compiling the cuda samples nbody gave 5816 GFLOP/s! A GTX 980 on the same system does 2572 GFLOP/s. However, it's not all good news ...
The Intel Xeon E5 2600 v4 Broadwell processors are finally available. My first Linpack testing with a E5-2687W v4 shows a greater than 35% performance increase over the v3 Haswell version! And, it's the same price as the v3 version! It's significantly better than expected.