Python pyopencl DLL load falló incluso con los últimos controladores

He instalado el último CUDA y el controlador para mi GPU. Estoy usando Python 2.7.10 en Win7 64bit. Intenté instalar pyopencl desde:

un los binarios no oficiales de Windows en http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyopencl

b . comstackndo mi propio después de obtener las fonts de https://pypi.python.org/pypi/pyopencl

La instalación fue exitosa en ambos casos pero recibo el mismo mensaje de error una vez que trato de importarlo:

>>> import pyopencl Traceback (most recent call last): File "", line 1, in  File "C:\Python27\lib\site-packages\pyopencl-2015.1-py2.7-win-amd64.egg\pyope cl\__init__.py", line 30, in  import pyopencl._cl as _cl ImportError: DLL load failed: The specified procedure could not be found. >>> 

Tengo Visual C ++ Redistributable para Visual Studio 2015 instalado desde https://www.microsoft.com/en-us/download/details.aspx?id=48145 .

    También probé con 2 versiones diferentes del controlador de GPU (incluida la última). La misma cosa. Mucha gente parece tener el mismo error y en algunos foros, leí que al actualizar los controladores de GPU a la última, funciona bien. Pero no para mí.

    ¿Alguien sabe como arreglar esto?

    Tuve este mismo problema y descubrí que se debía a que AMD OpenCL.dll no tenía una función introducida en OpenCL 2.1. El sitio de Gohlke solo tiene OpenCL 2.1 y 1.2, mientras que los controladores AMD son compatibles con 2.0.

    Como quería 2.0, la solución más sencilla era reemplazar manualmente AMD System32 / OpenCL.dll con el de Intel SDK con soporte experimental 2.1.

    Me temo que no hay una respuesta correcta a este problema. Cada caso es diferente. Depende de lo que esté instalado en el sistema operativo. Para rastrear tales problemas, normalmente uso Dependency Walker .

    En este caso específico, abriría _cl.pyd (normalmente en C:\Python27\Lib\site-packages\pyopencl ) en Dependency Walker para verificar si no faltan dependencias o si, por ejemplo, OpenCL.dll es la única. que se debe utilizar. OpenCL.dll puede ser instalado por otros progtwigs y su ruta de acceso agregada a PATH . También OpenCL.dll en System32 puede ser demasiado viejo. Básicamente, la prueba y el error al cambiar el nombre de todos excepto un OpenCL.dll en OpenCL.dll.bak y / o eliminar las rutas de PATH pueden OpenCL.dll.bak allí.

    Intente con las versiones 1.2 y 2.1. Lo intenté más tarde y tuve este problema. Cambió el whl y funciona, pero utiliza la GPU de Intel. NVidia OpenCL.dll es 2.0 y eso no funciona todavía.

    Acabo de comprobar la matriz cl.get_platforms y los encontró 0. Intel 1. NVidia

    1. pyopencl.Platform Intel (R) OpenCL & pyopencl.Device Intel (R) Core (TM) … Intel (R) OpenCL
    2. pyopencl.Platform NVIDIA CUDA & pyopencl.Device Quadro … NVIDIA CUDA