Ajeet Raina Docker Captain, ARM Innovator & Docker Bangalore Community Leader.

Getting Started with Docker on Seeed Studio’s reComputer Powered by NVIDIA Jetson

5 min read

Last week, I was lucky enough to get access to the latest Seeed Studio reComputer J1020 edge AI device for the first time. The reComputer J1020 is powered by Jetson Nano development kit. It is a small, hand-sized powerful computer that brings the power of modern AI for embedded developers. This $259 small device  is built around the NVIDIA Jetson Nano system-on-module and designed for Edge AI applications. This device lets you run multiple neural networks in parallel for applications like image classification, object detection, segmentation, and speech processing. With rich extension modules, industrial peripherals, and thermal management, reComputer J1020 is ready to help you accelerate and scale the next-gen AI product by deploying popular DNN models and ML frameworks to the edge and inferencing with high performance, for tasks like real-time classification and object detection, pose estimation, semantic segmentation, and natural language processing (NLP).

What’s unique about reComputer J1020?

Seeed Studio reComputer J1020 comes with everything you need to start building your AI-based application. Compared to the Jetson Nano development kit supplied by NVIDIA , it doesn’t require flashing the operating system on an SD card from scratch. It comes with the Ubuntu OS already pre-installed on 16 GB eMMC.  The reComputer Pre-installed Jetpack 4.6  includes a board support package (BSP), Linux OS, NVIDIA CUDA, cuDNN, and TensorRT software libraries for deep learning, computer vision, GPU computing, multimedia processing, etc. It supports the entire Jetson software stack and various developer tools for building fast and robust AI applications provided by Seeed Edge AI partners.

Few Notable Features includes:

  • 128 NVIDIA CUDA® cores – deliver 0.5 TFLOPs (FP16) to run AI frameworks and models for applications like image classification, object detection, segmentation, and speech processing.
  • Equipped with Armv8 Processor
  • Comes with NVIDIA Tegra X1(nvgpu)/Integrated
  • Disk size of 16GB
  • 4GB Memory
  • 64-bit OS type
  • Ubuntu 18.04.5
  • Seeed Studio reComputer comes with JetPack 4.6 system already installed
  • You don’t need to flash SD card, it comes with Operating System already installed
  • CUDA 10.2.300 supported
  • CUDA Architecture: 5.3
  • OpenCV version: 4.1.1

Learn more about Hardware Layout of reComputer

Components of reComputer

It comes with the following part list:

  • NVIDIA Jetson Nano x1
  • Seed Reference Carrier Board x1
  • Passive Aluminum Heatsink x1
  • Aluminium case x1
  • 12V power adapter x1
  • 4x USB 3.0 Ports
  • 2x HDMI Ports
  • MIPI-CSI Camera Connector
  • Control and UART Header
  • 40-pin Expansion Header(GPIO, I2C, Header)
  • 260-Pin SODIMM
  • MicroUSB
  • Gigabit Ethernet Port
  • LED Lights

Hardware Setup:

To get started, you will require the below minimal connectors in place:

  • Power cable
  • Wifi Module / Gigabit Ethernet Cable
  • USB Receiver for WiFi Keyboard and Mouse
  • HDMI connectivity to your Display

Running CUDA deviceQuery

$ cd /usr/local/cuda/samples/1_Utilities/deviceQuery
$ sudo make 
$ ./deviceQuery

Here’s the results:


./deviceQuery Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking
Detected 1 CUDA Capable device(s)

Device 0: "NVIDIA Tegra X1"
  CUDA Driver Version / Runtime Version          10.2 / 10.2
  CUDA Capability Major/Minor version number:    5.3
  Total amount of global memory:                 3956 MBytes (4148273152 bytes)
  ( 1) Multiprocessors, (128) CUDA Cores/MP:     128 CUDA Cores
  GPU Max Clock rate:                            922 MHz (0.92 GHz)
  Memory Clock rate:                             13 Mhz
  Memory Bus Width:                              64-bit
  L2 Cache Size:                                 262144 bytes
  Maximum Texture Dimension Size (x,y,z)         1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096)
  Maximum Layered 1D Texture Size, (num) layers  1D=(16384), 2048 layers
  Maximum Layered 2D Texture Size, (num) layers  2D=(16384, 16384), 2048 layers
  Total amount of constant memory:               65536 bytes
  Total amount of shared memory per block:       49152 bytes
  Total number of registers available per block: 32768
  Warp size:                                     32
  Maximum number of threads per multiprocessor:  2048
  Maximum number of threads per block:           1024
  Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
  Max dimension size of a grid size    (x,y,z): (2147483647, 65535, 65535)
  Maximum memory pitch:                          2147483647 bytes
  Texture alignment:                             512 bytes
  Concurrent copy and kernel execution:          Yes with 1 copy engine(s)
  Run time limit on kernels:                     Yes
  Integrated GPU sharing Host Memory:            Yes
  Support host page-locked memory mapping:       Yes
  Alignment requirement for Surfaces:            Yes
  Device has ECC support:                        Disabled
  Device supports Unified Addressing (UVA):      Yes
  Device supports Compute Preemption:            No
  Supports Cooperative Kernel Launch:            No
  Supports MultiDevice Co-op Kernel Launch:      No
  Device PCI Domain ID / Bus ID / location ID:   0 / 0 / 0
  Compute Mode:
     < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 10.2, CUDA Runtime Version = 10.2, NumDevs = 1

Result = PASS

Running Docker on reComputer Jetson Nano

Docker is a suite of software development tools for creating, sharing and running individual containers. It is a containerization platform that packages your application and all its dependencies together in the form of a docker container to ensure that your application works seamlessly in any environment. Docker Container is a standardized unit which can be created on the fly to deploy a particular application or environment.

Developing any kind of application today is complex. It’s  much more than writing code. There are multitude of programming languages, web frameworks,  complex architectures, and discontinuous interfaces between tools for each lifecycle stage and that creates enormous complexity. Docker simplifies and accelerates your workflow, while giving developers the freedom to innovate with their choice of tools, application stacks, and deployment environments for each project. It enables you to separate your applications from your infrastructure so you can deliver software quickly.

Docker is officially supported on reComputer J1020, a Jetson Nano powered development kit. The kit comes with the latest version of Docker pre-installed by default. You can verify the version of Docker by running the following command:

sudo docker version

Client: Docker Engine - Community
 Cloud integration: v1.0.25
 Version:           20.10.17
 API version:       1.41
 Go version:        go1.17.11
 Git commit:        100c701
 Built:             Mon Jun  6 23:02:19 2022
 OS/Arch:           linux/arm64
 Context:           default
 Experimental:      true


Server: Docker Engine - Community
 Engine:
  Version:          20.10.17
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.17.11
  Git commit:       a89b842
  Built:            Mon Jun  6 23:00:46 2022
  OS/Arch:          linux/arm64
  Experimental:     false
 containerd:
  Version:          1.6.6
  GitCommit:        10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
 runc:
  Version:          1.1.2
  GitCommit:        v1.1.2-0-ga916309
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

Installing Docker Compose

reComputer Jetson doesn’t come with Docker compose installed. You can follow the below steps to install Docker Compose in your system:

export DOCKER_COMPOSE_VERSION=2.6.0
sudo apt-get install libhdf5-dev
sudo apt-get install libssl-dev
sudo pip3 install docker-compose=="${DOCKER_COMPOSE_VERSION}"
apt install python3
apt install python3-pip
pip install docker-compose

Install the latest version of CUDA toolkit

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/sbsa/cuda-ubuntu1804.pin
sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.3.1/local_installers/cuda-repo-ubuntu1804-11-3-local_11.3.1-465.19.01-1_arm64.deb
sudo dpkg -i cuda-repo-ubuntu1804-11-3-local_11.3.1-465.19.01-1_arm64.deb
sudo apt-key add /var/cuda-repo-ubuntu1804-11-3-local/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda

Verify Docker runtime

docker info | grep runtime

 Runtimes: nvidia runc io.containerd.runc.v2 io.containerd.runtime.v1.linux

Running Your first Python Container

Let us test drive a simple Arm-based Python Docker image by running the below command:

sudo docker run arm64v8/python:slim ls

Monitoring CPU, GPU and Memory using JTOP Docker container

In this section, you will see how to set up a system monitoring utility to monitor CPU, RAM and GPU. We will be using the JTOP utility. Jtop is a system monitoring utility that runs on the terminal and sees and controls real time the status of your reComputer Jetson Nano kit, CPU, RAM, GPU status and frequency. You will see how you can containerise the utility. Let’s get started –

First, create a Dockerfile with the following content:

FROM python:3-alpine

RUN apk update \

    && apk --no-cache add bash \

    && pip install jetson-stats \

    && rm -rf /var/cache/apk/*

The first line shows that we have picked up python:3-alpine as a base image. The second line install jetson-stats and dependent packages

 Building the JTOP Docker Image

Use docker build CLI to build the Docker image

docker build -t ajeetraina/jetson-stats-nano .

 

Running the JTOP Docker Container

It’s time to run the Docker container by passing –gpus as a parameter and mounting it to jtop socket.

docker run --rm -it --gpus all -v /run/jtop.sock:/run/jtop.sock ajeetraina/jetson-stats-nano jtop

You will see the following results:

In our next blog post, we will see how to implement vehicle identification using OpenDatacam running inside a Docker container. Stay tuned!

Do check out the following application example with tutorials!

Have Queries? Join https://launchpass.com/collabnix

Ajeet Raina Docker Captain, ARM Innovator & Docker Bangalore Community Leader.

62 Replies to “Getting Started with Docker on Seeed Studio’s reComputer Powered…”

  1. You actually make it seem so easy with your presentation but I find this matter to be actually something that I think I would never understand. It seems too complex and extremely broad for me. I am looking forward for your next post, I’ll try to get the hang of it!

  2. I’ve been browsing online greater than 3 hours these days, but I by no means discovered any fascinating article like yours. It is lovely worth sufficient for me. Personally, if all site owners and bloggers made just right content as you did, the internet will be much more helpful than ever before.

  3. Hi there! This post couldn’t be written any better! Reading through this post reminds me of my previous room mate! He always kept talking about this. I will forward this article to him. Pretty sure he will have a good read. Thank you for sharing!

  4. Hello there, You have done an incredible job. I will certainly digg it and personally suggest to my friends. I’m confident they will be benefited from this web site.

  5. Can I just say what a relief to seek out someone who really knows what theyre talking about on the internet. You definitely know the best way to carry an issue to light and make it important. More folks need to read this and understand this side of the story. I cant believe youre no more common because you positively have the gift.

  6. After study a few of the blog posts on your website now, and I truly like your way of blogging. I bookmarked it to my bookmark website list and will be checking back soon. Pls check out my web site as well and let me know what you think.

  7. What¦s Going down i am new to this, I stumbled upon this I have found It positively useful and it has helped me out loads. I’m hoping to contribute & help different customers like its aided me. Good job.

  8. I’m still learning from you, while I’m trying to reach my goals. I absolutely liked reading everything that is posted on your website.Keep the stories coming. I loved it!

  9. Wonderful blog! I found it while searching on Yahoo News. Do you have any suggestions on how to get listed in Yahoo News? I’ve been trying for a while but I never seem to get there! Thank you

  10. Fantastic goods from you, man. I have understand your stuff previous to and you’re just too great. I actually like what you’ve acquired here, certainly like what you are saying and the way in which you say it. You make it enjoyable and you still care for to keep it sensible. I cant wait to read much more from you. This is really a great website.

  11. Fantastic beat ! I wish to apprentice while you amend your site, how can i subscribe for a blog web site? The account helped me a acceptable deal. I had been tiny bit acquainted of this your broadcast offered bright clear concept

  12. Excellent read, I just passed this onto a friend who was doing some research on that. And he actually bought me lunch because I found it for him smile Thus let me rephrase that: Thanks for lunch! “We steal if we touch tomorrow. It is God’s.” by Henry Ward Beecher.

  13. Oh my goodness! an amazing article dude. Thanks However I’m experiencing subject with ur rss . Don’t know why Unable to subscribe to it. Is there anybody getting similar rss downside? Anyone who knows kindly respond. Thnkx

  14. Hi, I think your site might be having browser compatibility issues. When I look at your website in Safari, it looks fine but when opening in Internet Explorer, it has some overlapping. I just wanted to give you a quick heads up! Other then that, fantastic blog!

  15. Thanks for some other magnificent post. Where else may anybody get that kind of information in such an ideal approach of writing? I’ve a presentation next week, and I am on the look for such info.

  16. I believe that is among the such a lot important information for me. And i’m glad reading your article. But wanna observation on some general issues, The site style is perfect, the articles is in reality great : D. Good process, cheers

  17. I have been absent for some time, but now I remember why I used to love this blog. Thank you, I will try and check back more frequently. How frequently you update your website?

  18. Can I just say what a relief to find someone who actually knows what theyre talking about on the internet. You definitely know how to bring an issue to light and make it important. More people need to read this and understand this side of the story. I cant believe youre not more popular because you definitely have the gift.

  19. Woah! I’m really loving the template/theme of this site. It’s simple, yet effective. A lot of times it’s hard to get that “perfect balance” between usability and appearance. I must say that you’ve done a great job with this. Also, the blog loads extremely fast for me on Firefox. Outstanding Blog!

  20. I’m still learning from you, while I’m making my way to the top as well. I definitely liked reading all that is posted on your blog.Keep the information coming. I liked it!

  21. Fantastic website you have here but I was curious about if you knew of any user discussion forums that cover the same topics talked about here? I’d really love to be a part of group where I can get suggestions from other experienced people that share the same interest. If you have any recommendations, please let me know. Appreciate it!

  22. Hmm it appears like your website ate my first comment (it was extremely long) so I guess I’ll just sum it up what I submitted and say, I’m thoroughly enjoying your blog. I as well am an aspiring blog writer but I’m still new to the whole thing. Do you have any tips for beginner blog writers? I’d genuinely appreciate it.

  23. wonderful put up, very informative. I wonder why the opposite specialists of this sector don’t understand this. You must proceed your writing. I am confident, you’ve a huge readers’ base already!

  24. I really like your blog.. very nice colors & theme. Did you design this website yourself or did you hire someone to do it for you? Plz reply as I’m looking to design my own blog and would like to find out where u got this from. appreciate it

  25. I love your blog.. very nice colors & theme. Did you make this website yourself or did you hire someone to do it for you? Plz respond as I’m looking to construct my own blog and would like to know where u got this from. thanks a lot

  26. Nice post. I learn something more challenging on different blogs everyday. It will always be stimulating to read content from other writers and practice a little something from their store. I’d prefer to use some with the content on my blog whether you don’t mind. Natually I’ll give you a link on your web blog. Thanks for sharing.

  27. I have been exploring for a little bit for any high quality articles or weblog posts in this sort of house . Exploring in Yahoo I eventually stumbled upon this web site. Reading this information So i am satisfied to exhibit that I have an incredibly just right uncanny feeling I came upon just what I needed. I such a lot without a doubt will make certain to don’t omit this site and give it a look on a relentless basis.

  28. I would like to thank you for the efforts you’ve put in writing this web site. I’m hoping the same high-grade website post from you in the upcoming also. Actually your creative writing abilities has inspired me to get my own site now. Really the blogging is spreading its wings rapidly. Your write up is a great example of it.

  29. You can certainly see your enthusiasm within the work you write. The sector hopes for more passionate writers such as you who aren’t afraid to mention how they believe. Always go after your heart.

  30. Throughout this great scheme of things you receive an A just for effort and hard work. Exactly where you lost us was first in the particulars. You know, people say, details make or break the argument.. And it couldn’t be more true here. Having said that, allow me reveal to you just what did deliver the results. Your authoring is actually highly persuasive and this is possibly the reason why I am taking the effort in order to comment. I do not really make it a regular habit of doing that. Secondly, despite the fact that I can certainly see a leaps in reasoning you make, I am not convinced of how you appear to connect the ideas that produce your final result. For right now I shall subscribe to your position however wish in the near future you connect the dots much better.

  31. This is the right blog for anyone who wants to find out about this topic. You realize so much its almost hard to argue with you (not that I actually would want…HaHa). You definitely put a new spin on a topic thats been written about for years. Great stuff, just great!

  32. I cling on to listening to the news speak about getting boundless online grant applications so I have been looking around for the best site to get one. Could you advise me please, where could i acquire some?

  33. Admiring the commitment you put into your site and in depth information you provide. It’s nice to come across a blog every once in a while that isn’t the same outdated rehashed material. Great read! I’ve saved your site and I’m including your RSS feeds to my Google account.

  34. Hello there, just become aware of your weblog thru Google, and found that it is really informative. I am going to be careful for brussels. I will appreciate in case you continue this in future. Many other people will likely be benefited from your writing. Cheers!

  35. What i don’t understood is actually how you’re not really much more well-liked than you may be right now. You’re so intelligent. You realize therefore significantly relating to this subject, produced me personally consider it from numerous varied angles. Its like women and men aren’t fascinated unless it is one thing to accomplish with Lady gaga! Your own stuffs excellent. Always maintain it up!

Leave a Reply

Your email address will not be published.

© Copyright Collabnix Inc

Built for Collabnix Community, by Community