我注意到
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")
我从未见过其他任何一个被使用,并且想知道它们是否可以使用以及如何使用。我相信配备 AMD 显卡的最新 MacBook 应该能够使用
"hip"
,但这是真的吗?训练速度会与使用一个 CUDA GPU 相似吗?如果不是,那么torch.device
如果实际上无法使用它们,那么接受这么多选项有什么意义呢?
如果你想使用 GPU 进行深度学习,可以在 CUDA 和 CUDA 之间进行选择...
更广泛的答案,是的,有 AMD 的臀部和一些 OpenCL 实现:
底线:
编辑2021-09-14:有一个新项目dlprimitives:
https://github.com/artyom-beilis/dlprimitives
它比 Caffe-OpenCL 和 Keras 都有更好的性能 - 与 Keras/TF2 相比,它的训练性能约为 75%,但它正处于早期开发阶段,目前的层集比 Caffe/Keras 更有限 -格子ML
与 pytorch 的连接正在进行中,并取得了一些初步结果:https://github.com/artyom-beilis/pytorch_dlprim
免责声明:我是这个项目的作者