All Projects → NervanaSystems → Neon

NervanaSystems / Neon

Licence: apache-2.0
Intel® Nervana™ reference deep learning framework committed to best performance on all hardware

Programming Languages

python
139335 projects - #7 most used programming language
CSS
56736 projects
perl
6916 projects
c
50402 projects - #5 most used programming language
Cuda
1817 projects
Makefile
30231 projects

Projects that are alternatives of or similar to Neon

Atreugo
High performance and extensible micro web framework. Zero memory allocations in hot paths.
Stars: ✭ 661 (-82.85%)
Mutual labels:  performance, fast
Foxify
The fast, easy to use & typescript ready web framework for Node.js
Stars: ✭ 138 (-96.42%)
Mutual labels:  performance, fast
Fast Elixir
💨 Writing Fast Elixir 😍 -- Collect Common Elixir idioms.
Stars: ✭ 924 (-76.03%)
Mutual labels:  performance, fast
Orientdb
OrientDB is the most versatile DBMS supporting Graph, Document, Reactive, Full-Text and Geospatial models in one Multi-Model product. OrientDB can run distributed (Multi-Master), supports SQL, ACID Transactions, Full-Text indexing and Reactive Queries. OrientDB Community Edition is Open Source using a liberal Apache 2 license.
Stars: ✭ 4,394 (+13.98%)
Mutual labels:  performance, fast
Router
Router implementation for fasthttp
Stars: ✭ 234 (-93.93%)
Mutual labels:  performance, fast
Geotic
Entity Component System library for javascript
Stars: ✭ 97 (-97.48%)
Mutual labels:  performance, fast
Xseries
Library for cross-version Minecraft Bukkit support and various efficient API methods.
Stars: ✭ 109 (-97.17%)
Mutual labels:  performance, fast
Router
⚡️ A lightning fast HTTP router
Stars: ✭ 158 (-95.9%)
Mutual labels:  performance, fast
Bombardier
Fast cross-platform HTTP benchmarking tool written in Go
Stars: ✭ 2,952 (-23.42%)
Mutual labels:  performance, fast
Fiber
⚡️ Express inspired web framework written in Go
Stars: ✭ 17,334 (+349.65%)
Mutual labels:  performance, fast
DynAdjust
Least squares adjustment software
Stars: ✭ 43 (-98.88%)
Mutual labels:  fast, mkl
Arm Vo
Efficient monocular visual odometry for ground vehicles on ARM processors
Stars: ✭ 115 (-97.02%)
Mutual labels:  neon, fast
Rz Go
Ripzap - Fast and 0 allocs leveled JSON logger for Go ⚡️. Dependency free.
Stars: ✭ 256 (-93.36%)
Mutual labels:  performance, fast
Awesome Wp Speed Up
Plugins and resources to speed up and optimize your WordPress site.
Stars: ✭ 375 (-90.27%)
Mutual labels:  performance
Objectbox Java
ObjectBox is a superfast lightweight database for objects
Stars: ✭ 3,950 (+2.46%)
Mutual labels:  performance
T Rec Rs
Blazingly fast terminal recorder that generates animated gif images for the web written in rust
Stars: ✭ 361 (-90.64%)
Mutual labels:  fast
Laps
Light WordPress profiler.
Stars: ✭ 368 (-90.45%)
Mutual labels:  performance
Libcopp
cross-platform coroutine library in c++
Stars: ✭ 398 (-89.68%)
Mutual labels:  performance
Onelog
Dead simple, super fast, zero allocation and modular logger for Golang
Stars: ✭ 389 (-89.91%)
Mutual labels:  fast
Lissajous
🎵 A tool for programmatic audio performance in the browser using Javascript.
Stars: ✭ 367 (-90.48%)
Mutual labels:  performance

DISCONTINUATION OF PROJECT. This project will no longer be maintained by Intel. Intel will not provide or guarantee development of or support for this project, including but not limited to, maintenance, bug fixes, new releases or updates. Patches to this project are no longer accepted by Intel. If you have an ongoing need to use this project, are interested in independently developing it, or would like to maintain patches for the community, please create your own fork of the project.

neon

neon is Intel's reference deep learning framework committed to best performance on all hardware. Designed for ease-of-use and extensibility.

For fast iteration and model exploration, neon has the fastest performance among deep learning libraries (2x speed of cuDNNv4, see benchmarks).

  • 2.5s/macrobatch (3072 images) on AlexNet on Titan X (Full run on 1 GPU ~ 26 hrs)
  • Training VGG with 16-bit floating point on 1 Titan X takes ~10 days (original paper: 4 GPUs for 2-3 weeks)

We use neon internally at Intel Nervana to solve our customers' problems across many domains. We are hiring across several roles. Apply here!

See the new features in our latest release. We want to highlight that neon v2.0.0+ has been optimized for much better performance on CPUs by enabling Intel Math Kernel Library (MKL). The DNN (Deep Neural Networks) component of MKL that is used by neon is provided free of charge and downloaded automatically as part of the neon installation.

Quick Install

On a Mac OSX or Linux machine, enter the following to download and install neon (conda users see the guide), and use it to train your first multi-layer perceptron. To force a python2 or python3 install, replace make below with either make python2 or make python3.

    git clone https://github.com/NervanaSystems/neon.git
    cd neon
    make
    . .venv/bin/activate

Starting after neon v2.2.0, the master branch of neon will be updated weekly with work-in-progress toward the next release. Check out a release tag (e.g., "git checkout v2.2.0") for a stable release. Or simply check out the "latest" release tag to get the latest stable release (i.e., "git checkout latest")

From version 2.4.0, we re-enabled pip install. Neon can be installed using package name nervananeon.

    pip install nervananeon

It is noted that aeon needs to be installed separately. The latest release v2.6.0 uses aeon v1.3.0.

Warning

Between neon v2.1.0 and v2.2.0, the aeon manifest file format has been changed. When updating from neon < v2.2.0 manifests have to be recreated using ingest scripts (in examples folder) or updated using this script.

Use a script to run an example

    python examples/mnist_mlp.py 

Selecting a backend engine from the command line

The gpu backend is selected by default, so the above command is equivalent to if a compatible GPU resource is found on the system:

    python examples/mnist_mlp.py -b gpu

When no GPU is available, the optimized CPU (MKL) backend is now selected by default as of neon v2.1.0, which means the above command is now equivalent to:

    python examples/mnist_mlp.py -b mkl

If you are interested in comparing the default mkl backend with the non-optimized CPU backend, use the following command:

    python examples/mnist_mlp.py -b cpu

Use a yaml file to run an example

Alternatively, a yaml file may be used run an example.

    neon examples/mnist_mlp.yaml

To select a specific backend in a yaml file, add or modify a line that contains backend: mkl to enable mkl backend, or backend: cpu to enable cpu backend. The gpu backend is selected by default if a GPU is available.

Recommended Settings for neon with MKL on Intel Architectures

The Intel Math Kernel Library takes advantages of the parallelization and vectorization capabilities of Intel Xeon and Xeon Phi systems. When hyperthreading is enabled on the system, we recommend the following KMP_AFFINITY setting to make sure parallel threads are 1:1 mapped to the available physical cores.

    export OMP_NUM_THREADS=<Number of Physical Cores>
    export KMP_AFFINITY=compact,1,0,granularity=fine  

or

    export OMP_NUM_THREADS=<Number of Physical Cores>
    export KMP_AFFINITY=verbose,granularity=fine,proclist=[0-<Number of Physical Cores>],explicit

For more information about KMP_AFFINITY, please check here. We encourage users to set out trying and establishing their own best performance settings.

Documentation

The complete documentation for neon is available here. Some useful starting points are:

Support

For any bugs or feature requests please:

  1. Search the open and closed issues list to see if we're already working on what you have uncovered.
  2. Check that your issue/request hasn't already been addressed in our Frequently Asked Questions (FAQ) or neon-users Google group.
  3. File a new issue or submit a new pull request if you have some code you'd like to contribute

For other questions and discussions please post a message to the neon-users Google group

License

We are releasing neon under an open source Apache 2.0 License. We welcome you to contact us with your use cases.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].