diff --git a/Dockerfile.JARVICE b/Dockerfile.JARVICE new file mode 100644 index 000000000..1ab91f6fd --- /dev/null +++ b/Dockerfile.JARVICE @@ -0,0 +1,48 @@ +FROM ubuntu:xenial + +RUN apt-get update && apt-get -y install redir curl bzip2 git iputils-ping libgl1 && apt-get clean +RUN curl -H 'Cache-Control: no-cache' https://raw.githubusercontent.com/nimbix/image-common/master/install-nimbix.sh | bash + +# JARVICE doesn't support straight Debian containers, so install Anaconda 2 +# into this Ubuntu one rather than use FROM continuumio/anaconda above +WORKDIR /tmp +ENV PATH=/opt/anaconda2/bin:${PATH} +RUN curl -O https://repo.anaconda.com/archive/Anaconda2-5.1.0-Linux-x86_64.sh && bash ./Anaconda2-5.1.0-Linux-x86_64.sh -b -p /opt/anaconda2 && rm -f Anaconda2-5.1.0-Linux-x86_64.sh && conda update -n base conda && conda clean -y --all + +# helper in case someone runs sudo conda +COPY JARVICE/conda /usr/bin/conda +RUN ln -s /opt/anaconda2/etc/profile.d/conda.sh /etc/profile.d/conda.sh + +# deploy the Anaconda EULA so that JARVICE prompts the end user to accept it, +# since we accepted it in batch above +RUN mkdir -p /etc/NAE && cp -f /opt/anaconda2/LICENSE.txt /etc/NAE/license.txt + +# Create the ml-suite Anaconda Virtual Environment... +# see: https://github.com/Xilinx/ml-suite/blob/v1.0-ea/docs/tutorials/start-anaconda.md +RUN conda create -y --name ml-suite python=2.7 jupyter caffe pydot pydot-ng graphviz -c conda-forge && conda clean -y --all + +# Deploy this repository into the container +COPY --chown=nimbix:nimbix . /usr/src/ml-suite/ + +# install Git LFS +#RUN apt-get update && apt-get -y install software-properties-common && apt-add-repository -y ppa:git-core/ppa && curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash && apt-get install git-lfs && apt-get clean && git lfs install + + +# clone ml-suite from Xilinx to /usr/src, then link it into $HOME in skep +#WORKDIR /usr/src +#ENV XILINX_ML_SUITE_BRANCH master +#ENV XILINX_ML_SUITE_CLONE_TIMESTAMP "Tue Jul 24 14:37:45 UTC 2018" +#RUN git clone -b ${XILINX_ML_SUITE_BRANCH} https://github.com/Xilinx/ml-suite.git && cd ml-suite && git lfs install --local && make -C apps/yolo/nms && cd .. && chown -R nimbix:nimbix ml-suite +RUN ln -s /usr/src/ml-suite /etc/skel/ml-suite +#WORKDIR /data + +# Fix up - temporarily link in anaconda2 so we don't have to modify the script +RUN ln -s /opt/anaconda2 ~/anaconda2 && bash /etc/skel/ml-suite/fix_caffe_opencv_symlink.sh && rm -f ~/anaconda2 + +# motd and AppDef, URL override, and launcher for notebooks +COPY JARVICE/motd /etc/motd +COPY JARVICE/AppDef.json /etc/NAE/AppDef.json +COPY JARVICE/url.txt /etc/NAE/url.txt +COPY JARVICE/ml-notebooks /usr/local/bin/ml-notebooks +RUN curl --fail -X POST -d @/etc/NAE/AppDef.json https://api.jarvice.com/jarvice/validate + diff --git a/JARVICE/AppDef.json b/JARVICE/AppDef.json new file mode 100644 index 000000000..7585ddc07 --- /dev/null +++ b/JARVICE/AppDef.json @@ -0,0 +1,33 @@ +{ + "name": "Xilinx ML Suite", + "description": "Interactive environment for FPGA machine learning development and testing using the Xilinx ML Suite - https://github.com/Xilinx/ml-suite", + "author": "Xilinx", + "licensed": true, + "classifications": [ + "Software Development/Software Testing", + "Machine Learning" + ], + "machines": [ + "nx5" + ], + "vault-types": [ + "FILE", + "BLOCK", + "BLOCK_ARRAY", + "OBJECT" + ], + "commands": { + "Notebook": { + "path": "/usr/local/bin/ml-notebooks", + "interactive": true, + "name": "Notebook", + "description": "Launch an interactive Jupyter Notebook session and connect directly in your browser. Connection address and credentials for SSH will also appear in your web browser once available.", + "parameters": {} + } + }, + "image": { + "type": "image/png", + "data": "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" + }, + "id": "jarvice-xilinx_ml_suite" +} diff --git a/JARVICE/LICENSE b/JARVICE/LICENSE new file mode 100644 index 000000000..14b155789 --- /dev/null +++ b/JARVICE/LICENSE @@ -0,0 +1,29 @@ +BSD 3-Clause License + +Copyright (c) 2018, Nimbix, Inc. +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 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/JARVICE/README.md b/JARVICE/README.md new file mode 100644 index 000000000..321a9c71a --- /dev/null +++ b/JARVICE/README.md @@ -0,0 +1,3 @@ +# Xilinx ML Suite development environment for JARVICE +This directory contains the scripts and metadata files used while building the application environment container for deploying on Nimbix's JARVICE supercomputing cloud platform. See ```../Dockerfile.JARVICE``` for the actual Dockerfile used for this container build. + diff --git a/JARVICE/conda b/JARVICE/conda new file mode 100755 index 000000000..4f9b1fbcf --- /dev/null +++ b/JARVICE/conda @@ -0,0 +1,4 @@ +#!/bin/sh + +exec /opt/anaconda2/bin/conda "$@" + diff --git a/JARVICE/ml-notebooks b/JARVICE/ml-notebooks new file mode 100755 index 000000000..d856c7134 --- /dev/null +++ b/JARVICE/ml-notebooks @@ -0,0 +1,9 @@ +#!/bin/bash -l + +sudo service ssh start +sudo redir --lport=443 --cport=8443 --caddr=localhost & +cd ~/ml-suite +conda activate ml-suite +source ./overlaybins/setup.sh nimbix +exec jupyter notebook --notebook-dir=notebooks --no-browser --port=8443 --certfile=/etc/JARVICE/cert.pem --NotebookApp.token= + diff --git a/JARVICE/motd b/JARVICE/motd new file mode 100644 index 000000000..7625d5581 --- /dev/null +++ b/JARVICE/motd @@ -0,0 +1,10 @@ + +The Xilinx ML Suite git repository is cloned in ~/ml-suite + +For more information, please see: + https://github.com/Xilinx/ml-suite/ + +- The ml-suite conda environment has already been set up and can be activated +- By using this environment you agree to the terms of the Anaconda EULA: + /opt/anaconda2/LICENSE.txt + diff --git a/JARVICE/url.txt b/JARVICE/url.txt new file mode 100644 index 000000000..ace0f3c50 --- /dev/null +++ b/JARVICE/url.txt @@ -0,0 +1 @@ +https://%PUBLICADDR%/