当前位置: 首页 > 知识库问答 >
问题:

如何选择要在哪个GPU上运行作业?

仲孙德惠
2023-03-14
echo $CUDA_VISIBLE_DEVICES
CUDA_VISIBLE_DEVICES=1

然后再次运行nbody,但它也转到GPU0。

我看了相关的问题,如何选择指定的GPU来运行CUDA程序?但是devicequery命令不在CUDA 8.0 bin目录中。除了$CUDA_Visible_Devices$之外,我还看到其他文章引用了环境变量$CUDA_Devices但这些都没有设置,我也没有找到关于如何使用它的信息。

虽然与我的问题没有直接关系,但使用nbody-device=1我能够使应用程序在GPU1上运行,但使用nbody-numdevices=2不能在GPU0和1上运行。

我正在一个使用bash shell运行的系统上测试这一点,该系统在CentOS 6.8上运行,带有CUDA 8.0,2个GTX 1080 GPU和NVIDIA驱动程序367.44。

我知道当使用CUDA编写时,您可以管理和控制要使用的CUDA资源,但是当运行编译的CUDA可执行文件时,我如何从命令行管理这些资源呢?

共有1个答案

和谦
2023-03-14

该问题是由于未正确设置shell中的cuda_visible_devices变量造成的。

例如,若要指定CUDA设备1,可以使用以下设置CUDA_Visible_Devices

export CUDA_VISIBLE_DEVICES=1

CUDA_VISIBLE_DEVICES=1 ./cuda_executable

前者为当前shell的生命周期设置变量,后者仅为特定可执行调用的生命周期设置变量。

如果要指定多个设备,请使用

export CUDA_VISIBLE_DEVICES=0,1
CUDA_VISIBLE_DEVICES=0,1 ./cuda_executable
 类似资料:
  • 在我的项目中,Apache Tomcat8.5context.xml配置如下。 我检查了这两个JAR,servlet.jar包含常规servlet api类,而Tomcat的servlet-api.jar包含这些常规servlet api类以及许多其他与servlet功能相关的类。 查询:由于运行servlet有两个jar即servlet.jar和servlet-api.jar,那么Tomcat如

  • 我想在Windows10中的gpu上运行我的代码,就像GoogleColab一样,我们可以改变运行时选项,这很容易转换到gpu。是否有可能在windows中对jupyter笔记本进行同样的操作。

  • 我从这里下载了一个量化的mobilenet,这个图包含训练期间的假量化节点,以模拟测试时的输出。我想收集这个网络最后一个逐点卷积层的输出。 量化冻结模型包含额外的fc、softmax等层,对我的应用程序没有用。 我有以下代码用于加载图形。 然后使用ses运行。run(),但是我观察到卷积层的输出没有像在移动设备上运行时那样被量化(8位)。 在pc上运行代码时,如何生成与移动设备上相同的输出。 tf

  • 而且我还有一个SpringBatchApplication.java: 我怎样才能同时有两个工作,并选择我想要运行的?

  • 我使用log4j2.9 我在log4j2.xml中配置了文件追加器。 我在Runtiime找不到任何如何选择appender的例子。 你能给我举个简单的例子吗?

  • 我可以使用Jenkins提供的从机Groovy控制台在从机JVM上执行Groovy脚本。(例如)println system.getenv(“path”) 打印主节点上的path变量的值 有没有什么方法可以在Jenkins作业中的客户机JVM上执行我的groovy脚本,而不在从节点上安装groovy?