2017년 6월 7일 수요일

[DM/DL] x86+우분투 리눅스 환경에서 아나콘다(Anaconda) 설치 하기 (1)

텐서플로우 테스트를 위해서 x86에 아나콘다 패키지와 텐서플로우 패키지를 설치해 보려고 한다. 일단 기본 OS는 Windows10/64비트인데, 잠깐 테스트만 해 볼꺼라..가상화 환경에서 해보려고 한다.

따라서 다음과 같은 설정으로 진행했다.
Virtualbox : https://www.virtualbox.org/
우분투 16.04.2 LTS : https://www.ubuntu.com/download/desktop

이때 가상화 환경에서 GPU를 사용하고 싶어서...여러가지 방법으로 알아보았으나...
최종적으로는 VT-D가 보드에서 지원하지 않아서, 진행이 어려웠다.

근본적으로 IOMMU(Input/Output Memory Management Unit, 입출력 메모리 관리 장치)가 지원이 되어야 가상화 환경에서 직접적인 GPU하드웨어까지 접근이 가능하다. 쉽게 말해서 가상화 장치에서 GPU장비를 직접 다룰수 있어야 한다는 것이다.

아마..하나도 안 쉽다고 할 것이 눈에 보인다..

이런 때는 그림이 최고다.

https://software.intel.com/en-us/articles/intel-virtualization-technology-for-directed-io-vt-d-enhancing-intel-platforms-for-efficient-virtualization-of-io-devices


위의 그림을 보면 가상머신(Virtual Machine)이 VMM 또는 호스팅 OS를 거쳐서 디바이스들과 통신을 하는 것을 볼수 있다. 하지만 여러가지의 이름을 가지는 IOMMU(인텔은 VT-D)를 지원하게 되면 직접 가상머신에서 디바이스로 접근이 가능해 진다.

어쨌든 중요한 것은 나는 안된다....그래서 그냥 텐서플로우를 CPU로만 동작시키도록 하겠다.
만약 VT-D가 지원이 된다고 하더라도..고려해야 할 부분들이 여러가지가 있는데 아래를 참고 하기 바란다.

There are several additional prerequisites to be met (see Virtual Box Manual for details):
  • Your motherboard has an IOMMU unit.
  • Your CPU supports the IOMMU.
  • The IOMMU is enabled in the BIOS.
  • The VM must run with VT-x/AMD-V and nested paging enabled.
  • Your Linux kernel was compiled with IOMMU support, DMA remapping, and the PCI stub driver.
  • Your Linux kernel recognizes and uses the IOMMU unit.

ESXi에서 설정되는 것이 궁금하다면 아래의 링크를 참고하면 ASROCK 회사에서 만들어둔 pdf를 확인할 수 있다.
http://www.asrock.com/support/note/vt-d.pdf

0. 우분투 16.04.2 LTS
우분투 설치는 특별한 과정을 볼게 없으나..
Virtualbox의 설치 경로를 관련 패키지들의 빠른 설치를 위해서 가능한 SSD에서 작업할 것을 권장하며, 또한 CPU는 최대로 설정 할 것을 권장한다. 본인은 8코어가 한계였다..
나중에 보면 알겠지만 CPU가 죽어난다...동영상 하나를 볼 여유가 없을 정도로 모두다 땡겨서 가지고 간다.




1. 아나콘다 설치 
파이썬은 간단하게 사용할 것이라면 python.org에서 단순히 기본 패키지를 설치해서 사용하면 된다. 하지만 텐서플로우 처럼 수치 역학 연산등 다양한 작업을 할 것이라고 미리 예측이 된다면..수 많은 배포판 중에서 아나콘다가 가장 무난한 대중적인 배포판이라고 할 수 있겠다. 구글에 검색해 봐도 아나콘다만 잔뜩 나와 있다.
최근 유행하는 고민될때는 1등을 선택하라는;;;; (광고를 붙였는데.. 온니 설명을 위한 것이다.)


Python Distributions

Aside from the official CPython distribution available from python.org, other distributions based on CPython include the following:


어쨌든 그래서 1등 아나콘다를 선택해서 설치한다.

1_1. 설치 파일 다운로드 
개인적으로 책을 파이썬 2.x버전으로 작성하다 보니...2.x가 익숙하나 요즘 대세가..3.x다 보니 아나콘다 3.x 버전을 다운로드 하여 진행한다. 요상한게 Power CPU 베이스는 용량이 작다.. 아마도 기본적으로 설치되어 있는 패키지가 있지 않나? 생각이 된다 정확한 것을 패키지를 비교해 봐야 겠지만.... 또는 x86만큼 많은 패키지들이 포팅되어 있지 않아 그 숫자가 작을수도 있다. 정확한 것을 비교해 봐야 겠지만..일단 여기서는 x86을 할 것이니까 크게 신경쓰지 말자.
https://www.continuum.io/downloads



1_2. 다운로드한 파일을 설치 
위에 나온 설명처럼 이미 짜여져 있는 배시 파일을 실행한다. 설치 경로는 다운로드 받을 파일에서 오른쪽을 클릭하면 경로를 알아낼수 있다. 이를 wget으로 받는다. 그리고 여러차례 'enter'와 'yes'를 입력하고 나면 설치가 완료된다.

root@hoonjo-VirtualBox:~# wget https://repo.continuum.io/archive/Anaconda3-4.4.0 
-Linux-x86_64.sh
--2017-06-02 07:05:33--  https://repo.continuum.io/archive/Anaconda3-4.4.0-Linux-x86_64.sh
Resolving repo.continuum.io (repo.continuum.io)... 104.16.18.10, 104.16.19.10, 2400:cb00:2048:1::6810:130a, ...
Connecting to repo.continuum.io (repo.continuum.io)|104.16.18.10|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 523283080 (499M) [application/x-sh]
Saving to: anaconda3-4.4.0-Linux-x86_64.sh??

          Anaconda3   0%[                    ]       0  --.-KB/s               
         Anaconda3-   0%[                    ]   4.57M  22.8MB/s               
        Anaconda3-4   2%[                    ]  12.44M  31.0MB/s               
       Anaconda3-4.   4%[                    ]  20.58M  34.2MB/s               
      Anaconda3-4.4   5%[>                   ]  29.68M  37.0MB/s               
     Anaconda3-4.4.   7%[>                   ]  38.19M  38.1MB/s               
    Anaconda3-4.4.0   9%[>                   ]  46.91M  39.0MB/s               
   Anaconda3-4.4.0-  10%[=>                  ]  54.72M  39.0MB/s               
  Anaconda3-4.4.0-L  12%[=>                  ]  62.76M  39.1MB/s               
 Anaconda3-4.4.0-Li  13%[=>                  ]  69.41M  38.1MB/s               
Anaconda3-4.4.0-Lin  15%[==>                 ]  75.54M  37.4MB/s  
<중략>             
Anaconda3-4.4.0-Lin 100%[===================>] 499.04M  32.8MB/s    in 14s     

2017-06-02 07:05:48 (35.6 MB/s) - anaconda3-4.4.0-Linux-x86_64.sh??saved [523283080/523283080]

root@hoonjo-VirtualBox:~# chmod 744 Anaconda3-4.4.0-Linux-x86_64.sh 
root@hoonjo-VirtualBox:~# ./Anaconda3-4.4.0-Linux-x86_64.sh 

Welcome to Anaconda3 4.4.0 (by Continuum Analytics, Inc.)

In order to continue the installation process, please review the license
agreement.
Please, press ENTER to continue
>>> 
===================================
Anaconda End User License Agreement
===================================

Copyright 2017, Continuum Analytics, Inc.

<중략>

cryptography
A Python library which exposes cryptographic recipes and primitives.

Do you approve the license terms? [yes|no]
>>> yes

Anaconda3 will now be installed into this location:
/root/anaconda3

  - Press ENTER to confirm the location
  - Press CTRL-C to abort the installation
  - Or specify a different location below

[/root/anaconda3] >>> <Enter>
PREFIX=/root/anaconda3
installing: python-3.6.1-2 ...
<중략>
installing: conda-env-2.6.0-0 ...
Python 3.6.1 :: Continuum Analytics, Inc.
creating default environment...
installation finished.
Do you wish the installer to prepend the Anaconda3 install location
to PATH in your /root/.bashrc ? [yes|no]
[no] >>> yes

Prepending PATH=/root/anaconda3/bin to PATH in /root/.bashrc
A backup will be made to: /root/.bashrc-anaconda3.bak


For this change to become active, you have to open a new terminal.

Thank you for installing Anaconda3!

Share your notebooks and packages on Anaconda Cloud!

Sign up for free: https://anaconda.org


1_3. 설치 확인
아나콘다 패키지를 설치 및 관리하려면 보통 'conda'라는 배포관리 명령어를 통해서 하는데, 이는 바로 실행이 되지 않는다. 즉 conda에 대한 패스는 잡혀 있으나, 현재 사용자 계정에 conda에 대한 사용이 등록되지 않았기 때문이다.
export로 하는 방법도 있지만. 가장 짧고 편한 방법은 '. ~/.bashrc'를 입력하여 읽어 들이는 것입니다. 중요하진 않지만 이는 다음과 같이 별칭(alias) 되어 있습니다.

root@hoonjo-VirtualBox:~# which conda
root@hoonjo-VirtualBox:~# . ~/.bashrc
root@hoonjo-VirtualBox:~# which conda
/root/anaconda3/bin/conda

1_4. conda 패키지 모두 설치
사실 이렇게 모두 다 설치할 필요는 없으나..204개 밖에 안되니까 명령어 실습 겸해서 설치 해 보는 것도 나쁘지 않습니다 하하;;;; 여러가지 테스트를 한다면 머리아프게 누군 설치하고 안 할 바에는 그냥 다 하는게 낫다고 보긴 합니다. :)
*주의할 점* 이미 익숙한 분들도 있겠지만 `와 '는 다른 것입니다. 똑같이 보이시겠지만...`는 치환의 개념으로 주로 쓰이고 '는 주로 묶어 준다는 개념으로 쓰입니다. 이렇게 적고 보니 똑같은 말 하고 있는 것 같네요...

root@hoonjo-VirtualBox:~# conda list | wc -l
204
root@hoonjo-VirtualBox:~# for i in `conda list | awk '{print $1}'`  
> do
> conda install -y $i
> done
Fetching package metadata .........
Solving package specifications: .

# All requested packages already installed.
# packages in environment at /root/anaconda3:
#
_license                  1.1                      py36_1  
Fetching package metadata .........
Solving package specifications: .
<중략>
# All requested packages already installed.
# packages in environment at /root/anaconda3:
#

zlib                      1.2.8 

1_5. conda 패키지 검증
잘 설치 되었겠지만 혹시 모르니 설치된 것들에 대해서 검증해 봅니다.
별 붙은게 새로 설치된 pip 패키지입니다.

root@hoonjo-VirtualBox:~# conda search pip
Fetching package metadata .........
pip                          1.1                      py26_1  defaults        
                             1.1                      py27_1  defaults        
<중략>       
                             9.0.1                    py34_0  defaults        
                             9.0.1                    py35_0  defaults        
                             9.0.1                    py27_1  defaults        
                             9.0.1                    py34_1  defaults        
                             9.0.1                    py35_1  defaults        
                          *  9.0.1                    py36_1  defaults        
root@hoonjo-VirtualBox:~# which pip
/root/anaconda3/bin/pip
root@hoonjo-VirtualBox:~# pip --version
pip 9.0.1 from /root/anaconda3/lib/python3.6/site-packages (python 3.6)

다음에 계속......

참고자료 : ppc64le에서 테스트한 결과

0 개의 댓글:

댓글 쓰기

 
Copyright © . 엔지니어를 위한 파이썬 및 기술 블로그 - Posts · Comments
Theme Template by BTDesigner · Powered by Blogger