多分これがPyOpneCLで計算する一番最小構成
# -*- coding: utf-8 -*-
import numpy as np
import pyopencl as cl

ctx = cl.create_some_context()
queue = cl.CommandQueue(ctx)

cl_mem_a=cl.Buffer(ctx,cl.mem_flags.READ_WRITE,4)
cl_mem_b=cl.Buffer(ctx,cl.mem_flags.READ_WRITE,4)
cl_mem_c=cl.Buffer(ctx,cl.mem_flags.READ_WRITE,4)
a = np.array([1])
b = np.array([1])
c = np.empty(1, dtype = np.int32)

cl.enqueue_write_buffer(queue,mem=cl_mem_a,hostbuf=a)
cl.enqueue_write_buffer(queue,mem=cl_mem_b,hostbuf=b)

global_work_size=(1,1)
local_work_size=(1,1)

prg_string="""
__kernel void Onlyadd(__global int* A,__global int* B,__global int* C)
{
   C[0] = A[0] + B[0] ;
}
"""
program=cl.Program(ctx,prg_string).build()
kernel_Onlyadd=cl.Kernel(program,"Onlyadd")
kernel_Onlyadd.set_arg(0,cl_mem_a)
kernel_Onlyadd.set_arg(1,cl_mem_b)
kernel_Onlyadd.set_arg(2,cl_mem_c)

cl.enqueue_nd_range_kernel(queue,kernel_Onlyadd,global_work_size,local_work_size)
cl.enqueue_read_buffer(queue,mem=cl_mem_c,hostbuf=c)
print(c)


デバイス(GPU等)上に要素1の配列でA,B,Cを確保。
C=A+B
をやってホストに結果を戻して表示