EINSTELLUNG DES PROJEKTS. Dieses Projekt wird von Intel nicht mehr gepflegt. Intel übernimmt keine Garantie für die Entwicklung oder den Support für dieses Projekt, einschließlich, aber nicht beschränkt auf, Wartung, Fehlerbehebungen, neue Versionen oder Updates. Patches für dieses Projekt werden von Intel nicht mehr akzeptiert. Wenn Sie dieses Projekt dauerhaft nutzen müssen, daran interessiert sind, es unabhängig weiterzuentwickeln, oder Patches für die Community pflegen möchten, erstellen Sie bitte Ihren eigenen Zweig des Projekts.
neon ist Intels Referenz-Deep-Learning-Framework, das sich für die beste Leistung auf jeder Hardware einsetzt. Entwickelt für Benutzerfreundlichkeit und Erweiterbarkeit.
Für schnelle Iteration und Modellerkundung bietet Neon die schnellste Leistung unter den Deep-Learning-Bibliotheken (2-fache Geschwindigkeit von cuDNNv4, siehe Benchmarks).
Wir nutzen Neon intern bei Intel Nervana, um die Probleme unserer Kunden in vielen Bereichen zu lösen. Wir stellen Mitarbeiter für verschiedene Rollen ein. Bewerben Sie sich hier!
Sehen Sie sich die neuen Funktionen in unserer neuesten Version an. Wir möchten hervorheben, dass neon v2.0.0+ durch die Aktivierung der Intel Math Kernel Library (MKL) für eine viel bessere Leistung auf CPUs optimiert wurde. Die von Neon verwendete DNN-Komponente (Deep Neural Networks) von MKL wird kostenlos zur Verfügung gestellt und im Rahmen der Neon-Installation automatisch heruntergeladen.
Geben Sie auf einem Mac OSX- oder Linux-Computer Folgendes ein, um neon herunterzuladen und zu installieren (Conda-Benutzer lesen Sie die Anleitung) und verwenden Sie es zum Trainieren Ihres ersten mehrschichtigen Perzeptrons. Um eine Python2- oder Python3-Installation zu erzwingen, ersetzen Sie make
unten durch entweder make python2
oder make python3
.
git clone https://github.com/NervanaSystems/neon.git
cd neon
make
. .venv/bin/activate
Ab Neon v2.2.0 wird der Master-Zweig von Neon wöchentlich mit laufenden Arbeiten für die nächste Version aktualisiert. Überprüfen Sie ein Release-Tag (z. B. „git checkout v2.2.0“) auf eine stabile Version. Oder sehen Sie sich einfach das Release-Tag „latest“ an, um die neueste stabile Version zu erhalten (z. B. „git checkout Latest“).
Ab Version 2.4.0 haben wir die Pip-Installation wieder aktiviert. Neon kann mit dem Paketnamen nervananeon installiert werden.
pip install nervananeon
Es wird darauf hingewiesen, dass Aeon separat installiert werden muss. Die neueste Version v2.6.0 verwendet aeon v1.3.0.
Warnung
Zwischen neon v2.1.0 und v2.2.0 wurde das Aeon-Manifestdateiformat geändert. Bei der Aktualisierung von Neon < v2.2.0 müssen Manifeste mit Ingest-Skripten (im Beispielordner) neu erstellt oder mit diesem Skript aktualisiert werden.
python examples/mnist_mlp.py
Das GPU-Backend ist standardmäßig ausgewählt, daher entspricht der obige Befehl dem, wenn eine kompatible GPU-Ressource auf dem System gefunden wird:
python examples/mnist_mlp.py -b gpu
Wenn keine GPU verfügbar ist, wird ab neon v2.1.0 standardmäßig das optimierte CPU-Backend (MKL) ausgewählt, was bedeutet, dass der obige Befehl nun äquivalent ist zu:
python examples/mnist_mlp.py -b mkl
Wenn Sie daran interessiert sind, das Standard-mkl-Backend mit dem nicht optimierten CPU-Backend zu vergleichen, verwenden Sie den folgenden Befehl:
python examples/mnist_mlp.py -b cpu
Alternativ kann eine Yaml-Datei verwendet werden, um ein Beispiel auszuführen.
neon examples/mnist_mlp.yaml
Um ein bestimmtes Backend in einer Yaml-Datei auszuwählen, fügen Sie eine Zeile hinzu oder ändern Sie sie, die backend: mkl
enthält, um das mkl-Backend zu aktivieren, oder backend: cpu
um das CPU-Backend zu aktivieren. Das GPU-Backend ist standardmäßig ausgewählt, wenn eine GPU verfügbar ist.
Die Intel Math Kernel Library nutzt die Vorteile der Parallelisierungs- und Vektorisierungsfunktionen von Intel Xeon- und Xeon Phi-Systemen. Wenn Hyperthreading auf dem System aktiviert ist, empfehlen wir die folgende KMP_AFFINITY-Einstellung, um sicherzustellen, dass parallele Threads 1:1 den verfügbaren physischen Kernen zugeordnet werden.
export OMP_NUM_THREADS= < Number of Physical Cores >
export KMP_AFFINITY=compact,1,0,granularity=fine
oder
export OMP_NUM_THREADS= < Number of Physical Cores >
export KMP_AFFINITY=verbose,granularity=fine,proclist=[0- < Number of Physical Cores > ],explicit
Weitere Informationen zu KMP_AFFINITY finden Sie hier. Wir ermutigen Benutzer, ihre eigenen optimalen Leistungseinstellungen auszuprobieren und festzulegen.
Die vollständige Dokumentation für Neon finden Sie hier. Einige nützliche Ausgangspunkte sind:
Bei Fehlern oder Funktionswünschen wenden Sie sich bitte an:
Für weitere Fragen und Diskussionen senden Sie bitte eine Nachricht an die Neon-Nutzer-Google-Gruppe
Wir veröffentlichen Neon unter einer Open-Source-Apache-2.0-Lizenz. Wir heißen Sie herzlich willkommen, uns mit Ihren Anwendungsfällen zu kontaktieren.