{"id":32847,"date":"2016-01-28T15:14:09","date_gmt":"2016-01-28T12:14:09","guid":{"rendered":"https:\/\/www.altoros.com\/blog\/?p=32847"},"modified":"2018-08-01T17:14:27","modified_gmt":"2018-08-01T14:14:27","slug":"how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws","status":"publish","type":"post","link":"https:\/\/www.altoros.com\/blog\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\/","title":{"rendered":"How to Set Up a GPU-Enabled TensorFlow Instance on AWS"},"content":{"rendered":"<p>Recently, Google announced the open-source release of its second-generation machine learning system, TensorFlow. Originally developed by the Google Brain Team, the library is used for numerical computations expressed as <a href=\"https:\/\/www.altoros.com\/blog\/logical-graphs-native-control-flow-operations-in-tensorflow\/\">data flow graphs<\/a>.<\/p>\n<p>TensorFlow supports deployment to one or more CPUs or GPUs in a single machine. In this tutorial, we provide step-by-step instructions for installing the GPU version of TensorFlow on Amazon Elastic Compute Cloud.<\/p>\n<p>&nbsp;<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-transparent ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.altoros.com\/blog\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\/#Installation_options\" >Installation options<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.altoros.com\/blog\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\/#Creating_an_instance_on_AWS\" >Creating an instance on AWS<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.altoros.com\/blog\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\/#Configuring_an_environment\" >Configuring an environment<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.altoros.com\/blog\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\/#Running_a_sample\" >Running a sample<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.altoros.com\/blog\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\/#Using_TensorBoard\" >Using TensorBoard<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.altoros.com\/blog\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\/#Further_reading\" >Further reading<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.altoros.com\/blog\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\/#About_the_author\" >About the author<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"Installation_options\"><\/span>Installation options<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Until now, the primary option for configuring <a href=\"https:\/\/www.altoros.com\/blog\/announcing-gpu-enabled-tensorflow-instances-on-aws\/\">GPU-enabled TensorFlow<\/a> on AWS was to use Amazon Linux AMI with NVIDIA GRID GPU Driver and follow the steps of this tutorial. However, it might take a day or two before you get access to all necessary NVIDIA libraries and set up the image.<\/p>\n<p>To avoid the hassle, we have created an <a href=\"https:\/\/aws.amazon.com\/marketplace\/pp\/prodview-rlvx2iip3scqy\" target=\"_blank\">Amazon AMI<\/a> that minimizes efforts needed to configure the environment and provides users with GPU-enabled TensorFlow on AWS right away.<\/p>\n<p>Nevertheless, if manual configuration is a preferred method for you, follow the instructions below.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Creating_an_instance_on_AWS\"><\/span>Creating an instance on AWS<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ol>\n<li>Select the Amazon Machine Image (AMI) named <strong>Amazon Linux AMI with NVIDIA GRID GPU Driver<\/strong>.<\/li>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/01\/choosing-ami-for-tensorflow-v1.jpg\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/01\/choosing-ami-for-tensorflow-v1-1024x516.jpg\" alt=\"\" width=\"640\" class=\"aligncenter size-large wp-image-32859\" \/><\/a><\/center><\/p>\n<li>Choose the instance type. We use <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">g2.2xlarge<\/code> with 16 GB of SSD.<\/li>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/01\/selecting-aws-instance-for-tensorflow-v1.jpg\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/01\/selecting-aws-instance-for-tensorflow-v1-1024x515.jpg\" alt=\"\" width=\"640\" class=\"aligncenter size-large wp-image-32864\" \/><\/a><\/center><\/p>\n<li>Configure a security group and add <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">port 6006<\/code> to open inbound ports.<\/li>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/01\/configuring-aws-security-group-for-tensorflow-instance-v1.jpg\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/01\/configuring-aws-security-group-for-tensorflow-instance-v1-1024x514.jpg\" alt=\"\" width=\"640\" class=\"aligncenter size-large wp-image-32860\" \/><\/a><\/center><\/p>\n<li style=\"margin-bottom: 10px;\">Configure other instance details and launch the instance.<\/li>\n<li>Generate (or reuse) authenticators to access the instance.<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Configuring_an_environment\"><\/span>Configuring an environment<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ol>\n<li>Log in to the remote instance via SSH with the default username\u2014<code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">ec2-user<\/code>.<\/li>\n<li style=\"margin-top: 10px;\">Check the availability of Python 2.7, pip, and CUDA on the instance. Commands:\n<ul>\n<li><code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">python \u2013version<\/code><\/li>\n<li><code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">pip \u2013version<\/code><\/li>\n<li><code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">nvcc \u2013version<\/code><\/li>\n<\/ul>\n<p>      &nbsp;<\/p>\n<p>The chosen AMI contains:<\/p>\n<ul>\n<li>Python 2.7.10<\/li>\n<li>pip 6.1.1<\/li>\n<li>CUDA 6.5.12<\/li>\n<\/ul>\n<p>&nbsp;\n       <\/li>\n<li>Install the <a href=\"https:\/\/developer.nvidia.com\/cuda-toolkit-archive\" target=\"_blank\">CUDA Toolkit 7.0<\/a> (7.5 is not valid):<\/li>\n<pre style=\"margin-top: 10px;\">wget http:\/\/developer.download.nvidia.com\/compute\/cuda\/7_0\/Prod\/local_installers\/cuda_7.0.28_linux.run\r\nsh cuda_7.0.28_linux.run<\/pre>\n<p>Follow the instructions.<\/p>\n<pre style=\"margin-top: 10px;\">Do you accept the previously read EULA? <strong>accept<\/strong>\r\nYou are attempting to install on an unsupported configuration. Do you wish to continue? <strong>y<\/strong>\r\nInstall NVIDIA Accelerated Graphics Driver for Linux-x86_64 346.46? <strong>n<\/strong>\r\nDo you want to install the OpenGL libraries? ((y)es\/(n)o\/(q)uit)<strong> n<\/strong>\r\nInstall the CUDA 7.0 Toolkit? <strong>y<\/strong>\r\nEnter Toolkit Location [ default is \/usr\/local\/cuda-7.0 ]:\r\nDo you wish to run the installation with 'sudo'? ((y)es\/(n)o): <strong>y<\/strong>\r\nDo you want to install a symbolic link at \/usr\/local\/cuda? <strong>y<\/strong>\r\nInstall the CUDA 7.0 Samples? <strong>n<\/strong><\/pre>\n<li>Download cuDNN. <strong>Note<\/strong>: The cuDNN library from <a href=\"https:\/\/developer.nvidia.com\/rdp\/cudnn-download\" target=\"_blank\">here<\/a> is not valid for the current environment. You can download cuDNN from <a href=\"https:\/\/developer.nvidia.com\/rdp\/cudnn-archive\" target=\"_blank\">the archive<\/a>. However, the mandatory registration might take 1\u20132 days.<\/p>\n<p>\t<center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/01\/cudnn-archive-tensorflow-v1.jpg\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/01\/cudnn-archive-tensorflow-v1-1024x621.jpg\" alt=\"\" width=\"640\" class=\"aligncenter size-large wp-image-32861\" \/><\/a><\/center><\/li>\n<li>Install cuDNN 6.5 v2 (this particular version is specified in the TensorFlow installation guidelines):<\/li>\n<pre style=\"margin-top: 10px;\">tar -zxf cudnn-6.5-linux-x64-v2.tgz\r\ncd cudnn-6.5-linux-x64-v2\r\nsudo cp -R lib* \/usr\/local\/cuda\/lib64\/\r\nsudo cp cudnn.h \/usr\/local\/cuda\/include\/\r\ncd<\/pre>\n<li>Add the <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">LD_LIBRARY_PATH<\/code> and <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">CUDA_HOME<\/code> environment variables to <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">~\/.bashrc<\/code>:<\/li>\n<pre style=\"margin-top: 10px;\">export LD_LIBRARY_PATH=\"$LD_LIBRARY_PATH:\/usr\/local\/cuda\/lib64\"\r\nexport CUDA_HOME=\/usr\/local\/cuda<\/pre>\n<li>Install TensorFlow:<\/li>\n<pre style=\"margin-top: 10px;\">sudo pip install https:\/\/storage.googleapis.com\/tensorflow\/linux\/gpu\/tensorflow-0.6.0-cp27-none-linux_x86_64.whl<\/pre>\n<p>Response:<\/p>\n<pre style=\"margin-top: 10px;\">Expected result\r\nInstalling collected packages: six, numpy, tensorflow\r\n  Found existing installation: six 1.8.0\r\n    Uninstalling six-1.8.0:\r\n      Successfully uninstalled six-1.8.0\r\n  Running setup.py install for numpy\r\nSuccessfully installed numpy-1.10.1 six-1.10.0 tensorflow-0.5.0<\/pre>\n<li>Check whether the configured environment is correct using a Python terminal:<\/li>\n<pre style=\"margin-top: 10px;\">$ python\r\n>>> import tensorflow as tf\r\n>>> hello = tf.constant('Hello, TensorFlow!')\r\n>>> sess = tf.Session()\r\n>>> print sess.run(hello)\r\nHello, TensorFlow!\r\n>>> a = tf.constant(10)\r\n>>> b = tf.constant(32)\r\n>>> print sess.run(a+b)\r\n42<\/pre>\n<\/ol>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Running_a_sample\"><\/span>Running a sample<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ol>\n<li>Install Git:<\/li>\n<pre style=\"margin-top: 10px;\">sudo yum install git -y<\/pre>\n<li>Clone the project:<\/li>\n<pre style=\"margin-top: 10px;\">git clone --recurse-submodules https:\/\/github.com\/tensorflow\/tensorflow<\/pre>\n<li>Run the TensorFlow neural net model:<\/li>\n<pre style=\"margin-top: 10px;\">python tensorflow\/tensorflow\/models\/image\/mnist\/convolutional.py<\/pre>\n<p>Response:<\/p>\n<pre style=\"margin-top: 10px;\">Initialized!\r\nEpoch 0.00\r\nMinibatch loss: 12.054, learning rate: 0.010000\r\nMinibatch error: 90.6%\r\nValidation error: 84.6%\r\nEpoch 0.12\r\nMinibatch loss: 3.285, learning rate: 0.010000\r\nMinibatch error: 6.2%\r\nValidation error: 7.0%\r\nEpoch 0.23\r\nMinibatch loss: 3.473, learning rate: 0.010000\r\nMinibatch error: 10.9%\r\nValidation error: 3.7%\r\nEpoch 0.35\r\nMinibatch loss: 3.221, learning rate: 0.010000\r\nMinibatch error: 4.7%\r\nValidation error: 3.2%\r\n<\/pre>\n<\/ol>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Using_TensorBoard\"><\/span>Using TensorBoard<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>To enable <a href=\"https:\/\/www.altoros.com\/blog\/visualizing-tensorflow-graphs-with-tensorboard\/\">TensorBoard<\/a>, proceed with the following steps.<\/p>\n<ol>\n<li>Add <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">\/usr\/local\/bin<\/code> to <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">PATH<\/code> via <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">.bashrc<\/code> and then log in to the OS again:<\/li>\n<pre style=\"margin-top: 10px;\">PATH=$PATH:$HOME\/bin:\/usr\/local\/bin<\/pre>\n<li>Copy the <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">TAG<\/code> file:<\/li>\n<pre style=\"margin-top: 10px;\">sudo cp -R \/home\/ec2-user\/tensorflow\/tensorflow\/tensorboard\/TAG \/usr\/local\/lib\/python2.7\/site-packages\/tensorflow\/tensorboard\/TAG<\/pre>\n<li>Copy the <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">favicon.ico<\/code> file into the TensorBoard folder:<\/li>\n<pre style=\"margin-top: 10px;\">sudo cp favicon.ico \/usr\/local\/lib\/python2.7\/site-packages\/tensorflow\/tensorboard\/<\/pre>\n<li>Check the AWS security group. The inbound TCP <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">port 6006<\/code> must be openned.<\/li>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/01\/setting-up-tensorboard-tensorflow-v1.jpg\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/01\/setting-up-tensorboard-tensorflow-v1-1024x516.jpg\" alt=\"\" width=\"640\" class=\"aligncenter size-large wp-image-32865\" \/><\/a><\/center><\/p>\n<li>Run TensorBoard on the server:<\/li>\n<pre style=\"margin-top: 10px;\">tensorboard --logdir \/var\/log<\/pre>\n<li>Open TensorBoard in a browser.<\/li>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/01\/running-tensorboard-tensorflow-v1.jpg\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/01\/running-tensorboard-tensorflow-v1-1024x623.jpg\" alt=\"\" width=\"640\" class=\"aligncenter size-large wp-image-32862\" \/><\/a><\/center>\n<\/ol>\n<p>Following the provided instructions, we were able to launch a TensorFlow instance from Amazon Linux AMI with NVIDIA GRID GPU Driver and keep it running. The task, nevertheless, required going beyond the default AMI configuration.<\/p>\n<p>So, if you do not need manual configuration, you can use our <a href=\"https:\/\/aws.amazon.com\/marketplace\/pp\/prodview-rlvx2iip3scqy\" target=\"_blank\">one-click AMI<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Further_reading\"><\/span>Further reading<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/tensorflow-in-the-cloud-accelerating-resources-with-elastic-gpus\/\">TensorFlow in the Cloud: Accelerating Resources with Elastic GPUs<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/research-papers\/performance-of-distributed-tensorflow-a-multi-node-and-multi-gpu-configuration\/\">Performance of Distributed TensorFlow: A Multi-Node and Multi-GPU Configuration<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/getting-started-with-a-cpu-enabled-tensorflow-instance-on-aws\/\">Getting Started with a CPU-Enabled TensorFlow Instance on AWS<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/announcing-gpu-enabled-tensorflow-instances-on-aws\/\">Announcing GPU-Enabled TensorFlow Instances on AWS<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"About_the_author\"><\/span>About the author<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><small><b>Evheny Shaliov<\/b> is a software developer at Altoros with 5+ years of experience in architecture design and database development. He has strong skills in building microservices-based architectures that use NoSQL data stores. Evheny is a teaching assistant in Belarusian State University of Informatics and Radioelectronics; he\u2019s also studying for a PhD in information security.<\/small><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Recently, Google announced the open-source release of its second-generation machine learning system, TensorFlow. Originally developed by the Google Brain Team, the library is used for numerical computations expressed as data flow graphs.<\/p>\n<p>TensorFlow supports deployment to one or more CPUs or GPUs in a single machine. In this tutorial, we provide [&#8230;]<\/p>\n","protected":false},"author":3,"featured_media":32890,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":"","_links_to":"","_links_to_target":""},"categories":[214],"tags":[748,749],"class_list":["post-32847","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","tag-machine-learning","tag-tensorflow"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How to Set Up a GPU-Enabled TensorFlow Instance on AWS | Altoros<\/title>\n<meta name=\"description\" content=\"This step-by-step tutorial explains how to create an instance, configure the environment, run a sample, and use TensorBoard.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.altoros.com\/blog\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Set Up a GPU-Enabled TensorFlow Instance on AWS | Altoros\" \/>\n<meta property=\"og:description\" content=\"Recently, Google announced the open-source release of its second-generation machine learning system, TensorFlow. Originally developed by the Google Brain Team, the library is used for numerical computations expressed as data flow graphs. TensorFlow supports deployment to one or more CPUs or GPUs in a single machine. In this tutorial, we provide [...]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.altoros.com\/blog\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\/\" \/>\n<meta property=\"og:site_name\" content=\"Altoros\" \/>\n<meta property=\"article:published_time\" content=\"2016-01-28T12:14:09+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-08-01T14:14:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/01\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws.gif\" \/>\n\t<meta property=\"og:image:width\" content=\"640\" \/>\n\t<meta property=\"og:image:height\" content=\"322\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/gif\" \/>\n<meta name=\"author\" content=\"Sophia Turol\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sophia Turol\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\\\/\"},\"author\":{\"name\":\"Sophia Turol\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/#\\\/schema\\\/person\\\/58194952af19fe7b2b830846e077a58e\"},\"headline\":\"How to Set Up a GPU-Enabled TensorFlow Instance on AWS\",\"datePublished\":\"2016-01-28T12:14:09+00:00\",\"dateModified\":\"2018-08-01T14:14:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\\\/\"},\"wordCount\":549,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/01\\\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws.gif\",\"keywords\":[\"Machine Learning\",\"TensorFlow\"],\"articleSection\":[\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.altoros.com\\\/blog\\\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\\\/\",\"url\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\\\/\",\"name\":\"How to Set Up a GPU-Enabled TensorFlow Instance on AWS | Altoros\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/01\\\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws.gif\",\"datePublished\":\"2016-01-28T12:14:09+00:00\",\"dateModified\":\"2018-08-01T14:14:27+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/#\\\/schema\\\/person\\\/58194952af19fe7b2b830846e077a58e\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.altoros.com\\\/blog\\\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/01\\\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws.gif\",\"contentUrl\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/01\\\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws.gif\",\"width\":640,\"height\":322},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Set Up a GPU-Enabled TensorFlow Instance on AWS\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/\",\"name\":\"Altoros\",\"description\":\"Insight\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/#\\\/schema\\\/person\\\/58194952af19fe7b2b830846e077a58e\",\"name\":\"Sophia Turol\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/05\\\/trello_card-96x96.jpg\",\"url\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/05\\\/trello_card-96x96.jpg\",\"contentUrl\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/05\\\/trello_card-96x96.jpg\",\"caption\":\"Sophia Turol\"},\"description\":\"Sophia Turol is passionate about delivering well-structured articles that cater for picky technical audience. With 3+ years in technical writing and 5+ years in editorship, she enjoys collaboration with developers to create insightful, yet intelligible technical tutorials, overviews, and case studies. Sophie is enthusiastic about deep learning solutions\u2014TensorFlow in particular\u2014and PaaS systems, such as Cloud Foundry.\",\"url\":\"https:\\\/\\\/www.altoros.com\\\/blog\\\/author\\\/sophie-turol\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Set Up a GPU-Enabled TensorFlow Instance on AWS | Altoros","description":"This step-by-step tutorial explains how to create an instance, configure the environment, run a sample, and use TensorBoard.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.altoros.com\/blog\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\/","og_locale":"en_US","og_type":"article","og_title":"How to Set Up a GPU-Enabled TensorFlow Instance on AWS | Altoros","og_description":"Recently, Google announced the open-source release of its second-generation machine learning system, TensorFlow. Originally developed by the Google Brain Team, the library is used for numerical computations expressed as data flow graphs. TensorFlow supports deployment to one or more CPUs or GPUs in a single machine. In this tutorial, we provide [...]","og_url":"https:\/\/www.altoros.com\/blog\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\/","og_site_name":"Altoros","article_published_time":"2016-01-28T12:14:09+00:00","article_modified_time":"2018-08-01T14:14:27+00:00","og_image":[{"width":640,"height":322,"url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/01\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws.gif","type":"image\/gif"}],"author":"Sophia Turol","twitter_misc":{"Written by":"Sophia Turol","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.altoros.com\/blog\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\/#article","isPartOf":{"@id":"https:\/\/www.altoros.com\/blog\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\/"},"author":{"name":"Sophia Turol","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/58194952af19fe7b2b830846e077a58e"},"headline":"How to Set Up a GPU-Enabled TensorFlow Instance on AWS","datePublished":"2016-01-28T12:14:09+00:00","dateModified":"2018-08-01T14:14:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www.altoros.com\/blog\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\/"},"wordCount":549,"commentCount":0,"image":{"@id":"https:\/\/www.altoros.com\/blog\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\/#primaryimage"},"thumbnailUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/01\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws.gif","keywords":["Machine Learning","TensorFlow"],"articleSection":["Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.altoros.com\/blog\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.altoros.com\/blog\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\/","url":"https:\/\/www.altoros.com\/blog\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\/","name":"How to Set Up a GPU-Enabled TensorFlow Instance on AWS | Altoros","isPartOf":{"@id":"https:\/\/www.altoros.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.altoros.com\/blog\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\/#primaryimage"},"image":{"@id":"https:\/\/www.altoros.com\/blog\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\/#primaryimage"},"thumbnailUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/01\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws.gif","datePublished":"2016-01-28T12:14:09+00:00","dateModified":"2018-08-01T14:14:27+00:00","author":{"@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/58194952af19fe7b2b830846e077a58e"},"breadcrumb":{"@id":"https:\/\/www.altoros.com\/blog\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.altoros.com\/blog\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\/#primaryimage","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/01\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws.gif","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/01\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws.gif","width":640,"height":322},{"@type":"BreadcrumbList","@id":"https:\/\/www.altoros.com\/blog\/how-to-set-up-a-gpu-enabled-tensorflow-instance-on-aws\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.altoros.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Set Up a GPU-Enabled TensorFlow Instance on AWS"}]},{"@type":"WebSite","@id":"https:\/\/www.altoros.com\/blog\/#website","url":"https:\/\/www.altoros.com\/blog\/","name":"Altoros","description":"Insight","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.altoros.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/58194952af19fe7b2b830846e077a58e","name":"Sophia Turol","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/05\/trello_card-96x96.jpg","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/05\/trello_card-96x96.jpg","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/05\/trello_card-96x96.jpg","caption":"Sophia Turol"},"description":"Sophia Turol is passionate about delivering well-structured articles that cater for picky technical audience. With 3+ years in technical writing and 5+ years in editorship, she enjoys collaboration with developers to create insightful, yet intelligible technical tutorials, overviews, and case studies. Sophie is enthusiastic about deep learning solutions\u2014TensorFlow in particular\u2014and PaaS systems, such as Cloud Foundry.","url":"https:\/\/www.altoros.com\/blog\/author\/sophie-turol\/"}]}},"_links":{"self":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/32847","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/comments?post=32847"}],"version-history":[{"count":35,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/32847\/revisions"}],"predecessor-version":[{"id":32992,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/32847\/revisions\/32992"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media\/32890"}],"wp:attachment":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media?parent=32847"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/categories?post=32847"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/tags?post=32847"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}