2020년 3월 23일 월요일

IBM POWER9 (ppc64le) 아키텍처에서의 SimpleITK 설치


SimpleITK는 Insight Segmentation과 Registration Toolkit (ITK)를 감싼 일종의 layer 또는 wrapper 소프트웨어입니다.   이를 IBM POWER9 (ppc64le) 아키텍처의 python3 환경에서 사용하시려면 그냥 pip install로 설치하시면 됩니다.

아래 내용을 통해 build 한 RHEL 7.6 Alt (ppc64le) 상에서의 python 3.6.9를 위한 SimpleITK 1.2.0의 wheel file을 아래 Google drive에 올려 놓았으니 그걸 download 받아서 다음과 같은 명령으로 설치하셔도 됩니다.

$ pip install ./SimpleITK-1.2.0-cp36-cp36m-linux_ppc64le.whl

구글 drive에서 download 받으려면 여기를 click


직접 pip 명령으로 SimpleITK을 설치하기 위해서는 아래와 같은 수순을 밟으면 됩니다.  제가 해보니 생각보다는 build하는데 CPU 사용량 및 사용 시간이 꽤 깁니다. 

먼저 gcc 및 make 등과 같은 Redhat OS의 기본 개발 tool을 설치합니다.

(base) [u0017496@vm ~]$ sudo yum groupinstall -y "Development Tools"

SimpleITK를 build하기 위해서는 scikit-build와 cmake (version 3.x)가 필요하므로 그것들도 설치합니다.

(base) [u0017496@vm ~]$ pip install scikit-build

(base) [u0017496@vm ~]$ conda install cmake

(base) [u0017496@vm ~]$ which cmake
~/anaconda3/bin/cmake

(base) [u0017496@vm ~]$ cmake --version
cmake version 3.14.0

그 다음은 그냥 pip install 명령을 사용하시면 됩니다.  그러면 internet repository에서 source를 가져와 build합니다.   저는 가상 CPU 환경에서 수행했는데, 한 30분은 걸린 것 같습니다.

(base) [u0017496@vm ~]$ pip install SimpleITK
Collecting SimpleITK
  Downloading https://files.pythonhosted.org/packages/11/f5/dfc5fe1ee82baa0bf35579ab49f0b0d318ae528a7557552579a587f9d7a3/SimpleITK-1.2.0.tar.gz (2.0MB)
     |████████████████████████████████| 2.0MB 9.5MB/s
Building wheels for collected packages: SimpleITK
...
  Created wheel for SimpleITK: filename=SimpleITK-1.2.0-cp36-cp36m-linux_ppc64le.whl size=42515246 sha256=063c44e98540f8f01ce965647b198294ec81782053b9eef960cc11f6229041eb
  Stored in directory: /home/cecuser/.cache/pip/wheels/b7/4e/7a/b7ac870691673ebd2688e1492d2ffac7b2380b6e607625baeb
Successfully built SimpleITK
Installing collected packages: SimpleITK
Successfully installed SimpleITK-1.2.0

Build되자마자 자동으로 설치까지 되며, 이떄 build된 wheel file은 아래 위치에 존재합니다.  그 크기는 45MB 정도 됩니다.

(wmlce_env3) [cecuser@vm ~]$ ls -l /home/cecuser/.cache/pip/wheels/b7/4e/7a/b7ac870691673ebd2688e1492d2ffac7b2380b6e607625baeb
total 41520
-rw-rw-r-- 1 cecuser cecuser 42515246 Mar 23 03:00 SimpleITK-1.2.0-cp36-cp36m-linux_ppc64le.whl

(wmlce_env3) [cecuser@vm ~]$ pip list | grep -i simpleitk
SimpleITK              1.2.0

(wmlce_env3) [cecuser@vm ~]$ which python
~/anaconda3/envs/wmlce_env3/bin/python

다음과 같이 import해보면 잘 되는 것을 확인할 수 있습니다.

(wmlce_env3) [cecuser@vm ~]$ python
Python 3.6.9 |Anaconda, Inc.| (default, Jul 30 2019, 19:18:58)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import SimpleITK as sitk
>>>