#author("2024-02-04T04:08:46+00:00","default:sysosa","sysosa")
#author("2026-01-07T15:14:30+00:00","default:sysosa","sysosa")
本家様 [[http://www.mrc-lmb.cam.ac.uk/kzhang/>+http://www.mrc-lmb.cam.ac.uk/kzhang/]]


***Gctf [#f62873a9]
本家様からファイルをダウンロードします。
取得したファイルは &color(magenta){Gctf_v1.06_and_examples.tar.gz};でした。
これを/Appl/Gctfとかに展開
#code(nonumber){{
[root@c ~]# cd /Appl/
[root@c Appl]# gzip -cd src/Gctf_v1.06_and_examples.tar.gz | tar xf -
}}
新たに「/Appl/Gctf_v1.06」が作成される。
実行バイナリは、
#code(nonumber){{
[root@c Appl]# chown -R root:root /Appl/Gctf_v1.06/
[root@c Appl]# ls -lh /Appl/Gctf_v1.06/bin/
合計 14M
-rwxrwxr-x 1 root root 1.5M  9月 29  2016 Gctf-v1.06_sm_20_cu5.0_x86_64
-rwxrwxr-x 1 root root 2.0M  9月 29  2016 Gctf-v1.06_sm_20_cu6.0_x86_64
-rwxrwxr-x 1 root root 2.0M  9月 29  2016 Gctf-v1.06_sm_20_cu6.5_x86_64
-rwxrwxr-x 1 root root 2.0M  9月 29  2016 Gctf-v1.06_sm_20_cu7.0_x86_64
-rwxrwxr-x 1 root root 2.0M  9月 29  2016 Gctf-v1.06_sm_20_cu7.5_x86_64
-rwxrwxr-x 1 root root 2.0M 10月 17  2016 Gctf-v1.06_sm_20_cu8.0_x86_64
-rwxrwxr-x 1 root root 2.0M 10月 17  2016 Gctf-v1.06_sm_30_cu8.0_x86_64
[root@c Appl]#
}}
とcudaのバージョンとsm毎に用意されている
&size(10){「sm」って何の略?単にgpu architectureのを示すもので、中身はCompute Capabilityだと思っている};
nvidiaのカードとそのCompute Capabilityは[[https://developer.nvidia.com/cuda-gpus>+https://developer.nvidia.com/cuda-gpus]]か[[https://en.wikipedia.org/wiki/CUDA>+https://en.wikipedia.org/wiki/CUDA]]に掲載されている

ここでは「Gctf-v1.06_sm_30_cu8.0_x86_64」を使用する。

#code(nonumber){{
[root@c ~]# cd /Appl/
[root@c Appl]# ln -sv Gctf_v1.06 Gctf
`Gctf' -> `Gctf_v1.06'
[root@c Appl]#

[root@c Appl]# cd Gctf/bin/
[root@c bin]#

[root@c bin]# ln -sv Gctf-v1.06_sm_30_cu8.0_x86_64 gctf
`gctf' -> `Gctf-v1.06_sm_30_cu8.0_x86_64'

[root@c bin]# ln -sv Gctf-v1.06_sm_30_cu8.0_x86_64 Gctf
`Gctf' -> `Gctf-v1.06_sm_30_cu8.0_x86_64'
[root@c bin]#

[root@c bin]# ls -l
合計 13552
lrwxrwxrwx 1 root root      29  4月 26 12:24 Gctf -> Gctf-v1.06_sm_30_cu8.0_x86_64
-rwxrwxr-x 1 root root 1560741  9月 29  2016 Gctf-v1.06_sm_20_cu5.0_x86_64
-rwxrwxr-x 1 root root 2006534  9月 29  2016 Gctf-v1.06_sm_20_cu6.0_x86_64
-rwxrwxr-x 1 root root 2021499  9月 29  2016 Gctf-v1.06_sm_20_cu6.5_x86_64
-rwxrwxr-x 1 root root 2081289  9月 29  2016 Gctf-v1.06_sm_20_cu7.0_x86_64
-rwxrwxr-x 1 root root 2091780  9月 29  2016 Gctf-v1.06_sm_20_cu7.5_x86_64
-rwxrwxr-x 1 root root 2009474 10月 17  2016 Gctf-v1.06_sm_20_cu8.0_x86_64
-rwxrwxr-x 1 root root 2091394 10月 17  2016 Gctf-v1.06_sm_30_cu8.0_x86_64
lrwxrwxrwx 1 root root      29  4月 26 12:24 gctf -> Gctf-v1.06_sm_30_cu8.0_x86_64
[root@c bin]#
}}


***GCtfFind [#j4127367]

本家様 [[https://github.com/czimaginginstitute/GCtfFind>+https://github.com/czimaginginstitute/GCtfFind]]

#code(nonumber){{
git clone https://github.com/czimaginginstitute/GCtfFind
cd GCtfFind
make exe -f makefile CUDAHOME=/usr/local/cuda-12.2
}}

ubuntu22.04にて「&color(red){/usr/bin/ld: /apps/GCtfFind/Lib/libmrcfile.a(CLoadExtHeader.o): relocation R_X86_64_32 against symbol `__gxx_personality_v0@@CXXABI_1.3' can not be used when making a shared object; recompile with -fPIC};」と言われる
その際はmakefileを下記のように修正する
#code(diff,nonumber){{
--- a/makefile
+++ b/makefile
@@ -76,7 +76,7 @@ exe: $(OBJS)
        $(PRJLIB)/libcuutil.a \
        $(PRJLIB)/libcuutilfft.a \
        -L$(CUDALIB) -L/usr/lib64 \
-       -lcufft -lcudart -lcuda -lc -lm -lpthread \
+       -lcufft -lcudart -lcuda -lc -lm -lpthread -no-pie \
        -o GCtfFind
        @echo GCtfFind has been generated.

}}


ubuntu24.04の場合だけど
#code(diff,nonumber){{
--- a/makefile
+++ b/makefile
@@ -60,9 +60,9 @@ SRCS = ./CInput.cpp \
 OBJS = $(patsubst %.cpp, %.o, $(SRCS))
 #-------------------------------------
 CC = g++
-CFLAG = -c -g -pthread -m64
+CFLAG = -c -g -pthread -m64 -fno-PIE
 NVCC = $(CUDAHOME)/bin/nvcc -std=c++11
-CUFLAG = -Xptxas -dlcm=ca -O2 \
+CUFLAG = -Xptxas -dlcm=ca -O2 -Xptxas -dlcm=ca -O2 \
        -gencode arch=compute_52,code=sm_52 \
        -gencode arch=compute_53,code=sm_53 \
        -gencode arch=compute_60,code=sm_60 \
@@ -77,7 +77,7 @@ cuda: $(CUCPPS)
 compile: $(OBJS)

 exe: $(OBJS)
-       @g++ -g -pthread -m64 $(OBJS) \
+       @g++ -g -pthread -m64 -no-pie $(OBJS) \
        $(PRJLIB)/libmrcfile.a \
        $(PRJLIB)/libutil.a \
        $(PRJLIB)/libcuutil.a \
}}
として、「make exe -f makefile CUDAHOME=/usr/local/cuda-12.8」
1

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS