Analyzing CPU vs GPU Performance for AWS Machine Learning

Lab Steps

Logging in to the Amazon Web Services Console
Connecting to the Virtual Machine using SSH
Starting a Jupyter Notebook Server
Forwarding a Virtual Machine Port through an SSH Tunnel
Setting Up the CPU vs. GPU Experiment
Running the CPU vs. GPU Experiment
Analyzing the CPU vs. GPU Experiment Results
Validate AWS Lab
This lab is currently under maintenance. You can start the lab, but some instructions and screenshots may be inaccurate. We're actively working to resolve this issue and we apologize for any inconvenience.


This lab may fail to start due to an issue beyond our control. If you encounter a failure when starting, please retry. It may take more than a few attempts to successfully start.

Ready for the real environment experience?

Time Limit45m


Lab Overview

Graphics processing units (GPUs) and other hardware accelerators can dramatically reduce the time taken to train complex machine learning models. In this lab, you will take control of a p2.xlarge instance equipped with an NVIDIA Tesla K80 GPU to perform a CPU vs GPU performance analysis for Amazon Machine Learning. The instance is based on the AWS deep learning AMI that comes with many machine learning libraries pre-installed. You will create a Jupyter Notebook to write code and visualize results in a single document. The TensorFlow library is used for the CPU and GPU benchmark code.

Lab Objectives

Upon completion of this Lab you will be able to:

  • Run Jupyter Notebook server and create Jupyter Notebooks for machine learning experiments
  • Configure an SSH tunnel to forward instance ports through an encrypted channel
  • Understand when GPUs can be advantageous in machine learning, and to what extent

Lab Prerequisites

You should be familiar with:

  • Working with Linux on the command-line
  • Knowledge of the Python programming language is beneficial, but not required

Lab Environment

Before completing the Lab instructions, the environment will look as follows:

After completing the Lab instructions, the environment should look similar to:



January 10th, 2019 - Added a validation Lab Step to check the work you perform in the Lab

About the Author
Learning paths30

Logan has been involved in software development and research since 2007 and has been in the cloud since 2012. He is an AWS Certified DevOps Engineer - Professional, AWS Certified Solutions Architect - Professional, Microsoft Certified Azure Solutions Architect Expert, MCSE: Cloud Platform and Infrastructure, Google Cloud Certified Associate Cloud Engineer, Certified Kubernetes Security Specialist (CKS), Certified Kubernetes Administrator (CKA), Certified Kubernetes Application Developer (CKAD), and Certified OpenStack Administrator (COA). He earned his Ph.D. studying design automation and enjoys all things tech.