有没有一种方法可以检查mxnet是否使用了我的GPU?

11

我可以查看mxnet可用的GPU吗?

TensorFlow是否有类似的功能?

tf.test.gpu_device_name()

mxnet中?

3个回答

13

检查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

如果您只想测试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)

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

if not gpu_device():
    print('No GPU device found!')

11

检查mxnet是否已经列出了GPU。

import mxnet as mx
mx.context.num_gpus()
为了使用该库,请确保在需要上下文的地方传递参数mx.gpu(0)。在多个GPU的情况下,0是GPU索引之一,可能会有更多的索引。

7

如果你是从源代码构建的

>>> 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]

这里,CUDA和CUDNN在构建标志中启用,说明它是使用GPU构建的!


1
我正在寻找这个。谢谢! - t T s
1
很高兴能帮到你。 - Chaitanya Bapat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接