在运行简单的TensorFlow代码示例时,未能连接到任何Graphcore IPU设备



我尝试运行Graphcore的一个GitHub代码示例,即使用--replication-factor 16的README之后的Tensorflow简单复制示例,但引发了以下错误:

tensorflow.python.framework.errors_impl.InternalError: Failed to attach to any of the device(s) with matching configs for ordinal 0 

我不确定它为什么无法连接:我曾尝试使用gc-info -l作为调试工具,它正确地显示了机箱上可用的所有IPU配置。它以前运行得很好,而且似乎很有脾气。我试过重新启动,但过了一段时间错误又随机出现了。任何帮助都将不胜感激。

此故障可能是由于IPU忙于运行其他进程或环境配置不正确造成的。

1.IPU正忙

当您执行Poplar程序(或使用IPU库的特定框架模型(时,您需要一定数量的IPU。例如,如果您请求运行一个具有2个IPU的程序,但其他人已经在使用机箱上的所有IPU,那么您的程序将无法连接,并引发与您看到的错误类似的错误。对于这种情况,只需等待所需数量的IPU可用。您可以使用gc-monitor命令行工具验证设备是否繁忙(请参阅IPU命令行工具指南以获取参考信息(。这就是繁忙机器的样子:

+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------+-----------------+
|                                                                                                        Attached processes                                                                                                         |          IPU           |      Board      |
+--------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------+------------+----+----------+--------+--------+--------+
|  PID   |                                                                                              Command                                                                                               |  Time  |    User    | ID |  Clock   |  Temp  |  Temp  | Power  |
+--------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------+------------+----+----------+--------+--------+--------+
| 32778  |                                                                                               python                                                                                               | 7m34s  |  User_Name  | 0  | 1300MHz  | 37.1 C | 41.5 C |104.7 W |
+--------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------+------------+----+----------+--------+--------+--------+

这就是闲置机器的样子:

+--------------------------------------------------------------------------------------------------+
|                                      No attached processes                                       |
+--------------------------------------------------------------------------------------------------+

2.gc-driver未激活

您可以通过运行gc-info -l来检查驱动程序是否已激活。如果不是,则gc信息将输出:

gc-info: command not found

否则,如果您正在运行例如TensorFlow应用程序,您可能会遇到以下错误(或类似错误(:

tensorflow.python.framework.errors_impl.InvalidArgumentError: Target configuration failed: model disabled and no hardware IPU found. (Are you sure you enabled the Poplar driver?) 

另一方面,如果驱动程序被激活,gc-info -l输出通常会列出硬件平台中可用的所有IPU。

要激活gc-driver,您应该确保按如下方式获取gc-driver启用脚本:

source <path_to_sdk>/gc_drivers-ubuntu_<ubuntu_version>-<sdk_version> <hash>/enable.sh 

在您的情况下,gc-info -l运行良好,因此您似乎达到了情况1。

3.gc-driver未安装

要检查gc驱动程序是否安装正确,可以运行:

$ modinfo ipu_driver 

这应该会输出类似于您的控制台的内容:

filename:       /lib/modules/4.15.0-58-generic/updates/dkms/ipu_driver.ko 
version:        1.0.41 

相关内容

最新更新