jetson-nano-wheels / jetson-nano-wheels

Unofficial wheels for some machine-learning Python libraries, for the Nvidia Jetson Nano.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Jetson Nano wheels

Unofficial wheels for some machine-learning Python libraries, for the Nvidia Jetson Nano.

If you already know what the Jetson Nano and Python wheels are, you can skip to the downloads or see my awesome list of similar projects below.

What?

The Nvidia Jetson Nano is a small computer with a GPU that is particularly suited to developing and running machine learning (ML), neural networks, and other artificial intelligence (AI) applications.

The Nano comes with Jetpack, a software developer kit (SDK) that is available on all Nvidia Jetson products. Jetpack includes the Jetson Linux Driver Package (L4T) which provides fundamental software for the Jetson board including a booloader and Nvidia drivers, and an operating system based on the Linux operating system (kernel 4.9) and Ubuntu 18.04. The Jetson Nano provides Nvidia's Compute Unified Device Architecture (CUDA) which gives programmers a consistent way to produce code that runs rapidly and in parallel, by taking advantage of the GPU's capabilities.

Python is a programming language that is very popular with ML/AI developers.

There are many freely-available Python software packages that are optimised for ML/AI development. The packages are distributed in a variety of formats, including "wheels", which are a ready-to-use ("built") form of packages that don't require building. They contain code that can simply be moved to the correct location on the destination computer. This makes wheels faster to install (and often quicker to download) than other forms of Python packages including plain source code. Wheels also aim for more consistency, helping to ensure that a computer is in a predictable state after they are installed.

Why?

Unfortunately, the above circumstances produce a complicated set of inter-related dependencies. Certain libraries require certain versions of Python or certain versions of CUDA; some of these dependencies are incompatible with each other; and so on. In addition, similar inter-dependencies relate to the build environment, i.e. Ubuntu 18.04 with Jetpack and L4T, which in turn impact the Python packaging environment. This forces developers to engage in time-consuming trial-and-error installation of various versions of Python and Ubuntu-related libraries in order to find a working combination. This can take many days.

The wheels in these projects are offered to save developers from this frustration. The aim is to provide a straightforward and rapid way to get started with machine learning on the Jetson Nano with Python.

Which AI/ML libraries?

For my personal projects, the following combination works well, and is unlikely to change unless there are specific benefits for my work. I simply don't have the time to explore and maintain other combinations.

  • Python 3.6.x and/or Python 3.7.x
  • numpy 1.19.4 (Python 3.6 only)
  • numpy 1.20.3 (Python 3.7 only)
  • pycuda 2021.1
  • pytools 2021.2.8
  • scipy 1.5.4

Why this combination?

Basically, lots of trial and error. Here are some of the issues and inter-dependencies I encoutered. The following was my experience on my Jetson running a fresh installation of Jetpack 4.6 with L4T 32.6.1. My experience may not be definitive and I'm happy to be corrected.

  • pycuda 2021.1 only works with Python 3.6, not with Python 3.7 or 3.8.
  • Python 3.6 restricts scipy to maximum version 1.5.4.
  • scipy 1.5.4 requires numpy>=1.14.5

But:

Further:

Downloads

Visit the page for each project and follow the instructions there:

Awesome list of similar projects

Are awesome lists still a thing? 😎

Disclaimer

As with many other open-source projects, everything in the Jetson Nano Wheels projects are offered "as-is", without warranty of any kind, express or implied. All contributors disclaim any liability for any direct, indirect, incidental, consequential or other damages however caused, arising in any way from, or in connection with, the use of the software or any other dealings in the software. See the LICENSE file in each project for further details.

This project is unofficial, and has nothing to do with Nvidia whatsoever.

What's the logo?

It's a diagram of a dendrimer, a polymer with a highly ordered, branching structure, also known as a cascade molecule. It seemed appropriate 😄

About

Unofficial wheels for some machine-learning Python libraries, for the Nvidia Jetson Nano.

License:GNU General Public License v3.0