为什么我的同一个 GPU 处于不同的上下文中?

问题描述 投票:0回答:1

我有两个 rtx3090 gpu,我想将它们绑定在一个上下文中。但它抛出错误:

what():  Can't add devices across platforms to a single context. -33 (PI_ERROR_INVALID_DEVICE)

代码的输出:

#include <sycl/sycl.hpp>
int main() { 
    auto platforms = sycl::platform::get_platforms();
    for (auto &platform : platforms) {
        std::cout << "Platform: " << platform.get_info<sycl::info::platform::name>()
                << std::endl;
    
        auto devices = platform.get_devices();
        for (auto &device : devices) {
            std::cout << "  Device: " << device.get_info<sycl::info::device::name>()
                << std::endl;
    }
    }
}

是:

Platform: Intel(R) OpenCL 
Device: Intel(R) Xeon(R) Gold 5218R CPU @ 2.10GHz 
Platform: Intel(R) OpenCL 
Device: Intel(R) Xeon(R) Gold 5218R CPU @ 2.10GHz 
Platform: Intel(R) FPGA Emulation Platform for OpenCL(TM) 
Device: Intel(R) FPGA Emulation Device 
Platform: NVIDIA CUDA BACKEND 
Device: NVIDIA GeForce RTX 3090 
Platform: NVIDIA CUDA BACKEND 
Device: NVIDIA GeForce RTX 3090 

我想知道为什么相同的GPU在不同的平台上

c++ gpu sycl
1个回答
0
投票

不清楚您在这里使用的是哪个版本的 oneAPI,但据我所知,它看起来确实很旧。早些时候,这个这个补丁被合并了,这应该允许你的用例工作。我这里没有多 GPU 设置来测试这一点,但下载新版本的 oneAPI 有望解决您的问题!

© www.soinside.com 2019 - 2024. All rights reserved.