首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenCL CPU平台在Compute.scala中的选择

OpenCL CPU平台在Compute.scala中的选择
EN

Stack Overflow用户
提问于 2018-09-25 08:37:20
回答 1查看 328关注 0票数 0

我在笔记本上安装了3种不同的OpenCL运行时:

  • GPU上的NVIDIA CUDA OpenCL
  • 处理器上的Intel OpenCL SDK
  • POCL (也在CPU上)

因此,下面是clinfo结果的一部分

代码语言:javascript
复制
$ clinfo
Number of platforms                               3
Platform Name                                   Portable Computing Language
Platform Vendor                                 The pocl project
Platform Version                                OpenCL 1.2 pocl 1.1 None+Asserts, LLVM 6.0.0, SPIR, SLEEF, DISTRO, POCL_DEBUG
...
Platform Name                                   Intel(R) OpenCL
Platform Vendor                                 Intel(R) Corporation
Platform Version                                OpenCL 1.2 LINUX
...
Platform Name                                   NVIDIA CUDA
Platform Vendor                                 NVIDIA Corporation
Platform Version                                OpenCL 1.2 CUDA 9.0.282

现在,我想使用Compute.scala Scala库在GPU和CPU上执行NDArray计算(基于LWJGL库)。

在程序开始时使用以下导入行选择设备类型:

代码语言:javascript
复制
import com.thoughtworks.compute.gpu._ // for GPU
// OR
import com.thoughtworks.compute.cpu._ // for CPU

经过快速测试,我的代码对这两种设备类型都运行良好。然而,在选择CPU时,我如何知道哪个平台在运行呢?这是英特尔的OpenCL平台,还是POCL?

通过查看库的代码,我怀疑它只是选择了平台列表中的第一个CPU平台。

所以我的问题是:

  • 我如何知道使用的是哪个CPU平台?
  • 如何选择我想在Compute.scala中使用的平台?
  • 也许有必要“禁用”其中一个平台。如果是这样的话,我该怎么做?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-10-03 07:46:39

我找到了一种快速切换平台的方法:我只需在/etc/OpenCL/vendors/中重命名ICD文件以“禁用”它,以便只检测到我想要的平台(可以用clinfo检查)。

例如,$ sudo mv /etc/OpenCL/vendors/pocl.icd /etc/OpenCL/vendors/pocl.icd_使用intel64 (另一个可用的CPU平台)来代替intel64,反之亦然。

如果有人有一个更干净和程序化的方式来解决这一问题,他们是受欢迎的!

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

https://stackoverflow.com/questions/52493900

复制
相关文章

相似问题

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