PyOpenCL, como utilizar a função exponencial, (OpenCL)

votos
11

Estou escrevendo este código OpenCL em Python utilizando PyOpenCL que envolve função exponencial. No entanto, eu não sei como incluir esta biblioteca para fazê-lo funcionar. Assim, no kernel, é simplesmente como esta, por exemplo:

kernelsource = 
__kernel void forceFinder(
    const int N,
    __global float* datacl,
    __global float* poscl,
    __global float* res)
{
    int i = get_global_id(0); // Global id;
    if (i < N) {

         res[i] = (datacl[i ] - poscl[i]) *exp(100);

    }
}

Eu tentei usar (de pyopencl.clmath exp importação) no início, mas ele não funciona. Quando eu tentei construir o programa ele falhar e dar a este:

<program source>:28:66: error: call to '__fast_relax_exp' is ambiguous
            res[i * dim + k] = (datacl[i * dim + k] - poscl[k]) *exp(0);

Por favor ajude.

Muito apreciado

Jiajun

Publicado 12/03/2016 em 19:12
usuário
Em outras línguas...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more