本家様 https://emcore.ucsf.edu/ucsf-motioncor2
ライセンスにご注意ください
本家様から
NOTE: This software may only be downloaded and used for free by academic and/or non-profit users.
All others are required to contact David Agard for licensing information prior to download.
使用するには nvidia cardが必要です。
MotionCor2-1.3.0 †
前回同様 8.0、9.2、10.1とかのcudaライブラリが必要
計算機の搭載メモリーは128GBが推奨で、対象に寄るが64GBでも動くみたい
MotionCor2-1.2.6 †
利用できるcudaのバージョンが、8.0、9.2、10.1と広がった。
MotionCor2-1.1.0 †
cuda-8.0以上が動作要件となった。
加えて「libtiff.so.5」が必須で、既定で「libtiff.so.3」なCentOS6では動かなくなる...
別途コンパイルすればCentOS6でも動くけどね
CentOS7は既定で「libtiff.so.5」である。
ファイルをダウンロードして展開。
使い方は同封のPDF参照
GPUデバイスを共有してMotionCor2を実行すると扱けるみたい。
この辺はtorque/pbsproとかでgpuIDを意識したqsubスクリプトが必要なのかも。
relionからMotionCor2を利用するなら問題ないけど。
リリースノートに
「This version further improves the speed of motion correction and more robust compared to previous releases.」
(google先生訳:このバージョンでは、モーション補正の速度がさらに向上し、以前のリリースよりも堅牢になりました。)
とある
438MBのtiffファイルで計算したら
| MotionCor2-1.1.0 | MotionCor2-1.0.4 |
Total time: | 48.144424 sec | 89.335754 sec |
と確かに速度はあがったみたい
memo(180819)
Ryzen 7 2700X上で1080Ti2枚(--gpu 0 1)で計算したら
Warning: Dark reference size does not match frame size.
...... Frame size: 3710 3838
...... Dark size: 0 0
Detect bad and hot pixels.
にて止まってしまった。。1枚なら最後まで計算してくれる。
intelなcpuで1080Ti 2枚は問題なし。
MotionCor2-1.0.4 †
下記のSegmentation faultが解消されたみたい.
「-DefectFile」を指定しても計算は正常終了しました.
計算中、GPUのメモリ消費量が従来1.0.0なら200Mとか600MBとかだったのが、6GBとかに増加.
計算資源を有効に活用したのか、格段に計算時間が短くなりました.
Segmentation fault †
MotionCor2_1.0.2において「cuda 8.0.44-1, Driver Version: 367.48」であるとSegmentation faultが発生した
以前のMotionCor2-1.0.0では問題なく終了していたのに...
lddでMotionCor2_1.0.2を見ると参照すると
[root@f ~]# ldd ./MotionCor2_1.0.2
linux-vdso.so.1 => (0x00007fff045f9000)
libcufft.so.8.0 => /usr/local/cuda-8.0/targets/x86_64-linux/lib/libcufft.so.8.0 (0x00007fcae8666000)
libcudart.so.8.0 => /usr/local/cuda-8.0/targets/x86_64-linux/lib/libcudart.so.8.0 (0x00007fcae83ff000)
libcuda.so.1 => /usr/lib64/nvidia/libcuda.so.1 (0x00007fcae7a1b000)
libtiff.so.3 => /lib64/libtiff.so.3 (0x00007fcae77b6000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fcae7599000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007fcae7291000)
libm.so.6 => /lib64/libm.so.6 (0x00007fcae6f8f000)
libc.so.6 => /lib64/libc.so.6 (0x00007fcae6bcb000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fcae69b5000)
librt.so.1 => /lib64/librt.so.1 (0x00007fcae67ad000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fcae65a8000)
libnvidia-fatbinaryloader.so.367.48 => /usr/lib64/nvidia/libnvidia-fatbinaryloader.so.367.48 (0x00007fcae635a000)
libjpeg.so.62 => /lib64/libjpeg.so.62 (0x00007fcae6105000)
libz.so.1 => /lib64/libz.so.1 (0x00007fcae5eee000)
/lib64/ld-linux-x86-64.so.2 (0x000055a350ee3000)
[root@f ~]#
でcuda8は必須みたい. っでcuda8のGA2版「8.0.61-1, Driver Version: 384.81」で試してみたが変わらず...
っで、「-DefectFile」の指定を外したら最後まで計算したのだが....環境はCentOS 7.4
/var/log/messagesに
「kernel: MotionCor2_1.0.[2872]: segfault at 7f78c22f3040 ip 00007f78dc7a781d sp 00007f78c6873cc8 error 6 in libc-2.17.so[7f78dc71e000+1b8000]」
と記載された.
ubuntu 16.04(cuda8/GA2)で試してみたが、同様にエラーが発生...