有没有办法检查mxnet是否使用我的gpu?

Ște*_*fan 6 gpu tensorflow mxnet

我能看到mxnet可用的gpus是什么吗?

tensorflow是否有类似的东西

tf.test.gpu_device_name()
Run Code Online (Sandbox Code Playgroud)

在mxnet?

小智 10

检查GPU是否被利用的最终方法是使用nvidia-smi命令.我最喜欢的论点是:

nvidia-smi --query-gpu=timestamp,name,pci.bus_id,driver_version,pstate,pcie.link.gen.max,pcie.link.gen.current,temperature.gpu,utilization.gpu,utilization.memory,memory.total,memory.free,memory.used --format=csv -l 1
Run Code Online (Sandbox Code Playgroud)

如果您只想测试gpu支持是否可用(这是tf.test.gpu_device_name()),则以下函数可以提供帮助:

import mxnet as mx 
def gpu_device(gpu_number=0):
    try:
        _ = mx.nd.array([1, 2, 3], ctx=mx.gpu(gpu_number))
    except mx.MXNetError:
        return None
    return mx.gpu(gpu_number)
Run Code Online (Sandbox Code Playgroud)

None如果请求的gpu设备不可用,则此函数返回; 如果gpu设备可用,则返回相关的上下文.您还可以使用此功能检查此系统上是否支持GPU:

if not gpu_device():
    print('No GPU device found!')
Run Code Online (Sandbox Code Playgroud)


Raf*_*edo 10

检查是否mxnet已列出 gpu。

import mxnet as mx
mx.context.num_gpus()
Run Code Online (Sandbox Code Playgroud)

要使用该库,请确保mx.gpu(0)在需要上下文的地方传递参数。该0是GPU指数之,在多GPU的情况下,将会有更多的指标。


Cha*_*pat 6

如果您从源代码构建

>>> from mxnet.runtime import feature_list
>>> feature_list()
[? CUDA, ? CUDNN, ? NCCL, ? CUDA_RTC, ? TENSORRT, ? CPU_SSE, ? CPU_SSE2, ? CPU_SSE3, ? CPU_SSE4_1, ? CPU_SSE4_2, ? CPU_SSE4A, ? CPU_AVX, ? CPU_AVX2, ? OPENMP, ? SSE, ? F16C, ? JEMALLOC, ? BLAS_OPEN, ? BLAS_ATLAS, ? BLAS_MKL, ? BLAS_APPLE, ? LAPACK, ? MKLDNN, ? OPENCV, ? CAFFE, ? PROFILER, ? DIST_KVSTORE, ? CXX14, ? INT64_TENSOR_SIZE, ? SIGNAL_HANDLER, ? DEBUG]
Run Code Online (Sandbox Code Playgroud)

在这里,CUDA 和 CUDNN 在 build 标志中是 on,表明它是用 GPU 构建的!