Package: nervananeon
neonis Intel’s reference
deep learning framework committed tobest
performanceon all
hardware. Designed for ease-of-use and extensibility.TutorialsandiPython notebooksto get users started with using neon for deep learning.Support for commonly used layers: convolution, RNN, LSTM, GRU,
BatchNorm, and more.Model Zoocontains
pre-trained weights and example scripts for start-of-the-art models,
including:VGG,Reinforcement
learning,Deep Residual
Networks,Image
Captioning,Sentiment
analysis,
andmore.Swappable hardware backends: write code once and then deploy on CPUs,
GPUs, or Nervana hardwareFor fast iteration and model exploration, neon has the fastest
performance among deep learning libraries (2x speed of cuDNNv4, seebenchmarks). *
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 manydomains. We are
hiring across several roles. Applyhere!See thenew
featuresin 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 InstallLocal install and
dependenciesOn a Mac OSX or Linux machine, enter the following to download and
install neon (conda users see theguide),
and use it to train your first multi-layer perceptron. To force a
python2 or python3 install, replacemakebelow with eithermake python2ormake python3.gitclonehttps://github.com/NervanaSystems/neon.gitcdneonmake..venv/bin/activateStarting 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”)Install via pypiFrom version 2.4.0, we re-enabled pip install. Neon can be installed
using package name nervananeon.pipinstallnervananeonIt is noted thataeonneeds to be installed separately. The latest release v2.6.0 uses aeon
v1.3.0.WarningBetween 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 usingthisscript.Use a script to run an examplepythonexamples/mnist_mlp.pySelecting a backend engine from the command lineThe gpu backend is selected by default, so the above command is
equivalent to if a compatible GPU resource is found on the system:pythonexamples/mnist_mlp.py-bgpuWhen no GPU is available, theoptimizedCPU (MKL) backend is now
selected by default as of neon v2.1.0, which means the above command is
now equivalent to:pythonexamples/mnist_mlp.py-bmklIf you are interested in comparing the default mkl backend with the
non-optimized CPU backend, use the following command:pythonexamples/mnist_mlp.py-bcpuUse a yaml file to run an exampleAlternatively, a yaml file may be used run an example.neonexamples/mnist_mlp.yamlTo select a specific backend in a yaml file, add or modify a line that
containsbackend: mklto enable mkl backend, orbackend: cputo
enable cpu backend. The gpu backend is selected by default if a GPU is
available.Recommended Settings for neon with MKL on Intel ArchitecturesThe 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.exportOMP_NUM_THREADS=<NumberofPhysicalCores>exportKMP_AFFINITY=compact,1,0,granularity=fineorexportOMP_NUM_THREADS=<NumberofPhysicalCores>exportKMP_AFFINITY=verbose,granularity=fine,proclist=[0-<NumberofPhysicalCores>],explicitFor more information about KMP_AFFINITY, please checkhere. We encourage
users to set out trying and establishing their own best performance
settings.DocumentationThe complete documentation for neon is availablehere. Some useful starting
points are:Tutorialsfor neonOverviewof the neon workflowAPIdocumentationResourcesfor neon and deep learningSupportFor any bugs or feature requests please:Search the open and closedissues
listto see if
we’re already working on what you have uncovered.Check that your issue/request hasn’t already been addressed in ourFrequently Asked Questions
(FAQ)orneon-usersGoogle group.File a newissueor submit a newpull
requestif you have
some code you’d like to contributeFor other questions and discussions please post a message to theneon-usersGoogle groupLicenseWe are releasingneonunder
an open sourceApache
2.0License. We welcome
you tocontact uswith your use cases.