「Gctf」の版間の差分

提供: Eospedia
移動: 案内検索
(ページの作成:「* GPUで動作するCTF推定プログラムです。 * Gctf: real-time CTF determination and correction, Kai Zhang, 2016 == インストール == * https://www.mrc-lmb...」)
 
(インストール)
 
(同じ利用者による、間の10版が非表示)
行4: 行4:
  
 
== インストール ==
 
== インストール ==
 +
2019年5月17日、Ubuntu 16.04.6 LTS
 +
 
* https://www.mrc-lmb.cam.ac.uk/kzhang/
 
* https://www.mrc-lmb.cam.ac.uk/kzhang/
** Gctfのビルド済みバイナリがダウンロードできます。
+
** Gctfのビルド済みバイナリがダウンロードできる。
** Gctf_v1.18はphase plate用と書いてありますが普通の画像にも使えます。
+
** Gctf_v1.18はphase plate用と書いてありますが普通の画像にも使える。
  
 
* 理由はよくわかりませんがソースコードがネット上に見当たりません。公開されていないかもしれません。
 
* 理由はよくわかりませんがソースコードがネット上に見当たりません。公開されていないかもしれません。
行12: 行14:
  
  
Gctf_v1.18のリンクをクリックするとIndex of /kzhang/Gctf/Gctf_v1.18_b2というタイトルのページに飛びます。そこにbin/とlib/というディレクトリへのリンクがあり、中身はそれぞれ各computing capability(sm)とCUDAバージョン(cu)用のビルド済みバイナリです。
+
Gctf_v1.18のリンクをクリックするとIndex of /kzhang/Gctf/Gctf_v1.18_b2というタイトルのページに飛ぶ。そこにbin/とlib/というディレクトリへのリンクがあり、中身はそれぞれ各compute capability(sm)とCUDAバージョン(cu)用のビルド済みバイナリとなっている。
 +
 
 +
<b><u>compute capabilityの調べ方</u></b>
 +
 
 +
自分の使用しているGPUのcomputing capabilityはNVIDIAのページで確認できる([https://developer.nvidia.com/cuda-gpus https://developer.nvidia.com/cuda-gpus])。GeForceの場合、CUDA-Enabled Geforce and TITAN productsをクリックすると各GPUとcompute capabilityの対応表が展開される。私の場合、GTX1080なので、Compute capabilityは6.1である。ファイル名に"sm61"と書いてあるGctfバイナリを選ぶ。
 +
 
 +
 
 +
2019年5月17日現在、GctfバイナリはCUDA 8.0, 9.0, 9.1, 9.2についてしか公開されていない。インストールしてあるCUDAがそのいずれかであれば、それと対応したGctfバイナリを選び、ダウンロードすれば良い。
 +
 
 +
 
 +
以下、Computing capability 6.1、CUDA 9.2の場合のダウンロード&インストール手順例。
 +
 
 +
<pre>
 +
$ mkdir Gctf; cd Gctf
 +
$ wget https://www.mrc-lmb.cam.ac.uk/kzhang/Gctf/Gctf_v1.18_b2/bin/Gctf_v1.18_b2_sm61_cu9.2
 +
$ wget https://www.mrc-lmb.cam.ac.uk/kzhang/Gctf/Gctf_v1.18_b2/lib/libEMcore_sm61_cu9.2.so
 +
$ chmod +x *
 +
</pre>
 +
 
 +
あとはMotion correctionジョブタイプでGctf executableとしてGctf_v1.18_b2_sm61_cu9.2のパスを指定すれば良い。
 +
 
 +
== 自分の環境のCUDAバージョンがない時 ==
 +
私の環境でインストールしてあるCUDAは10.1だが、2019年5月17日現在、GctfバイナリはCUDA 8.0, 9.0, 9.1, 9.2についてしか公開されていない。
 +
 
 +
一応 CUDA 9.2対応のバイナリが動くか動作検証してみます。
 +
 
 +
<pre>
 +
$ ./Gctf_v1.18_b2_sm61_cu9.2 --help
 +
 
 +
./Gctf_v1.18_b2_sm61_cu9.2: error while loading shared libraries: libcufft.so.9.2: cannot open shared object file: No such file or directory
 +
</pre>
 +
 
 +
やはりCUDA9.2の動的ライブラリを探しに行き、それが見つからないのでエラーとなった。
 +
 
  
 +
複数のCUDAバージョンを1つの環境で共存させることは困難か、できない様なので、CUDA9.2を追加インストールするといった対処はできない。
  
自分の使用しているGPUのcomputing capabilityはNVIDIAのページで確認できます([https://developer.nvidia.com/cuda-gpus https://developer.nvidia.com/cuda-gpus])。GeForceの場合、CUDA-Enabled Geforce and TITAN productsをクリックすると各GPUとcomputing capabilityの対応表が展開されます。私の場合、GTX1080なので、Computing capabilityは6.1です。
 
  
 +
私がすぐ思いつく対処策は以下2つ。
  
 +
* CUDAインストールやり直し
 +
** すでにCUDA10.1にリンクしてビルドしたプログラムが大量にあるので、この方法はとりたくない
  
 +
* NVIDIA Dockerを用い、CUDA9.2をインストールしたコンテナで作業する
  
  
== CUDAバージョンの問題 ==
+
ここではNVIDIA Dockerを用いた方法で対処することにします。
* 2019年5月17日現在、Kai Zhangにより公開されているGctf v1.18バイナリのCUDAバージョンは 8.0, 9.0, 9.1, 9.2に限られています。
+
→ [[DockerでRELION]]
* CUDA10.1など最新のCUDAをインストールしている環境では動作しないかもしれません。
+

2019年5月18日 (土) 03:57時点における最新版

  • GPUで動作するCTF推定プログラムです。
  • Gctf: real-time CTF determination and correction, Kai Zhang, 2016


インストール

2019年5月17日、Ubuntu 16.04.6 LTS

  • https://www.mrc-lmb.cam.ac.uk/kzhang/
    • Gctfのビルド済みバイナリがダウンロードできる。
    • Gctf_v1.18はphase plate用と書いてありますが普通の画像にも使える。
  • 理由はよくわかりませんがソースコードがネット上に見当たりません。公開されていないかもしれません。
    • ソースコード非公開のプログラムが嫌いな方はCTFFINDを使いましょう。


Gctf_v1.18のリンクをクリックするとIndex of /kzhang/Gctf/Gctf_v1.18_b2というタイトルのページに飛ぶ。そこにbin/とlib/というディレクトリへのリンクがあり、中身はそれぞれ各compute capability(sm)とCUDAバージョン(cu)用のビルド済みバイナリとなっている。

compute capabilityの調べ方

自分の使用しているGPUのcomputing capabilityはNVIDIAのページで確認できる(https://developer.nvidia.com/cuda-gpus)。GeForceの場合、CUDA-Enabled Geforce and TITAN productsをクリックすると各GPUとcompute capabilityの対応表が展開される。私の場合、GTX1080なので、Compute capabilityは6.1である。ファイル名に"sm61"と書いてあるGctfバイナリを選ぶ。


2019年5月17日現在、GctfバイナリはCUDA 8.0, 9.0, 9.1, 9.2についてしか公開されていない。インストールしてあるCUDAがそのいずれかであれば、それと対応したGctfバイナリを選び、ダウンロードすれば良い。


以下、Computing capability 6.1、CUDA 9.2の場合のダウンロード&インストール手順例。

$ mkdir Gctf; cd Gctf
$ wget https://www.mrc-lmb.cam.ac.uk/kzhang/Gctf/Gctf_v1.18_b2/bin/Gctf_v1.18_b2_sm61_cu9.2
$ wget https://www.mrc-lmb.cam.ac.uk/kzhang/Gctf/Gctf_v1.18_b2/lib/libEMcore_sm61_cu9.2.so
$ chmod +x *

あとはMotion correctionジョブタイプでGctf executableとしてGctf_v1.18_b2_sm61_cu9.2のパスを指定すれば良い。

自分の環境のCUDAバージョンがない時

私の環境でインストールしてあるCUDAは10.1だが、2019年5月17日現在、GctfバイナリはCUDA 8.0, 9.0, 9.1, 9.2についてしか公開されていない。

一応 CUDA 9.2対応のバイナリが動くか動作検証してみます。

$ ./Gctf_v1.18_b2_sm61_cu9.2 --help

./Gctf_v1.18_b2_sm61_cu9.2: error while loading shared libraries: libcufft.so.9.2: cannot open shared object file: No such file or directory

やはりCUDA9.2の動的ライブラリを探しに行き、それが見つからないのでエラーとなった。


複数のCUDAバージョンを1つの環境で共存させることは困難か、できない様なので、CUDA9.2を追加インストールするといった対処はできない。


私がすぐ思いつく対処策は以下2つ。

  • CUDAインストールやり直し
    • すでにCUDA10.1にリンクしてビルドしたプログラムが大量にあるので、この方法はとりたくない
  • NVIDIA Dockerを用い、CUDA9.2をインストールしたコンテナで作業する


ここではNVIDIA Dockerを用いた方法で対処することにします。 → DockerでRELION