Я пытаюсь преобразовать цикл 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
должны совпадать