{"id":683,"date":"2017-05-21T02:53:38","date_gmt":"2017-05-20T17:53:38","guid":{"rendered":"http:\/\/msiplab.eng.niigata-u.ac.jp\/?p=683"},"modified":"2017-05-27T11:48:30","modified_gmt":"2017-05-27T02:48:30","slug":"ubuntu-14-04-%e4%b8%8a%e3%81%a7-matlab-2017a-gpu%e5%88%a9%e7%94%a8-tensorflow-gpu","status":"publish","type":"post","link":"https:\/\/www.eng.niigata-u.ac.jp\/~msiplab\/index.php\/archives\/683","title":{"rendered":"Ubuntu 14.04 \u4e0a\u3067 MATLAB 2017a GPU\u5229\u7528 + TensorFlow-GPU"},"content":{"rendered":"<p>MATLAB R2017a \u3067GPU\u3092\u5229\u7528\u3057\u305f\u30c7\u30a3\u30fc\u30d7\u30e9\u30fc\u30cb\u30f3\u30b0\u304c\u5b9f\u884c\u3067\u304d\u308b\u3088\u3046\u306b\u3001CUDA\u30c9\u30e9\u30a4\u30d0\u7b49\u306e\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u3092\u884c\u3044\u307e\u3057\u305f\u3002\u540c\u6642\u306bGPU\u7248Tensorflow\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3057\u305f\u3002<\/p>\n<p>\u307e\u305a\u3001MATLAB R2016b \u304b\u3089 R2017a \u306b\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u3057\u305f\u3068\u304d\u306b\u3001GPU\u3092\u5229\u7528\u3067\u304d\u306a\u304f\u306a\u308a\u307e\u3057\u305f\u3002\u4ee5\u4e0b\u304c MATLAB 2017a \u3067\u306e\u30a8\u30e9\u30fc\u5185\u5bb9\u3067\u3059\u3002<br \/>\n<code><br \/>\n&gt;&gt; gpuArray(1)<br \/>\n\u30a8\u30e9\u30fc: gpuArray<br \/>\nCUDA \u5b9f\u884c\u4e2d\u306b\u4e88\u671f\u3057\u306a\u3044\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002CUDA \u30a8\u30e9\u30fc:<br \/>\nCUDA driver version is insufficient for CUDA runtime version<br \/>\n<\/code><\/p>\n<p><a href=\"https:\/\/jp.mathworks.com\/help\/distcomp\/release-notes.html?rntext=CUDA&amp;startrelease=R2017a&amp;endrelease=R2017a&amp;groupby=release&amp;sortby=descending&amp;searchHighlight=CUDA\">MATLAB R2017a Parallel Computing Toolbox\u306e\u30ea\u30ea\u30fc\u30b9\u30ce\u30fc\u30c8<\/a>\u3088\u308a\u3001MATLAB 2017a \u3067\u306f CUDA toolkit version 8.0 \u304c\u5fc5\u8981\u306a\u3053\u3068\u304c\u5206\u304b\u308a\u307e\u3059\u3002<\/p>\n<h2>PC\u30b9\u30da\u30c3\u30af<\/h2>\n<p>OS\u304a\u3088\u3073\u30ab\u30fc\u30cd\u30eb\u306e\u60c5\u5831\u3002<br \/>\n<code><br \/>\n$ uname -a<br \/>\nLinux temsip01 3.13.0-117-generic #164-Ubuntu SMP Fri Apr 7 11:05:26 UTC 2017 x86_64 x86_64 x86_64 GNU\/Linux<br \/>\n<\/code><br \/>\nGPU\u306e\u60c5\u5831\u3002NVIDIA Tesla K80 \u304c2\u53f0\u8f09\u3063\u3066\u3044\u307e\u3059\u3002<br \/>\n<code><br \/>\n$ lspci | grep -i nvidia<br \/>\n04:00.0 3D controller: NVIDIA Corporation GK210GL [Tesla K80] (rev a1)<br \/>\n05:00.0 3D controller: NVIDIA Corporation GK210GL [Tesla K80] (rev a1)<br \/>\n$ nvidia-smi<br \/>\nThu May 18 12:31:54 2017<br \/>\n+-----------------------------------------------------------------------------+<br \/>\n| NVIDIA-SMI 375.51                 Driver Version: 375.51                    |<br \/>\n|-------------------------------+----------------------+----------------------+<br \/>\n| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |<br \/>\n| Fan  Temp  Perf  Pwr:Usage\/Cap|         Memory-Usage | GPU-Util  Compute M. |<br \/>\n|===============================+======================+======================|<br \/>\n|   0  Tesla K80           Off  | 0000:04:00.0     Off |                    0 |<br \/>\n| N\/A   36C    P0    61W \/ 149W |    207MiB \/ 11439MiB |      0%      Default |<br \/>\n+-------------------------------+----------------------+----------------------+<br \/>\n|   1  Tesla K80           Off  | 0000:05:00.0     Off |                    0 |<br \/>\n| N\/A   24C    P8    29W \/ 149W |      2MiB \/ 11439MiB |      0%      Default |<br \/>\n+-------------------------------+----------------------+----------------------+<\/code><\/p>\n<p>+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+<br \/>\n| Processes: GPU Memory |<br \/>\n| GPU PID Type Process name Usage |<br \/>\n|=============================================================================|<br \/>\n| 0 4907 C \/usr\/local\/MATLAB\/R2017a\/bin\/glnxa64\/MATLAB 205MiB |<br \/>\n+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+<\/p>\n<h2>\u53e4\u3044 CUDA \u304a\u3088\u3073 NVIDIA\u30c9\u30e9\u30a4\u30d0\u306e\u30a2\u30f3\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/h2>\n<p>`uninstall_cuda_7.5.pl` \u306e\u5834\u6240\u306f CUDA \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u305f\u5834\u6240\u306b\u3088\u3063\u3066\u5909\u308f\u308a\u307e\u3059\u3002<br \/>\n<code><br \/>\n# \/usr\/local\/cuda-7.5\/bin\/uninstall_cuda_7.5.pl<br \/>\n<\/code><br \/>\n<code><br \/>\n# apt-get --purge remove nvidia*<br \/>\n<\/code><\/p>\n<h2>\u30d1\u30c3\u30b1\u30fc\u30b8\u66f4\u65b0<\/h2>\n<p>\u305a\u3063\u3068\u30a2\u30c3\u30d7\u30b0\u30ec\u30fc\u30c9\u3057\u3066\u306a\u304b\u3063\u305f\u306e\u3067\u3002\u305f\u3060\u3057\u3001`apt-get dist-upgrade` \u306f\u30ab\u30fc\u30cd\u30eb\u306b\u5909\u66f4\u3092\u52a0\u3048\u308b\u5834\u5408\u304c\u3042\u308b\u306e\u3067\u6ce8\u610f\u3002<br \/>\n<code><br \/>\n# apt-get update<br \/>\n# apt-get dist-upgrade<br \/>\n# apt-get autoremove<br \/>\n<\/code><\/p>\n<h2>NVIDIA Driver \u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/h2>\n<p>\u30ea\u30dd\u30b8\u30c8\u30ea\u306b\u8ffd\u52a0\u3002<br \/>\n<code><br \/>\n# add-apt-repository ppa:graphics-drivers\/ppa<br \/>\n# apt-get update<br \/>\n<\/code><br \/>\n\u6700\u65b0\u306e\u30c9\u30e9\u30a4\u30d0\u3092\u78ba\u8a8d\u3002<br \/>\n<code><br \/>\n# apt-cache search nvidia-3<br \/>\n<\/code><br \/>\n\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3002<br \/>\n<code><br \/>\n# apt-get install nvidia-381<br \/>\n<\/code><\/p>\n<h2>CUDA 8.0 toolkit \u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/h2>\n<p>\u30ea\u30dd\u30b8\u30c8\u30ea\u306b\u8ffd\u52a0\u3002<br \/>\n<code><br \/>\n# wget http:\/\/developer.download.nvidia.com\/compute\/cuda\/repos\/ubuntu1404\/x86_64\/cuda-repo-ubuntu1404_8.0.61-1_amd64.deb<br \/>\n# dpkg -i cuda-repo-ubuntu1404_8.0.61-1_amd64.deb<br \/>\n# apt-get update<br \/>\n<\/code><br \/>\n\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3002<br \/>\n<code><br \/>\n# apt-get install cuda<br \/>\n<\/code><br \/>\nCUDA\u3092\u30d1\u30b9\u306b\u8ffd\u52a0\u3057\u307e\u3059\u3002\u4ee5\u4e0b\u306e\u5185\u5bb9\u3092.bashrc\u306b\u66f8\u304d\u8fbc\u307f\u3001`source .bashrc`\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002<br \/>\n<code><br \/>\nexport LD_LIBRARY_PATH=\"$LD_LIBRARY_PATH:\/usr\/local\/cuda\/lib64:\/usr\/lib\/nvidia-381\"<br \/>\nexport CUDA_HOME=\/usr\/local\/cuda<br \/>\nexport PATH=$PATH:${CUDA_HOME}\/bin<br \/>\n<\/code><\/p>\n<h2>R2017a\u3067\u52d5\u4f5c\u78ba\u8a8d<\/h2>\n<p>\u3053\u3053\u307e\u3067\u3067\u3001MATLAB R2017a \u3067GPU\u3092\u5229\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<br \/>\n<code><br \/>\n&gt;&gt; gpuDevice<\/code><\/p>\n<p>ans =<\/p>\n<p>CUDADevice \u306e\u30d7\u30ed\u30d1\u30c6\u30a3:<\/p>\n<p>Name: &#8216;Tesla K80&#8217;<br \/>\nIndex: 1<br \/>\nComputeCapability: &#8216;3.7&#8217;<br \/>\nSupportsDouble: 1<br \/>\nDriverVersion: 8<br \/>\nToolkitVersion: 8<br \/>\nMaxThreadsPerBlock: 1024<br \/>\nMaxShmemPerBlock: 49152<br \/>\nMaxThreadBlockSize: [1024 1024 64]<br \/>\nMaxGridSize: [2.1475e+09 65535 65535]<br \/>\nSIMDWidth: 32<br \/>\nTotalMemory: 1.1996e+10<br \/>\nAvailableMemory: 1.1642e+10<br \/>\nMultiprocessorCount: 13<br \/>\nClockRateKHz: 823500<br \/>\nComputeMode: &#8216;Default&#8217;<br \/>\nGPUOverlapsTransfers: 1<br \/>\nKernelExecutionTimeout: 0<br \/>\nCanMapHostMemory: 1<br \/>\nDeviceSupported: 1<br \/>\nDeviceSelected: 1<\/p>\n<h2>cuDNN 6.0 \u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/h2>\n<p>GPU\u7248\u306eTensorflow\u3092\u4f7f\u3046\u306b\u306f\u3001\u3055\u3089\u306bcuDNN\u3068\u3044\u3046\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<a href=\"https:\/\/developer.nvidia.com\/rdp\/cudnn-download\">cuDNN\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u30da\u30fc\u30b8<\/a>\u304b\u3089 cuDNN v6.0 for CUDA 8.0 \u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3001\u89e3\u51cd\u3057\u3066`\/usr\/local\/`\u306b\u7f6e\u304d\u307e\u3059\u3002\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308b\u306b\u306fNVIDIA\u3078\u306e\u30e6\u30fc\u30b6\u767b\u9332\u304c\u5fc5\u8981\u3067\u3059\u3002<br \/>\n<code><br \/>\n# tar xzvf cudnn-8.0-linux-x64-v6.0.tgz<br \/>\n# cp -a cuda\/lib64\/* \/usr\/local\/cuda-8.0\/lib64\/<br \/>\n# cp -a cuda\/include\/* \/usr\/local\/cuda-8.0\/include\/<br \/>\n# ldconfig<br \/>\n<\/code><br \/>\ncuDNN\u306b\u3064\u3044\u3066\u3082\u30d1\u30b9\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002\u4ee5\u4e0b\u306e\u5185\u5bb9\u3092HOME\u306e.bashrc\u306b\u66f8\u304d\u8fbc\u307f\u3001`source .bashrc`\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002<br \/>\n<code><br \/>\nexport LD_LIBRARY_PATH=\"$LD_LIBRARY_PATH:\/usr\/local\/cudnn-6.0\/lib64\"<br \/>\n<\/code><\/p>\n<h2>PIP \u3067 GPU\u7248Tensorflow \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/h2>\n<p>\u3053\u308c\u3067GPU\u7248\u306eTensorflow\u3092\u52d5\u304b\u3059\u3053\u3068\u304c\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002\u5ff5\u306e\u305f\u3081\u53e4\u3044tensorflow\u3092\u30a2\u30f3\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u304b\u3089\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3057\u305f\u3002`pip install tensorflow`\u3060\u3068CPU\u7248\u306eTensorflow\u304c\u5165\u3063\u3066\u3057\u307e\u3046\u306e\u3067\u6ce8\u610f\u3002<br \/>\n<code><br \/>\npip uninstall tensorflow<br \/>\npip install --upgrade tensorflow-gpu<br \/>\n<\/code><\/p>","protected":false},"excerpt":{"rendered":"<p>MATLAB R2017a \u3067GPU\u3092\u5229\u7528\u3057\u305f\u30c7\u30a3\u30fc\u30d7\u30e9\u30fc\u30cb\u30f3\u30b0\u304c\u5b9f\u884c\u3067\u304d\u308b\u3088\u3046\u306b\u3001CUDA\u30c9\u30e9\u30a4\u30d0\u7b49\u306e\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u3092\u884c\u3044\u307e\u3057\u305f\u3002\u540c\u6642\u306bGPU\u7248Tensorflow\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3057\u305f\u3002 \u307e\u305a\u3001MATLAB R2016 &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.eng.niigata-u.ac.jp\/~msiplab\/index.php\/archives\/683\" class=\"more-link\"><span class=\"screen-reader-text\">&#8220;Ubuntu 14.04 \u4e0a\u3067 MATLAB 2017a GPU\u5229\u7528 + TensorFlow-GPU&#8221; \u306e<\/span>\u7d9a\u304d\u3092\u8aad\u3080<\/a><\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-683","post","type-post","status-publish","format-standard","hentry","category-topics"],"_links":{"self":[{"href":"https:\/\/www.eng.niigata-u.ac.jp\/~msiplab\/index.php\/wp-json\/wp\/v2\/posts\/683","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.eng.niigata-u.ac.jp\/~msiplab\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.eng.niigata-u.ac.jp\/~msiplab\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.eng.niigata-u.ac.jp\/~msiplab\/index.php\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.eng.niigata-u.ac.jp\/~msiplab\/index.php\/wp-json\/wp\/v2\/comments?post=683"}],"version-history":[{"count":9,"href":"https:\/\/www.eng.niigata-u.ac.jp\/~msiplab\/index.php\/wp-json\/wp\/v2\/posts\/683\/revisions"}],"predecessor-version":[{"id":706,"href":"https:\/\/www.eng.niigata-u.ac.jp\/~msiplab\/index.php\/wp-json\/wp\/v2\/posts\/683\/revisions\/706"}],"wp:attachment":[{"href":"https:\/\/www.eng.niigata-u.ac.jp\/~msiplab\/index.php\/wp-json\/wp\/v2\/media?parent=683"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.eng.niigata-u.ac.jp\/~msiplab\/index.php\/wp-json\/wp\/v2\/categories?post=683"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.eng.niigata-u.ac.jp\/~msiplab\/index.php\/wp-json\/wp\/v2\/tags?post=683"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}