首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我如何告诉PyCUDA使用哪个GPU?

我如何告诉PyCUDA使用哪个GPU?
EN

Stack Overflow用户
提问于 2013-07-30 14:01:03
回答 3查看 4.6K关注 0票数 4

我的机器里有两张NVidia卡,两张都是数据自动化系统的。当我运行示例脚本以开始使用这里看到的PyCUDA:http://documen.tician.de/pycuda/时,我得到了错误

代码语言:javascript
复制
nvcc fatal   : Value 'sm_30' is not defined for option 'gpu-architecture'

我的计算GPU是计算能力3.0,所以sm_30应该是nvcc编译器的正确选择。我的图形GPU只有CC 1.2,所以我想也许这就是问题所在。我已经为linux安装了CUDA5.0版本,没有任何错误,以及所有编译器组件和python组件。

是否有方法显式地告诉PyCUDA使用哪个GPU?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-30 14:09:36

nvcc不会根据您安装的特定GPU来抱怨。它将编译任何您告诉它要编译的GPU类型。问题是,当还指定了一个sm_30选项时,您指定的是--gpu-architecture的非有效选项--gpu-code

您应该将compute_30传递给--gpu-architecturesm_30传递给--gpu-code

另外,请确保您使用的是正确的nvcc,并且不会无意中使用一些旧版本的CUDA工具包。

一旦解决了编译问题,就会有一个环境变量CUDA_DEVICE,pycuda将观察到这个变量来选择特定安装的GPU。

来自这里

代码语言:javascript
复制
CUDA_DEVICE=2 python my-script.py

顺便说一句,其他人有你的问题。你确定你没有一个旧版本的PyCUDA正在使用的CUDA工具包吗?

票数 2
EN

Stack Overflow用户

发布于 2013-07-30 14:06:22

我不知道Python包装器(或者一般的Python ),但是在C++中有亲和力 NVidia扩展,它允许您针对特定的GPU。也许您可以用Python为它编写一个包装器。

编辑:

现在我看到您实际上正在运行Linux,解决方案是更简单的(C++).You只需要在上下文init之前枚举XDisplay。

因此,默认的GPU通常以显示字符串"0.0“为目标。

要用第二个GPU打开显示器,您可以这样做:

代码语言:javascript
复制
    const char* gpuNum = "0:1";

    if (!(_display = XOpenDisplay(gpuNum ))) {

        printf("error: %s\n", "failed to open display");

    } else {
        printf("message: %s\n", "display created");

    }

       ////here comes the rest of context setup....
票数 0
EN

Stack Overflow用户

发布于 2022-10-11 11:16:40

至少目前看来,我们可以说

代码语言:javascript
复制
import pycuda.driver as drv
drv.Device(6).make_context()

还有这个将设备6设置为当前上下文

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17949168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档