问题标签 [horovod]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
101 浏览

deep-learning - Horovod 在 GPU 集群上用于深度学习模型的简单分布式训练 python 程序

我正在尝试 在 databricks GPU 集群(带有 1 个驱动程序和 2 个工作人员)上运行一些示例 python3 代码https://docs.databricks.com/applications/deep-learning/distributed-training/horovod-runner.html 。

数据砖环境:

它用于分布式深度学习模型训练。

一开始我只是尝试了一个非常简单的例子:

但是,该命令一直在运行,没有任何进展。

我是否错过了什么或需要设置一些东西才能让它工作?

谢谢

0 投票
1 回答
87 浏览

python - 使用官方网站的 CIFAR-10 数据集进行梯度爆炸

我想在 4 个 GPU 上使用 Horovod PyTorch 训练 VGG16 模型。我不想使用 torch vision.datasets.CIFAR10 的 CIFAR10 数据集,而是自己拆分数据集。于是我从官网下载了数据集,并拆分了数据集。这就是我拆分数据的方式:

但是,我发现如果使用我从官网下载的数据集,会出现梯度爆炸的问题。我发现经过几次迭代,损失会增加并且是“nan”。这就是我读取数据集的方式:

如果我打印每次迭代的损失,我会看到如下内容:

但是,如果我使用来自 torchvision 的数据集,一切都会好起来的:

DistributedSampler 也可能有问题。但我认为 DistributedSampler 仅用于拆分数据。我不知道 DistributedSampler 是否会成为这个问题的原因。

我读取 CIFAR10 数据集的方式有问题吗?还是我“重塑”它的方式有问题?谢谢你的帮助!

0 投票
1 回答
414 浏览

macos - 在 MacOS 上安装 horovod

通过安装 horovod 后pip3 install horovod

我收到一个错误:

也试过

但得到同样的错误。

0 投票
0 回答
86 浏览

apache-spark - 使用 databrick spark 在每个工作节点上加载数据的错误

我正在尝试从 databricks 在 gpu 集群(p2.xlarge)上运行 horovod.torch。

因为 horovod 使用 AllReduce 在节点之间传递参数,所以每个工作节点需要加载整个数据集并在不同的分区上工作。每次迭代后,所有节点通过 AllReduce 从其他节点获取参数值,通过取平均值来更新自己的参数。

我的理解是这是 SPMD(单程序多数据),因为每个工作节点都需要加载相同的整个数据集。

我需要从每个工作节点加载整个数据集,对吗?

我的代码:

但我得到了错误:

例外:您似乎正试图从广播变量、操作或转换中引用 SparkContext。SparkContext 只能在驱动程序上使用,不能在它在工作人员上运行的代码中使用。有关详细信息,请参阅 SPARK-5063。

似乎火花不允许多个上下文?

我还尝试在每个工作人员上创建一个新的本地 spark 会话:

我收到错误:

如何使用 spark 在每个工作节点上加载数据?

如果 spark 不允许其他节点创建自己的 sparksession,如何在每个工作节点上为 horovod 加载数据?

0 投票
0 回答
42 浏览

python - 使用 petastorm 将时间序列数据(镶木地板格式)转换为序列的最佳方法是什么?

如果在错误的意义上使用这些术语,请原谅我。我仍在努力解决许多火花和分布式相关的事情。

这是我的用例,我无法全面了解实现。

我有以镶木地板格式保存的 40 列和 100 个时间步长的时间序列数据。

我了解到,要对大数据进行分布式训练,我们可以使用 petastorm 进行数据注入,使用 Horovod 进行训练。但我不清楚数据需要如何分区(每个 ID 一个分区?行组是什么?)以及如何将数据转换为 LSTM 期望的序列?

朝这个方向的任何指示都会有很大帮助。谢谢!

0 投票
0 回答
28 浏览

pytorch - HPC 集群:如何确定问题出在集群中还是在我的代码中

我们的大学刚刚有了一个新集群。我正在尝试在其上训练多节点多 GPU 神经网络。现在,我得到了奇怪的gpu_mut and gpu_mused利用。它们彼此不一致。见下文 - 在此处输入图像描述

现在,为了弄清楚问题出在我的代码中还是硬件上,我尝试运行 horovod 的pytorch 基准测试示例,但我得到了

运行时错误:CUDA 内存不足。尝试分配 14.00 MiB(GPU 1;15.78 GiB 总容量;2.68 GiB 已分配;53.75 MiB 空闲;77.13 MiB 缓存;0 字节不活动)

我的大学 IT 支持团队告诉他们,看到 gpu 使用的不一致行为,错误不是来自他们这边。谁能告诉我如何处理,以便我得出一个结论,即错误是在我的代码中还是来自集群的硬件安排。环境是

此外,它是 IBM Power 9 集群。

完整的错误日志 -

[WARN DDL-2-17] 不执行连接测试。找不到“mpitool”可执行文件。这可能是因为您使用的 mpi 版本没有随 mpitool 一起提供。

1

0 投票
2 回答
5315 浏览

python - 如何查看NCCL的版本

我正在远程访问高性能计算节点。我不确定 NVIDIA 集体通信库 (NCCL) 是否安装在我的目录中?有没有办法检查NCCL

0 投票
0 回答
181 浏览

cmake - 安装 horovod 时 Ubuntu 20.04 cmake 权限被拒绝

我试图通过此处的指南安装 horovod 。当我尝试执行以下命令时,

我收到以下错误

/home/yang/cmake是我的 cmake 安装的根文件夹。我有这个文件夹的权限。此外,cmake 可以具有作为程序执行的权限。只是想知道为什么仍然会发生此错误。

0 投票
0 回答
63 浏览

python - Horovod 和 Tensorflow 模糊错误 (train_on_batch)

我正在尝试使用 tensorflow.keras 和 horovod 在 AWS p2.8xlarge 上使用带有 nvidia-docker 的自定义训练循环 (train_on_batch) 运行分布式训练。我的代码很乱,所以发布它不会太有用。这是输出的链接,对我来说信息量不大。代码使用 using 运行没有错误python run_trn.py。有关如何探测此错误的任何建议?

相关Horovod代码

这是我的命令:

在某些时候,gpus 正在被使用。

0 投票
0 回答
141 浏览

anaconda3 - anaconda3 安装 horovod 失败

当我使用https://github.com/horovod/horovod/blob/master/docs/conda.rst的步骤安装 Horovod 时,我遇到退出代码 137

这是 Dockerfile 的输出:

=> => # 验证交易: ...working... done
=> => # Executing transaction: ...working... b'通过下载和使用 CUDA Toolkit conda 包,您接受条款 an => => #d CUDA 最终用户许可协议 (EULA) 的条件:https://docs.nvidia.com/cuda/eula/index.html\n'
=> => # b'通过下载和使用 cuDNN conda软件包,您接受 NVIDIA cuDNN EULA 的条款和条件 -\nh => => # ttps://docs.nvidia.com/deeplearning/cudnn/sla/index.html\n'
=> => # done

执行程序运行失败 [/bin/sh -c conda env create --file /tmp/environment.yml --force]:退出代码:137