【问题标题】:Is there a way to check if mxnet uses my gpu?有没有办法检查 mxnet 是否使用我的 gpu?
【发布时间】:2018-03-02 19:30:26
【问题描述】:

我可以看看 mxnet 有哪些可用的 gpus 吗?

tensorflow 有类似的东西吗

tf.test.gpu_device_name()

在 mxnet 中?

【问题讨论】:

    标签: tensorflow gpu mxnet


    【解决方案1】:

    检查您的 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!')
    

    【讨论】:

      【解决方案2】:

      检查mxnet是否列出了gpu。

      import mxnet as mx
      mx.context.num_gpus()
      

      要使用该库,请确保在需要 context 的地方传递参数 mx.gpu(0)0是gpu索引,多gpu的情况下索引会更多。

      【讨论】:

        【解决方案3】:

        如果您从源代码构建

        >>> 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是on,表示它是用GPU构建的!

        【讨论】:

        • 我在找这个。谢谢!
        • 很高兴它帮助了你。
        猜你喜欢
        • 1970-01-01
        • 2020-11-25
        • 2014-12-22
        • 2010-10-26
        • 1970-01-01
        • 1970-01-01
        • 2014-10-14
        相关资源
        最近更新 更多