#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」