2016-10-20 11 views
0

Поскольку код ядра в PyOpenCl должен быть написан только в C, я написал несколько функций, которые нужно вызывать внутри кода ядра в PyOpenCL . Где я должен хранить эти функции? В PyOpenCl мой код ядра выглядит следующим образом:Где я должен определить функцию C, которая будет вызываться в коде ядра C при использовании PYOPENCL

program = cl.Program(context, """ 
     __kernel void Kernel_OVERLAP_BETWEEN_N_IP_GPU(__constant int *FBNs_array,__local int *Binary_IP, __local int *cc,__global int *overlaping_patterns_gpu) 
{ 
    function1(int *x, int *y); 
} 
    """).build() 

Где я должен написать и сохранить функцию FUNCTION1. следует определить его в самом ядре или в каком-либо другом файле и указать путь. Если мне нужно определить его в каком-то другом месте и предоставить путь, пожалуйста, предоставьте мне некоторые детали, я совершенно не знаком с C. Спасибо

+0

непосредственно перед ядром, в строке, как и его язык C99. Вы можете добавить макросы #define тоже, но могут понадобиться некоторые ограничители строк. –

ответ

0

Как в C, перед ядром.

program = cl.Program(context, """ 
    void function1(int *x, int *y) 
    { 
     //function1 code 
    } 
    __kernel void kernel_name() 
    { 
     function1(int *x, int *y); 
    }""").build() 
+0

Пока вы объявляете это первым. Это может быть и после. Однако для простоты в одном ядре файла и, если вам не нужна рекурсия, сначала всегда лучше. – DarkZeros

 Смежные вопросы

  • Нет связанных вопросов^_^