本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
启动带有 AWS Neuron 的 DLAMI 实例
最新的 DLAMI 已可与 AWS Inferentia 结合使用,并且附带了 AWS Neuron API 程序包。要启动 DLAMI 实例,请参阅 启动和配置 DLAMI。
目录
升级 Neuron 程序包
连接到您的 Inf1 实例后,使用以下命令升级您的 Neuron 程序包。
对于 Amazon Linux 2,运行:
sudo yum install aws-neuron-runtime-base sudo yum install aws-neuron-runtime sudo yum install aws-neuron-tools sudo yum install tensorflow-model-server-neuron
对于 Ubuntu Linux,运行:
sudo apt-get update sudo apt-get install aws-neuron-runtime-base sudo apt-get install aws-neuron-runtime sudo apt-get install aws-neuron-tools sudo apt-get install tensorflow-model-server-neuron
验证您的实例
在使用您的实例之前,验证该实例是否已针对 Neuron 进行正确的设置和配置。
确定 AWS Inferentia 设备
要确定实例上的 Inferentia 设备数量,请使用以下命令:
neuron-ls
如果您的实例已附加了 Inferentia 设备,则输出将如下所示:
... +--------------+---------+--------+-----------+-----------+------+------+ | PCI BDF | LOGICAL | NEURON | MEMORY | MEMORY | EAST | WEST | | | ID | CORES | CHANNEL 0 | CHANNEL 1 | | | +--------------+---------+--------+-----------+-----------+------+------+ | 0000:00:1f.0 | 0 | 4 | 4096 MB | 4096 MB | 0 | 0 | +--------------+---------+--------+-----------+-----------+------+------+
提供的输出来自于 INF1.2xlarge 实例。第一列中显示 PCI 总线设备功能 ID。第二列中显示分配给该设备的逻辑 ID。此逻辑 ID 在 Neuron 运行时守护程序 (neuron-rtd) 配置期间使用。第三列中显示可用的 NeuronCores 数量。最后两列中显示与任何其他 Inferentia 设备之间的连接。由于这是单个 Inferentia 实例,因此这两列是空的。
nr_hugepages
vm.nr_hugepages
是一个系统范围的配置,用于管理内存中除标准的 4KB 页面大小之外的大内存页。对于 Neuron API 来说,此配置非常重要,因为它使用大内存页。运行以下命令,查看此实例的
vm.nr_hugepages
设置:
grep HugePages_Total /proc/meminfo | awk {'print $2'}
每个 AWS Inferentia 设备的最低 vm.nr_hugepages
要求为 128。
Neuron 运行时守护程序 (neuron-rtd)
当您启动任意 Inf1 实例时,Neuron 运行时守护程序 (neuron-rtd) 会自动启动。 可以使用以下命令验证 neuron-rtd 是否处于活动状态:
sudo systemctl status neuron-rtd
您的输出应类似于以下内容:
● neuron-rtd.service - Neuron Runtime Daemon Loaded: loaded (/usr/lib/systemd/system/neuron-rtd.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2019-11-14 09:53:47 UTC; 3min 0s ago Main PID: 3351 (neuron-rtd) Tasks: 14 Memory: 11.6M CGroup: /system.slice/neuron-rtd.service └─3351 /opt/aws/neuron/bin/neuron-rtd -c /opt/aws/neuron/config/neuron-rtd.config Nov 14 09:53:16 ip-172-31-23-213.ec2.internal systemd[1]: Starting Neuron Runtime Daemon... Nov 14 09:53:18 ip-172-31-23-213.ec2.internal neuron-rtd[3351]: [NRTD:ParseArguments] Using all the BDFs in the ...on! Nov 14 09:53:18 ip-172-31-23-213.ec2.internal nrtd[3351]: [NRTD:krtd_main] krt build using:1.0.3952.0 Nov 14 09:53:18 ip-172-31-23-213.ec2.internal nrtd[3351]: [TDRV:reset_mla] Resetting 0000:00:1f.0 Nov 14 09:53:47 ip-172-31-16-98.ec2.internal nrtd[3351]: [TDRV:tdrv_init_one_mla_phase2] Initialized Inferentia...1f.0 Nov 14 09:53:47 ip-172-31-16-98.ec2.internal neuron-rtd[3351]: E1114 09:53:47.511852663 3351 socket_utils_com...65} Nov 14 09:53:47 ip-172-31-16-98.ec2.internal systemd[1]: Started Neuron Runtime Daemon. Nov 14 09:53:47 ip-172-31-16-98.ec2.internal nrtd[3351]: [NRTD:RunServer] Server listening on unix:/run/neuron.sock
有时,您可能需要启动和停止 neuron-rtd。
要启动 neuron-rtd,请使用以下命令:
sudo systemctl restart neuron-rtd
要停止 neuron-rtd,请使用以下命令:
sudo systemctl stop neuron-rtd
NeuronCore 组
NeuronCores (NC) 是 Inferentia 设备中的四个执行单元。多个 NC 可以结合起来,构成一个 NeuronCore 组 (NCG)。Neuron 框架层自动创建一个默认的 NeuronCore 组。要查看可用 NCG 的列表,请使用以下命令:
neuron-cli list-ncg
输出中将显示活动的 NCG,如下所示:
Device 1 NC count 4 +-------+----------+--------------------+----------------+ | NCG ID| NC COUNT | DEVICE START INDEX | NC START INDEX | +-------+----------+--------------------+----------------+ | 1 | 1 | 0 | 0 | | 2 | 1 | 0 | 1 | | 3 | 2 | 0 | 2 | +-------+----------+--------------------+----------------+
如果尚未配置 NCG,则该命令将返回以下输出:
No NCG Found
如果需要卸载所有模型并且删除由框架创建的所有 NCG,请使用以下命令:
neuron-cli reset
列出模型
可以将模型加载到 NCG 中。可以将多个模型加载到单个 NCG 中,但只有一个模型可以处于 STARTED 状态。只能对处于 STARTED 状态的模型运行推理操作。
要查看已加载到 NCG 中的所有模型,请使用以下命令:
$ neuron-cli list-model
输出中将显示已加载到 NCG 中的模型,如下所示:
Found 3 model 10003 MODEL_STATUS_LOADED 1 10001 MODEL_STATUS_STARTED 1 10002 MODEL_STATUS_STARTED 1
输出中的 10001 和 10002 是 NCG 中已加载的模型的唯一标识符。如果尚未将任何模型加载到 NCG 中,将会看到以下输出:
Found 0 models
查看资源使用量
对于已加载到 NCG 中的每个模型,都会消耗主机和设备上的内存量,并且会占用一定百分比的 NeuronCore。 可通过运行以下命令来查看 NCG 使用量:
neuron-top
输出中将显示 NCG 使用量,如下所示:
neuron-top - 2019-11-13 23:57:08 NN Models: 3 total, 2 running Number of VNCs tracked: 2 0000:00:1f.0 Utilizations: Neuron core0 0.00, Neuron core1 0.00, Neuron core2 0, Neuron core3 0, DLR Model Node ID Subgraph Exec. Unit Host Mem MLA Mem Neuron core % 10003 1 0 0000:00:1f.0:0 384 135660544 0.00 10001 3 0 0000:00:1f.0:0 384 67633152 0.00 10002 1 0 0000:00:1f.0:1 384 135660544 0.00
如果尚未加载任何模型,则输出将如下所示:
NN Models: 0 total, 0 running Number of VNCs tracked: 0 DLR Model Node ID Subgraph Exec. Unit Host Mem MLA Mem Neuron core %
下一步