相关疑难解决方法(0)

Pyopencl:to_device和Buffer之间的区别

让

import pyopencl as cl
import pyopencl.array as cl_array
import numpy
a = numpy.random.rand(50000).astype(numpy.float32)
mf = cl.mem_flags
Run Code Online (Sandbox Code Playgroud)

有什么区别

a_gpu = cl.Buffer(self.ctx, mf.READ_ONLY | mf.COPY_HOST_PTR, hostbuf=a)
Run Code Online (Sandbox Code Playgroud)

和

a_gpu = cl_array.to_device(self.ctx, self.queue, a)
Run Code Online (Sandbox Code Playgroud)

?

有什么区别

result =  numpy.empty_like(a)
cl.enqueue_copy(self.queue, result, result_gpu)
Run Code Online (Sandbox Code Playgroud)

和

result = result_gpu.get()
Run Code Online (Sandbox Code Playgroud)

?

python numpy opencl pyopencl

8
推荐指数
1
解决办法
2572
查看次数

标签 统计

numpy ×1

opencl ×1

pyopencl ×1

python ×1