【问题标题】:mxnet - long GPU initialization timemxnet - 较长的 GPU 初始化时间
【发布时间】:2019-12-07 07:00:26
【问题描述】:

这个问题的后续:Mxnet - slow array copy to GPU

问题:mxnet GPU 初始化大约需要 20 秒。我该如何解决?

我有以下代码:

import mxnet as mx
import mxnet.ndarray as nd

from mxnet import profiler

profiler.set_config(aggregate_stats=True)

ctx = mx.gpu()

profiler.set_state('run')
nd.random.uniform(-1, 1, shape=(1, 1), ctx=ctx)
nd.waitall()
profiler.set_state('stop')
print(profiler.dumps(reset=True))

这是分析器的输出:

Device Storage
=================
Name                          Total Count        Time (ms)    Min Time (ms)    Max Time (ms)    Avg Time (ms)
----                          -----------        ---------    -------------    -------------    -------------
Memory: gpu/0                           3           0.0080           0.0040           0.0120           0.0040

MXNET_C_API
=================
Name                          Total Count        Time (ms)    Min Time (ms)    Max Time (ms)    Avg Time (ms)
----                          -----------        ---------    -------------    -------------    -------------
MXNDArrayWaitAll                        1           2.0640           2.0640           2.0640           2.0640
MXNDArrayFree                           1           0.0010           0.0010           0.0010           0.0010
MXImperativeInvokeEx                    1       22197.0469       22197.0469       22197.0469       22197.0469
MXNet C API Concurrency                 6           0.0000           0.0000           0.0010           0.0005
MXNet C API Calls                       3           0.0030           0.0010           0.0030           0.0010

operator
=================
Name                          Total Count        Time (ms)    Min Time (ms)    Max Time (ms)    Avg Time (ms)
----                          -----------        ---------    -------------    -------------    -------------
_random_uniform                         2           1.6280           0.8130           0.8150           0.8140
DeleteVariable                          2           0.0130           0.0060           0.0070           0.0065
ResourceParallelRandomSetSeed              10          17.9840           0.4670           5.7260           1.7984

所以,需要 22 秒。这之后的任何操作都会非常快,但是第一次 GPU 操作需要 22 秒(无论我使用什么操作)。所以很可能初始化需要很长时间。我该如何解决?

我试过这种方法https://github.com/apache/incubator-mxnet/issues/3239:

export CUDA_CACHE_MAXSIZE=2147483647
export CUDA_CACHE_DISABLE=0
export CUDA_CACHE_PATH="my_home_path/.nv/ComputeCache"

但它不起作用。

此页面:https://github.com/apache/incubator-mxnet/issues/13040 也提到了SM_70 arch.wait update,但我无法理解它的含义。

据我了解,问题在于必须将某些库加载到 GPU,并且必须完成。想法是缓存这些库(这样就没有第二次加载了),但我不知道该怎么做。

【问题讨论】:

    标签: python performance gpu mxnet


    【解决方案1】:

    我安装了cuda 10.1(之前是9.1)和mxnet-cu101mkl,现在初始化时间是2.5秒。由于我几乎重新安装了所有与 cuda 相关的组件,所以我不知道具体有什么帮助。

    【讨论】:

      猜你喜欢
      • 2016-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多