Relion3からCPUの拡張命令を活用したCPU-accelerationが用意された。
使えるのは relion_refine のみです。
AVX2とAVX512向けに用意され
AVX2は、Haswell世代、第4世代Intel Coreプロセッサに装備されている(Pentium, Celeronを除く)
AVX512は、Skylake世代、第6世代Intel CoreプロセッサのCore i9(7900Xとか)から装備されている。

世代Haswell
第4世代Core
Broadwell
第5世代Core
Skylake
第6世代Core
Kaby Lake
第7世代Core
Coffee Lake
第8世代Core
Core i7 Extreme
Core i7
Core i5
Core i3
Xeon E3(v3)
E5(v3)
i7
i5
i3
Xeon D
E3(v4)
E5(v4)
i7
i5
i3
Core i9(79xx)
Core i7(78xx)
Xeon E3(v5)Xeon Bronze
Silver
Gold
Platinum
i7
i5
i3
Xeon E3(v6)i7
i5
i3
Xeon E
AVX2
AVX512xxxxxxxxxx

GNU gccでも作れるようだが、intelから市販品の インテルコンパイラーならgccより早く演算するバイナリーを作れるとの事。
ここでは intel コンパイラー の「インテル Parallel Studio XE 2018 Cluster Edition for Linux」で作ってみた

準備

インテルコンパイラーの導入方法は省略
コンパイル前に環境整備を行う

source /opt/intel/compilers_and_libraries_2018/linux/bin/compilervars.sh intel64
source /opt/intel/compilers_and_libraries_2018/linux/mkl/bin/mklvars.sh intel64
source /opt/intel/impi/2019/intel64/bin/mpivars.sh intel64

コンパイル

インストール先を「/Appl/relion-3.0-beta-2-AVX2」とします。
*「-DGUI=OFF」としてますので、relion_mainguiは作られません

cd /Appl/src/relion3
cd relion-3.0_beta
 
mkdir b-180804.AVX2 && cd $_
CC=mpiicc CXX=mpiicpc cmake -DCUDA=OFF -DALTCPU=ON -DCudaTexture=OFF -DMKLFFT=ON \
-DCMAKE_C_FLAGS="-O3 -ip -g -debug inline-debug-info -xCORE-AVX2 -restrict " \
-DCMAKE_CXX_FLAGS="-O3 -ip -g -debug inline-debug-info -xCORE-AVX2 -restrict " \
-DGUI=OFF -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/Appl/relion-3.0-beta-2-AVX2 ..

その後「make && make install」として完了

「AVX2」の演算ユニットが入ったCPUで使えるバイナリーを得た。

同じ要領で「AVX512」版も作ってみた

rm -rf ./*
CC=mpiicc CXX=mpiicpc cmake -DCUDA=OFF -DALTCPU=ON -DCudaTexture=OFF -DMKLFFT=ON \
-DCMAKE_C_FLAGS="-O3 -ip -g -debug inline-debug-info -xCORE-AVX512 -qopt-zmm-usage=high -restrict " \
-DCMAKE_CXX_FLAGS="-O3 -ip -g -debug inline-debug-info -xCORE-AVX512 -qopt-zmm-usage=high -restrict " \
-DGUI=OFF -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/Appl/relion-3.0-beta-2-AVX512 ..
make && make install

実行

source /opt/intel/compilers_and_libraries_2018/linux/bin/compilervars.sh intel64
source /opt/intel/compilers_and_libraries_2018/linux/mkl/bin/mklvars.sh intel64
source /opt/intel/impi/2019/intel64/bin/mpivars.sh intel64

と環境を整えて、直接「relion_refine/relion_refine_mpi」を利用します。
確かに早くなるが、、GPU版でいいかなあ


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2018-08-04 (土) 22:29:28 (12d)