Environments

What is Environments?

Cordatus AI Platform provides you all popular state-of-the-art Deep Learning and Machine Learning frameworks and it's Client App lets you run them without any extra installation. The platform gives you access to the NVIDIA NGC Containers and Cordatus Containers.

Frameworks

Framework Support

The platform currently includes Tensorflow, PyTorch, Caffe, MXNet, MS CNTK, Chainer, OpenCV, DLib frameworks/libraries. If you need a customized development environment, please contact us.

Since Cordatus AI is based on Docker containers, everything you will need is already packed and optimized for NVIDIA CUDA®. All you need to start developing your very own custom AI algorithms is to run them from Cordatus Client App.

Frameworks

You can choose between the environments provided by Cordatus Team and NVIDIA NGC.

Difference

Since Cordatus Team is focused on developing optimized AI algorithms on NVIDIA Jetson platforms; Tensorflow, PyTorch, MXNet, OpenCV and DLib images with by Cordatus suffix has Jetson-optimized versions too.

Warning

In order to use environments with by NVIDIA suffix, you need to register and login to NVIDIA NGC.

Each environment has their versionings and compatible platforms information. Each box displays if that environment has GPU support and platform support on the bottom-right side of the box.

Sample Env

If you need further reading and information regarding to each environment, you can just simply click on the headers inside the boxes.

Sample Env

Hint

You can inspect framework, OS and library versions of each environment from within the Versions tab.

Sample Env

Start Your First Environment

Environments can be started by either using Cordatus Web Interface or Cordatus Client App.

Warning

Each method requires you to have Cordatus Client App installed on your device.

  • Starting environments from Cordatus Web Interface

    In order to start your environments from web interface;

First start Cordatus Client App on your device via terminal by entering cordatus command or from Ubuntu GUI. Welcome

Choosing the environment

Once you open the client application, open Cordatus Web Interface from your browser and navigate to the Containers > Environments tab. Environments

You can filter environments by their includings such as deep learning frameworks (Tensorflow, PyTorch, etc.) and libraries (CUDA®, cuDNN®, etc.).

Let's continue to this tutorial with the Tensorflow environment.

Environments

When you choose a category, every environment which includes that framework or library will be listed as shown below: Environments

Next, click Tensorflow by Cordatus header inside the first box and you will see the details of the environment. Sample Env

Device selection

DEPLOYMENT

To start deploying environments on your devices, simply click Start Environment on Your Devices button under the main header.

Choose a device that you want deploy the environment on by simply clicking on the row. Environments

Check if your device succesfully selected and then click NEXT STEP Environments

Environment version selection

Select an environment version from the list and click NEXT STEP. Environments

Info

  • tf13 & tf2.0: Tensorflow 1.13 & Tensorflow 2.0.0

  • cuda10: CUDA® 10.0

  • cudnn7: cuDNN® 7.5.0

  • py3: Python 3.6

  • gpu: Runs on GPU

Jupyter Settings

In this step, you can choose whether if JupyterLab will start within the environment or not. For the sake of explanation, we will start the Jupyter for this tutorial. In order to do that, simply switch-on the Jupyter button. Environments

When you switch-on the Jupyter button, you will be prompted for a few entries.

Info

Password: If you want to protect your development environment, provide a secure password. Everytime you re-open JupyterLab, you will be asked to enter this password.

Token: You can also use token authorization to protect your environment. Simply click Generate Token button and Cordatus will provide you a secure token. Do not forget to note it down!

Jupyter Starting Point: You can specify a working directory for Jupyter. When your environment starts, the Jupyter will also start within the specified directory.

When you are done with the settings, click NEXT STEP button.

DON'T

If you specify a random non-existing directory, Jupyter will fail to start.

You can disable password or token protection for your Jupyter environment so when you start the environment, Jupyter will not ask for your password or token.

Environments

Environment name and folder binding

Next, provide a name for your environment and click NEXT STEP. If you don't provide it, Docker will assign a random name for your environment.

Environments

Binding Options

If you want to learn more about Binding option, you can reference to this part of the documentation.

Review and deploy

Now you can review your selections within this screen. Environments

If everything looks OK, you can now click on the START ENVIRONMENT ON <device_name> button.

Accessing to JupyterLab from environment page

Now your environment and JupyterLab should be started and you will be redirected to Control Panel pane of the environment on Cordatus Web Interface.

Environments

To access to your Jupyter environment, click on Jupyter button and your browser will redirect you to your Jupyter environment.

Accessing to JupyterLab from Devices tab

To access and manage containers from Cordatus Web Interface, navigate to Devices tab from top bar.

Next, navigate to Containers pane. Environments

You can simply click on the Jupyter button under the Actions column.

Cordatus Remote Access Tunnel

Cordatus Remote Access Tunnel

If you start an environment with Jupyter via Cordatus Web Interface, you will have a custom global web address to access your Jupyter environment from anywhere and anytime.

Since we started our environment with Jupyter via Cordatus Web Interface, we can access our Jupyter environment globally.

In order to access our development environment, simply click on the Jupyter button on the middle-right side of the page and you will be redirected to Jupyterlab's home screen. Environments

Global Web Address

You can now copy the web address from the search bar and access to your Jupyter from everywhere and anytime.

eg. https://fuzzy-xxxx-70.crdts.cc/lab? (This address will be different for you)

  • Starting environments from Cordatus Client App

Determine the environment

From the Home () screen of the Cordatus Client App, navigate to () tab from the top-left side of the app. Environments

From the environments list, choose one for your needs and click on Create Environment button placed inside the related box. Environments

Let's continue to this tutorial with the Tensorflow environment.

Next, you can specify a name for your environment under Environment Name. If you don't provide a name, Docker will assign a random one.

Camera Utilization

You can also select a camera from this menu that will be utilized by your environment. This enables you to use single or multiple cameras within your AI applications.

Environments

Camera testing

Once you select a camera, you can test it if it works properly at the moment by simply clicking on the Test Camera button. Environments

Success

If your camera works properly, you should now see your camera stream within a pop-up.

Environments

Environment version selection

Once you are done with the camera, you can scroll down and SELECT the environment version that fits your requirements. Environments

Check Marks?

: This version of the image is already downloaded on your system.

Jupyter settings

In this step, you can choose whether if JupyterLab will start within the environment or not. For the sake of explanation, we will start the Jupyter for this tutorial. In order to do that, simply switch-on the Jupyter button. Environments

When you switch-on the Jupyter button, you will be prompted for a few entries.

Info

Password: If you want to protect your development environment, provide a secure password. Everytime you re-open JupyterLab, you will be asked to enter this password.

Token: You can also use token authorization to protect your environment. Simply click Generate Token button and Cordatus will provide you a secure token. Do not forget to note it down!

You can disable password or token protection for your Jupyter environment so when you start the environment, Jupyter will not ask for your password or token.

When you are done with the settings, click NEXT STEP button.

Environments

Folder binding

You can also bind local volumes to your environment. This enables you to access your necessary assets like datasets, pre-trained models, codes etc. from within your environment. In order to do this, simply click on the Folders button. Environments

Warning

In order to test this feature, create folder named cordatus_bind under /home/$USER directory and copy any kind of file inside it.

When you click Browse button, it will open a file dialog. Now select the cordatus_bind folder you just created from the /home/$USER directory and click OK from the upper-right side of the dialog window.

For the Docker Target Path input area, you need to specify a full path. This will create the specified directory and the folder inside your environment upon start.

Binding Example

Host path: /home/$USER/cordatus_bind

Target path: /root/cordatus_bind

Hint

It is a good practice to keep target folder's name same as the folder name you created on the host device.

Review and deploy

Once you are done with the above settings, click on the blue Play button from the lower-right side of the screen.

Then click on the Create now button.

Accessing to JupyterLab from Cordatus App

Now your environment and JupyterLab should be started. Also you should be able to see the second environment named as second-env under the Contents header on the Home () screen of the app.

To access to your Jupyter environment, simply click on the Jupyter () button. Environments

As you can see in the above picture, our second-env is listed as a container and it's status is Running.

Buttons

: Starts the browser and opens JupyterLab.

: Starts a bash terminal within the environment. You can use it exactly the same way as Ubuntu terminal.

: Stops the environment.

: Starts the environment.

: Deletes the environment.

Cordatus Remote Access Tunnel

Cordatus Remote Access Tunnel

If you start an environment with Jupyter via Cordatus Client App, you can create a global web address to access your Jupyter environment from anywhere and anytime.

Since we started our environment with Jupyter via Cordatus Client App, we can create a global web address to access our Jupyter environment globally.

In order to create a global web address, navigate to () tab and select Containers. Environments

Our environment second-env is listed under containers and it's status is Running. Navigate to Action column and click () button.

Once you prompted with Are you sure? question, click on the Create public URL button.

Now you should be able to see Copy to clipboard! () button appears under the URL column. Click on the () button and Cordatus will automatically copy the URL for you. Environments

Global Web Address

You can now paste the URL to search bar and access to your Jupyter from everywhere and anytime.

eg. https://slimy-xxxx-90.crdts.cc/lab? (This address will be different for you)

Environments