モデル(yolov3)の性能比率を下記サイトのように可視化して出力するため、
以下コマンドを実行しました。
参考サイト:最適化の近道 プロファイラgprofのコールグラフを画像化して、コードのどこがボトルネックかをわかりやすくする
gprofで性能比率を可視化するには「gmon.out」というファイルがMakefileに-pgを付け加えると出力されるらしいのですが、うまくいきません
sh
1$ git clone https://github.com/pjreddie/darknet 2$ sudo vi Makefile 3# 追加 4・LDFLAGS = -pg -fno-omit-frame-pointer 5・LOADLIBES = -pg 6$ make 7# 本来ならここでgmon.outが出力される。
なぜサイトの通りに出力されないのでしょうか?個人的にはMakefileの記述場所が悪いと思うのですが、同じオプションが複数あり、どこに書けばいいかわかりません。
ご教授お願いします
Makefile(追記した後の)
md
1GPU=0 2CUDNN=0 3OPENCV=0 4OPENMP=0 5DEBUG=0 6 7ARCH= -gencode arch=compute_30,code=sm_30 \ 8 -gencode arch=compute_35,code=sm_35 \ 9 -gencode arch=compute_50,code=[sm_50,compute_50] \ 10 -gencode arch=compute_52,code=[sm_52,compute_52] 11# -gencode arch=compute_20,code=[sm_20,sm_21] \ This one is deprecated? 12 13# This is what I use, uncomment if you know your arch and want to specify 14# ARCH= -gencode arch=compute_52,code=compute_52 15 16VPATH=./src/:./examples 17SLIB=libdarknet.so 18ALIB=libdarknet.a 19EXEC=darknet 20OBJDIR=./obj/ 21 22CC=gcc 23CPP=g++ 24NVCC=nvcc 25AR=ar 26ARFLAGS=rcs 27OPTS=-Ofast 28LDFLAGS= -pg -fno-omit-frame-pointer -lm -pthread 29LOADLIBES= -pg 30COMMON= -Iinclude/ -Isrc/ 31CFLAGS=-Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -pg 32 33ifeq ($(OPENMP), 1) 34CFLAGS+= -fopenmp 35endif 36 37ifeq ($(DEBUG), 1) 38OPTS=-O0 -g 39endif 40 41CFLAGS+=$(OPTS) 42 43ifeq ($(OPENCV), 1) 44COMMON+= -DOPENCV 45CFLAGS+= -DOPENCV 46LDFLAGS+= `pkg-config --libs opencv` -lstdc++ 47COMMON+= `pkg-config --cflags opencv` 48endif 49 50ifeq ($(GPU), 1) 51COMMON+= -DGPU -I/usr/local/cuda/include/ 52CFLAGS+= -DGPU 53LDFLAGS+= -L/usr/local/cuda/lib64 -lcuda -lcudart -lcublas -lcurand 54endif 55 56ifeq ($(CUDNN), 1) 57COMMON+= -DCUDNN 58CFLAGS+= -DCUDNN 59LDFLAGS+= -lcudnn 60endif 61 62OBJ=gemm.o utils.o cuda.o deconvolutional_layer.o convolutional_layer.o list.o image.o activations.o im2col.o col2im.o blas.o crop_layer.o dropout_layer.o maxpool_layer.o softmax_layer.o data.o matrix.o network.o connected_layer.o cost_layer.o parser.o option_list.o detection_layer.o route_layer.o upsample_layer.o box.o normalization_layer.o avgpool_layer.o layer.o local_layer.o shortcut_layer.o logistic_layer.o activation_layer.o rnn_layer.o gru_layer.o crnn_layer.o demo.o batchnorm_layer.o region_layer.o reorg_layer.o tree.o lstm_layer.o l2norm_layer.o yolo_layer.o iseg_layer.o image_opencv.o 63EXECOBJA=captcha.o lsd.o super.o art.o tag.o cifar.o go.o rnn.o segmenter.o regressor.o classifier.o coco.o yolo.o detector.o nightmare.o instance-segmenter.o darknet.o 64ifeq ($(GPU), 1) 65LDFLAGS+= -lstdc++ 66OBJ+=convolutional_kernels.o deconvolutional_kernels.o activation_kernels.o im2col_kernels.o col2im_kernels.o blas_kernels.o crop_layer_kernels.o dropout_layer_kernels.o maxpool_layer_kernels.o avgpool_layer_kernels.o 67endif 68 69EXECOBJ = $(addprefix $(OBJDIR), $(EXECOBJA)) 70OBJS = $(addprefix $(OBJDIR), $(OBJ)) 71DEPS = $(wildcard src/*.h) Makefile include/darknet.h 72 73all: obj backup results $(SLIB) $(ALIB) $(EXEC) 74#all: obj results $(SLIB) $(ALIB) $(EXEC) 75 76 77$(EXEC): $(EXECOBJ) $(ALIB) 78 $(CC) $(COMMON) $(CFLAGS) $^ -o $@ $(LDFLAGS) $(ALIB) 79 80$(ALIB): $(OBJS) 81 $(AR) $(ARFLAGS) $@ $^ 82 83$(SLIB): $(OBJS) 84 $(CC) $(CFLAGS) -shared $^ -o $@ $(LDFLAGS) 85 86$(OBJDIR)%.o: %.cpp $(DEPS) 87 $(CPP) $(COMMON) $(CFLAGS) -c $< -o $@ 88 89$(OBJDIR)%.o: %.c $(DEPS) 90 $(CC) $(COMMON) $(CFLAGS) -c $< -o $@ 91 92$(OBJDIR)%.o: %.cu $(DEPS) 93 $(NVCC) $(ARCH) $(COMMON) --compiler-options "$(CFLAGS)" -c $< -o $@ 94 95obj: 96 mkdir -p obj 97backup: 98 mkdir -p backup 99results: 100 mkdir -p results 101 102.PHONY: clean 103 104clean: 105 rm -rf $(OBJS) $(SLIB) $(ALIB) $(EXEC) $(EXECOBJ) $(OBJDIR)/*
あなたの回答
tips
プレビュー