2013-12-21 5 views
0

Проснулся сегодня и вдруг получитьCompilerWarning с OpenCL

C:\Python27\lib\site-packages\pyopencl\__init__.py:61: CompilerWarning: Non-empty compiler output encountered. Set the environment variable PYOPENCL_COMPILER_OUTPUT=1 to see more. 
    "to see more.", CompilerWarning) 
C:\Python27\lib\site-packages\pyopencl\cache.py:101: UserWarning: could not obtain cache lock--delete 'c:\users\User\appdata\local\temp\pyopencl-compiler-cache-v2-uiduser-py2.7.3.final.0\lock' if necessary 
    % self.lock_file) 

Когда я бежал какой-либо PqOpenCL кода, например:

import numpy 
import pyopencl as cl 
import pyopencl.array as clarray 
from pyopencl.reduction import ReductionKernel 

ctx = cl.create_some_context() 
queue = cl.CommandQueue(ctx) 
krnl = ReductionKernel(ctx, numpy.float32, neutral="0", 
         reduce_expr="a+b", map_expr="x[i]*y[i]", 
         arguments="__global float *x, __global float *y") 
x = clarray.arange(queue, 400, dtype=numpy.float32) 
y = clarray.arange(queue, 400, dtype=numpy.float32) 
m = krnl(x, y).get() 

образца и часть раствора пришли из here

Решение, предлагаемое откатывание назад, которое я делал от 1,8 до 1,7,2, но все еще такая же проблема

Edit 1

Добавлено согласно предложению

import os os.environ['PYOPENCL_COMPILER_OUTPUT'] = '1'

C:\Python27\lib\site-packages\pyopencl\__init__.py:57: CompilerWarning: From-source build succeeded, but resulted in non-empty logs: 
Build on <pyopencl.Device 'Intel(R) HD Graphics 4000' on 'Intel(R) OpenCL' at 0x51eadff0> succeeded, but said: 

fcl build 1 succeeded. 
fcl build 2 succeeded. 
bcl build succeeded. 

    warn(text, CompilerWarning) 
+0

В соответствии с предупреждающим текстом установите PYOPENCL_COMPILER_OUTPUT = 1, чтобы увидеть, что на самом деле говорит предупреждение. Второе предупреждение также содержит указания по удалению файла блокировки, позволяющего правильному процессу кэширования. – jprice

ответ

4
import os 
os.environ['PYOPENCL_COMPILER_OUTPUT'] = '1' 

ли это, чтобы увидеть вывод компилятора, я получил то же самое сообщение прежде. Это был только компилятор intel opencl, говорящий, что он векторизовал \ оптимизировал ядро ​​opencl.