더북(TheBook)
libatlas의 사용

필자의 시스템에서는 libatlas의 성능이 좋았다. libatlas를 설치하는 방법은 다음과 같다. 먼저 설치해야 할 libatlas를 찾는다.

$ sudo apt-cache search --names-only libatlas
libatlas-base-dev - Automatically Tuned Linear Algebra Software, generic static
libatlas-cpp-0.6-1 - The protocol library of the World Forge project - runtime libs
libatlas-cpp-0.6-1-dbg - The protocol library of the World Forge project - debugging libs
libatlas-cpp-0.6-dev - The protocol library of the World Forge project - header files
libatlas-cpp-doc - The protocol library of the World Forge project - documentation
libatlas-dev - Automatically Tuned Linear Algebra Software, C header files
libatlas-doc - Automatically Tuned Linear Algebra Software, documentation
libatlas-test - Automatically Tuned Linear Algebra Software, test programs
libatlas3gf-base - Automatically Tuned Linear Algebra Software, generic shared

그리고 필요해 보이는 패키지들을 설치한다. 보통 ‘-base’나 ‘-dev’로 되어 있는 패키지를 설치하면 된다.

$ sudo apt-get install libatlas-base-dev libatlas-dev libatlas3gf-base

우분투에서는 특정 기능을 제공하는 구현체를 2개 이상 설치할 경우 특정 구현체를 자동으로 선택하며, 어떤 구현체를 사용하는지는 우분투에 사전에 정의된 순서를 따른다.

따라서 BLAS의 구현체 중 하나인 libatlas를 설치했을 때 기존의 BLAS를 제공하는 라이브러리에 비해 libatlas의 우선순위가 높다면 libatlas가 자동으로 선택되지만, 반대로 기존 구현체가 계속해서 우선되어 사용될 수도 있다.

이 경우 다음과 같이 우분투 명령 중 하나인 update-alternatives를 사용해 원하는 구현체를 선택한다(우분투 13.04 이후 버전에서는 liblapack.so.3gf 대신 liblapack.so.3을 지정하기 바란다).

$ sudo update-alternatives --config liblapack.so.3gf
There are 2 choices for the alternative liblapack.so.3gf (providing /usr/lib/liblapack.so.3gf).
 
  Selection  Path                                         Priority  Status
------------------------------------------------------------
+ 0          /usr/lib/atlas-base/atlas/liblapack.so.3gf   35        auto mode
  1          /usr/lib/atlas-base/atlas/liblapack.so.3gf   35        manual mode 
  2          /usr/lib/lapack/liblapack.so.3gf             10        manual mode 

Press enter to keep the current choice[*], or type selection number:
$

위의 결과에서는 atlas 디렉터리에 있는 liblapack.so.3gf가 이미 선택되어 있으므로 아무런 숫자를 입력하지 않고 엔터를 입력해 종료했다. 다음으로 libblas.so.3gf 역시 선택해준다(우분투 13.04 이후 버전에서는 libblas.so.3gf 대신 libblas.so.3을 지정하기 바란다).

$ sudo update-alternatives --config libblas.so.3gf
There are 2 choices for the alternative libblas.so.3gf (providing /usr/lib/libblas.so.3gf).
Selection  Path                                        Priority     Status
------------------------------------------------------------
+ 0        /usr/lib/atlas-base/atlas/libblas.so.3gf    35           auto mode
  1        /usr/lib/atlas-base/atlas/libblas.so.3gf    35           manual mode
  2        /usr/lib/libblas/libblas.so.3gf             10           manual mode 

Press enter to keep the current choice[*], or type selection number:
$

선택을 마치면 벤치마킹 프로그램을 다시 실행해 실행 속도의 향상을 검토한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.