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

Re: [UNIKRAFT/LIBTFLITE PATCH 1/2] Library skeleton



Hi George,

Thanks for this series! Please see comments inline.

-- Felipe

On Sun, Apr 12, 2020 at 4:40 PM George Muraru <murarugeorgec@xxxxxxxxx> wrote:
>
> Signed-off-by: George Muraru <murarugeorgec@xxxxxxxxx>
> ---
>  CONTRIBUTING.md |  4 ++++
>  COPYING.md      | 38 ++++++++++++++++++++++++++++++++++++++
>  Config.uk       | 34 ++++++++++++++++++++++++++++++++++
>  MAINTAINERS.md  | 10 ++++++++++
>  README.md       | 12 ++++++++++++
>  5 files changed, 98 insertions(+)
>  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/CONTRIBUTING.md b/CONTRIBUTING.md
> new file mode 100644
> index 0000000..14f6ac6
> --- /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..fd1dc8e
> --- /dev/null
> +++ b/COPYING.md
> @@ -0,0 +1,38 @@
> +License
> +=======
> +
> +Unikraft tensorflowlite wrappers
> +----------------------------------
> +
> +This repository contains wrapper code to build tensorflowlite 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) Year, Institution. 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..38bc5fb
> --- /dev/null
> +++ b/Config.uk
> @@ -0,0 +1,34 @@
> +menuconfig LIBTFLITE
> +    bool "TensorFlowLite - tensorflow lite library"
> +    select LIBCXX
> +    select LIBNEWLIBC
> +    select LIBPOSIX_SYSINFO
> +    select LIBPTHREAD_EMBEDDED
> +    select LIBCOMPILTER_RT
> +    select LIBCOMPILER_RT_ATOMIC
> +    select LIBEIGEN
> +    select LIBFFT2D
> +    select LIBFFT2D_2D
> +    select LIBFLATBUFFERS
> +    select LIBGEMMLOWP
> +    select LIBFARMHASH
> +    default n

This port uses 9pfs to load models. As such, it'd be good to add the
necessary kConfig options to have 9pfs enabled in the build.

> +
> +if LIBTFLITE
> +    config LIBTFLITE_EIGEN_DONT_ALIGN
> +    bool "Do not align the buffers used by eigen library"
> +    default y
> +endif
> +
> +if LIBTFLITE
> +    config LIBTFLITE_BUILD_WITH_RUY
> +    bool "Matrix multiplication library"
> +    default y
> +endif
> +
> +if LIBTFLITE
> +    config LIBTFLITE_BUILD_WITH_NNAPI
> +    bool "Build with Neural Network API"
> +    default n
> +endif
> +
> diff --git a/MAINTAINERS.md b/MAINTAINERS.md
> new file mode 100644
> index 0000000..f53ffe5
> --- /dev/null
> +++ b/MAINTAINERS.md
> @@ -0,0 +1,10 @@
> +Maintainers List
> +================
> +
> +For notes on how to read this information, please refer to `MAINTAINERS.md` 
> in
> +the main Unikraft repository.
> +
> +       LIBGEMMLOWP-UNIKRAFT
> +       M:      George Muraru <murarugeorgec@xxxxxxxxx>
> +       L:      minios-devel@xxxxxxxxxxxxx
> +       F: *
> diff --git a/README.md b/README.md
> new file mode 100644
> index 0000000..a7a1a6d
> --- /dev/null
> +++ b/README.md
> @@ -0,0 +1,12 @@
> +gemmlowp for Unikraft
> +=============================
> +
> +This is the port of gemmlowp as a Unikraft external library. It
> +depends on the following libraries that need to be added to `Makefile`
> +in this order:
> +
> +* CXX standard library, e.g. `libunwind`, `compiler-rt`, `libcxxabi`, 
> `libcxx`
> +* `libc`, e.g. `newlib`

This list of dependencies is incomplete (e.g., Config.uk selects more
than these libs).

> +
> +Please refer to the `README.md` as well as the documentation in the `doc/`
> +subdirectory of the main unikraft repository.

There should be an entire section in this file dedicated to mounting a
9pfs volume, and then on how to run a model. In fact, it'd be good if
you actually provided a main file that specified a model name, and
documented where users could modify this. Unless you have other ideas
(populating all models in Config.uk? something else?)

> --
> 2.17.1
>
>



 


Rackspace

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