PyOpenCL не в состоянии собрать программу на MacOS Mojave - PullRequest
0 голосов
/ 26 октября 2018

Итак, я пытаюсь запустить программу, используя silx.image.sift, которая использует pyopencl.Во время работы программного обеспечения я столкнулся с проблемой сборки программы openCL и изолировал программу от следующего кода, который воспроизводит ошибку:

import numpy as np
import pyopencl as cl
from pyopencl.clrandom import rand as clrand


context = cl.create_some_context()
queue = cl.CommandQueue(context)
clrand(queue, (50,), np.float32)

Поскольку этот код настолько прост, насколько это возможно, яЯ предполагаю, что это ошибка с (к сожалению) недавно установленной MacOS Mojave.Вот ошибка, которую я постоянно получаю всякий раз, когда я запускаю код, который использует pyopencl:

 File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pyopencl/clrandom.py",
  line 642, in _fill
    self.get_gen_kernel(ary.dtype, distribution)
  File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pytools/__init__.py",
   line 598, in wrapper
    result = function(obj, *args, **kwargs)
  File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pyopencl/clrandom.py",
  line 623, in get_gen_kernel
    prg = cl.Program(self.context, src).build()
  File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pyopencl/__init__.py",
   line 510, in build
    options_bytes=options_bytes, source=self._source)
  File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pyopencl/__init__.py",
   line 554, in _build_and_catch_errors
    raise err
pyopencl._cl.RuntimeError: clBuildProgram failed: BUILD_PROGRAM_FAILURE - clBuildProgram failed: BUILD_PROGRAM_FAILURE -
   clBuildProgram failed: BUILD_PROGRAM_FAILURE

Build on <pyopencl.Device 'Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz' on 'Apple' at 0xffffffff>:

Не уверен, является ли это проблемой pyopencl или общей проблемой opencl.Я понимаю, что OpenCL устарел в macOS mojave, но это не должно означать, что он вообще не будет работать, верно?

1 Ответ

0 голосов
/ 02 марта 2019

По словам разработчика PyOpenCL, это известная проблема в Mac OS 10.14.Более ранние версии, по-видимому, не затрагиваются.

Решение состоит в том, чтобы использовать команду в терминале перед запуском python или jupyter notebook:

export PYOPENCL_NO_CACHE=1
...