SINGA-240 Add license for singa source Update license.
Project: http://git-wip-us.apache.org/repos/asf/incubator-singa/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-singa/commit/1c5ca229 Tree: http://git-wip-us.apache.org/repos/asf/incubator-singa/tree/1c5ca229 Diff: http://git-wip-us.apache.org/repos/asf/incubator-singa/diff/1c5ca229 Branch: refs/heads/master Commit: 1c5ca2299f299babf1376664ad1b76e694964243 Parents: b3566e4 Author: xiezl <[email protected]> Authored: Wed Aug 17 13:15:34 2016 +0800 Committer: Wei Wang <[email protected]> Committed: Thu Aug 18 01:31:36 2016 +0800 ---------------------------------------------------------------------- CMakeLists.txt | 20 + cmake/Cuda.cmake | 20 + cmake/Dependencies.cmake | 20 + cmake/Protobuf.cmake | 5 +- cmake/Templates/singa_config.h.in | 20 + cmake/Thirdparty/FindCBLAS.cmake | 20 + cmake/Thirdparty/FindCUDNN.cmake | 20 + cmake/Thirdparty/FindGlog.cmake | 20 + cmake/Thirdparty/FindLMDB.cmake | 20 + cmake/Utils.cmake | 22 +- examples/CMakeLists.txt | 20 + examples/cifar10/CMakeLists.txt | 20 + examples/cifar10/download_data.py | 20 + examples/cifar10/run-parallel.sh | 20 + examples/cifar10/run.sh | 20 + examples/imagenet/CMakeLists.txt | 20 + examples/imagenet/create_data.sh | 20 + examples/imagenet/run.sh | 20 + examples/index.rst | 20 + include/singa/utils/timer.h | 20 + rat_check | 1174 +++++++------------------------- src/CMakeLists.txt | 22 +- src/python/setup.py.in | 20 + src/python/singa/__init__.py | 21 + test/CMakeLists.txt | 20 + test/gtest/CMakeLists.txt | 21 + test/python/test_layer.py | 20 + test/singa/test_layer.cc | 20 + test/singa/test_tensor.cc | 20 + test/singa/test_tensor_math.cc | 20 + test/singa/test_timer.cc | 20 + 31 files changed, 851 insertions(+), 914 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/1c5ca229/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/CMakeLists.txt b/CMakeLists.txt index 6652cea..5646870 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,3 +1,23 @@ +# +# Copyright 2015 The Apache Software Foundation +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + CMAKE_MINIMUM_REQUIRED(VERSION 2.6) PROJECT(singa) http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/1c5ca229/cmake/Cuda.cmake ---------------------------------------------------------------------- diff --git a/cmake/Cuda.cmake b/cmake/Cuda.cmake index e7af7c9..37d5878 100644 --- a/cmake/Cuda.cmake +++ b/cmake/Cuda.cmake @@ -1,3 +1,23 @@ +# +# Copyright 2015 The Apache Software Foundation +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + FIND_PACKAGE(CUDA 5.5 QUIET) http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/1c5ca229/cmake/Dependencies.cmake ---------------------------------------------------------------------- diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake index c03c81e..62c7d52 100644 --- a/cmake/Dependencies.cmake +++ b/cmake/Dependencies.cmake @@ -1,3 +1,23 @@ +# +# Copyright 2015 The Apache Software Foundation +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + SET(SINGA_LINKER_LIBS "") #INCLUDE("cmake/ProtoBuf.cmake") http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/1c5ca229/cmake/Protobuf.cmake ---------------------------------------------------------------------- diff --git a/cmake/Protobuf.cmake b/cmake/Protobuf.cmake index 9324749..70cf0fe 100644 --- a/cmake/Protobuf.cmake +++ b/cmake/Protobuf.cmake @@ -1,4 +1,7 @@ -# copy from cmake source code +# This script is taken from +# https://github.com/Kitware/CMake/blob/master/Modules/FindProtobuf.cmake +# and modified to our compilation. + function(PROTOBUF_GENERATE_PYTHON OUTPUT) if(NOT ARGN) message(SEND_ERROR "Error: PROTOBUF_GENERATE_PYTHON() called http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/1c5ca229/cmake/Templates/singa_config.h.in ---------------------------------------------------------------------- diff --git a/cmake/Templates/singa_config.h.in b/cmake/Templates/singa_config.h.in index 0211f09..011489c 100644 --- a/cmake/Templates/singa_config.h.in +++ b/cmake/Templates/singa_config.h.in @@ -1,3 +1,23 @@ +/** + * Copyright 2015 The Apache Software Foundation + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. +*/ + // Source directory #define SOURCE_FOLDER "${PROJECT_SOURCE_DIR}" http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/1c5ca229/cmake/Thirdparty/FindCBLAS.cmake ---------------------------------------------------------------------- diff --git a/cmake/Thirdparty/FindCBLAS.cmake b/cmake/Thirdparty/FindCBLAS.cmake index 413d1c1..6e9ce5f 100644 --- a/cmake/Thirdparty/FindCBLAS.cmake +++ b/cmake/Thirdparty/FindCBLAS.cmake @@ -1,3 +1,23 @@ +# +# Copyright 2015 The Apache Software Foundation +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + FIND_PATH(CBLAS_INCLUDE_DIR NAMES cblas.h PATHS "$ENV{CBLAS_DIR}/include") FIND_LIBRARY(CBLAS_LIBRARIES NAMES openblas PATHS "$ENV{CBLAS_DIR}/lib") http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/1c5ca229/cmake/Thirdparty/FindCUDNN.cmake ---------------------------------------------------------------------- diff --git a/cmake/Thirdparty/FindCUDNN.cmake b/cmake/Thirdparty/FindCUDNN.cmake index 32b927b..7792f58 100644 --- a/cmake/Thirdparty/FindCUDNN.cmake +++ b/cmake/Thirdparty/FindCUDNN.cmake @@ -1,3 +1,23 @@ +# +# Copyright 2015 The Apache Software Foundation +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + FIND_PATH(CUDNN_INCLUDE_DIR NAME "cudnn.h" PATHS "$ENV{CMAKE_INCLUDE_PATH}") FIND_LIBRARY(CUDNN_LIBRARIES NAME "libcudnn.so" PATHS "$ENV{CMAKE_LIBRARY_PATH}") http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/1c5ca229/cmake/Thirdparty/FindGlog.cmake ---------------------------------------------------------------------- diff --git a/cmake/Thirdparty/FindGlog.cmake b/cmake/Thirdparty/FindGlog.cmake index c0fdf83..c0e857a 100644 --- a/cmake/Thirdparty/FindGlog.cmake +++ b/cmake/Thirdparty/FindGlog.cmake @@ -1,3 +1,23 @@ +# +# Copyright 2015 The Apache Software Foundation +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + FIND_PATH(GLOG_INCLUDE_DIR NAMES glog/logging.h PATHS "$ENV{GLOG_DIR}/include") FIND_LIBRARY(GLOG_LIBRARIES NAMES glog) http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/1c5ca229/cmake/Thirdparty/FindLMDB.cmake ---------------------------------------------------------------------- diff --git a/cmake/Thirdparty/FindLMDB.cmake b/cmake/Thirdparty/FindLMDB.cmake index cf45e00..fbe34fc 100644 --- a/cmake/Thirdparty/FindLMDB.cmake +++ b/cmake/Thirdparty/FindLMDB.cmake @@ -1,3 +1,23 @@ +# +# Copyright 2015 The Apache Software Foundation +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + FIND_PATH(LMDB_INCLUDE_DIR NAMES lmdb.h PATHS "$ENV{LMDB_DIR}/include") FIND_LIBRARY(LMDB_LIBRARIES NAMES lmdb PATHS "$ENV{LMDB_DIR}/include") http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/1c5ca229/cmake/Utils.cmake ---------------------------------------------------------------------- diff --git a/cmake/Utils.cmake b/cmake/Utils.cmake index 73feabc..49494f0 100644 --- a/cmake/Utils.cmake +++ b/cmake/Utils.cmake @@ -1,3 +1,23 @@ +# +# Copyright 2015 The Apache Software Foundation +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + macro(swig_generate_cxx pylist_variable) if(NOT EXISTS "${CMKAE_BINARY_DIR}/python") @@ -49,4 +69,4 @@ function (create_symlinks) endif() endforeach(path_file) -endfunction(create_symlinks) \ No newline at end of file +endfunction(create_symlinks) http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/1c5ca229/examples/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 6014f27..bf27685 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -1,2 +1,22 @@ +# +# Copyright 2015 The Apache Software Foundation +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + ADD_SUBDIRECTORY(cifar10) ADD_SUBDIRECTORY(imagenet) http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/1c5ca229/examples/cifar10/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/examples/cifar10/CMakeLists.txt b/examples/cifar10/CMakeLists.txt index 76c0b73..6814958 100644 --- a/examples/cifar10/CMakeLists.txt +++ b/examples/cifar10/CMakeLists.txt @@ -1,3 +1,23 @@ +# +# Copyright 2015 The Apache Software Foundation +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR}/include) http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/1c5ca229/examples/cifar10/download_data.py ---------------------------------------------------------------------- diff --git a/examples/cifar10/download_data.py b/examples/cifar10/download_data.py index ce0ee4f..8153030 100755 --- a/examples/cifar10/download_data.py +++ b/examples/cifar10/download_data.py @@ -1,4 +1,24 @@ #!/usr/bin/env python +# +# Copyright 2015 The Apache Software Foundation +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + import urllib import tarfile import os http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/1c5ca229/examples/cifar10/run-parallel.sh ---------------------------------------------------------------------- diff --git a/examples/cifar10/run-parallel.sh b/examples/cifar10/run-parallel.sh index 18193db..e4f0221 100755 --- a/examples/cifar10/run-parallel.sh +++ b/examples/cifar10/run-parallel.sh @@ -1,3 +1,23 @@ #!/usr/bin/env sh +# +# Copyright 2015 The Apache Software Foundation +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + ../../build/bin/alexnet-parallel -epoch 4 #../../build/bin/vgg-parallel -epoch 4 http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/1c5ca229/examples/cifar10/run.sh ---------------------------------------------------------------------- diff --git a/examples/cifar10/run.sh b/examples/cifar10/run.sh index c01ec18..a544234 100755 --- a/examples/cifar10/run.sh +++ b/examples/cifar10/run.sh @@ -1,2 +1,22 @@ #!/usr/bin/env sh +# +# Copyright 2015 The Apache Software Foundation +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + ../../build/bin/alexnet -epoch 140 http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/1c5ca229/examples/imagenet/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/examples/imagenet/CMakeLists.txt b/examples/imagenet/CMakeLists.txt index 71fbbb1..9675f4c 100644 --- a/examples/imagenet/CMakeLists.txt +++ b/examples/imagenet/CMakeLists.txt @@ -1,3 +1,23 @@ +# +# Copyright 2015 The Apache Software Foundation +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR}/include) http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/1c5ca229/examples/imagenet/create_data.sh ---------------------------------------------------------------------- diff --git a/examples/imagenet/create_data.sh b/examples/imagenet/create_data.sh index dd3d9b8..6a9eea9 100755 --- a/examples/imagenet/create_data.sh +++ b/examples/imagenet/create_data.sh @@ -1,3 +1,23 @@ #!/usr/bin/env sh +# +# Copyright 2015 The Apache Software Foundation +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + ../../build/bin/createdata -trainlist "imagenet/label/train.txt" -trainfolder "imagenet/ILSVRC2012_img_train" \ -testlist "imagenet/label/val.txt" -testfolder "imagenet/ILSVRC2012_img_val" -outdata "imagenet_data" -filesize 1280 http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/1c5ca229/examples/imagenet/run.sh ---------------------------------------------------------------------- diff --git a/examples/imagenet/run.sh b/examples/imagenet/run.sh index 5c27b5c..aeffba3 100755 --- a/examples/imagenet/run.sh +++ b/examples/imagenet/run.sh @@ -1,3 +1,23 @@ #!/usr/bin/env sh +# +# Copyright 2015 The Apache Software Foundation +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + ../../build/bin/imagenet -epoch 90 -lr 0.01 -batchsize 256 -filesize 1280 -ntrain 1281167 -ntest 50000 \ -data "imagenet_data" -pfreq 100 -nthreads 12 http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/1c5ca229/examples/index.rst ---------------------------------------------------------------------- diff --git a/examples/index.rst b/examples/index.rst index 4bb5b49..8df22fd 100644 --- a/examples/index.rst +++ b/examples/index.rst @@ -1,3 +1,23 @@ +.. +.. Copyright 2015 The Apache Software Foundation +.. +.. Licensed to the Apache Software Foundation (ASF) under one +.. or more contributor license agreements. See the NOTICE file +.. distributed with this work for additional information +.. regarding copyright ownership. The ASF licenses this file +.. to you under the Apache License, Version 2.0 (the +.. "License"); you may not use this file except in compliance +.. with the License. You may obtain a copy of the License at +.. +.. http://www.apache.org/licenses/LICENSE-2.0 +.. +.. Unless required by applicable law or agreed to in writing, software +.. distributed under the License is distributed on an "AS IS" BASIS, +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +.. See the License for the specific language governing permissions and +.. limitations under the License. +.. + Examples ======== http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/1c5ca229/include/singa/utils/timer.h ---------------------------------------------------------------------- diff --git a/include/singa/utils/timer.h b/include/singa/utils/timer.h index 1372d3c..f54bce8 100644 --- a/include/singa/utils/timer.h +++ b/include/singa/utils/timer.h @@ -1,3 +1,23 @@ +/** + * Copyright 2015 The Apache Software Foundation + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + #ifndef SINGA_UTILS_TIMER_H #define SINGA_UTILS_TIMER_H http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/1c5ca229/rat_check ---------------------------------------------------------------------- diff --git a/rat_check b/rat_check index 1fcfd7d..77f0a63 100644 --- a/rat_check +++ b/rat_check @@ -2,19 +2,19 @@ ***************************************************** Summary ------- -Generated at: 2016-08-16T12:50:50+08:00 -Notes: 4 +Generated at: 2016-08-17T13:11:07+08:00 +Notes: 5 Binaries: 0 Archives: 0 -Standards: 282 +Standards: 288 -Apache Licensed: 240 +Apache Licensed: 269 Generated Documents: 0 JavaDocs are generated and so license header is optional Generated files do not required license headers -42 Unknown Licenses +18 Unknown Licenses ******************************* @@ -22,45 +22,21 @@ Unapproved licenses: ./.gitmodules ./.travis.yml - ./CMakeLists.txt ./rat_check - ./cmake/Cuda.cmake - ./cmake/Dependencies.cmake ./cmake/Protobuf.cmake - ./cmake/Utils.cmake - ./cmake/Templates/singa_config.h.in - ./cmake/Thirdparty/FindCBLAS.cmake - ./cmake/Thirdparty/FindCUDNN.cmake - ./cmake/Thirdparty/FindGlog.cmake - ./cmake/Thirdparty/FindLMDB.cmake ./cmake/Thirdparty/FindOpenCL.cmake - ./examples/CMakeLists.txt - ./examples/index.rst - ./examples/cifar10/CMakeLists.txt - ./examples/cifar10/download_data.py - ./examples/cifar10/run-parallel.sh - ./examples/cifar10/run.sh - ./examples/imagenet/CMakeLists.txt - ./examples/imagenet/create_data.sh - ./examples/imagenet/run.sh ./include/singa/utils/cuda_utils.h - ./include/singa/utils/timer.h ./include/singa/utils/tinydir.h - ./src/CMakeLists.txt + ./lib/cnmem/.git + ./lib/cnmem/CMakeLists.txt + ./lib/cnmem/include/cnmem.h + ./lib/cnmem/src/cnmem.cpp + ./lib/cnmem/tests/cnmem_tests.cpp ./src/core/tensor/distribution.cl - ./src/python/setup.py.in - ./src/python/singa/__init__.py ./src/python/swig/numpy.i - ./test/CMakeLists.txt - ./test/gtest/CMakeLists.txt ./test/gtest/gtest-all.cc ./test/gtest/gtest.h ./test/gtest/gtest_main.cc - ./test/python/test_layer.py - ./test/singa/test_layer.cc - ./test/singa/test_tensor.cc - ./test/singa/test_tensor_math.cc - ./test/singa/test_timer.cc ./tool/cpplint.py ******************************* @@ -74,7 +50,7 @@ Archives: Notices, licenses etc will be marked N !????? ./.gitmodules !????? ./.travis.yml - !????? ./CMakeLists.txt + AL ./CMakeLists.txt N ./DISCLAIMER N ./LICENSE N ./NOTICE @@ -87,38 +63,38 @@ Archives: AL ./bin/singa-run.sh AL ./bin/singa-stop.sh AL ./bin/zk-service.sh - !????? ./cmake/Cuda.cmake - !????? ./cmake/Dependencies.cmake + AL ./cmake/Cuda.cmake + AL ./cmake/Dependencies.cmake !????? ./cmake/Protobuf.cmake - !????? ./cmake/Utils.cmake - !????? ./cmake/Templates/singa_config.h.in - !????? ./cmake/Thirdparty/FindCBLAS.cmake - !????? ./cmake/Thirdparty/FindCUDNN.cmake - !????? ./cmake/Thirdparty/FindGlog.cmake - !????? ./cmake/Thirdparty/FindLMDB.cmake + AL ./cmake/Utils.cmake + AL ./cmake/Templates/singa_config.h.in + AL ./cmake/Thirdparty/FindCBLAS.cmake + AL ./cmake/Thirdparty/FindCUDNN.cmake + AL ./cmake/Thirdparty/FindGlog.cmake + AL ./cmake/Thirdparty/FindLMDB.cmake !????? ./cmake/Thirdparty/FindOpenCL.cmake - !????? ./examples/CMakeLists.txt - !????? ./examples/index.rst + AL ./examples/CMakeLists.txt + AL ./examples/index.rst AL ./examples/char-rnn/sample.py AL ./examples/char-rnn/train.py - !????? ./examples/cifar10/CMakeLists.txt + AL ./examples/cifar10/CMakeLists.txt AL ./examples/cifar10/alexnet-parallel.cc AL ./examples/cifar10/alexnet.cc AL ./examples/cifar10/alexnet.py AL ./examples/cifar10/cifar10.h - !????? ./examples/cifar10/download_data.py + AL ./examples/cifar10/download_data.py AL ./examples/cifar10/predict.py - !????? ./examples/cifar10/run-parallel.sh - !????? ./examples/cifar10/run.sh + AL ./examples/cifar10/run-parallel.sh + AL ./examples/cifar10/run.sh AL ./examples/cifar10/train.py AL ./examples/cifar10/vgg-parallel.cc AL ./examples/cifar10/vgg.py - !????? ./examples/imagenet/CMakeLists.txt + AL ./examples/imagenet/CMakeLists.txt AL ./examples/imagenet/alexnet.cc - !????? ./examples/imagenet/create_data.sh + AL ./examples/imagenet/create_data.sh AL ./examples/imagenet/ilsvrc12.cc AL ./examples/imagenet/ilsvrc12.h - !????? ./examples/imagenet/run.sh + AL ./examples/imagenet/run.sh AL ./examples/mnist/train.py AL ./include/singa/core/common.h AL ./include/singa/core/device.h @@ -149,9 +125,15 @@ Archives: AL ./include/singa/utils/safe_queue.h AL ./include/singa/utils/singleton.h AL ./include/singa/utils/string.h - !????? ./include/singa/utils/timer.h + AL ./include/singa/utils/timer.h !????? ./include/singa/utils/tinydir.h - !????? ./src/CMakeLists.txt + !????? ./lib/cnmem/.git + !????? ./lib/cnmem/CMakeLists.txt + N ./lib/cnmem/LICENSE + !????? ./lib/cnmem/include/cnmem.h + !????? ./lib/cnmem/src/cnmem.cpp + !????? ./lib/cnmem/tests/cnmem_tests.cpp + AL ./src/CMakeLists.txt AL ./src/core/device/cpp_cpu.cc AL ./src/core/device/cuda_gpu.cc AL ./src/core/device/device.cc @@ -238,8 +220,8 @@ Archives: AL ./src/proto/core.proto AL ./src/proto/io.proto AL ./src/proto/model.proto - !????? ./src/python/setup.py.in - !????? ./src/python/singa/__init__.py + AL ./src/python/setup.py.in + AL ./src/python/singa/__init__.py AL ./src/python/singa/command.py AL ./src/python/singa/device.py AL ./src/python/singa/initializer.py @@ -259,15 +241,16 @@ Archives: AL ./src/python/swig/model_optimizer.i !????? ./src/python/swig/numpy.i AL ./src/python/swig/singa.i + ./src/python/swig/singa_wrap.cxx AL ./src/utils/channel.cc AL ./src/utils/logging.cc AL ./src/utils/opencl_utils.cc - !????? ./test/CMakeLists.txt - !????? ./test/gtest/CMakeLists.txt + AL ./test/CMakeLists.txt + AL ./test/gtest/CMakeLists.txt !????? ./test/gtest/gtest-all.cc !????? ./test/gtest/gtest.h !????? ./test/gtest/gtest_main.cc - !????? ./test/python/test_layer.py + AL ./test/python/test_layer.py AL ./test/python/test_optimizer.py AL ./test/python/test_tensor.py AL ./test/singa/test_accuracy.cc @@ -295,7 +278,7 @@ Archives: AL ./test/singa/test_image_transformer.cc AL ./test/singa/test_initializer.cc AL ./test/singa/test_jpg.cc - !????? ./test/singa/test_layer.cc + AL ./test/singa/test_layer.cc AL ./test/singa/test_lmdb_rw.cc AL ./test/singa/test_logging.cc AL ./test/singa/test_lrn.cc @@ -310,10 +293,10 @@ Archives: AL ./test/singa/test_sgd.cc AL ./test/singa/test_snapshot.cc AL ./test/singa/test_softmax.cc - !????? ./test/singa/test_tensor.cc - !????? ./test/singa/test_tensor_math.cc + AL ./test/singa/test_tensor.cc + AL ./test/singa/test_tensor_math.cc AL ./test/singa/test_textfile_rw.cc - !????? ./test/singa/test_timer.cc + AL ./test/singa/test_timer.cc AL ./thirdparty/install.sh !????? ./tool/cpplint.py AL ./tool/graph.py @@ -396,149 +379,16 @@ script: ======================================================================= -==./CMakeLists.txt -======================================================================= -CMAKE_MINIMUM_REQUIRED(VERSION 2.6) - -PROJECT(singa) -SET(PACKAGE_VERSION "1.0.0") -SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -g -O2 ") - -LIST(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/Thirdparty) -#message(STATUS "module path: ${CMAKE_MODULE_PATH}") - -# Flags -IF(UNIX OR APPLE) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -Wall") -ENDIF() -IF(CMAKE_BUILD_TYPE=Debug) - SET(NVCC_FLAG "${NVCC_FLAG} -g -G ") -ENDIF() -#message(STATUS "${CMAKE_CXX_FLAGS}") -SET(SINGA_INCLUDE_DIR - "${CMAKE_SOURCE_DIR}/include;${CMAKE_SOURCE_DIR}/lib/cnmem/include;${PROJECT_BINARY_DIR}") -INCLUDE_DIRECTORIES(${SINGA_INCLUDE_DIR}) - -OPTION(USE_CBLAS "Use CBlas libs" ON) -OPTION(USE_CUDA "Use Cuda libs" ON) -OPTION(USE_CUDNN "Use Cudnn libs" ON) -OPTION(USE_OPENCV "Use opencv" OFF) -OPTION(USE_LMDB "Use LMDB libs" OFF) -OPTION(USE_PYTHON "Generate py wrappers" ON) -OPTION(USE_OPENCL "Use OpenCL" OFF) -OPTION(ENABLE_DIST "enable distributed training" OFF) -#OPTION(BUILD_OPENCL_TESTS "Build OpenCL tests" OFF) - -INCLUDE("cmake/Dependencies.cmake") -INCLUDE("cmake/Utils.cmake") -ADD_DEFINITIONS(-DUSE_CMAKE) -#message(STATUS "${SINGA_INCLUDE_DIR}") - -CONFIGURE_FILE ( - "${PROJECT_SOURCE_DIR}/cmake/Templates/singa_config.h.in" - "${PROJECT_BINARY_DIR}/include/singa/singa_config.h") - -#set(SINGA_CONFIGURE_SRC "${PROJECT_BINARY_DIR}/singa_config.h") -#LIST(APPEND SRCS ${SINGA_CONFIGURE_SRCS} ${PROJECT_BINARY_DIR}/singa_config.h) - -SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib) -SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin) - -IF (USE_CUDA) - ADD_SUBDIRECTORY(lib/cnmem) - LIST(APPEND SINGA_LINKER_LIBS cnmem) -ENDIF() - -======================================================================= ==./rat_check ======================================================================= ======================================================================= -==./cmake/Cuda.cmake -======================================================================= - -FIND_PACKAGE(CUDA 5.5 QUIET) - -IF(NOT CUDA_FOUND) - return() -ENDIF() - -SET(HAVE_CUDA TRUE) -MESSAGE(STATUS "Found cuda_v${CUDA_VERSION}") -#ADD_DEFINITIONS(-DUSE_CUDA) -#message(STATUS "linking: ${CUDA_CUDART_LIBRARY} ${CUDA_curand_LIBRARY} ${CUDA_CUBLAS_LIBRARIES}") - -IF(USE_CUDNN) -#include(cmake/Modules/Cudnn.cmake) - FIND_PACKAGE(CUDNN REQUIRED) - INCLUDE_DIRECTORIES(SYSTEM ${CUDNN_INCLUDE_DIR}) - LIST(APPEND SINGA_LINKER_LIBS ${CUDNN_LIBRARIES}) - #ADD_DEFINITIONS(-DUSE_CUDNN) - #ADD_DEFINITIONS(-DCUDNN_VERSION_MAJOR=${CUDNN_VERSION_MAJOR}) -ENDIF() - -INCLUDE_DIRECTORIES(SYSTEM ${CUDA_INCLUDE_DIRS}) -LIST(APPEND SINGA_LINKER_LIBS ${CUDA_CUDART_LIBRARY} ${CUDA_curand_LIBRARY} ${CUDA_CUBLAS_LIBRARIES}) -#MESSAGE(STATUS "libs " ${SINGA_LINKER_LIBS}) - -======================================================================= -==./cmake/Dependencies.cmake -======================================================================= -SET(SINGA_LINKER_LIBS "") - -#INCLUDE("cmake/ProtoBuf.cmake") - -FIND_PACKAGE( Protobuf REQUIRED ) -INCLUDE_DIRECTORIES(SYSTEM ${PROTOBUF_INCLUDE_DIR}) -MESSAGE(STATUS "proto libs " ${PROTOBUF_LIBRARIES}) -LIST(APPEND SINGA_LINKER_LIBS ${PROTOBUF_LIBRARIES}) -INCLUDE("cmake/Protobuf.cmake") - -#FIND_PACKAGE(Glog) -#IF(GLOG_FOUND) -# MESSAGE(STATUS "GLOG FOUND at ${GLOG_INCLUDE_DIR}") -# ADD_DEFINITIONS("-DUSE_GLOG") -# LIST(APPEND SINGA_LINKER_LIBS ${GLOG_LIBRARIES}) -#ENDIF() - -IF(USE_LMDB) - FIND_PACKAGE(LMDB REQUIRED) - INCLUDE_DIRECTORIES(SYSTEM ${LMDB_INCLUDE_DIR}) - LIST(APPEND SINGA_LINKER_LIBS ${LMDB_LIBRARIES}) - MESSAGE(STATUS "FOUND lmdb at ${LMDB_INCLUDE_DIR}") -ENDIF() - -IF(USE_CUDA) - INCLUDE("cmake/Cuda.cmake") -ELSE() - SET(USE_CUDNN FALSE) -ENDIF() - -IF(USE_CBLAS) - FIND_PACKAGE(CBLAS REQUIRED) - INCLUDE_DIRECTORIES(SYSTEM ${CBLAS_INCLUDE_DIR}) - LIST(APPEND SINGA_LINKER_LIBS ${CBLAS_LIBRARIES}) - MESSAGE(STATUS "FOUND cblas at ${CBLAS_LIBRARIES}") -ENDIF() - -IF(USE_OPENCL) - FIND_PACKAGE(OpenCL REQUIRED) - IF(NOT OPENCL_FOUND) - MESSAGE(SEND_ERROR "OpenCL was requested, but not found.") - ELSE() - INCLUDE_DIRECTORIES(SYSTEM ${OpenCL_INCPATH}) - LIST(APPEND SINGA_LINKER_LIBS ${OPENCL_LIBRARIES}) - MESSAGE(STATUS "Found OpenCL at ${OPENCL_INCLUDE_DIRS}") - IF(NOT OPENCL_HAS_CPP_BINDINGS) - MESSAGE(SEND_ERROR "OpenCL C++ bindings cl2.hpp was not found.") - ELSE() - MESSAGE(STATUS "Found OpenCL C++ bindings.") - ENDIF() - -======================================================================= ==./cmake/Protobuf.cmake ======================================================================= -# copy from cmake source code +# This script is taken from +# https://github.com/Kitware/CMake/blob/master/Modules/FindProtobuf.cmake +# and modified to our compilation. + function(PROTOBUF_GENERATE_PYTHON OUTPUT) if(NOT ARGN) message(SEND_ERROR "Error: PROTOBUF_GENERATE_PYTHON() called @@ -568,174 +418,6 @@ function(PROTOBUF_GENERATE_PYTHON OUTPUT) endfunction() ======================================================================= -==./cmake/Utils.cmake -======================================================================= - -macro(swig_generate_cxx pylist_variable) - if(NOT EXISTS "${CMKAE_BINARY_DIR}/python") - execute_process( - COMMAND mkdir ${CMAKE_BINARY_DIR}/python - COMMAND mkdir ${CMAKE_BINARY_DIR}/python/singa - COMMAND mkdir ${CMAKE_BINARY_DIR}/python/singa/proto - ERROR_QUIET) - endif() - execute_process( - COMMAND swig -c++ -python -I${CMAKE_SOURCE_DIR}/include - -outdir ${CMAKE_BINARY_DIR}/python/singa - ${ARGN}) - - set(${pylist_variable} "${CMAKE_SOURCE_DIR}/src/python/swig/singa_wrap.cxx") -endmacro() - -function (create_symlinks) - # Do nothing if building in-source - if (${CMAKE_CURRENT_BINARY_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}) - return() - endif() - - foreach (path_file ${ARGN}) - get_filename_component(folder ${path_file} PATH) - - # Create REAL folder - file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/${folder}") - - # Delete symlink if it exists - file(REMOVE "${CMAKE_BINARY_DIR}/${path_file}") - - # Get OS dependent path to use in `execute_process` - file(TO_NATIVE_PATH "${CMAKE_BINARY_DIR}/${path_file}" link) - file(TO_NATIVE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/${path_file}" target) - - if (UNIX) - set(command ln -s ${target} ${link}) - else() - set(command cmd.exe /c mklink ${link} ${target}) - endif() - - execute_process(COMMAND ${command} - RESULT_VARIABLE result - ERROR_VARIABLE output) - - if (NOT ${result} EQUAL 0) - message(FATAL_ERROR "Could not create symbolic link for: ${target} --> ${output}") - endif() - - -======================================================================= -==./cmake/Templates/singa_config.h.in -======================================================================= -// Source directory -#define SOURCE_FOLDER "${PROJECT_SOURCE_DIR}" - -// Binaries director -#define BINARY_FOLDER "${PROJECT_BINARY_DIR}" - -#cmakedefine CPU_ONLY - -#cmakedefine USE_CBLAS - -#cmakedefine USE_OPENCV -// cuda -#cmakedefine USE_CUDA - -#cmakedefine USE_CUDNN -#cmakedefine CUDNN_VERSION_MAJOR @CUDNN_VERSION_MAJOR@ -#cmakedefine CUDNN_VERSION_MINOR @CUDNN_VERSION_MINOR@ -#cmakedefine CUDNN_VERSION_PATCH @CUDNN_VERSION_PATCH@ -#cmakedefine CUDNN_VERSION_SWIG @CUDNN_VERSION_SWIG@ - -#cmakedefine USE_OPENCL - -#cmakedefine ENABLE_DIST - -// lmdb -#cmakedefine USE_LMDB - - -======================================================================= -==./cmake/Thirdparty/FindCBLAS.cmake -======================================================================= - -FIND_PATH(CBLAS_INCLUDE_DIR NAMES cblas.h PATHS "$ENV{CBLAS_DIR}/include") -FIND_LIBRARY(CBLAS_LIBRARIES NAMES openblas PATHS "$ENV{CBLAS_DIR}/lib") - -INCLUDE(FindPackageHandleStandardArgs) -find_package_handle_standard_args(CBLAS DEFAULT_MSG CBLAS_INCLUDE_DIR CBLAS_LIBRARIES) - -IF(CBLAS_FOUND) - # MESSAGE(STATUS "Found cblas at ${CBLAS_INCLUDE_DIR}") - MARK_AS_ADVANCED(CBLAS_INCLUDE_DIR CBLAS_LIBRARIES) -ENDIF() - -======================================================================= -==./cmake/Thirdparty/FindCUDNN.cmake -======================================================================= - -FIND_PATH(CUDNN_INCLUDE_DIR NAME "cudnn.h" PATHS "$ENV{CMAKE_INCLUDE_PATH}") -FIND_LIBRARY(CUDNN_LIBRARIES NAME "libcudnn.so" PATHS "$ENV{CMAKE_LIBRARY_PATH}") - -#message("cudnn include path:${CUDNN_INCLUDE_DIR} lib path: ${CUDNN_LIBRARIES}") -#message("env include path:$ENV{CUDNN_DIR} next: $ENV{CMAKE_INCLUDE_PATH}") -INCLUDE(FindPackageHandleStandardArgs) -find_package_handle_standard_args(CUDNN DEFAULT_MSG CUDNN_INCLUDE_DIR CUDNN_LIBRARIES) - -IF(CUDNN_FOUND) - FILE(READ ${CUDNN_INCLUDE_DIR}/cudnn.h CUDNN_VERSION_FILE_CONTENTS) - STRING(REGEX MATCH "define CUDNN_MAJOR * +([0-9]+)" - CUDNN_VERSION_MAJOR "${CUDNN_VERSION_FILE_CONTENTS}") - STRING(REGEX REPLACE "define CUDNN_MAJOR * +([0-9]+)" "\\1" - CUDNN_VERSION_MAJOR "${CUDNN_VERSION_MAJOR}") - STRING(REGEX MATCH "define CUDNN_MINOR * +([0-9]+)" - CUDNN_VERSION_MINOR "${CUDNN_VERSION_FILE_CONTENTS}") - STRING(REGEX REPLACE "define CUDNN_MINOR * +([0-9]+)" "\\1" - CUDNN_VERSION_MINOR "${CUDNN_VERSION_MINOR}") - STRING(REGEX MATCH "define CUDNN_PATCHLEVEL * +([0-9]+)" - CUDNN_VERSION_PATCH "${CUDNN_VERSION_FILE_CONTENTS}") - STRING(REGEX REPLACE "define CUDNN_PATCHLEVEL * +([0-9]+)" "\\1" - CUDNN_VERSION_PATCH "${CUDNN_VERSION_PATCH}") - - IF(NOT CUDNN_VERSION_MAJOR) - SET(CUDNN_VERSION "???") - ELSE() - MATH(EXPR CUDNN_VERSION_SWIG "${CUDNN_VERSION_MAJOR} * 1000 + ${CUDNN_VERSION_MINOR} * 100 + ${CUDNN_VERSION_PATCH}") - ENDIF() - MESSAGE(STATUS "Found Cudnn_v${CUDNN_VERSION_SWIG} at ${CUDNN_INCLUDE_DIR} ${CUDNN_LIBRARIES}") - MARK_AS_ADVANCED(CUDNN_INCLUDE_DIR CUDNN_LIBRARIES) - -ENDIF() - -======================================================================= -==./cmake/Thirdparty/FindGlog.cmake -======================================================================= - -FIND_PATH(GLOG_INCLUDE_DIR NAMES glog/logging.h PATHS "$ENV{GLOG_DIR}/include") -FIND_LIBRARY(GLOG_LIBRARIES NAMES glog) - -INCLUDE(FindPackageHandleStandardArgs) -find_package_handle_standard_args(GLOG DEFAULT_MSG GLOG_INCLUDE_DIR GLOG_LIBRARIES) - -IF(GLOG_FOUND) - # MESSAGE(STATUS "Found glog at ${GLOG_INCLUDE_DIR}") - MARK_AS_ADVANCED(GLOG_INCLUDE_DIR GLOG_LIBRARIES) -ENDIF() - -======================================================================= -==./cmake/Thirdparty/FindLMDB.cmake -======================================================================= - -FIND_PATH(LMDB_INCLUDE_DIR NAMES lmdb.h PATHS "$ENV{LMDB_DIR}/include") -FIND_LIBRARY(LMDB_LIBRARIES NAMES lmdb PATHS "$ENV{LMDB_DIR}/include") - -INCLUDE(FindPackageHandleStandardArgs) -find_package_handle_standard_args(LMDB DEFAULT_MSG LMDB_INCLUDE_DIR LMDB_LIBRARIES) - -IF(LMDB_FOUND) - MESSAGE(STATUS "Found lmdb at ${LMDB_INCLUDE_DIR}") - MARK_AS_ADVANCED(LMDB_INCLUDE_DIR LMDB_LIBRARIES) - -ENDIF() - -======================================================================= ==./cmake/Thirdparty/FindOpenCL.cmake ======================================================================= # This script was taken from https://github.com/elhigu/cmake-findopencl @@ -790,149 +472,6 @@ ELSE (APPLE) # Nvidia ======================================================================= -==./examples/CMakeLists.txt -======================================================================= -ADD_SUBDIRECTORY(cifar10) -ADD_SUBDIRECTORY(imagenet) - -======================================================================= -==./examples/index.rst -======================================================================= -Examples -======== - -.. toctree:: - - cifar10/README - char-rnn/README - imagenet/README - - - -======================================================================= -==./examples/cifar10/CMakeLists.txt -======================================================================= -INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) -INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR}/include) - -IF(USE_CUDNN) -ADD_EXECUTABLE(alexnet alexnet.cc) -ADD_DEPENDENCIES(alexnet singa_core singa_model singa_utils) -TARGET_LINK_LIBRARIES(alexnet singa_core singa_utils singa_model protobuf ${SINGA_LIBKER_LIBS}) - -ADD_EXECUTABLE(alexnet-parallel alexnet-parallel.cc) -ADD_DEPENDENCIES(alexnet-parallel singa_core singa_model singa_utils) -TARGET_LINK_LIBRARIES(alexnet-parallel singa_core singa_utils singa_model protobuf ${SINGA_LIBKER_LIBS}) -SET_TARGET_PROPERTIES(alexnet-parallel PROPERTIES LINK_FLAGS "${LINK_FLAGS} -pthread") - -ADD_EXECUTABLE(vgg-parallel vgg-parallel.cc) -ADD_DEPENDENCIES(vgg-parallel singa_core singa_model singa_utils) -TARGET_LINK_LIBRARIES(vgg-parallel singa_core singa_utils singa_model protobuf ${SINGA_LIBKER_LIBS}) -SET_TARGET_PROPERTIES(vgg-parallel PROPERTIES LINK_FLAGS "${LINK_FLAGS} -pthread") -ENDIF(USE_CUDNN) - -======================================================================= -==./examples/cifar10/download_data.py -======================================================================= -#!/usr/bin/env python -import urllib -import tarfile -import os -import sys -import argparse - - -def extract_tarfile(filepath): - if os.path.exists(filepath): - print 'The tar file does exist. Extracting it now..' - with tarfile.open(filepath, 'r') as f: - f.extractall('.') - print 'Finished!' - sys.exit(0) - - -def check_dir_exist(dirpath): - if os.path.exists(dirpath): - print 'Directory %s does exist. To redownload the files, '\ - 'remove the existing directory and %s.tar.gz' % (dirpath, dirpath) - return True - else: - return False - - -def do_download(dirpath, gzfile, url): - if check_dir_exist(dirpath): - sys.exit(0) - print 'Downloading CIFAR10 from %s' % (url) - urllib.urlretrieve(url, gzfile) - extract_tarfile(gzfile) - print 'Finished!' - - -if __name__ == '__main__': - parser = argparse.ArgumentParser(description='Download Cifar10 datasets') - parser.add_argument( - 'file', - type=str, - choices=['py', 'bin']) - args = parser.parse_args() - if args.file == 'bin': - dirpath = 'cifar-10-batches-bin' - gzfile = 'cifar-10-binary' + '.tar.gz' - url = 'http://www.cs.toronto.edu/~kriz/cifar-10-binary.tar.gz' - do_download(dirpath, gzfile, url) - else: - dirpath = 'cifar-10-batches-py' - gzfile = 'cifar-10-python' + '.tar.gz' - -======================================================================= -==./examples/cifar10/run-parallel.sh -======================================================================= -#!/usr/bin/env sh -../../build/bin/alexnet-parallel -epoch 4 -#../../build/bin/vgg-parallel -epoch 4 - -======================================================================= -==./examples/cifar10/run.sh -======================================================================= -#!/usr/bin/env sh -../../build/bin/alexnet -epoch 140 - -======================================================================= -==./examples/imagenet/CMakeLists.txt -======================================================================= -INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) -INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR}/include) - -IF(USE_CUDNN) - IF(USE_OPENCV) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp ") - ADD_EXECUTABLE(imagenet alexnet.cc) - ADD_DEPENDENCIES(imagenet singa_core singa_model singa_utils singa_io) - TARGET_LINK_LIBRARIES(imagenet singa_core singa_utils singa_model singa_io protobuf ${SINGA_LIBKER_LIBS}) - - ADD_EXECUTABLE(createdata ilsvrc12.cc) - ADD_DEPENDENCIES(createdata singa_core singa_io singa_model singa_utils) - TARGET_LINK_LIBRARIES(createdata singa_core singa_utils singa_io singa_model protobuf ${SINGA_LIBKER_LIBS}) - #SET_TARGET_PROPERTIES(createdata PROPERTIES LINK_FLAGS "${LINK_FLAGS}") - ENDIF(USE_OPENCV) -ENDIF(USE_CUDNN) - -======================================================================= -==./examples/imagenet/create_data.sh -======================================================================= -#!/usr/bin/env sh -../../build/bin/createdata -trainlist "imagenet/label/train.txt" -trainfolder "imagenet/ILSVRC2012_img_train" \ - -testlist "imagenet/label/val.txt" -testfolder "imagenet/ILSVRC2012_img_val" -outdata "imagenet_data" -filesize 1280 - -======================================================================= -==./examples/imagenet/run.sh -======================================================================= -#!/usr/bin/env sh -../../build/bin/imagenet -epoch 90 -lr 0.01 -batchsize 256 -filesize 1280 -ntrain 1281167 -ntest 50000 \ - -data "imagenet_data" -pfreq 100 -nthreads 12 - -======================================================================= ==./include/singa/utils/cuda_utils.h ======================================================================= // from caffe include/caffe/util/device_alternative.hpp @@ -987,50 +526,6 @@ inline const char* curandGetErrorString(curandStatus_t error) { case CURAND_STATUS_ALLOCATION_FAILED: ======================================================================= -==./include/singa/utils/timer.h -======================================================================= -#ifndef SINGA_UTILS_TIMER_H -#define SINGA_UTILS_TIMER_H - -#include <chrono> - -namespace singa { - -/// For benchmarking the time cost of operations. -class Timer { - public: - typedef std::chrono::duration<int> Seconds; - typedef std::chrono::duration<int, std::milli> Milliseconds; - typedef std::chrono::duration<int, std::ratio<60 * 60>> Hours; - typedef std::chrono::duration<int, std::micro> Microseconds; - - /// Init the internal time point to the current time - Timer() { Tick(); } - /// Reset the internal time point to the current time - void Tick() { last_ = std::chrono::high_resolution_clock::now(); } - /// Return the duration since last call to Tick() or since the creation of - /// Timer. The template arg must be from Second or Millisecond or Hour. - /// The returned value is the count of the time metric. - template <typename T = Milliseconds> - int Elapsed() const { - static_assert(std::is_same<T, Seconds>::value || - std::is_same<T, Milliseconds>::value || - std::is_same<T, Hours>::value || - std::is_same<T, Microseconds>::value, - "Template arg must be Seconds | Milliseconds | Hours | Microseconds"); - auto now = std::chrono::high_resolution_clock::now(); - return std::chrono::duration_cast<T>(now - last_).count(); - } - /// Return the string rep of current wall time - // std::string CurrentTime(); - - private: - std::chrono::high_resolution_clock::time_point last_; -}; -} -#endif - -======================================================================= ==./include/singa/utils/tinydir.h ======================================================================= /* @@ -1085,58 +580,220 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #else ======================================================================= -==./src/CMakeLists.txt +==./lib/cnmem/.git +======================================================================= +gitdir: ../../.git/modules/lib/cnmem + +======================================================================= +==./lib/cnmem/CMakeLists.txt +======================================================================= +# CMakeLists to build the cnmem library. +cmake_minimum_required(VERSION 2.8.8) +project(cnmem) + +# We need CUDA to build that library. +find_package(CUDA QUIET REQUIRED) +include_directories(${CUDA_INCLUDE_DIRS}) + +# Rules to build the cnmem library. +include_directories(include) +add_definitions(-DCNMEM_DLLEXPORT) +add_library(cnmem SHARED src/cnmem.cpp) +set_target_properties(cnmem PROPERTIES VERSION 1.0.0 SOVERSION 1) +target_link_libraries(cnmem LINK_PUBLIC ${CUDA_LIBRARIES}) +install(TARGETS cnmem RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib) +install(FILES include/cnmem.h DESTINATION include) + +# Add the tests. +if(WITH_TESTS) + + # Get Google tests. + find_package(GTest QUIET REQUIRED) + include_directories(${GTEST_INCLUDE_DIRS}) + + # Build the executable. + add_executable(cnmem_tests tests/cnmem_tests.cpp) + if(MSVC) + if(MSVC_VERSION GREATER 1700) # Visual Studio 11 or more. + add_definitions(-DUSE_CPP_11) + endif(MSVC_VERSION GREATER 1700) + endif(MSVC) + if(CMAKE_COMPILER_IS_GNUCC) + add_definitions(-std=c++11 -DUSE_CPP_11) + endif(CMAKE_COMPILER_IS_GNUCC) + target_link_libraries(cnmem_tests LINK_PUBLIC cnmem ${CUDA_LIBRARIES} ${GTEST_LIBRARIES} -lpthread) + install(TARGETS cnmem_tests RUNTIME DESTINATION bin) + + # On Windows, we copy the Google test DLL to the bin folder. + if(MSVC) + get_filename_component(gtest_dll_path ${GTEST_LIBRARIES} DIRECTORY) + install(FILES ${gtest_dll_path}/gtest.dll DESTINATION bin) + endif(MSVC) + +endif(WITH_TESTS) + + +======================================================================= +==./lib/cnmem/include/cnmem.h +======================================================================= +/* ********************************************************************** + * Copyright (c) 2015, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of NVIDIA CORPORATION nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * ********************************************************************** */ +#pragma once + +#ifdef __cplusplus +#include "cstdio" +#else +#include "stdio.h" +#endif +#include "cuda_runtime_api.h" + +#if defined(_MSC_VER) || defined(WIN32) +#ifdef CNMEM_DLLEXPORT +#define CNMEM_API __declspec(dllexport) +#else +#define CNMEM_API __declspec(dllimport) +#endif +#else +#ifdef CNMEM_DLLEXPORT +#define CNMEM_API __attribute__((visibility ("default"))) +#else +#define CNMEM_API +#endif +#endif + + +======================================================================= +==./lib/cnmem/src/cnmem.cpp ======================================================================= -# generate protobuf sources - -FILE(GLOB proto_files proto/*.proto) -protobuf_generate_cpp(proto_srcs proto_hdrs ${proto_files}) -IF (USE_PYTHON) - protobuf_generate_python(proto_pys ${proto_files}) -ENDIF() -INCLUDE_DIRECTORIES("${CMAKE_BINARY_DIR}/include") - -#message(STATUS "include: ${CMAKE_BINARY_DIR} ") -#message(STATUS "srcs: ${proto_srcs}") -#message(STATUS "hdrs: ${proto_hdrs}") -#message(STATUS "pys: ${proto_pys}") -ADD_LIBRARY(singa_proto STATIC ${proto_hdrs} ${proto_srcs} ${proto_pys}) -FOREACH(fil ${proto_hdrs}) - ADD_CUSTOM_COMMAND( - TARGET singa_proto PRE_BUILD - COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/include/singa/proto" - COMMAND ${CMAKE_COMMAND} -E copy ${fil} "${CMAKE_BINARY_DIR}/include/singa/proto" - #COMMAND ${CMAKE_COMMAND} -E echo "copy done" - ) -ENDFOREACH() -LIST(APPEND SINGA_LINKER_LIBS singa_proto) - -SET(PREVIOUS_LINKER_LIBS ${SINGA_LINKER_LIBS}) - -#FILE(GLOB_RECURSE utils_source ${CMAKE_CURRENT_SOURCE_DIR}/utils/ "*.cc") -AUX_SOURCE_DIRECTORY(utils utils_source) -#message(STATUS "UTILS ${utils_source}") -ADD_LIBRARY(singa_utils SHARED ${utils_source}) -TARGET_LINK_LIBRARIES(singa_utils ${SINGA_LINKER_LIBS}) -LIST(APPEND SINGA_LINKER_LIBS singa_utils) - -#FILE(GLOB_RECURSE core_source ${CMAKE_CURRENT_SOURCE_DIR}/core/ "*.cc") -AUX_SOURCE_DIRECTORY(core/device core_source) -AUX_SOURCE_DIRECTORY(core/memory core_source) -AUX_SOURCE_DIRECTORY(core/scheduler core_source) -AUX_SOURCE_DIRECTORY(core/tensor core_source) -IF (USE_CUDA) - FILE(GLOB_RECURSE cuda_source core "*.cu") - SET(FLAGS_BACKUP ${CMAKE_CXX_FLAGS}) - SET(CMAKE_CXX_FLAGS "") - IF (CMAKE_BUILD_TYPE MATCHES DEBUG) - CUDA_COMPILE(cuda_objs SHARED ${cuda_source} - OPTIONS "-Xcompiler -fPIC -G -g") - ELSE (CMAKE_BUILD_TYPE MATCHES DEBUG) - CUDA_COMPILE(cuda_objs SHARED ${cuda_source} OPTIONS "-Xcompiler -fPIC") - ENDIF (CMAKE_BUILD_TYPE MATCHES DEBUG) - include_directories("${CMAKE_CURRENT_SOURCE_DIR}/core/tensor") - SET(CMAKE_CXX_FLAGS ${FLAGS_BACKUP}) +/////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2015, NVIDIA CORPORATION. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +/////////////////////////////////////////////////////////////////////////////////////////////////// + +#include "cnmem.h" +#include <cstddef> +#include <vector> +#include <cuda_runtime_api.h> + +#if !defined(WIN32) && defined(_MSC_VER) +#define WIN32 +#endif + +#ifdef WIN32 +#include <Windows.h> +#else +#include <pthread.h> +#endif + +#if defined(__SIZEOF_POINTER__) && __SIZEOF_POINTER__ == 4 // ARMv7 is the only 32-bit target that we support. +#define CNMEM_BUILD_WITH_32_BIT_POINTERS +#endif + +#define CNMEM_GRANULARITY 512 + +/////////////////////////////////////////////////////////////////////////////////////////////////// + +======================================================================= +==./lib/cnmem/tests/cnmem_tests.cpp +======================================================================= +/////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2015, NVIDIA CORPORATION. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +/////////////////////////////////////////////////////////////////////////////////////////////////// + +#include <gtest/gtest.h> +#include <cnmem.h> +#include <fstream> +#ifdef USE_CPP_11 +#include <thread> +#endif + +/////////////////////////////////////////////////////////////////////////////////////////////////// + +static std::size_t getFreeMemory() { + cudaFree(0); + std::size_t freeMem, totalMem; + cudaMemGetInfo(&freeMem, &totalMem); + return freeMem; +} + +class CnmemTest : public ::testing::Test { + /// We determine the amount of free memory. + std::size_t mFreeMem; + +protected: + /// Do we test memory leaks. ======================================================================= ==./src/core/tensor/distribution.cl @@ -1193,64 +850,6 @@ inline threefry4x32_ctr_t threefry4x32_R(unsigned int Nrounds, threefry4x32_ctr_ X.v[0] = in.v[0]; ======================================================================= -==./src/python/setup.py.in -======================================================================= -# Always prefer setuptools over distutils -from setuptools import setup - - -setup( - name='singa', - - version='${PACKAGE_VERSION}', - - description='A General Deep Learning System', - - url='https://github.com/apache/incubator-singa', - - author='Apache SINGA (incubating)', - author_email='[email protected]', - - license='Apache 2', - - classifiers=[ - # 3 - Alpha - # 4 - Beta - # 5 - Production/Stable - 'Development Status :: 3 - Alpha', - - 'Intended Audience :: Developers', - 'Topic :: Deep Learning System ', - - 'License :: Apache License', - - # Specify the Python versions you support here. In particular, ensure - # that you indicate whether you support Python 2, Python 3 or both. - 'Programming Language :: Python :: 2', - 'Programming Language :: Python :: 2.6', - 'Programming Language :: Python :: 2.7', - ], - - keywords='deep learning singa apache', - - packages= ['singa', 'singa.proto'], - - #py_modules=["singa"], - - install_requires=[ - 'numpy>=1.11.0', - 'protobuf>=2.5.0,<3' - ], - - #List additional groups of dependencies here (e.g. development - #dependencies). You can install these using the following syntax, - #for example: - -======================================================================= -==./src/python/singa/__init__.py -======================================================================= - -======================================================================= ==./src/python/swig/numpy.i ======================================================================= /* -*- C -*- (not really, but good for syntax highlighting) */ @@ -1305,43 +904,6 @@ setup( { ======================================================================= -==./test/CMakeLists.txt -======================================================================= -INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) -INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR}/include) - -IF(ENABLE_DIST) - ADD_EXECUTABLE(test_ep "singa/test_ep.cc") - ADD_DEPENDENCIES(test_ep singa_io) - TARGET_LINK_LIBRARIES(test_ep singa_utils singa_io protobuf ${SINGA_LINKER_LIBS}) -ENDIF() - -ADD_LIBRARY(gtest STATIC EXCLUDE_FROM_ALL "gtest/gtest.h" "gtest/gtest-all.cc") - -AUX_SOURCE_DIRECTORY(singa singa_test_source) -LIST(REMOVE_ITEM singa_test_source "singa/test_ep.cc") - -IF(NOT USE_OPENCL) - MESSAGE(STATUS "Skipping OpenCL tests") - LIST(REMOVE_ITEM singa_test_source "singa/test_opencl.cc") -ENDIF() - - -ADD_EXECUTABLE(test_singa "gtest/gtest_main.cc" ${singa_test_source}) -ADD_DEPENDENCIES(test_singa singa_core singa_utils) -#MESSAGE(STATUS "link libs" ${singa_linker_libs}) -TARGET_LINK_LIBRARIES(test_singa gtest singa_core singa_utils singa_model - singa_io singa_proto protobuf ${SINGA_LINKER_LIBS}) -IF(UNIX AND (NOT APPLE)) - LIST(APPEND LINK_FLAGS "-pthread") -ENDIF() -SET_TARGET_PROPERTIES(test_singa PROPERTIES LINK_FLAGS "${LINK_FLAGS}") - -======================================================================= -==./test/gtest/CMakeLists.txt -======================================================================= - -======================================================================= ==./test/gtest/gtest-all.cc ======================================================================= // Copyright 2008, Google Inc. @@ -1492,216 +1054,6 @@ GTEST_API_ int main(int argc, char **argv) { } ======================================================================= -==./test/python/test_layer.py -======================================================================= -import sys -import os -import unittest -import numpy as np - -#sys.path.append(os.path.join(os.path.dirname(__file__), '../../build/python')) - -from singa import layer -from singa import device -from singa import tensor -from singa.proto import model_pb2 - - -def _tuple_to_string(t): - lt = [str(x) for x in t] - return '(' + ', '.join(lt) + ')' - - -class TestPythonLayer(unittest.TestCase): - - def check_shape(self, actual, expect): - self.assertEqual(actual, expect, 'shape mismatch, actual shape is %s' - ' exepcted is %s' % (_tuple_to_string(actual), - _tuple_to_string(expect)) - ) - - def setUp(self): - layer.engine='singacpp' - self.w = {'init': 'Xavier', 'regularizer': 1e-4} - self.b = {'init': 'Constant', 'value': 0} - self.sample_shape = None - - def test_conv2D_shape(self): - in_sample_shape = (3, 224, 224) - conv = layer.Conv2D('conv', 64, 3, 1, W_specs=self.w, b_specs=self.b, - input_sample_shape=in_sample_shape) - out_sample_shape = conv.get_output_sample_shape() - self.check_shape(out_sample_shape, (64, 224, 224)) - - def test_conv2D_forward_backward(self): - in_sample_shape = (1, 3, 3) - conv = layer.Conv2D('conv', 1, 3, 2, W_specs=self.w, b_specs=self.b, - pad=1, input_sample_shape=in_sample_shape) - # cuda = device.create_cuda_gpu() - # conv.to_device(cuda) - params = conv.param_values() - - raw_x = np.arange(9, dtype=np.float32) + 1 - x = tensor.from_numpy(raw_x) - x.reshape((1, 1, 3, 3)) - -======================================================================= -==./test/singa/test_layer.cc -======================================================================= -#include "gtest/gtest.h" -#include "singa/model/layer.h" -#include "singa/singa_config.h" - -TEST(Layer, CreateLayer) { - std::vector<std::string> types{ - "convolution", "dense", "dropout", "relu", "batchnorm", - "flatten", "lrn", "pooling", "prelu", "softmax"}; - for (auto type : types) { - auto layer = singa::CreateLayer("singacpp_" + type); - // EXPECT_EQ(layer->layer_type(), type); - } -} - -#ifdef USE_CUDNN -TEST(Layer, CreateCudnnLayer) { - std::vector<std::string> types{ - "convolution", "dropout", "relu", "batchnorm", - "lrn", "pooling", "softmax"}; -#if CUDNN_VERSION_MAJOR >= 5 - types.push_back("dropout"); -#endif - for (auto type : types) { - auto layer = singa::CreateLayer("cudnn_" + type); - // EXPECT_EQ(layer->layer_type(), type); - } -} -#endif - -======================================================================= -==./test/singa/test_tensor.cc -======================================================================= -#include "gtest/gtest.h" -#include "singa/core/tensor.h" -using singa::Tensor; -using singa::Shape; -using singa::Device; - -TEST(TensorTest, TestConstructor) { - singa::Tensor float_t(singa::Shape{2,3}); - EXPECT_EQ(6u, float_t.Size()); - EXPECT_EQ(sizeof(float) * 6, float_t.MemSize()); - EXPECT_EQ(singa::kFloat32, float_t.data_type()); - auto s = float_t.shape(); - EXPECT_EQ(s[0], 2u); - EXPECT_EQ(s[1], 3u); - - EXPECT_NE(float_t.device(), nullptr); - - singa::Tensor float16_t(Shape{2,3}, singa::kFloat16); - EXPECT_EQ(singa::kFloat16, float16_t.data_type()); - EXPECT_EQ(6u, float16_t.Size()); - EXPECT_EQ(12u, float16_t.block()->size()); - - singa::Tensor x(float16_t); - EXPECT_EQ(float16_t.Size(), x.Size()); - EXPECT_EQ(float16_t.block(), x.block()); - EXPECT_EQ(float16_t.data_type(), x.data_type()); - EXPECT_EQ(float16_t.device(), x.device()); - - singa::Tensor y = float16_t; - EXPECT_EQ(float16_t.Size(), x.Size()); - EXPECT_EQ(float16_t.block(), x.block()); - EXPECT_EQ(float16_t.data_type(), x.data_type()); - EXPECT_EQ(float16_t.device(), x.device()); -} - -TEST(TensorClass, Reshape) { - Tensor t; - t.Reshape(Shape{2,3}); - EXPECT_TRUE((Shape{2,3} == t.shape())); - - t.Reshape(Shape{3,3, 4}); - EXPECT_TRUE((Shape{3,3, 4} == t.shape())); - - t.Reshape(Shape{12}); - EXPECT_TRUE((Shape{12} == t.shape())); - - Tensor o; - EXPECT_TRUE(o.shape() != t.shape()); - o.Reshape(Shape{3, 3}); - EXPECT_TRUE(o.shape() != t.shape()); - -======================================================================= -==./test/singa/test_tensor_math.cc -======================================================================= -#include "gtest/gtest.h" -#include "singa/core/tensor.h" -using singa::Tensor; -using singa::Shape; -using singa::Device; - -class TestTensorMath : public ::testing::Test { - protected: - virtual void SetUp() { - a.Reshape(singa::Shape{6}); - b.Reshape(singa::Shape{6}); - c.Reshape(singa::Shape{6, 1}); - d.Reshape(singa::Shape{3, 2}); - e.Reshape(singa::Shape{3, 2}); - - a.CopyDataFromHostPtr<float>(dat1, 6); - b.CopyDataFromHostPtr<float>(dat2, 6); - e.CopyDataFromHostPtr<float>(dat1, 6); - } - Tensor a, b, c, d, e; - const float dat1[6] = {1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f}; - const float dat2[6] = {1.1f, 2.1f, 3.1f, 4.1f, 5.1f, 6.1f}; -}; - -TEST_F(TestTensorMath, MemberAbs) { - Tensor aa = a.Clone(); - Tensor bb = b.Clone(); - Tensor cc = aa - bb; - const float *dptr = cc.data<float>(); - EXPECT_NEAR(-0.1, dptr[0], 1e-5); - EXPECT_NEAR(-0.1, dptr[1], 1e-5); - EXPECT_NEAR(-0.1, dptr[2], 1e-5); - - Tensor p = Abs(cc); - const float *dptr1 = p.data<float>(); - EXPECT_NEAR(0.1, dptr1[0], 1e-5); - EXPECT_NEAR(0.1, dptr1[1], 1e-5); - EXPECT_NEAR(0.1, dptr1[2], 1e-5); -} - -TEST_F(TestTensorMath, MemberExp) { - Tensor p = Exp(a); - const float *dptr1 = p.data<float>(); - EXPECT_NEAR(exp(1.0f), dptr1[0], 1e-5); - EXPECT_NEAR(exp(2.0f), dptr1[1], 1e-5); - EXPECT_NEAR(exp(3.0f), dptr1[2], 1e-5); -} - -TEST_F(TestTensorMath, MemberLog) { - Tensor p = Log(a); - -======================================================================= -==./test/singa/test_timer.cc -======================================================================= -#include "gtest/gtest.h" -#include "singa/utils/timer.h" - -#include <chrono> -#include <thread> - -TEST(TimerTest, TestTick) { - singa::Timer t; - std::this_thread::sleep_for(std::chrono::milliseconds(1000)); - int time = t.Elapsed<singa::Timer::Milliseconds>(); - EXPECT_GE(time, 1000); -} - -======================================================================= ==./tool/cpplint.py ======================================================================= #!/usr/bin/env python http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/1c5ca229/src/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4579a67..425986f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,3 +1,23 @@ +# +# Copyright 2015 The Apache Software Foundation +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + # generate protobuf sources FILE(GLOB proto_files proto/*.proto) @@ -95,7 +115,7 @@ IF(USE_PYTHON) create_symlinks(${python_source_files}) SET(python_cxxs "${core_source};${io_source};${model_source};${utils_source}") - ADD_LIBRARY(_singa_wrap SHARED ${python_srcs} ${python_cxxs} ${cuda_objs}) + ADD_LIBRARY(_singa_wrap SHARED "${python_srcs} ${python_cxxs} ${cuda_objs}") SET(WRAPPER_LINKER_LIBS "${PREVIOUS_LINKER_LIBS}") TARGET_LINK_LIBRARIES(_singa_wrap ${WRAPPER_LINKER_LIBS}) TARGET_INCLUDE_DIRECTORIES(_singa_wrap PRIVATE ${PYTHON_INCLUDE_DIRS}) http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/1c5ca229/src/python/setup.py.in ---------------------------------------------------------------------- diff --git a/src/python/setup.py.in b/src/python/setup.py.in index f2cd9f3..004222c 100644 --- a/src/python/setup.py.in +++ b/src/python/setup.py.in @@ -1,3 +1,23 @@ +# +# Copyright 2015 The Apache Software Foundation +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + # Always prefer setuptools over distutils from setuptools import setup http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/1c5ca229/src/python/singa/__init__.py ---------------------------------------------------------------------- diff --git a/src/python/singa/__init__.py b/src/python/singa/__init__.py index e69de29..750eb60 100644 --- a/src/python/singa/__init__.py +++ b/src/python/singa/__init__.py @@ -0,0 +1,21 @@ +# +# Copyright 2015 The Apache Software Foundation +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + + http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/1c5ca229/test/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 593cfd6..7928bc1 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,3 +1,23 @@ +# +# Copyright 2015 The Apache Software Foundation +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR}/include) http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/1c5ca229/test/gtest/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/test/gtest/CMakeLists.txt b/test/gtest/CMakeLists.txt index e69de29..750eb60 100644 --- a/test/gtest/CMakeLists.txt +++ b/test/gtest/CMakeLists.txt @@ -0,0 +1,21 @@ +# +# Copyright 2015 The Apache Software Foundation +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + + http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/1c5ca229/test/python/test_layer.py ---------------------------------------------------------------------- diff --git a/test/python/test_layer.py b/test/python/test_layer.py index 441f352..f98a3c0 100644 --- a/test/python/test_layer.py +++ b/test/python/test_layer.py @@ -1,3 +1,23 @@ +# +# Copyright 2015 The Apache Software Foundation +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + import sys import os import unittest http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/1c5ca229/test/singa/test_layer.cc ---------------------------------------------------------------------- diff --git a/test/singa/test_layer.cc b/test/singa/test_layer.cc index bb33dba..c913a17 100644 --- a/test/singa/test_layer.cc +++ b/test/singa/test_layer.cc @@ -1,3 +1,23 @@ +/** + * Copyright 2015 The Apache Software Foundation + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + #include "gtest/gtest.h" #include "singa/model/layer.h" #include "singa/singa_config.h" http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/1c5ca229/test/singa/test_tensor.cc ---------------------------------------------------------------------- diff --git a/test/singa/test_tensor.cc b/test/singa/test_tensor.cc index f6f2ca3..a6d6bab 100644 --- a/test/singa/test_tensor.cc +++ b/test/singa/test_tensor.cc @@ -1,3 +1,23 @@ +/** + * Copyright 2015 The Apache Software Foundation + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + #include "gtest/gtest.h" #include "singa/core/tensor.h" using singa::Tensor; http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/1c5ca229/test/singa/test_tensor_math.cc ---------------------------------------------------------------------- diff --git a/test/singa/test_tensor_math.cc b/test/singa/test_tensor_math.cc index 2803a23..0c0b4f8 100644 --- a/test/singa/test_tensor_math.cc +++ b/test/singa/test_tensor_math.cc @@ -1,3 +1,23 @@ +/** + * Copyright 2015 The Apache Software Foundation + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + #include "gtest/gtest.h" #include "singa/core/tensor.h" using singa::Tensor;
