1[/===========================================================================
2 Copyright (c) 2013-2015 Kyle Lutz <kyle.r.lutz@gmail.com>
3
4 Distributed under the Boost Software License, Version 1.0
5 See accompanying file LICENSE_1_0.txt or copy at
6 http://www.boost.org/LICENSE_1_0.txt
7=============================================================================/]
8
9[section Porting Guide]
10
11[section OpenCL API]
12
13[table OpenCL API Translation Table
14    [[OpenCL Function] [Boost.Compute Function]]
15    [[*Buffers*]]
16    [[`clCreateBuffer()`] [[classref boost::compute::buffer buffer::buffer()]]]
17    [[`clReleaseMemObject()`] [[classref boost::compute::buffer buffer::~buffer()]]]
18    [[`clGetMemObjectInfo()`] [[memberref boost::compute::buffer::get_info buffer::get_info<T>()]]]
19
20    [[*Command Queues*]]
21    [[`clCreateCommandQueue()`] [[classref boost::compute::command_queue command_queue::command_queue()]]]
22    [[`clReleaseCommandQueue()`] [[classref boost::compute::command_queue command_queue::~command_queue()]]]
23    [[`clGetCommandQueueInfo()`] [[memberref boost::compute::command_queue::get_info command_queue::get_info<T>()]]]
24    [[`clEnqueueReadBuffer()`] [[memberref boost::compute::command_queue::enqueue_read_buffer command_queue::enqueue_read_buffer()]]]
25    [[`clEnqueueWriteBuffer()`] [[memberref boost::compute::command_queue::enqueue_write_buffer command_queue::enqueue_write_buffer()]]]
26    [[`clEnqueueCopyBuffer()`] [[memberref boost::compute::command_queue::enqueue_copy_buffer command_queue::enqueue_copy_buffer()]]]
27    [[`clEnqueueNDRangeKernel()`] [[memberref boost::compute::command_queue::enqueue_nd_range_kernel command_queue::enqueue_nd_range_kernel()]]]
28    [[`clEnqueueTask()`] [[memberref boost::compute::command_queue::enqueue_task command_queue::enqueue_task()]]]
29    [[`clEnqueueBarrier()`] [[memberref boost::compute::command_queue::enqueue_barrier command_queue::enqueue_barrier()]]]
30    [[`clEnqueueMarker()`] [[memberref boost::compute::command_queue::enqueue_marker command_queue::enqueue_marker()]]]
31    [[`clFlush()`] [[memberref boost::compute::command_queue::enqueue_task command_queue::flush()]]]
32    [[`clFinish()`] [[memberref boost::compute::command_queue::enqueue_task command_queue::finish()]]]
33
34    [[*Contexts*]]
35    [[`clCreateContext()`] [[classref boost::compute::context context::context()]]]
36    [[`clReleaseContext()`] [[classref boost::compute::context context::~context()]]]
37    [[`clGetContextInfo()`] [[memberref boost::compute::context::get_info context::get_info<T>()]]]
38
39    [[*Devices*]]
40    [[`clGetDeviceInfo()`] [[memberref boost::compute::device::get_info device::get_info<T>()]]]
41
42    [[*Events*]]
43    [[`clReleaseEvent()`] [[classref boost::compute::event event::~event()]]]
44    [[`clGetEventInfo()`] [[memberref boost::compute::event::get_info event::get_info<T>()]]]
45    [[`clGetEventProfilingInfo()`] [[memberref boost::compute::event::get_profiling_info event::get_profiling_info<T>()]]]
46    [[`clWaitForEvents()`] [[memberref boost::compute::wait_list::wait() wait_list::wait()]]]
47    [[`clCreateUserEvent()`] [[classref boost::compute::user_event user_event::user_event()]]]
48    [[`clSetUserEventStatus()`] [[memberref boost::compute::user_event::set_status() user_event::set_status()]]]
49
50    [[*Kernels*]]
51    [[`clCreateKernel()`] [[classref boost::compute::kernel kernel::kernel()]]]
52    [[`clReleaseKernel()`] [[classref boost::compute::kernel kernel::~kernel()]]]
53    [[`clGetKernelInfo()`] [[memberref boost::compute::kernel::get_info kernel::get_info<T>()]]]
54    [[`clGetKernelArgInfo()`] [[memberref boost::compute::kernel::get_arg_info kernel::get_arg_info<T>()]]]
55    [[`clGetKernelWorkGroupInfo()`] [[memberref boost::compute::kernel::get_work_group_info kernel::get_work_group_info<T>()]]]
56    [[`clSetKernelArg()`] [[memberref boost::compute::kernel::set_arg kernel::set_arg()]]]
57    [[`clSetKernelExecInfo()`] [[memberref boost::compute::kernel::set_exec_info kernel::set_exec_info()]]]
58
59    [[*Pipes*]]
60    [[`clCreatePipe()`] [[classref boost::compute::pipe pipe::pipe()]]]
61    [[`clGetPipeInfo()`] [[memberref boost::compute::pipe::get_info pipe::get_info<T>()]]]
62
63    [[*Platforms*]]
64    [[`clGetDeviceIDs()`] [[memberref boost::compute::platform::devices platform::devices()]]]
65    [[`clGetPlatformInfo()`] [[memberref boost::compute::platform::get_info platform::get_info<T>()]]]
66    [[`clGetExtensionFunctionAddress()`] [[memberref boost::compute::platform::get_extension_function_address platform::get_extension_function_address()]]]
67    [[`clUnloadCompiler()`] [[memberref boost::compute::platform::unload_compiler platform::unload_compiler()]]]
68
69    [[*Programs*]]
70    [[`clCreateProgramWithSource()`] [[memberref boost::compute::program::create_with_source program::create_with_source()]]]
71    [[`clCreateProgramWithBinary()`] [[memberref boost::compute::program::create_with_binary program::create_with_binary()]]]
72    [[`clCreateProgramWithBuiltInKernels()`] [[memberref boost::compute::program::create_with_builtin_kernels program::create_with_builtin_kernels()]]]
73    [[`clReleaseProgram()`] [[classref boost::compute::program program::~program()]]]
74    [[`clGetProgramInfo()`] [[memberref boost::compute::program::get_info program::get_info<T>()]]]
75    [[`clBuildProgram()`] [[memberref boost::compute::program::build program::build()]]]
76    [[`clCompileProgram()`] [[memberref boost::compute::program::compile program::compile()]]]
77    [[`clLinkProgram()`] [[memberref boost::compute::program::link program::link()]]]
78
79    [[*Shared Virtual Memory*]]
80    [[`clSVMAlloc()`] [[funcref boost::compute::svm_alloc svm_alloc<T>()]]]
81    [[`clSVMFree()`] [[funcref boost::compute::svm_free svm_free<T>()]]]
82    [[`clEnqueueSVMFree()`] [[memberref boost::compute::command_queue::enqueue_svm_free command_queue::enqueue_svm_free()]]]
83    [[`clEnqueueSVMMemcpy()`] [[memberref boost::compute::command_queue::enqueue_svm_memcpy command_queue::enqueue_svm_memcpy()]]]
84    [[`clEnqueueSVMMemFill()`] [[memberref boost::compute::command_queue::enqueue_svm_fill command_queue::enqueue_svm_fill()]]]
85    [[`clEnqueueSVMMap()`] [[memberref boost::compute::command_queue::enqueue_svm_map command_queue::enqueue_svm_map()]]]
86    [[`clEnqueueSVMUnmap()`] [[memberref boost::compute::command_queue::enqueue_svm_unmap command_queue::enqueue_svm_unmap()]]]
87
88    [[*System*]]
89    [[`clGetPlatformIDs()`] [[memberref boost::compute::system::platforms system::platforms()]]]
90
91    [[*OpenGL Sharing*]]
92    [[`clCreateFromGLBuffer()`] [[classref boost::compute::opengl_buffer opengl_buffer::opengl_buffer()]]]
93    [[`clCreateFromGLRenderbuffer()`] [[classref boost::compute::opengl_renderbuffer opengl_renderbuffer::opengl_renderbuffer()]]]
94    [[`clCreateFromGLTexture()`] [[classref boost::compute::opengl_texture opengl_texture::opengl_texture()]]]
95    [[`clGetGLTextureInfo()`] [[classref boost::compute::opengl_texture opengl_texture::get_texture_info<T>()]]]
96    [[`clEnqueueAcquireGLObjects()`] [[funcref boost::compute::opengl_enqueue_acquire_gl_objects opengl_enqueue_acquire_gl_objects()]]]
97    [[`clEnqueueReleaseGLObjects()`] [[funcref boost::compute::opengl_enqueue_release_gl_objects opengl_enqueue_release_gl_objects()]]]
98]
99
100[endsect] [/ opencl api]
101
102[endsect]
103