-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
138 lines (112 loc) · 3.78 KB
/
Copy pathMakefile
File metadata and controls
138 lines (112 loc) · 3.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
#
# Simple makefile for object-detection project
#
# Get variables
DOCKER_IMAGE_NAME=heliconwave/object-detection
DOCKER_IMAGE_VER=v12
DOCKER_IMAGE_NCSDK=heliconwave/ncsdk
DOCKER_IMAGE_VER_NCSDK=v2
## Project
COMPONENT_NAME ?= object-detection
export PROJ_ROOT := $(CURDIR)
SUBDIRS =
DOCKERDIR = $(PROJ_ROOT)/docker
## Machine
CORES ?= $(shell nproc)
MAKEFLAGS+="-j $(CORES)"
$(info MAKEFLAGS= $(MAKEFLAGS))
## Python
PYTHON_VERSION ?= 3
.PHONY: all lint flake docker-image docker-image-ncsdk docker-bash docker-bash-ncsdk docker-jupyter docker-stop venv clean clean-all
help:
@echo
@echo ' all - build and create tsparser main executable.'
@echo ' lint - run clang formating for c++ and flake8 for python'
@echo ' flake - run flake8 on python files.'
@echo ' docker-image - builds new docker image with name:tag in Makefile.variables'
@echo ' docker-image-ncsdk - builds new docker image for Movidius with NCSDK: ncsdk:v1'
@echo ' docker-bash - starts a docker bash interactive container with image in Makefile.variables'
@echo ' docker-bash-ncsdk - starts a docker bash interactive container with Movidius NCSDK image.'
@echo ' docker-jupyter - starts a docker bash with jupyter notebooks from tensorflow GPU image.'
@echo ' docker-stop - stops docker jupyter notebooks container.'
@echo ' venv - build python virtual environment for tensorflow CPU.'
@echo ' clean - deletes build content.'
@echo ' clean-all - deletes build content + downloaded 3rd-party.'
@echo
all: folders $(BUILDDIR)/tsparser
folders: $(BUILDDIR) $(BUILDDIR)/mpeg2vid $(BUILDDIR)/h264
lint: flake
flake:
flake8
### docker stuff
# Build docker image
docker-image:
docker build \
--file=$(DOCKERDIR)/cuda/Dockerfile \
--tag=$(DOCKER_IMAGE_NAME):$(DOCKER_IMAGE_VER) \
--tag=$(DOCKER_IMAGE_NAME):latest docker/cuda
docker-image-ncsdk:
docker build \
--file=$(DOCKERDIR)/ncsdk/Dockerfile \
--tag=$(DOCKER_IMAGE_NCSDK):$(DOCKER_IMAGE_VER_NCSDK) \
--tag=$(DOCKER_IMAGE_NCSDK):latest docker/ncsdk
# start tty session inside docker container
docker-bash:
docker run \
--runtime=nvidia \
--rm \
--interactive \
--tty=true \
--publish 8888:8888 \
--publish 0.0.0.0:6006:6006 \
--env LOCAL_USER_ID=`id -u ${USER}` \
--env MODELS_ROOT=/tmp/models \
--env DISPLAY=unix$$DISPLAY \
--env TERM=xterm-256color \
--privileged \
--volume /tmp/.X11-unix:/tmp/.X11-unix:ro \
--volume $$(pwd):/tmp \
--volume /dev/video0:/dev/video0 \
--workdir=/tmp \
$(DOCKER_IMAGE_NAME):$(DOCKER_IMAGE_VER) /bin/bash
docker-bash-ncsdk:
docker run \
--rm \
--interactive \
--tty=true \
--env LOCAL_USER_ID=`id -u ${USER}` \
--env MODELS_ROOT=/home/docker/models \
--env DISPLAY=unix$$DISPLAY \
--env TERM=xterm-256color \
--env QT_X11_NO_MITSHM=1 \
--privileged \
--volume /tmp/.X11-unix:/tmp/.X11-unix:ro \
--volume=$$(pwd):/home/docker/workspace \
--volume /dev:/dev \
--net=host \
$(DOCKER_IMAGE_NCSDK):$(DOCKER_IMAGE_VER_NCSDK) /bin/bash
docker-jupyter:
docker run --runtime=nvidia \
--rm \
--interactive \
--publish 8888:8888 \
--volume=$$(pwd):/notebooks/workdir \
--entrypoint /notebooks/workdir/entrypoint.sh \
--name tensorflow-jupyter-notebooks \
tensorflow/tensorflow:nightly-gpu
jupyter: venv
./venv/bin/jupyter notebook
docker-stop:
docker stop tensorflow-jupyter-notebooks
venv: venv/bin/activate
venv/bin/activate: requirements_cpu.txt
test -d venv || virtualenv -p python$(PYTHON_VERSION) venv
. venv/bin/activate; pip install -Ur requirements_cpu.txt
touch venv/bin/activate
clean:
rm -rf env/
@for dir in $(SUBDIRS); do \
$(MAKE) -C $$dir clean; \
done
### Will force clean download cache & build directory
clean-all: clean