Я установил 3 разных среды выполнения OpenCL на своем ноутбуке:
- NVIDIA CUDA OpenCL на графическом процессоре
- Intel OpenCL SDK на CPU
- POCL (также на CPU)
В результате, вот часть результата clinfo
:
$ 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
Теперь я хочу использовать библиотеку Scala Compute.scala для выполнения вычислений NDArray на GPU и CPU (на основе библиотеки LWJGL.
Тип устройства выбирается с помощью следующей строки импорта в начале программы:
import com.thoughtworks.compute.gpu._ // for GPU
// OR
import com.thoughtworks.compute.cpu._ // for CPU
Послебыстрый тест, мой код работает нормально с обоими типами устройств. Однако, как я должен знать, какая платформа работает при выборе ЦП? Это платформа Intel OpenCL или POCL?
Посмотрев на кодбиблиотека, я подозреваю, она просто выбирает первую платформу ЦП в списке платформ.
Итак, мои вопросы:
- Как мне узнать, какой процессор CPUorm используется?
- Как выбрать платформу, которую я хочу использовать в Compute.scala?
- Возможно, необходимо «отключить» одну из платформ.Если это так, как я могу это сделать?
Спасибо.