• 【转载】 CUDA_DEVICE_ORDER 环境变量说明 ( ---------- tensorflow环境下的应用 )


    原文地址:

    https://www.jianshu.com/p/d10bfee104cc

    -----------------------------------------------------------------------------------

    NVML工具nvidia-smi按设备的PCI Bus ID 为设备分配索引序号,由于PCI Bus ID 是硬件相关的,我们把设备的 PCI Bus ID 或者按该ID分配的索引号为物理ID。

    CUDA应用运行时进行设备查询(比如deviceQuery)返回的设备ID可能与物理ID不一致,譬如下面这位网友遇到的情况:

    ## NVML id 是 物理ID,CUDA index是CUDA应用查询返回的设备ID
    NVML id 0 maps to Cuda index 4
    NVML id 1 maps to Cuda index 5
    NVML id 2 maps to Cuda index 6
    NVML id 3 maps to Cuda index 7
    NVML id 4 maps to Cuda index 0
    NVML id 5 maps to Cuda index 1
    NVML id 6 maps to Cuda index 2
    NVML id 7 maps to Cuda index 3
    NVML id 8 maps to Cuda index 8
    NVML id 9 maps to Cuda index 9
    NVML id 10 maps to Cuda index 10
    NVML id 11 maps to Cuda index 11
    NVML id 12 maps to Cuda index 12
    NVML id 13 maps to Cuda index 13
    NVML id 14 maps to Cuda index 14
    NVML id 15 maps to Cuda index 15
     
     
     

    CUDA_VISIBLE_DEVICES 环境变量说明TensorFlow知识点 我们讲过可以设置 CUDA_VISIBLE_DEVICES 变量来根据设备ID选择性地使用设备。注意到设备ID 与物理ID不一致的可能性,实际使用的未必是想要使用的设备,将会导致CUDA应用崩溃,见Tensorflow issue #152

    我们可以通过设置 CUDA_DEVICE_ORDER = PCI_BUS_ID 来要求运行时设备查询按照 PCI_BUS_ID 的顺序索引,从而使得 设备ID=物理ID 保证CUDA应用按期望使用指定设备。目前最佳的设置方法是同时设置 CUDA_DEVICE_ORDER = PCI_BUS_ID CUDA_VISIBLE_DEVICES



     
     
     
     
     
     

    -----------------------------------------------------------------
    作者:肆不肆傻
    链接:https://www.jianshu.com/p/d10bfee104cc
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    LPC2478时钟模块详解
    LPC2478内存布局以及启动方式
    STM8的GPIO驱动
    STM8时钟系统详解
    ELF文件格式分析--结构篇
    S3C2440 TFTLCD驱动详解
    S3C2440触摸屏驱动详解
    S3C2440 ADC详解
    STM8建立IAR工程
    STM8单片机启动流程彻底探究--基于IAR开发环境
  • 原文地址:https://www.cnblogs.com/devilmaycry812839668/p/12032129.html
Copyright © 2020-2023  润新知