【转载】 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
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
【转载】 CUDA_DEVICE_ORDER 环境变量说明 ( ---------- tensorflow环境下的应用 )的更多相关文章
- JAVA设置环境变量和在DOS下运行java程序
在学校实训的这几天,老师带着我们开始深入的复习java.这是第一天的内容哦 对于“JAVA设置环境变量和在DOS下运行java程序”,许多初学者是陌生的,但了解这个却对后期的学习很重要. http:/ ...
- 【环境变量】Linux 下三种方式设置环境变量与获取环境变量
1.在Windows 系统下,很多软件安装都需要配置环境变量,比如 安装 jdk ,如果不配置环境变量,在非软件安装的目录下运行javac 命令,将会报告找不到文件,类似的错误. 2.那么什么是环境变 ...
- PATH环境变量和CLASSPATH环境变量详解
大凡装过JDK的人都知道要安装完成后要设置环境变量,可是为什么要设置环境变量呢?环境变量有什么作用? 1)PATH详解: 计算机安装JDK之后,输入“javac”“java”之类的命令是不能马上被计算 ...
- Java学习笔记之linux配置java环境变量(三种环境变量)
0x00 压安装jdk 在shell终端下进入jdk-6u14-linux-i586.bin文件所在目录, 执行命令 ./jdk-6u14-linux-i586.bin 这时会出现一段协议,连继敲回车 ...
- Windows系统环境变量之path环境变量(Java, Python环境变量配置)
系统: Windows10 path系统环境变量的作用: Windows和DOS操作系统中的path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外 ...
- 右键计算机->属性->高级系统设置->高级->环境变量,添加环境变量(推荐)
(1)右键计算机->属性->高级系统设置->高级->环境变量,添加环境变量(推荐) QTDIR:D:\Software\Qt\Qt5.2.0\5.2.0\msvc2010_op ...
- 什么是环境变量,Linux环境变量及作用 echo
什么是环境变量,Linux环境变量及作用 < Linux命令的执行过程是怎样的?(新手必读)Linux PATH环境变量是什么,有什么用?(入门必读) > <Linux就该这么学&g ...
- windows配置jdk环境变量、mysql环境变量、tomcat环境变量、maven环境变量、git环境变量、node环境变量
一.windows配置各种环境变量后 path 路径下的目录: 二.windows 配置各种环境变量的目的: 为windows系统添加上各种环境对应的命令 举例,为什么要添加jdk的bin目录,是因为 ...
- port: ${SERVER_PORT:9190} #首先取环境变量,如果环境变量中没有,就取 9190 这个固定值
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'spring.datas ...
- NX二次开发-UFUN获取环境变量路径,将环境变量转换为字符串,字符串拼接UF_translate_variable
NX9+VS2012 #include <uf.h> UF_initialize(); //UFUN获取环境变量路径 //将环境变量转换为字符串 char* GetName = NULL; ...
随机推荐
- 没有可用的软件包 build-essential,但是它被其他的软件包引用了【解决方法】
执行: sudo apt install build-essential 遇到如下问题: 解决方法: sudo apt-get update 此命令需要联网:待更新完毕后再次输入安装命令即可. 若在升 ...
- 版本问题---keras和tensorflow的版本对应关系
keras和tensorflow的版本对应关系,可参考: Framework Env name (--env parameter) Description Docker Image Packages ...
- Chrome出现“浏览器由所属组织管理”如何解决
之前碰到了这个问题,删除注册表解决了.当时没记下来,今天又碰到了.那就写下来以备之后再碰到吧 删除了注册表\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Ch ...
- C# 中静态调用C++dll 和C# 中动态调用C++dll
在最近的项目中,牵涉到项目源代码保密问题,由于代码是C#写的,容易被反编译,因此决定抽取核心算法部分使用C++编写,C++到目前为止好像还不能被很好的反编译,当然如果你是反汇编高手的话,也许还是有可能 ...
- Dump文件的生成和使用
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/lk142500/article/detai ...
- python应用-打印各种形状图
row = int(input('请输入行数: ')) for row in range(1,row): for col in range (1,row+1): print( (col),end='' ...
- 重装Zend Studio后如何恢复之前的设置
Program Files (x86)\Zend\Zend Studio 10.0.0\configuration\.settings 这个目录下的文件备份下来,重装安装Zend Studio后覆盖到 ...
- python基础语法12 内置模块 json,pickle,collections,openpyxl模块
json模块 json模块: 是一个序列化模块. json: 是一个 “第三方” 的特殊数据格式. 可以将python数据类型 ----> json数据格式 ----> 字符串 ----& ...
- mac 上配置flutter开发环境
(ios,Android,Xcode,Android Studio,VScode,IDEA) 1)安装Flutter SDK 2)iOS 环境配置 3)Android Studio配置 4)VS co ...
- 数据库 = filesystem + transcation + dsl + dslengine
数据库 = filesystem + transcation + dsl + dslParser