本家様 http://www.mrc-lmb.cam.ac.uk/kzhang/
本家様からファイルをダウンロードします。
取得したファイルは Gctf_v1.06_and_examples.tar.gzでした。
これを/Appl/Gctfとかに展開
[root@c ~]# cd /Appl/
[root@c Appl]# gzip -cd src/Gctf_v1.06_and_examples.tar.gz | tar xf -新たに「/Appl/Gctf_v1.06」が作成される。
実行バイナリは、
[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毎に用意されている
「sm」って何の略?単にgpu architectureのを示すもので、中身はCompute Capabilityだと思っている
nvidiaのカードとそのCompute Capabilityはhttps://developer.nvidia.com/cuda-gpus
かhttps://en.wikipedia.org/wiki/CUDA
に掲載されている
ここでは「Gctf-v1.06_sm_30_cu8.0_x86_64」を使用する。
[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]#本家様 https://github.com/czimaginginstitute/GCtfFind
git clone https://github.com/czimaginginstitute/GCtfFind
cd GCtfFind
make exe -f makefile CUDAHOME=/usr/local/cuda-12.2ubuntu22.04にて「/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を下記のように修正する
|
ubuntu24.04の場合だけど
--- 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」