项目终止。英特尔将不再维护该项目。英特尔不会提供或保证该项目的开发或支持,包括但不限于维护、错误修复、新版本或更新。英特尔不再接受该项目的补丁。如果您持续需要使用该项目,有兴趣独立开发它,或者想为社区维护补丁,请创建您自己的项目分支。
neon 是英特尔的参考深度学习框架,致力于在所有硬件上实现最佳性能。专为易用性和可扩展性而设计。
对于快速迭代和模型探索,neon 在深度学习库中具有最快的性能(速度是 cuDNNv4 的 2 倍,请参阅基准测试)。
我们在 Intel Nervana 内部使用 neon 来解决客户在多个领域的问题。我们正在招聘多个职位。在这里申请!
查看我们最新版本中的新功能。我们想强调的是,neon v2.0.0+ 已通过启用英特尔数学核心函数库 (MKL) 进行了优化,以在 CPU 上实现更好的性能。 neon 使用的 MKL 的 DNN(深度神经网络)组件是免费提供的,并作为 neon 安装的一部分自动下载。
在 Mac OSX 或 Linux 计算机上,输入以下命令来下载并安装 neon(conda 用户请参阅指南),并使用它来训练您的第一个多层感知器。要强制安装 python2 或 python3,请将下面的make
替换为make python2
或make python3
。
git clone https://github.com/NervanaSystems/neon.git
cd neon
make
. .venv/bin/activate
从 neon v2.2.0 之后开始,neon 的主分支将每周更新一次,并为下一个版本进行工作。查看发布标签(例如,“git checkout v2.2.0”)以获得稳定版本。或者只需查看“最新”版本标签即可获取最新的稳定版本(即“git checkout 最新”)
从2.4.0版本开始,我们重新启用了pip install。 Neon 可以使用包名称 nervananeon 进行安装。
pip install nervananeon
需要注意的是,aeon需要单独安装。最新版本v2.6.0使用aeon v1.3.0。
警告
在 neon v2.1.0 和 v2.2.0 之间,aeon 清单文件格式已更改。从 neon < v2.2.0 更新时,必须使用摄取脚本(在示例文件夹中)重新创建清单或使用此脚本进行更新。
python examples/mnist_mlp.py
默认选择gpu后端,因此上面的命令相当于在系统上找到兼容的GPU资源:
python examples/mnist_mlp.py -b gpu
当没有 GPU 可用时,从 neon v2.1.0 开始,现在默认选择优化的CPU (MKL) 后端,这意味着上述命令现在相当于:
python examples/mnist_mlp.py -b mkl
如果您有兴趣将默认 mkl 后端与未优化的 CPU 后端进行比较,请使用以下命令:
python examples/mnist_mlp.py -b cpu
或者,可以使用 yaml 文件来运行示例。
neon examples/mnist_mlp.yaml
要在 yaml 文件中选择特定后端,请添加或修改包含backend: mkl
行以启用 mkl 后端,或添加或修改backend: cpu
行以启用 cpu 后端。如果 GPU 可用,则默认选择 GPU 后端。
英特尔数学内核库利用英特尔至强和至强融核系统的并行化和矢量化功能。当系统上启用超线程时,我们建议使用以下 KMP_AFFINITY 设置,以确保并行线程 1:1 映射到可用的物理内核。
export OMP_NUM_THREADS= < Number of Physical Cores >
export KMP_AFFINITY=compact,1,0,granularity=fine
或者
export OMP_NUM_THREADS= < Number of Physical Cores >
export KMP_AFFINITY=verbose,granularity=fine,proclist=[0- < Number of Physical Cores > ],explicit
有关 KMP_AFFINITY 的更多信息,请查看此处。我们鼓励用户开始尝试并建立自己的最佳性能设置。
此处提供了 neon 的完整文档。一些有用的起点是:
对于任何错误或功能请求,请:
对于其他问题和讨论,请向 neon-user Google 群组发布消息
我们根据开源 Apache 2.0 许可证发布 neon。我们欢迎您与我们联系并提供您的用例。