Быстрое зацикливание кода Python с использованием Pyopencl - PullRequest
0 голосов
/ 15 февраля 2019

Я пытаюсь преобразовать цикл python в pyopencl для более быстрой обработки, нужна помощь по написанию ядра

Это для уменьшения времени, затрачиваемого циклом python.В моей системе установлена ​​карта 1080 GPU, поэтому я хочу перенести работу с процессора на графический процессор

#----Python Code------#
h2 = np.load(PathOrig)   #shape=(2092, 64)

h1 = np.load(PathTest)   #shape=(2090, 64)

t = np.zeros(shape=(len(h1), len(h2)), dtype=np.uint8) #shape=(2090, 2092)

def match_hash(h2, h1):

    for t in range (0, len(h2)):       

        for o in range (0, len(h1)):

            match_prob = np.count_nonzero(h1[o] != h2[t])   

            if match_prob < 24:

                t[o][t] = 255

%timeit match_hash(h2, h1)    #1 loop, best of 3: 2.86 s per loop


#----Now Trying the above code with PyopenCL------#
cl_h2 = cl.array.to_device(queue, h2)

cl_h1 = cl.array.to_device(queue, h1)  

cl_t = cl.array.empty(queue, (len(h1),len(h2)), dtype=np.float32) 


#----NEED HELP IN THIS PART OF KERNEL-------------#
%%cl_kernel -o "-cl-fast-relaxed-math"

__kernel void match_vector(__global const float *a,

__global const float *b, __global float *t)

{            

}

match_vector(queue, )
#----------------------------------------

И t, и cl_t должны совпадать

...