[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[UNIKRAFT/PYTORCH PATCH 1/5] Introduce library skeleton



We use the BSD-3-Clause license for this library glue code.

Signed-off-by: Vlad-Andrei Badoiu <vlad_andrei.badoiu@xxxxxx>
---
 .gitignore      | 27 +++++++++++++++++++++++++++
 CODING_STYLE.md |  4 ++++
 CONTRIBUTING.md |  4 ++++
 COPYING.md      | 39 +++++++++++++++++++++++++++++++++++++++
 Config.uk       | 25 +++++++++++++++++++++++++
 MAINTAINERS.md  | 11 +++++++++++
 README.md       | 38 ++++++++++++++++++++++++++++++++++++++
 7 files changed, 148 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 CODING_STYLE.md
 create mode 100644 CONTRIBUTING.md
 create mode 100644 COPYING.md
 create mode 100644 Config.uk
 create mode 100644 MAINTAINERS.md
 create mode 100644 README.md

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..75d2fd3
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,27 @@
+*.depend
+*.o
+*.a
+*.d
+*.so
+*.orig
+*.rej
+*.bak
+*.swp
+*~
+,*
+\#*\#
+.\#*
+\#_*\#
+.\#_*
+!.gitignore
+.*
+
+# gnu global files
+GPATH
+GRTAGS
+GSYMS
+GTAGS
+
+# cscope files
+cscope.*
+ncscope.*
diff --git a/CODING_STYLE.md b/CODING_STYLE.md
new file mode 100644
index 0000000..5730041
--- /dev/null
+++ b/CODING_STYLE.md
@@ -0,0 +1,4 @@
+Coding Style
+============
+
+Please refer to the `CODING_STYLE.md` file in the main Unikraft repository.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..5f55eca
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,4 @@
+Contributing to Unikraft
+=======================
+
+Please refer to the `CONTRIBUTING.md` file in the main Unikraft repository.
diff --git a/COPYING.md b/COPYING.md
new file mode 100644
index 0000000..7e11dfb
--- /dev/null
+++ b/COPYING.md
@@ -0,0 +1,39 @@
+License
+=======
+
+Unikraft pytorch wrappers
+------------------------
+
+This repository contains wrapper code to build pytorch with Unikraft.
+Each C code file in this repository should declare who is the
+copyright owner and under which terms and conditions the code is
+licensed. If such a licence note is missing, the following copyright
+notice will apply:
+
+       Copyright (c) 2020, University Politehnica of Bucharest. All rights 
reserved.
+
+       Redistribution and use in source and binary forms, with or without
+       modification, are permitted provided that the following conditions
+       are met:
+
+       1. Redistributions of source code must retain the above copyright
+          notice, this list of conditions and the following disclaimer.
+       2. 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.
+       3. Neither the name of the copyright holder 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 AND CONTRIBUTORS "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 HOLDER 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.
+
diff --git a/Config.uk b/Config.uk
new file mode 100644
index 0000000..c092109
--- /dev/null
+++ b/Config.uk
@@ -0,0 +1,25 @@
+menuconfig LIBPYTORCH
+       bool "pytorch - machine learning library"
+       select LIBCXX
+       select LIBPYTHON3
+       select LIBLWIP
+       select LIBPTHREAD_EMBEDDED
+       select LIBPOSIX_SYSINFO
+       select LIBNEWLIBC
+       select LIBPROTOBUF
+       select LIBPYBIND11
+       select LIBZLIB
+       select LIBINTEL_INTRINSICS
+       select LIBPTHREADPOOL
+       select LIBFXDIV
+       select LIBEIGEN
+       select LIBGEMMLOWP
+       select LIBONNX
+       select LIBSLEEF
+       select LIBPOSIX_LIBDL
+       select LIBPOSIX_PROCESS
+       select LIBPOSIX_SYSINFO
+       select LIBUKMMAP
+       select LIBUKTIME
+       default n
+
diff --git a/MAINTAINERS.md b/MAINTAINERS.md
new file mode 100644
index 0000000..8a9bdbf
--- /dev/null
+++ b/MAINTAINERS.md
@@ -0,0 +1,11 @@
+Maintainers List
+================
+
+For notes on how to read this information, please refer to `MAINTAINERS.md` in
+the main Unikraft repository.
+
+       LIBPYTORCH-UNIKRAFT
+       M:      Felipe Huici <felipe.huici@xxxxxxxxx>
+       M:      Vlad-Andrei Badoiu <vlad_andrei.badoiu@xxxxxx>
+       L:      minios-devel@xxxxxxxxxxxxx
+       F: *
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..9371af6
--- /dev/null
+++ b/README.md
@@ -0,0 +1,38 @@
+pytorch for Unikraft
+=============================
+
+This is the port of pytorch as a Unikraft external library. It
+depends on the following libraries that need to be added to `Makefile`
+in this order:
+
+* `pthreads`, e.g. `pthread-embedded`
+* `C++ standard library`, e.g.`libcxx`, `libunwind`, `libcxxabi`, `compiler-rt`
+* `libc`, e.g. `newlib`
+*  intel intrinsics, e.g. `intel-intrinsics`a
+* `zlib`
+* `lwip`
+* `python`
+* `pybind11`
+* `pthreadpool`
+* `libfp16`
+* `psimd`
+* `libfxdiv`
+* `protobuf`
+* `eigen`
+* `gemmlowp`
+* `sleef`
+* `onnx`
+
+# Building
+This library uses protobuf to generate some of the source files. The
+version of protobuf on the host machine must be the same with the one
+compile on Unikraft. The easies way to use the binaries from github:
+e.g. 
`https://github.com/protocolbuffers/protobuf/releases/download/v3.10.0/protoc-3.10.0-linux-x86_64.zip`
+and add the binary to the path, e.g. 
`PATH=$PATH:~/path/to/protoc-3.10.0-linux-x86_64/bin/`
+
+* `pyyaml` must be installed, e.g. `pip3 install pyyaml`
+
+Currently, only the C++ frontend has beend tested.
+
+Please refer to the `README.md` as well as the documentation in the `doc/`
+subdirectory of the main unikraft repository.
-- 
2.20.1




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.