首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SYCL DPC++自动检测装置

SYCL DPC++自动检测装置
EN

Stack Overflow用户
提问于 2022-06-15 13:25:07
回答 1查看 112关注 0票数 1

这个问题可能是微不足道的,不幸的是我还没有找到我想要的答案。

我使用dpct迁移工具将一些cuda代码移植到Intel DPC++,然后我进一步优化了所需的一切,并最终摆脱了与dpct相关的所有东西,期待超级方便。

代码语言:javascript
复制
dpct::get_current_device();

这基本上解决了之前的所有痛苦,我不得不在编译选项中选择合适的设备,并使用Makefiles等进行控制。

在不使用dpct的情况下,有办法做到这一点吗?我看过dpct是如何做到这一点的(这里),但它看起来非常不简单,并且依赖于其他内部函数。

有什么办法可以避免这种情况吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-20 10:21:12

从你的问题中我不太清楚你是想抓住你的设备的一个句柄,还是2)选择一个可以运行的设备,所以我会尝试同时回答这两个问题。请注意,dpct::get_current_device()实际上不是在选择设备,而是返回您在程序前面已经选择的设备。

  1. 通常,在使用SYCL时,我们从sycl::queue开始,我们使用它提交内核、内存复制操作等等。您可以使用以下sycl::queue访问设备:
代码语言:javascript
复制
sycl::device d = q.get_device();
  1. 但看起来你可能会要求最简单的方法来选择一个设备。在这种情况下,最简单的方法是使用SYCL提供的设备选择器之一构造队列:
代码语言:javascript
复制
sycl::queue q{sycl::gpu_selector()};
sycl::queue q{sycl::cpu_selector()};
sycl::queue q{sycl::default_selector()};

请注意,最后一个选项(sycl::default_selector())可能是dpct当前为您所做的。

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

https://stackoverflow.com/questions/72632297

复制
相关文章

相似问题

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