小编and*_*rea的帖子

除了“cuda”之外,您能否在“hip”或“OpenCL”等其他内容上加速 torch DL 训练?

我注意到torch.device可以接受一系列参数,确切地说是cpu, cuda, mkldnn, opengl, opencl, ideep, hip, msnpu

然而,在训练深度学习模型时,我只见过cuda或被cpu使用过。很多时候代码看起来像这样

if torch.cuda.is_available():
    device = torch.device("cuda")
else:
    device = torch.device("cpu")
Run Code Online (Sandbox Code Playgroud)

我从未见过其他任何人被使用,并且想知道它们是否可以使用以及如何使用。我相信配备 AMD 显卡的最新 MacBook 应该可以使用"hip",但这是真的吗?训练速度会与使用一个 CUDA GPU 相似吗?torch.device如果不是,那么如果实际上无法使用这些选项,那么接受这些选项又有什么意义呢?

gpu opencl deep-learning pytorch

9
推荐指数
1
解决办法
8945
查看次数

使用模型并行性在多个 GPU 上加载 HuggingFace 模型进行推理

我可以使用 6 个 24GB GPU。当我尝试加载一些 HuggingFace 模型时,例如以下

from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
tokenizer = AutoTokenizer.from_pretrained("google/ul2")
model = AutoModelForSeq2SeqLM.from_pretrained("google/ul2")
Run Code Online (Sandbox Code Playgroud)

我收到内存不足错误,因为该模型似乎只能在单个 GPU 上加载。然而,虽然整个模型无法装入单个 24GB GPU 卡,但我有 6 个 GPU 卡,并且想知道是否有一种方法可以将模型加载分布到多个卡上,以执行推理。

HuggingFace 似乎有一个网页,他们解释了如何执行此操作,但截至目前还没有任何有用的内容。

python multi-gpu deep-learning torch huggingface-transformers

9
推荐指数
1
解决办法
2万
查看次数

使用 torch.multiprocessing.spawn 时如何修复“无法 pickle '_thread.lock' 对象”错误

我正在具有 2 个 Tesla M60 GPU 的 Linux 机器上训练一些 PyTorch 模型,并使用此示例使用数据并行化在两个 GPU 之间分割训练https://towardsdatascience.com/how-to-scale-training-on-multiple -GPU-dae1041f49d2

然而,当代码到达调用 torch.multiprocessing.spawn 函数时,它会引发

类型错误:无法腌制“_thread.lock”对象

我知道最好的做法是发布一个小的可重现的示例,但是代码库非常大,并且我无法在足够小的模型上重现此错误以在此处发布。python 错误回溯也没有多大帮助,因为它只是引用多处理库的内部结构。我知道如果没有代码示例,这听起来可能有点太笼统了,但我只是想知道是否有人在 Linux 机器上使用 PyTorch 进行多处理时遇到了同样的错误,如果是这样,需要注意哪些事项来尝试和修理它。代码在单个 GPU 上运行得非常好,因此事实证明很难调试。

如果有帮助,我正在使用 python 3.8.11 和 torch 1.9.0,CUDA 版本 11.1

python deep-learning torch python-multiprocessing

5
推荐指数
0
解决办法
1459
查看次数