rcaceiro / node-yolo

MIT License
18 stars 4 forks source link

Built with GPU stuff enabled but using CPU #3

Closed moeiscool closed 6 years ago

moeiscool commented 6 years ago

i can install the module and use it, i am able to get successful detections. The probem is that i don't think it is using my GTX 770. Each detection takes at least 1.6 seconds and my CPU use spikes to 15% use when before it was at 0%.

I see cuda references in the install log but i don't think it is doing it, if you could please guide me it would be most appreciated! thank you for reading :)

root@matrix:/home/Shinobi/plugins/yolo npm i @vapi/node-yolo --save --unsafe-perm

> @vapi/node-yolo@1.2.4 preinstall /home/Shinobi/node_modules/@vapi/node-yolo
> make clean_all && make -j 2 && make clean && node-gyp configure && node-gyp build

rm -rf obj
rm -rf yolo/libyolo.so yolo/libyolo.a
mkdir -p obj
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c yolo/src/libyolo.c -o obj/libyolo.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./map_lib/map_lib.c -o obj/map_lib.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/gemm.c -o obj/gemm.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/utils.c -o obj/utils.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/cuda.c -o obj/cuda.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/deconvolutional_layer.c -o obj/deconvolutional_layer.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/convolutional_layer.c -o obj/convolutional_layer.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/list.c -o obj/list.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/image.c -o obj/image.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/activations.c -o obj/activations.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/im2col.c -o obj/im2col.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/col2im.c -o obj/col2im.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/blas.c -o obj/blas.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/crop_layer.c -o obj/crop_layer.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/dropout_layer.c -o obj/dropout_layer.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/maxpool_layer.c -o obj/maxpool_layer.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/softmax_layer.c -o obj/softmax_layer.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/data.c -o obj/data.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/matrix.c -o obj/matrix.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/network.c -o obj/network.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/connected_layer.c -o obj/connected_layer.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/cost_layer.c -o obj/cost_layer.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/parser.c -o obj/parser.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/option_list.c -o obj/option_list.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/detection_layer.c -o obj/detection_layer.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/route_layer.c -o obj/route_layer.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/upsample_layer.c -o obj/upsample_layer.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/box.c -o obj/box.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/normalization_layer.c -o obj/normalization_layer.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/avgpool_layer.c -o obj/avgpool_layer.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/layer.c -o obj/layer.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/local_layer.c -o obj/local_layer.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/shortcut_layer.c -o obj/shortcut_layer.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/logistic_layer.c -o obj/logistic_layer.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/activation_layer.c -o obj/activation_layer.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/rnn_layer.c -o obj/rnn_layer.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/gru_layer.c -o obj/gru_layer.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/crnn_layer.c -o obj/crnn_layer.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/demo.c -o obj/demo.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/batchnorm_layer.c -o obj/batchnorm_layer.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/region_layer.c -o obj/region_layer.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/reorg_layer.c -o obj/reorg_layer.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/tree.c -o obj/tree.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/lstm_layer.c -o obj/lstm_layer.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/l2norm_layer.c -o obj/l2norm_layer.o
gcc -I./darknet/include/ -I./darknet/src/ -I./map_lib/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -c ./darknet/src/yolo_layer.c -o obj/yolo_layer.o
gcc -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -shared obj/libyolo.o obj/map_lib.o obj/gemm.o obj/utils.o obj/cuda.o obj/deconvolutional_layer.o obj/convolutional_layer.o obj/list.o obj/image.o obj/activations.o obj/im2col.o obj/col2im.o obj/blas.o obj/crop_layer.o obj/dropout_layer.o obj/maxpool_layer.o obj/softmax_layer.o obj/data.o obj/matrix.o obj/network.o obj/connected_layer.o obj/cost_layer.o obj/parser.o obj/option_list.o obj/detection_layer.o obj/route_layer.o obj/upsample_layer.o obj/box.o obj/normalization_layer.o obj/avgpool_layer.o obj/layer.o obj/local_layer.o obj/shortcut_layer.o obj/logistic_layer.o obj/activation_layer.o obj/rnn_layer.o obj/gru_layer.o obj/crnn_layer.o obj/demo.o obj/batchnorm_layer.o obj/region_layer.o obj/reorg_layer.o obj/tree.o obj/lstm_layer.o obj/l2norm_layer.o obj/yolo_layer.o -o yolo/libyolo.so -lm -pthread
ar rcs yolo/libyolo.a obj/libyolo.o obj/map_lib.o obj/gemm.o obj/utils.o obj/cuda.o obj/deconvolutional_layer.o obj/convolutional_layer.o obj/list.o obj/image.o obj/activations.o obj/im2col.o obj/col2im.o obj/blas.o obj/crop_layer.o obj/dropout_layer.o obj/maxpool_layer.o obj/softmax_layer.o obj/data.o obj/matrix.o obj/network.o obj/connected_layer.o obj/cost_layer.o obj/parser.o obj/option_list.o obj/detection_layer.o obj/route_layer.o obj/upsample_layer.o obj/box.o obj/normalization_layer.o obj/avgpool_layer.o obj/layer.o obj/local_layer.o obj/shortcut_layer.o obj/logistic_layer.o obj/activation_layer.o obj/rnn_layer.o obj/gru_layer.o obj/crnn_layer.o obj/demo.o obj/batchnorm_layer.o obj/region_layer.o obj/reorg_layer.o obj/tree.o obj/lstm_layer.o obj/l2norm_layer.o obj/yolo_layer.o
rm -rf obj
make: Entering directory '/home/Shinobi/node_modules/@vapi/node-yolo/build'
  CXX(target) Release/obj.target/nodeyolojs/src/module.o
  SOLINK_MODULE(target) Release/obj.target/nodeyolojs.node
  COPY Release/nodeyolojs.node
make: Leaving directory '/home/Shinobi/node_modules/@vapi/node-yolo/build'
freakstatic commented 6 years ago

Hi @moeiscool What version of CUDA do you have? It seems that you don't have installed the cuDNN, try to install it and do npm install again and let us know the result

moeiscool commented 6 years ago

I use this https://gitlab.com/Shinobi-Systems/Shinobi/blob/dev/INSTALL/cuda.sh. It's a custom script I include in my repo to install a Nvidia drivers v396, CUDA toolkit 9.2, and CuDNN libcudnn7_7.2.1.38-1+cuda9.2_amd64

rcaceiro commented 6 years ago

Hy @moeiscool, Can you tell me the location of nvcc file.

moeiscool commented 6 years ago

i figured out the issue! thanks @rcaceiro and @freakstatic for the hint and help! I had everything installed but the problem was that when i ran nvcc it would say it wasn't found. So my solution before running the install was to do

export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

because my GPU is an older GPU i had to remove compute_62 line from the Makefile also.

Thank you guys for putting in this amazing effort! Because of you guys Shinobi is going to take a step forward real far real fast!!!

rcaceiro commented 6 years ago

Nice @moeiscool, Stay sharp because currently we are working in version 2.0.0 it isn't finished but came with video support and more stability, but isn't backward compatible. If you need something else, let us know.

freakstatic commented 6 years ago

@moeiscool we are really happy to know that our work it's helping others 😄 good luck for your project!