编程技术网

关注微信公众号,定时推送前沿、专业、深度的编程技术资料。

 找回密码
 立即注册

QQ登录

只需一步,快速开始

极客时间

TensorAdapter默默地未能加载Pytorch,严重伤害了性能

作者: Mahdieh 2022-5-12 16:15:10 显示全部楼层 |阅读模式

TensorAdapter silently fails to load in PyTorch, significantly hurting performance

Bug

As of 0.8, if the libtensoradapter_pytorch fails to load, it is not reported to users, and they will see performance drop by up to 2x and in increase in GPU memory (and in some cases get confusing out-of-memory errors from pytorch where it is only using a subset of the memory).

这是一种糟糕的用户体验,并打开DGL,以进行不准确(和不利的)比较。

如果用户在GPU上使用DGL,则应警告他们在退化状态下运行。我知道我们以前的警告会导致一些混乱(#3377),但是忽略GPU跑步的局面击败了许多优化努力。

Since there is no warning, users have no reason to run with DGL_LOG_DEBUG=1 set. Even if the user does set the environment variable, the current message is:

>> import dgl 2022-05-11 16:46:15,425 base.py:142 DEBUG p:MainProcess t:MainThread: Memory optimization with PyTorch is not enabled. 2022-05-11 16:46:15,426 __init__.py:47 DEBUG p:MainProcess t:MainThread: Using backend: pytorch">
>>> import dgl
2022-05-11 16:46:15,425 base.py:142 DEBUG p:MainProcess         t:MainThread: Memory optimization with PyTorch is not enabled.
2022-05-11 16:46:15,426 __init__.py:47 DEBUG p:MainProcess         t:MainThread: Using backend: pytorch

这不会告诉用户禁用“内存优化”的影响,也不会告诉他们如何修复它。

我认为默认情况下警告将是一件好事,包括有关其影响的说明,如何修复它以及如何禁用。如果用户的系统没有任何CUDA Feature 的设备(或者至少没有CUDA支持,我们可以使警告保持沉默。

如果我们认为没有TensorAdapter运行是正常的行为,我认为我们确实需要改善我们的NDARRAY分配和内存池实现。

该问题来自:dmlc/dgl/issues/3998 , 试试查看该项目更多issue.

问题解答

zhoudaxia1990 2022-5-12 16:48:15 显示全部楼层

将来我们可能会与pytorch/pytorch#65365

进行解决方法
awormuth 2022-5-12 17:14:58 显示全部楼层

+1对此,大多数用户都不知道该论文中的基准结果错误。

腾讯云服务器 阿里云服务器
关注微信
^