Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
648 commits
Select commit Hold shift + click to select a range
141e8b2
Attempt to update travis DOCKER_PASS
willcrichton Nov 25, 2017
7ca0c60
Attempt to fix login/push on branch updates
willcrichton Nov 25, 2017
a3135d4
Fix docker rmi not removing tagged imaged
fpoms Nov 25, 2017
cde8dea
Fixes #89
fpoms Nov 25, 2017
92888e8
Fixes #88
fpoms Nov 25, 2017
b5dc23a
Do not publish build if branch is not master
fpoms Nov 25, 2017
f6b3f60
Use exit instead of return
fpoms Nov 26, 2017
3cacff4
Shutdown server when process receives SIGINT, fixes #78
fpoms Nov 26, 2017
fb851e5
Support batched input for python kernel
qianl15 Nov 21, 2017
6d8f69d
add s3 support
qianl15 Nov 20, 2017
33eeea4
Support incomplete jobs/tables, fixes #72
fpoms Nov 26, 2017
c232b69
WIP new README
fpoms Nov 26, 2017
273ebf7
WIP new README
fpoms Nov 26, 2017
0b48cb9
Update README, change face pipeline to new NN app style
fpoms Nov 26, 2017
8382bb3
Update face detect doc
fpoms Nov 26, 2017
b3f3143
Use absolute python imports (for py3), add basic sphinx docs
fpoms Nov 27, 2017
480a347
Fix tests not passing due to unicode strings
fpoms Nov 27, 2017
fed2370
Add OpenPose Op, closes #97
fpoms Nov 27, 2017
6c8fd7a
Add facenet CPU support
fpoms Nov 28, 2017
f96ca7f
Fix db new_table for new commit table
fpoms Nov 28, 2017
4278dd6
Fix issue with stenciled kernels
fpoms Nov 28, 2017
3667047
Reorganize examples directory
fpoms Nov 28, 2017
c5783d3
Update README to match new example structure
fpoms Nov 28, 2017
e47fcf6
Build facenet kernel always
fpoms Nov 28, 2017
af7c2be
Fix saved io packets being overwritten
fpoms Nov 29, 2017
049b673
Update apps based on new dir structure
fpoms Nov 29, 2017
c5901c0
Build docker from new base images
fpoms Nov 29, 2017
c0addd5
Use most recent docker on travis
fpoms Nov 29, 2017
a9c8188
Assume Caffe uses all CPUs
fpoms Nov 29, 2017
b16f613
Support different devices for input/output cols, py kernel config
fpoms Nov 29, 2017
2be9892
Fix broken links in README
fpoms Nov 30, 2017
956c1e0
Support new GRPC version (1.7.2)
fpoms Nov 30, 2017
dd1a566
Fix error in shot detection example
fpoms Nov 30, 2017
65e9ac5
Fix scanner not shutting down when receiving SIGINT
fpoms Nov 30, 2017
4957893
Fix missing ascii conversion
willcrichton Dec 10, 2017
b3b03f3
Working deps script
fpoms Dec 18, 2017
3032266
Export env variables in deps.sh, add missing resource files
fpoms Dec 18, 2017
13f9adb
Add cmake find for GRPC, add swscale to ffmpeg cmake
fpoms Dec 18, 2017
f687e6a
GRPC libraries were in wrong order
fpoms Dec 18, 2017
9588b79
Typo
fpoms Dec 18, 2017
eee2709
Merge scanner-docker dockerfiles, update docker to work with deps.sh
fpoms Dec 18, 2017
0caab05
Update docker files to build properly
fpoms Dec 19, 2017
d45a3cf
Update travis build to new dockerfile location
fpoms Dec 19, 2017
69d1e61
Dockerfile should be specified on build, not run cmd
fpoms Dec 19, 2017
a83e5df
Dependencies are already built in base image
fpoms Dec 19, 2017
169cdf5
Do not include openface op in dockerfile for now
fpoms Dec 19, 2017
a76bc3a
Fix not finding halide dir
fpoms Dec 19, 2017
725288c
Caffe should be installed by default
fpoms Dec 19, 2017
7ef520e
Fix TinyToml and Storehouse not being found
fpoms Dec 19, 2017
b699800
Typo
fpoms Dec 19, 2017
d59f8d0
Don't use root logger
willcrichton Dec 19, 2017
b1e2045
Multicore boost build
willcrichton Dec 19, 2017
d146aff
Fix grpc not using proper include flags
fpoms Dec 19, 2017
5c94963
Typo
fpoms Dec 19, 2017
48af7bd
Fix Caffe build in deps.sh
willcrichton Dec 19, 2017
05888ac
Fix grpc install
willcrichton Dec 20, 2017
59a3797
storehousepy -> storehouse
willcrichton Dec 20, 2017
584c7f2
Make docker build context the scanner root
fpoms Dec 19, 2017
1809a6f
Include nvcuvid in docker
fpoms Dec 20, 2017
42e248e
Updated INSTALL instructions, proper python package for scanner
fpoms Dec 21, 2017
6833076
Update Docker to build and install python package
fpoms Dec 21, 2017
1a03316
Attempt to fix docker build
fpoms Dec 21, 2017
3375e06
Build wheel
fpoms Dec 21, 2017
dc99c73
Do not need to add scanner to python path
fpoms Dec 21, 2017
d01faf9
stdlib is in scanner, not scannerpy package
fpoms Dec 21, 2017
f23e337
Add header and cmake to pip package, add cuda stubs to library path
fpoms Dec 22, 2017
b0fbc05
Remove extraneous ln
fpoms Dec 22, 2017
5f598a5
Typo
fpoms Dec 22, 2017
e6fba17
Add print functions to build_flags
willcrichton Dec 22, 2017
b03574b
Include generated C++ protobuf headers
fpoms Dec 22, 2017
172281b
Fix storehouse + boost build
willcrichton Dec 22, 2017
520b80e
Link stdlib against scanner
fpoms Dec 22, 2017
032f8d5
Remove broken code
fpoms Dec 22, 2017
e8f9fed
Add inplace ingest support. Closes #28
fpoms Dec 23, 2017
625803f
Need to add cuda stubs to library path before building scanner
fpoms Dec 25, 2017
4a7b460
Update hwang to fix multi-gpu decode issue
fpoms Dec 27, 2017
b9f1a74
Fix multi-gpu hwang issue (same as previous commit)
fpoms Dec 27, 2017
f6c65b0
Cache caffe install
fpoms Dec 27, 2017
8969c91
Add new build script
willcrichton Dec 27, 2017
c3e95ac
Fix cuda link and custom op link
willcrichton Dec 27, 2017
6c899f2
Port changes from openpose-scanner
willcrichton Dec 27, 2017
5b2e7c8
Bump storehouse version
willcrichton Dec 27, 2017
62fff16
Fix custom op build
willcrichton Dec 27, 2017
914fc53
Add openpose to build
willcrichton Dec 28, 2017
f434995
Fix docker resources not being committed
willcrichton Dec 28, 2017
66dce54
Add thirdparty files
willcrichton Dec 28, 2017
a3e146d
Add table list/get/delete to rpc methods, make python use them
fpoms Dec 28, 2017
0c27342
ascii for boost python api
fpoms Dec 28, 2017
b75c595
Typo
fpoms Dec 28, 2017
3f0f706
Write db metadata after delete tables
fpoms Dec 28, 2017
3b60874
Also prefetch uncommitted tables
fpoms Dec 28, 2017
87637d8
Add exp backoff for checking if db exists
fpoms Dec 28, 2017
429985f
Ignore nodes that can't be ssh'ed into during cluster start
fpoms Dec 28, 2017
95faeef
Check # of worker conns, not addresses
fpoms Dec 28, 2017
e91f76c
Missing extra changes
fpoms Dec 28, 2017
6db0613
Parallelize table metadata write
fpoms Dec 28, 2017
afba708
Write table metadata in parallel
fpoms Dec 28, 2017
e0f3ba1
Typo
fpoms Dec 28, 2017
59a8c67
Using wrong id
fpoms Dec 28, 2017
7d016ab
Use smaller worker pool
fpoms Dec 28, 2017
9e4a97a
Typo
fpoms Dec 28, 2017
b949bb8
Initial changes to base image size
willcrichton Dec 28, 2017
45c49d9
Remove collections from python api
willcrichton Dec 28, 2017
e3d933f
Typo
fpoms Dec 28, 2017
296cb13
Add ID to summarize
fpoms Dec 29, 2017
2d9871b
Improved base image build
willcrichton Dec 29, 2017
b2c7e00
Add install none option for docker build
willcrichton Dec 29, 2017
b1d522b
Improve face detect pipeline
willcrichton Dec 29, 2017
9998e1a
Remove collections test
willcrichton Dec 29, 2017
3dcb00a
More stable failure procedure
fpoms Dec 29, 2017
93b9bc3
Do no route outputs
fpoms Dec 29, 2017
a7a10fa
Changed db metadata prefetch to use thread pool
willcrichton Dec 29, 2017
0d2ab55
Chunk up reading of table info
fpoms Dec 29, 2017
d019982
Fix not chunking properly
fpoms Dec 29, 2017
0cc6fe3
Add option to prefetch table metadata
willcrichton Dec 29, 2017
18de7a7
Python client also uses prefetch flag
willcrichton Dec 29, 2017
27f509d
Make workers wait for all work to be finished
fpoms Dec 29, 2017
1b4eb24
Move progress bar to Python side
willcrichton Dec 30, 2017
2dc87ad
Fix getting wrong job total
willcrichton Dec 30, 2017
e3af05c
Fix worker not shutting down properly if fail to connect to master
willcrichton Dec 30, 2017
337c90e
Start watchdog after checking master
willcrichton Dec 30, 2017
2843531
Fix total tasks pbar race condition, add more info to pbar
fpoms Dec 30, 2017
8420bbd
Fix typo
fpoms Dec 30, 2017
e6817d2
Fix worker failed message
fpoms Dec 30, 2017
7e316cb
Print time of failure for progress bar
fpoms Dec 30, 2017
e2f2949
Prefetch metadata in workers to accelerate startup
fpoms Dec 30, 2017
f62b0dd
Make adding failed workers initiated by processing loop
fpoms Dec 30, 2017
e5ea75c
Move job waiting into standalone function
willcrichton Dec 31, 2017
7477e66
Add prefetch option to worker
willcrichton Dec 31, 2017
c26da0a
Allow longer timeout on tests
willcrichton Dec 31, 2017
ed0ab78
travis_wait doesn't exist?
willcrichton Dec 31, 2017
01a1285
Avoid travis timeout
fpoms Dec 31, 2017
78276c2
Add exponential backoff for master grpc calls, warn instead of fail
fpoms Jan 1, 2018
209fc33
Fix reusing grpc client context
fpoms Jan 1, 2018
911c6e8
Fix debug path failing
fpoms Jan 1, 2018
5e5f2af
Add GRPC_BACKOFF to worker calls
fpoms Jan 1, 2018
a735de4
Add job matrix for travis so that each job can run longer
fpoms Jan 1, 2018
8d741cb
Change GRPC_BACKOFF to warn instead of fail after max backoff
fpoms Jan 1, 2018
d0b057b
Only prefetch necessary tables in worker
willcrichton Jan 1, 2018
3124cf1
Add method for accessing keyframe indices from video columns
fpoms Jan 1, 2018
1672401
Provide explanation for errors in db debug mode
fpoms Jan 1, 2018
18c19fa
Move new table from database to master. Fixes #119
willcrichton Jan 1, 2018
ed2dec7
Bump storehouse version
willcrichton Jan 2, 2018
a1a7ab8
Use so_paths as op cache
willcrichton Jan 2, 2018
ddd237f
Add support for blacklisting bad jobs
fpoms Jan 2, 2018
fcebe29
Improve metadata read times
willcrichton Jan 2, 2018
70d39ea
Add minimum read size
willcrichton Jan 2, 2018
66202a4
Attempt to fix travis
fpoms Jan 2, 2018
b7f27ad
Add debug statement for pipeline instances
fpoms Jan 2, 2018
c509f51
Attempt to fix travis
fpoms Jan 2, 2018
587341d
Small fixes to partitioner
fpoms Jan 2, 2018
e26f16b
Bump storehouse version
fpoms Jan 2, 2018
dc026db
Eagerly commit tables
willcrichton Jan 2, 2018
0a33174
Add task timeout to stop workers that don't finish tasks
fpoms Jan 3, 2018
58867f2
Remove python logging
willcrichton Jan 3, 2018
1f97b5b
Temporarily comment unused commit checks
willcrichton Jan 4, 2018
16b5adc
GetTables fetches video descriptors as well
willcrichton Jan 4, 2018
43b4590
Change table metadata to megafile, instead of individual files
fpoms Jan 5, 2018
3c730e5
Update storehouse commit to work with new megafile update
fpoms Jan 5, 2018
a315aa6
Fix a storehouse issue
fpoms Jan 5, 2018
f4cf5ee
Temporarily removed database write on startup
willcrichton Jan 5, 2018
6bb7a62
Bump storehouse version
willcrichton Jan 5, 2018
938c7d0
Move video metadata bulk fetch into standalone routine
willcrichton Jan 5, 2018
65593a6
Add reset and bounded state for python ops/kernels
willcrichton Jan 5, 2018
fd092f4
Take GIL in reset
willcrichton Jan 5, 2018
58e5f03
Improve logging
willcrichton Jan 5, 2018
43be76a
More useful exception on missing descriptor
willcrichton Jan 5, 2018
145d168
Fix table using old metadata
willcrichton Jan 5, 2018
00aaf7c
Use block allocations when loading Other type columns, better eval pr…
willcrichton Jan 6, 2018
8696fc9
Use block allocation in Python as well
willcrichton Jan 6, 2018
c8435a3
Accelerate stencil cache lookups
willcrichton Jan 6, 2018
c1021c6
Spawn multiple workers in one call to create_worker
willcrichton Jan 6, 2018
bf985f0
process_per_core -> num_workers
willcrichton Jan 6, 2018
965a5d0
Improved logging
willcrichton Jan 7, 2018
ef7fc58
table name -> id lookup from O(n) to O(1)
willcrichton Jan 7, 2018
061481a
Remove backoff from op/kernel registration
willcrichton Jan 7, 2018
7e36e5e
Remove grpc backoff in a few more places
willcrichton Jan 7, 2018
580120d
Revert "Remove grpc backoff in a few more places"
willcrichton Jan 7, 2018
2be00f7
Revert "Remove backoff from op/kernel registration"
willcrichton Jan 7, 2018
c7ab505
Add backoff to file save in SaveWorker
willcrichton Jan 7, 2018
397a79a
Fix test
willcrichton Jan 7, 2018
0a04685
Fix tests again
willcrichton Jan 7, 2018
1053fc0
One more test fix
willcrichton Jan 7, 2018
643e345
Actually fixed test
willcrichton Jan 7, 2018
64a66ff
map -> unordered_map in a few places
willcrichton Jan 8, 2018
3d8e4b9
Workers send job result back on FinishedJob
willcrichton Jan 8, 2018
28f4d2a
Cleanup Python kernel lib
willcrichton Jan 8, 2018
da1cda3
Increase packet size
willcrichton Dec 29, 2017
d5f3519
Fix max message size + fix CPU build
willcrichton Jan 9, 2018
3ca0271
Workers receive database metadata from master (fixes worker startup d…
willcrichton Jan 9, 2018
189531a
Parallelize worker communication for op/kernel registratoin
willcrichton Jan 9, 2018
1b7fffc
Fix worker not handling large GRPC messages
willcrichton Jan 9, 2018
60c654d
Fix grpc backoff not timing out properly
willcrichton Jan 9, 2018
b2ac8ad
Remove grpc backoff on registration for now
willcrichton Jan 9, 2018
f330274
Typos
willcrichton Jan 9, 2018
a45a20f
Change checkpoint metric
willcrichton Jan 10, 2018
be4e4d3
Make checkpoint frequency an explicit job parameter
willcrichton Jan 10, 2018
d9e213c
Increase megafile write/read batch size
fpoms Jan 10, 2018
42eb2b0
Add log messages for pinging
fpoms Jan 10, 2018
ebb8e30
Add log messages for PokeWatchdog
fpoms Jan 11, 2018
782b612
Add timeouts for ping and poke
fpoms Jan 11, 2018
e3fa536
Typo
fpoms Jan 11, 2018
84e800c
Add timeout for loading ops
fpoms Jan 11, 2018
6e46455
Add lock when calling remove_worker in ping
fpoms Jan 11, 2018
298e0b9
Set timeout on loading ops
fpoms Jan 11, 2018
a3b13b2
Add const variables for timeouts
fpoms Jan 11, 2018
8664a37
Clear blacklisted jobs set on new job
fpoms Jan 11, 2018
2e21b61
Handle worker NewJob errors
fpoms Jan 12, 2018
e398906
Set tasks used to 0 to ensure progress bar starts at 0
fpoms Jan 12, 2018
bde127d
Fix not checking if video data intervals are adjacent (for inplace)
fpoms Jan 12, 2018
b1a3dfa
Update hwang to fix gpu decode issue
fpoms Jan 13, 2018
ecf6827
Further increase batch size read
fpoms Jan 13, 2018
f482af6
Update hwang to fix decode bug
fpoms Jan 13, 2018
75efba4
Add more pipeline prints
fpoms Jan 13, 2018
dc55fe1
Share table cache with load workers
fpoms Jan 13, 2018
ceefa55
Fix inplace decode not working after changes
fpoms Jan 13, 2018
8b1c6d9
Improve keyframe only decode performance
fpoms Jan 14, 2018
7c7e2fb
Get rid of potential memory leak in post-evaluate worker
fpoms Jan 14, 2018
6c0ca4a
Fix not creating frame size for raw video column
fpoms Jan 14, 2018
9d63ae0
Ensure master does not hang if workers fail after job finishes
fpoms Jan 14, 2018
d5a6be5
Assert should allow packets equal in size to buffer
fpoms Jan 15, 2018
a118ec6
Roll back enabling skip_frames since it can cause hangs
fpoms Jan 15, 2018
ea04247
Roll back keyframe slicing for sparsity and roll back roll back
fpoms Jan 15, 2018
cd524fa
Use stop cluster command to shutdown master
fpoms Jan 16, 2018
8d10bcf
Fix io packet multiple issue for pipelines
willcrichton Jan 16, 2018
be49822
Optimize sparse loading via Python API
willcrichton Jan 16, 2018
880305f
Add last row hacky optimization
willcrichton Jan 16, 2018
4039d5c
Update hwang to fix gpu decode issue
fpoms Jan 18, 2018
08bd255
Autoscheduler for CPU
willcrichton Jan 19, 2018
165ffb2
Fix bug causing decoder to output empty frames
fpoms Jan 21, 2018
946f827
Fix switched arguments in range sampler
fpoms Jan 21, 2018
9fc956a
Remove unused functionality
fpoms Jan 26, 2018
386d4bc
Remove user_function from cmake
fpoms Jan 26, 2018
197f26c
First (buggy) version of streaming support
swjz Jan 31, 2018
e3eec7d
Fixed some compile-time errors
swjz Feb 2, 2018
b9f935b
Added dummy table to support streaming mode
swjz Feb 2, 2018
397ea8a
Fix bugs in implementing dummy table
swjz Feb 2, 2018
0d3846d
Use alternative way to implement dummy table
swjz Feb 2, 2018
37777b7
Finished switching between C++ master and python master
swjz Feb 3, 2018
06f5e19
Override a lot of stuff and add checkpoints for debugging
swjz Feb 5, 2018
321cfc7
Fix many bugs and remove many special cases for streaming mode
swjz Feb 6, 2018
6f16e2f
Updated test case for streaming mode
swjz Feb 7, 2018
9437999
A seemingly working version of streaming mode
swjz Feb 7, 2018
99c65c5
Removed special treatment of last_in_io_packet for streaming mode
swjz Feb 7, 2018
62febc3
Removed special treatment of last_in_task for streaming mode
swjz Feb 7, 2018
6357f5b
Shutdown worker when finished
swjz Feb 7, 2018
d087573
Revert unnecessary changes and clean code
swjz Feb 8, 2018
6d4c82f
Use try_pop() instead of pop() to prevent deadlock
swjz Feb 8, 2018
2544e47
Fix '\0' truncating and remove unnecessary locks
swjz Feb 8, 2018
f72349f
Update test case for streaming mode
swjz Feb 8, 2018
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -811,7 +811,7 @@ RECURSIVE = YES
# Note that relative paths are relative to the directory from which doxygen is
# run.

EXCLUDE = ./scanner/main.cpp
EXCLUDE = ./scanner/main.cpp ./python/scannerpy/build

# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
# directories that are symbolic links (a Unix file system feature) are excluded
Expand All @@ -838,7 +838,7 @@ EXCLUDE_PATTERNS =
# Note that the wildcards are matched against the file with absolute path, so to
# exclude all test directories use the pattern */test/*

EXCLUDE_SYMBOLS =
EXCLUDE_SYMBOLS = scanner::internal

# The EXAMPLE_PATH tag can be used to specify one or more files or directories
# that contain example code fragments that are included (see the \include
Expand Down
4 changes: 2 additions & 2 deletions .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ BreakStringLiterals: true
ColumnLimit: 80
CommentPragmas: '^ IWYU pragma:'
ConstructorInitializerAllOnOneLineOrOnePerLine: true
ConstructorInitializerIndentWidth: 4
ConstructorInitializerIndentWidth: 2
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DerivePointerAlignment: false
Expand Down Expand Up @@ -89,6 +89,6 @@ SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard: Auto
TabWidth: 8
TabWidth: 2
UseTab: Never
...
1 change: 1 addition & 0 deletions .gdbinit
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
handle SIG40 nostop noprint
9 changes: 7 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,20 @@
# similar but **not quite** the same. If you add a file here, make sure that
# the Docker build still works.

dependencies.txt
nvidia-docker-compose.yml
.cache
build
**/*.pyc
**/*.trace
thirdparty
!thidparty/resources
!thirdparty/CMakeLists.txt
!docker/**/thirdparty
python/*.egg-info

docker/**/deps.sh
**/*.mp4
**/*.mkv

python/scannerpy/include
python/scannerpy/include
dist
4 changes: 3 additions & 1 deletion .scanner.example.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,6 @@ scanner_path = "/opt/scanner"
# bucket = "gcs-bucket"

[network]
master = "localhost:5001"
master = "localhost"
master_port = "5001"
worker_port = "5002"
16 changes: 13 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,27 @@ language: cpp
services:
- docker

addons:
apt:
packages:
- docker-ce

env:
global:
- DOCKER_REPO=scannerresearch/scanner
- [email protected]
- DOCKER_USER=wcrichto
- secure: "Jf7f8UvpJ8yRA/2nnxaRb9jGrzWZvbRVRxzQtmcx+ltBpflmLFbXB6o4sySGETn5YrJe1g4VNWvkFBZIdLY0n+v4AQ/D1eMWtJT+kZLHihVGcxB3G7SUSOyEUaN1DzdHbaRW4VCSXQJWgK48amxlwnNfXtbNkSpiqIifDURBeHK1UT9+w1FKuTDZmEXv+ubDKjXvv1DuPdTtnolItDfrdtKLh5iXgTRvgXFanmNvydIcHqfz+72qJZJRCdTwUrA8FPq7jKNndftX9y2/dKuA/Xd/cP818iR57Z2PJXeR1c6ZmQ0RBTIZ8pdwG6bfix+48a5+aWlPJ3friA0G2b8psdZ/rQMxBbEClTI+BfnuJnYaIW8JREqmOBACBL7/4eo/Jifv1+vl+VhWHSicS6mWg2khCNAMPWj3cIA/bZrRlTmNlC06GkUgnHar/HhovGrowbZCGOxN0CNWWcuCGeLYfvPgPiI4JRU8eq0VqVhhqXZyPuS/RT1FoqZ4mMfNZG+RSIKHU56g5M4elakp/bZdu9lRoS4hr9VFpvPaLorOTOXPa3J+JxmB9OIP+NLxMIGjUhYnSYfTJ9/+Opxg2lWUOdqXzPZsyPyI+4RuIyyPh1w6jN/xD3EqQC55u5JlFlJ1WuNoyhx16QcKu1Eytxd2JxU6LutMw9WgQET53Q3EOVk=" # DOCKER_PASS
- secure: "DAwB02uem8/aIRNfHPknzqZCCmwDlJoQq6r3qE1CyUqkM9VMu6mQa/RBYMBwp3Upny6oI6yBlYJqqVr1rjZzI4by0j0IVhuhQPp2G5DJ/mVZ5PQSJ0bxJtCzm29hHo8hi+EgIk7r7YTcHOr3SRmplf0vM0WFuJplW5fJ6J/RbJSPPpnlTOIgp0Ry9B4eowLhi4b//TbwmtzEX6j4yKxWnDTJ6cV9xRVN1FoNd15PvpiBkOZ3dVGWtdUZm9K3Q3IumeyuemAoTSuKU3r3aqMSamdLf7pmYjpzTrYDT9CMbbEVjzr8M3Y5wFyjQsIdFKzYM/0jRBlUbKaLMhz7a/9vlkplBI954ufOqHiGAx3Cdk4jfkJ3hyucCQqYuQwHxWMmru3lV6jIZf+rYn6UBomHeNN1AIiikZ1EjvNDwY8iwGZPJbcZ42gn2mTaUVxsmwMD757AalTOzZo94+pdFJDjWY6y6kPQlZbdj8AT14bBHf8x8zF8EsZrh/WQMcRgzEU3BcjDE3RIqNgK38Sv1OzqNVTYy57PXbEMKMqfpAQx8FTcx/7NXBRrStrQ24pRZJA+wvkUefpyWZnayyMPvttzB4106GCOWAjSdJEyYQTnZMrXMRX4Qf+NHx6KHlQcExxpww/hSvewsh0JRrvMol5HKXJaZqnF6ZTqxeQdLUDdn3g=" # DOCKER_PASS
- secure: "mJDNPmfRd3cyFNIhRg6TQo8ow5hOS+FC+DX6MLpM6Giv2nL1KkJD0fgnLqgiZeEKDOFHvGpGswGjYTAzNWYeocsneby88w58sNbueUE6PT74UqsbzrmvMhKh2xtEERkJFz5gKvdwc9a4nAvH5ejJW7OZ5OvSscR2vRBl4tUwTuA3czWbod6NwBC/sUrf0jTZhNgZWWWT1j2SLt379Q52Xmd5+ixAaSibctf8hCEMzE/lNsWprR1gO7H89eyLVRQc8VQh8msVtgo7QD/aapr+w96GDWWUAm6z5iNe8gLGZB9v4BtTm82XOV0iefNDfT0fwIhHrM6vqIdiiuMeYMteErT3rF55h0o8hJrP57lwT5u7hU/yxUhNTvtCdJTo8THJihXHbOT7LjxaF20SlJzjARSGZq9mYHeBgv9sGej2jF80iSn+xTAbalVFbc4hKumELnn/D7mGWRTjsGGTbTqNXvTQvxm/QjXmNusav5vKeRFwjbPGfb0iDSfhlZ7BHkR50OyskZ/R/69WjIFS9gBE2pvp4FlVpndKWkkkd4TVSgmnKCXxnQdeNS8We8NodvTBlTcvHFub8j2izKTZRU7FBXRgo9d+Gu+43nSRvjJUgwg/6D6Bou6boVHJo8ib9xzakVjojbJxehatj+dadpuVkG3tjULejPNg/qnjlJc10Pg=" # PYPI_PASS
matrix:
- BUILD_TYPE=cpu
- BUILD_TYPE=gpu

install:
- sudo apt-get install -y doxygen graphviz python-pip
- pip install doxypypy twine
- sudo apt-get update
- sudo apt-get install -y doxygen graphviz
- sudo pip install requests[security] --upgrade
- sudo pip install doxypypy twine Sphinx

script: ./scripts/travis-build.sh

Expand Down
99 changes: 2 additions & 97 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,6 @@ project(Scanner)
###### Config options #####
option(BUILD_CUDA "" ON)
option(BUILD_TESTS "" ON)
option(BUILD_SERVER "" OFF)
option(BUILD_EXAMPLES "" ON)
option(ENABLE_PROFILING "" OFF)

if (BUILD_TESTS)
Expand Down Expand Up @@ -66,97 +64,7 @@ if (ENABLE_PROFILING)
add_definitions(-DSCANNER_PROFILING)
endif()

###### Optional Dependencies #######
if (BUILD_CUDA)
find_package(CUDA REQUIRED)
add_definitions(-DHAVE_CUDA)
include_directories(${CUDA_INCLUDE_DIRS})
if(COMPILER_SUPPORTS_CXX1Y)
set(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS} -std=c++11")
endif()
endif()

if (BUILD_CUDA)
add_library(scanner_halide scanner/engine/halide_context.cpp)
endif()

###### Required Dependencies #######
find_package(SaneProtobuf REQUIRED)
find_package(FFmpeg REQUIRED)
find_package(LibLZMA REQUIRED)
find_package(OpenSSL REQUIRED)
find_package(BZip2 REQUIRED)
find_package(Boost COMPONENTS thread program_options regex python REQUIRED)
find_package(GFlags REQUIRED)
find_package(Glog REQUIRED)
find_package(GoogleTest REQUIRED)
find_package(CURL REQUIRED)
find_package(Iconv REQUIRED)
find_package(Storehouse REQUIRED CONFIG
PATHS "thirdparty/build/bin/storehouse")
find_package(TinyToml REQUIRED)
find_package(PythonLibs 2.7 EXACT REQUIRED)

set(GTEST_INCLUDE_DIRS
"${THIRDPARTY_OUTPUT_PATH}/googletest/include")
set(GTEST_LIBRARIES
"${THIRDPARTY_OUTPUT_PATH}/googletest/lib/libgtest.a")
set(GTEST_LIB_MAIN
"${THIRDPARTY_OUTPUT_PATH}/googletest/lib/libgtest_main.a")

set(SCANNER_LIBRARIES
"${PROTOBUF_LIBRARY}"
"${STOREHOUSE_LIBRARIES}"
"${FFMPEG_LIBRARIES}"
"-L/opt/ffmpeg-3.2.2/lib"
"-lswscale"
"${LIBLZMA_LIBRARIES}"
"${OPENSSL_LIBRARIES}"
"${BZIP2_LIBRARIES}"
"${PROXYGEN_LIBRARIES}"
"${FOLLY_LIBRARIES}"
"${Boost_LIBRARIES}"
"${GFLAGS_LIBRARIES}"
"${GLOG_LIBRARIES}"
"${CURL_LIBRARIES}"
"${ICONV_LIBRARIES}"
"${SCANNER_LIBRARIES}"
"${PYTHON_LIBRARIES}"
"-ljpeg"
"-lz"
"-ldl"
"-lgrpc++_unsecure -lgrpc -lgpr")

include_directories(
"."
"${CMAKE_CURRENT_BINARY_DIR}" # for protobuf generated files
"${PROTOBUF_INCLUDE_DIRS}"
"${FFMPEG_INCLUDE_DIR}"
"${TINYTOML_INCLUDE_DIR}"
"${STOREHOUSE_INCLUDE_DIRS}"
"${OPENSSL_INCLUDE_DIR}"
"${Boost_INCLUDE_DIRS}"
"${GLOG_INCLUDE_DIRS}"
"${LIBLZMA_INCLUDE_DIRS}"
"${PYTHON_INCLUDE_DIRS}")

if (BUILD_TESTS)
include_directories("${GTEST_INCLUDE_DIRS}")
endif()

if (BUILD_CUDA)
list(APPEND SCANNER_LIBRARIES
util_cuda
"${CUDA_LIBRARIES}"
"/usr/lib/x86_64-linux-gnu/libnvcuvid.so"
"-lcuda")
endif()

if (APPLE)
include_directories(
"/System/Library/Frameworks/Accelerate.framework/Versions/Current/Frameworks/vecLib.framework/Versions/Current/Headers/")
elseif()
endif()
include(cmake/Dependencies.cmake)

###### Project code #######
set(PROTO_FILES
Expand Down Expand Up @@ -200,6 +108,7 @@ add_library(scanner SHARED
$<TARGET_OBJECTS:engine>
$<TARGET_OBJECTS:video>
$<TARGET_OBJECTS:util>
scanner/util/halide_context.cpp
${PROTO_SRCS}
${GRPC_PROTO_SRCS}
${STRUCK_SOURCES}
Expand Down Expand Up @@ -236,10 +145,6 @@ endforeach()

add_subdirectory(stdlib)

if (BUILD_EXAMPLES)
add_subdirectory(examples)
endif()

if (BUILD_TESTS)
add_subdirectory(tests)
endif()
20 changes: 0 additions & 20 deletions Dockerfile

This file was deleted.

118 changes: 118 additions & 0 deletions INSTALL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
# Building Scanner

*NOTE*: The following build instructions have only been tested on Ubuntu 16.04.

There are five major steps to build and install Scanner:
1 Install apt-get dependencies
2 Install python pip dependencies
3 Run deps.sh to download and install external dependencies
4 Build Scanner
5 Install scannerpy python package

Scanner depends on the following *major* dependencies:

* Python == 2.7
* boost >= 1.63.0
* ffmpeg >= 3.3.1
* opencv >= 3.2.0
* protobuf == 3.4.0
* grpc == 1.7.2
* caffe >= rc5 OR intel-caffe >= 1.0.6

Scanner optionally requires:
* CUDA >= 8.0

Scanner provides a dependency script `deps.sh` to automatically install any or
all of the *major* dependencies if they are not already installed. Each of these
dependencies has a set of required system-level packages. If you need to install
all or most of of these dependencies, run the 'All dependencies' apt-get command
below. If you only need to install a few, we also provide apt-get commands for
each package.

## 1. apt-get Dependencies

All dependencies
```bash
apt-get install \
build-essential \
cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev \
libswscale-dev unzip llvm clang libc++-dev libgflags-dev libgtest-dev \
libssl-dev libcurl3-dev liblzma-dev libeigen3-dev \
libgoogle-glog-dev libatlas-base-dev libsuitesparse-dev libgflags-dev \
libx264-dev libopenjpeg-dev libxvidcore-dev \
libpng-dev libjpeg-dev libbz2-dev git python-pip wget \
libleveldb-dev libsnappy-dev libhdf5-serial-dev liblmdb-dev python-dev \
python-tk autoconf autogen libtool libtbb-dev libopenblas-dev \
liblapacke-dev swig yasm python2.7 cpio \
automake libass-dev libfreetype6-dev libsdl2-dev libtheora-dev libtool \
libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev \
libxcb-xfixes0-dev mercurial pkg-config texinfo wget zlib1g-dev \
curl unzip
```

For gRPC
```bash
apt-get install \
build-essential autoconf automake libtool curl make g++ \
unzip clang libc++-dev libgflags-dev libgtest-dev unzip
```

For OpenCV
```bash
apt-get install \
build-essential cmake git libgtk2.0-dev pkg-config \
python-dev libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev \
libjasper-dev libdc1394-22-dev
```

For FFMPEG
```bash
apt-get -y install \
build-essential autoconf automake build-essential cmake git libass-dev \
libfreetype6-dev \ libsdl2-dev libtheora-dev libtool libva-dev libvdpau-dev \
libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev mercurial \
pkg-config texinfo wget zlib1g-dev
```

## 2. Python Pip Dependencies

Scanner depends on several python packages installable via pip. From the
top-level directory, run:

```bash
pip install -r requirements.txt
```

## 3. Run deps.sh

To install or specify where your *major* dependencies are, from the top-level
directory run:

```bash
bash ./deps.sh
```

This script will query you for each major
dependency and install those that are not already installed. By default,
it will install the dependencies to a local directory inside the scanner repo
(it will not install system-wide).

## 4. Build Scanner

Run the following commands from the top-level directory:
```bash
mkdir build
cd build
cmake ..
make -j
```

## 5. Install scannerpy python package

Run the following commands from the top-level directory:
```bash
python python/setup.py bdist_wheel
pip install dist/scannerpy-0.1.13-py2-none-any.whl
```

Congratulations! You've installed the scannerpy package.
Loading