내가 사용하는 프로그램에서 fft 루틴이 속도의 많은 부분을 차지한다. 그래서 gcc로 컴파일되어 있는 것을 icc로 대체를 해보았다. 그 결과 프로그램 실행 및 계산 속도가 빨라졌다.

먼저 http://www.fftw.org에 가서 fftw 루틴을 다운받는다.

적당한 디렉토리에 푼 후 다음과 같이 한다.

tar zxvf fftw-*
cd fftw-*

export CC=icc
export CPP=icc
export CFLAGS='-O3 -tpp7 -axN -xN'
export CPPFLAGS='-O3 -tpp7 -axN -xN'
./configure : double-precision
for single-precision: ./configure --enable-float --enable-type-prefix --enable-shared
for double-precision: ./configure --enable-long-double --enable-type-prefix --enable-shared
make install


위의 컨피그 옵션중 나는 두번째 single-precision을 사용하였다.

다른 라이버러리들도 이런식으로 컴파일해서 사용한다면 속도가 많이 향상될 것이다.
Posted by yonggun