… | |
… | |
138 | |
138 | |
139 | my $src = ' |
139 | my $src = ' |
140 | __kernel void |
140 | __kernel void |
141 | squareit (__global float *input, __global float *output) |
141 | squareit (__global float *input, __global float *output) |
142 | { |
142 | { |
143 | size_t id = get_global_id (0); |
143 | $id = get_global_id (0); |
144 | output [id] = input [id] * input [id]; |
144 | output [id] = input [id] * input [id]; |
145 | } |
145 | } |
146 | '; |
146 | '; |
147 | |
147 | |
148 | my $prog = $ctx->program_with_source ($src); |
148 | my $prog = $ctx->program_with_source ($src); |
… | |
… | |
217 | =item * OpenCL uses CamelCase for function names (C<clGetPlatformInfo>), |
217 | =item * OpenCL uses CamelCase for function names (C<clGetPlatformInfo>), |
218 | while this module uses underscores as word separator and often leaves out |
218 | while this module uses underscores as word separator and often leaves out |
219 | prefixes (C<< $platform->info >>). |
219 | prefixes (C<< $platform->info >>). |
220 | |
220 | |
221 | =item * OpenCL often specifies fixed vector function arguments as short |
221 | =item * OpenCL often specifies fixed vector function arguments as short |
222 | arrays (C<size_t origin[3]>), while this module explicitly expects the |
222 | arrays (C<$origin[3]>), while this module explicitly expects the |
223 | components as separate arguments- |
223 | components as separate arguments- |
224 | |
224 | |
225 | =item * Structures are often specified with their components, and returned |
225 | =item * Structures are often specified with their components, and returned |
226 | as arrayrefs. |
226 | as arrayrefs. |
227 | |
227 | |
… | |
… | |
457 | |
457 | |
458 | =item $ev = $queue->enqueue_write_image ($src, $blocking, $x, $y, $z, $width, $height, $depth, $row_pitch, $data, $wait_events...) |
458 | =item $ev = $queue->enqueue_write_image ($src, $blocking, $x, $y, $z, $width, $height, $depth, $row_pitch, $data, $wait_events...) |
459 | |
459 | |
460 | L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueWriteImage.html> |
460 | L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueWriteImage.html> |
461 | |
461 | |
462 | =item $ev = $queue->enqueue_copy_buffer_rect ($src, $dst, $src_x, $src_y, $src_z, $dst_x, $dst_y, $dst_z, $width, $height, $depth, $src_row_pitch, $src_slice_pitch, 4dst_row_pitch, $dst_slice_pitch, $ait_event...) |
462 | =item $ev = $queue->enqueue_copy_buffer_rect ($src, $dst, $src_x, $src_y, $src_z, $dst_x, $dst_y, $dst_z, $width, $height, $depth, $src_row_pitch, $src_slice_pitch, 4dst_row_pitch, $dst_slice_pitch, $wait_event...) |
463 | |
463 | |
464 | Yeah. |
464 | Yeah. |
465 | |
465 | |
466 | L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyBufferRect.html> |
466 | L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyBufferRect.html> |
467 | |
467 | |
468 | =item $ev = $queue->enqueue_copy_buffer_to_image (OpenCL::Buffer src, OpenCL::Image dst, size_t src_offset, size_t dst_x, size_t dst_y, size_t dst_z, size_t width, size_t height, size_t depth, ...) |
468 | =item $ev = $queue->enqueue_copy_buffer_to_image ($src_buffer, $dst_image, $src_offset, $dst_x, $dst_y, $dst_z, $width, $height, $depth, $wait_events...) |
469 | |
469 | |
470 | L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyBufferToImage.html>. |
470 | L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyBufferToImage.html>. |
471 | |
471 | |
472 | =item $ev = $queue->enqueue_copy_image (OpenCL::Image src, OpenCL::Buffer dst, size_t src_x, size_t src_y, size_t src_z, size_t dst_x, size_t dst_y, size_t dst_z, size_t width, size_t height, size_t depth, ...) |
472 | =item $ev = $queue->enqueue_copy_image ($src_image, $dst_image, $src_x, $src_y, $src_z, $dst_x, $dst_y, $dst_z, $width, $height, $depth, $wait_events...) |
473 | |
473 | |
474 | L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyImage.html> |
474 | L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyImage.html> |
475 | |
475 | |
476 | =item $ev = $queue->enqueue_copy_image_to_buffer (OpenCL::Image src, OpenCL::Buffer dst, size_t src_x, size_t src_y, size_t src_z, size_t width, size_t height, size_t depth, size_t dst_offset, ...) |
476 | =item $ev = $queue->enqueue_copy_image_to_buffer ($src_image, $dst_image, $src_x, $src_y, $src_z, $width, $height, $depth, $dst_offset, $wait_events...) |
477 | |
477 | |
478 | L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyImageToBuffer.html> |
478 | L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyImageToBuffer.html> |
479 | |
479 | |
480 | =item $ev = $queue->enqueue_task ($kernel, $wait_events...) |
480 | =item $ev = $queue->enqueue_task ($kernel, $wait_events...) |
481 | |
481 | |