AMD OpenCL大学课程(4)
Kernel对象: Kernel就是在程序代码中的一个函数,这个函数能在OpenCL设备上执行。一个Kernel对象就是kernel函数以及其相关的输入参数。 Kernel对象通过程序对象以及指定的函数名字创建。
AMD OpenCL大学课程(3)
OpenCL内存对象: OpenCL内存对象就是一些OpenCL数据,这些数据一般在设备内存中,能够被拷入也能够被拷出。OpenCL内存对象包括buffer对象和image对象。 buffer对象:连续的内存块----顺序存储,能够通过指针、行列式等直接访问。
OpenCL memory object 之选择传输path
对应用程序来说,选择合适的memory object传输path可以有效提高程序性能。
下面先看一写buffer bandwidth的例子:
1. clEnqueueWriteBuffer()以及clEnqueueReadBuffer()
如果应用程序已经通过malloc 或者mmap分配内存,CL_MEM_USE_HOST_PTR是个理想的选择。