您能否在 "cuda" 以外的任何项目上加速 torch DL 培训,例如 "hip" 或 "OpenCL"?
Can you accelerate torch DL training on anything other than "cuda" like "hip" or "OpenCL"?
我注意到 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 实现:
- AMD 很时髦 - 类似于 CUDA 的接口,带有 pytorch、hipCaffe、tensorflow 的端口,但是
- AMD 的 hip/rocm 仅在 Linux 上受支持 - rocm 不提供 Windows 或 Mac OS 支持
- 即使你想在 AMD GPU + ROCM 上使用 Linux,你也必须坚持使用 GCN desrete 设备(即像 rx 580、Vega 56/64 或 Radeon VII 这样的卡),没有 hip/rocm 支持 RDNA 设备(发布一年后),看起来不会很快,hip 也不支持 APU。
- 目前流行的支持OpenCL的框架只有Caffe和Keras+PlaidML。但
- Caffe 的问题:
- Caffe 似乎不再被积极开发,并且按照今天的标准有些过时
- Caffe OpenCL 实现的性能大约是 nVidia 的 cuDNN 和 AMD 的 MIOpen 提供的性能的 1/2,但它工作得很好,我在很多情况下都使用它。
- 最新版本的性能甚至更高 https://github.com/BVLC/caffe/issues/6585 但至少你可以 运行 一个在后面有几个变化的版本
- 也 Caffe/OpenCL 工作,但我仍然为 OpenCL 而不是 AMD 手动修复了一些错误。 https://github.com/BVLC/caffe/issues/6239
- Keras/Plaid-ML
- 就访问较低级别功能的能力而言,Keras 本身是一个弱得多的框架
- PlaidML 性能仍然是优化 NVidia 的 cuDNN 和 AMD MIOpen-ROCM 的 1/2 到 1/3 - 在我做的测试中比 caffe OpenCL 更慢
- keras 后端 non-TF 的未来尚不清楚,因为 2.4 需要 TF...
底线:
- 如果您有 GCN 独立 AMD GPU 并且 运行 Linux 您可以使用 ROCM+Hip。然而它不如 CUDA
稳定
- 您可以尝试 OpenCL Caffe 或 Keras-PlaidML - 它可能比其他解决方案更慢并且不如其他解决方案最佳,但更有可能使其发挥作用。
编辑 2021-09-14: 有一个新项目 dlprimitives:
https://github.com/artyom-beilis/dlprimitives
比 Caffe-OpenCL 和 Keras 都具有更好的性能 - 与 Keras/TF2 相比,它的训练性能约为 75%,但是它处于早期开发阶段并且在这一点上更加有限Caffe/Keras-PlaidML
的一组图层
与 pytorch 的连接正在进行中,并取得了一些初步结果:https://github.com/artyom-beilis/pytorch_dlprim
免责声明:我是这个项目的作者
我注意到 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 实现:
- AMD 很时髦 - 类似于 CUDA 的接口,带有 pytorch、hipCaffe、tensorflow 的端口,但是
- AMD 的 hip/rocm 仅在 Linux 上受支持 - rocm 不提供 Windows 或 Mac OS 支持
- 即使你想在 AMD GPU + ROCM 上使用 Linux,你也必须坚持使用 GCN desrete 设备(即像 rx 580、Vega 56/64 或 Radeon VII 这样的卡),没有 hip/rocm 支持 RDNA 设备(发布一年后),看起来不会很快,hip 也不支持 APU。
- 目前流行的支持OpenCL的框架只有Caffe和Keras+PlaidML。但
- Caffe 的问题:
- Caffe 似乎不再被积极开发,并且按照今天的标准有些过时
- Caffe OpenCL 实现的性能大约是 nVidia 的 cuDNN 和 AMD 的 MIOpen 提供的性能的 1/2,但它工作得很好,我在很多情况下都使用它。
- 最新版本的性能甚至更高 https://github.com/BVLC/caffe/issues/6585 但至少你可以 运行 一个在后面有几个变化的版本
- 也 Caffe/OpenCL 工作,但我仍然为 OpenCL 而不是 AMD 手动修复了一些错误。 https://github.com/BVLC/caffe/issues/6239
- Keras/Plaid-ML
- 就访问较低级别功能的能力而言,Keras 本身是一个弱得多的框架
- PlaidML 性能仍然是优化 NVidia 的 cuDNN 和 AMD MIOpen-ROCM 的 1/2 到 1/3 - 在我做的测试中比 caffe OpenCL 更慢
- keras 后端 non-TF 的未来尚不清楚,因为 2.4 需要 TF...
- Caffe 的问题:
底线:
- 如果您有 GCN 独立 AMD GPU 并且 运行 Linux 您可以使用 ROCM+Hip。然而它不如 CUDA 稳定
- 您可以尝试 OpenCL Caffe 或 Keras-PlaidML - 它可能比其他解决方案更慢并且不如其他解决方案最佳,但更有可能使其发挥作用。
编辑 2021-09-14: 有一个新项目 dlprimitives:
https://github.com/artyom-beilis/dlprimitives
比 Caffe-OpenCL 和 Keras 都具有更好的性能 - 与 Keras/TF2 相比,它的训练性能约为 75%,但是它处于早期开发阶段并且在这一点上更加有限Caffe/Keras-PlaidML
的一组图层与 pytorch 的连接正在进行中,并取得了一些初步结果:https://github.com/artyom-beilis/pytorch_dlprim
免责声明:我是这个项目的作者