ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/OpenCL/OpenCL.pm
(Generate patch)

Comparing OpenCL/OpenCL.pm (file contents):
Revision 1.44 by root, Sat Apr 21 17:47:23 2012 UTC vs.
Revision 1.49 by root, Sat Apr 21 20:48:03 2012 UTC

750 750
751=item @device_partition_property_exts = $device->affinity_domains_ext 751=item @device_partition_property_exts = $device->affinity_domains_ext
752 752
753Calls C<clGetDeviceInfo> with C<CL_DEVICE_AFFINITY_DOMAINS_EXT> and returns the result. 753Calls C<clGetDeviceInfo> with C<CL_DEVICE_AFFINITY_DOMAINS_EXT> and returns the result.
754 754
755=item $uint = $device->reference_count_ext 755=item $uint = $device->reference_count_ext
756 756
757Calls C<clGetDeviceInfo> with C<CL_DEVICE_REFERENCE_COUNT_EXT > and returns the result. 757Calls C<clGetDeviceInfo> with C<CL_DEVICE_REFERENCE_COUNT_EXT> and returns the result.
758 758
759=item @device_partition_property_exts = $device->partition_style_ext 759=item @device_partition_property_exts = $device->partition_style_ext
760 760
761Calls C<clGetDeviceInfo> with C<CL_DEVICE_PARTITION_STYLE_EXT> and returns the result. 761Calls C<clGetDeviceInfo> with C<CL_DEVICE_PARTITION_STYLE_EXT> and returns the result.
762 762
771=item $queue = $ctx->queue ($device, $properties) 771=item $queue = $ctx->queue ($device, $properties)
772 772
773Create a new OpenCL::Queue object from the context and the given device. 773Create a new OpenCL::Queue object from the context and the given device.
774 774
775L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateCommandQueue.html> 775L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateCommandQueue.html>
776
777Example: create an out-of-order queue.
778
779 $queue = $ctx->queue ($device, OpenCL::QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE);
776 780
777=item $ev = $ctx->user_event 781=item $ev = $ctx->user_event
778 782
779Creates a new OpenCL::UserEvent object. 783Creates a new OpenCL::UserEvent object.
780 784
790=item $buf = $ctx->buffer_sv ($flags, $data) 794=item $buf = $ctx->buffer_sv ($flags, $data)
791 795
792Creates a new OpenCL::Buffer (actually OpenCL::BufferObj) object and 796Creates a new OpenCL::Buffer (actually OpenCL::BufferObj) object and
793initialise it with the given data values. 797initialise it with the given data values.
794 798
799=item $img = $ctx->image ($self, $flags, $channel_order, $channel_type, $type, $width, $height, $depth, $array_size = 0, $row_pitch = 0, $slice_pitch = 0, $num_mip_level = 0, $num_samples = 0, $*data = &PL_sv_undef)
800
801Creates a new OpenCL::Image object and optionally initialises it with
802the given data values.
803
804L<http://www.khronos.org/registry/cl/sdk/1.2/docs/man/xhtml/clCreateImage.html>
805
795=item $img = $ctx->image2d ($flags, $channel_order, $channel_type, $width, $height, $row_pitch = 0, $data = undef) 806=item $img = $ctx->image2d ($flags, $channel_order, $channel_type, $width, $height, $row_pitch = 0, $data = undef)
796 807
797Creates a new OpenCL::Image2D object and optionally initialises it with 808Creates a new OpenCL::Image2D object and optionally initialises it with
798the given data values. 809the given data values.
799 810
811Creates a new OpenCL::Buffer (actually OpenCL::BufferObj) object that refers to the given 822Creates a new OpenCL::Buffer (actually OpenCL::BufferObj) object that refers to the given
812OpenGL buffer object. 823OpenGL buffer object.
813 824
814http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateFromGLBuffer.html 825http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateFromGLBuffer.html
815 826
827=item $img = $ctx->gl_texture ($flags, $target, $miplevel, $texture)
828
829Creates a new OpenCL::Image object that refers to the given OpenGL
830texture object or buffer.
831
832http://www.khronos.org/registry/cl/sdk/1.2/docs/man/xhtml/clCreateFromGLTexture.html
833
816=item $ctx->gl_texture2d ($flags, $target, $miplevel, $texture) 834=item $img = $ctx->gl_texture2d ($flags, $target, $miplevel, $texture)
817 835
818Creates a new OpenCL::Image2D object that refers to the given OpenGL 836Creates a new OpenCL::Image2D object that refers to the given OpenGL
8192D texture object. 8372D texture object.
820 838
821http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateFromGLTexture2D.html 839http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateFromGLTexture2D.html
822 840
823=item $ctx->gl_texture3d ($flags, $target, $miplevel, $texture) 841=item $img = $ctx->gl_texture3d ($flags, $target, $miplevel, $texture)
824 842
825Creates a new OpenCL::Image3D object that refers to the given OpenGL 843Creates a new OpenCL::Image3D object that refers to the given OpenGL
8263D texture object. 8443D texture object.
827 845
828http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateFromGLTexture3D.html 846http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateFromGLTexture3D.html
891for completion, unless the method is called in void context, in which case 909for completion, unless the method is called in void context, in which case
892no event object is created. 910no event object is created.
893 911
894They also allow you to specify any number of other event objects that this 912They also allow you to specify any number of other event objects that this
895request has to wait for before it starts executing, by simply passing the 913request has to wait for before it starts executing, by simply passing the
896event objects as extra parameters to the enqueue methods. 914event objects as extra parameters to the enqueue methods. To simplify
915program design, this module ignores any C<undef> values in the list of
916events. This makes it possible to code operations such as this, without
917having to put a valid event object into C<$event> first:
918
919 $event = $queue->enqueue_xxx (..., $event);
897 920
898Queues execute in-order by default, without any parallelism, so in most 921Queues execute in-order by default, without any parallelism, so in most
899cases (i.e. you use only one queue) it's not necessary to wait for or 922cases (i.e. you use only one queue) it's not necessary to wait for or
900create event objects. 923create event objects, althoguh an our of order queue is often a bit
924faster.
901 925
902=over 4 926=over 4
903 927
904=item $ev = $queue->enqueue_read_buffer ($buffer, $blocking, $offset, $len, $data, $wait_events...) 928=item $ev = $queue->enqueue_read_buffer ($buffer, $blocking, $offset, $len, $data, $wait_events...)
905 929
971reference to an array of local work sizes, with the same number of 995reference to an array of local work sizes, with the same number of
972elements as @$global_work_size. 996elements as @$global_work_size.
973 997
974L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueNDRangeKernel.html> 998L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueNDRangeKernel.html>
975 999
976=item $ev = $queue->enqueue_marker ($wait_events...)
977
978L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueMarker.html>
979
980=item $ev = $queue->enqueue_acquire_gl_objects ([object, ...], $wait_events...) 1000=item $ev = $queue->enqueue_acquire_gl_objects ([object, ...], $wait_events...)
981 1001
982Enqueues a list (an array-ref of OpenCL::Memory objects) to be acquired 1002Enqueues a list (an array-ref of OpenCL::Memory objects) to be acquired
983for subsequent OpenCL usage. 1003for subsequent OpenCL usage.
984 1004
993 1013
994=item $ev = $queue->enqueue_wait_for_events ($wait_events...) 1014=item $ev = $queue->enqueue_wait_for_events ($wait_events...)
995 1015
996L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueWaitForEvents.html> 1016L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueWaitForEvents.html>
997 1017
998=item $queue->enqueue_barrier 1018=item $ev = $queue->enqueue_marker ($wait_events...)
999 1019
1020L<http://www.khronos.org/registry/cl/sdk/1.2/docs/man/xhtml/clEnqueueMarkerWithWaitList.html>
1021
1022=item $ev = $queue->enqueue_barrier ($wait_events...)
1023
1000L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueBarrier.html> 1024L<http://www.khronos.org/registry/cl/sdk/1.2/docs/man/xhtml/clEnqueueBarrierWithWaitList.html>
1001 1025
1002=item $queue->flush 1026=item $queue->flush
1003 1027
1004L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clFlush.html> 1028L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clFlush.html>
1005 1029
1120 1144
1121=back 1145=back
1122 1146
1123=head2 THE OpenCL::Image CLASS 1147=head2 THE OpenCL::Image CLASS
1124 1148
1125This is the superclass of all image objects - OpenCL::Image2D and OpenCL::Image3D. 1149This is the superclass of all image objects - OpenCL::Image1D,
1150OpenCL::Image1DArray, OpenCL::Image1DBuffer, OpenCL::Image2D,
1151OpenCL::Image2DArray and OpenCL::Image3D.
1126 1152
1127=over 4 1153=over 4
1128 1154
1129=item $packed_value = $ev->image_info ($name) 1155=item $packed_value = $ev->image_info ($name)
1130 1156
1481 our $VERSION = '0.96'; 1507 our $VERSION = '0.96';
1482 1508
1483 require XSLoader; 1509 require XSLoader;
1484 XSLoader::load (__PACKAGE__, $VERSION); 1510 XSLoader::load (__PACKAGE__, $VERSION);
1485 1511
1486 @OpenCL::Buffer::ISA = 1512 @OpenCL::Buffer::ISA =
1487 @OpenCL::Image::ISA = OpenCL::Memory::; 1513 @OpenCL::Image::ISA = OpenCL::Memory::;
1488 1514
1489 @OpenCL::BufferObj::ISA = OpenCL::Buffer::; 1515 @OpenCL::BufferObj::ISA = OpenCL::Buffer::;
1490 1516
1491 @OpenCL::Image2D::ISA = 1517 @OpenCL::Image2D::ISA =
1518 @OpenCL::Image3D::ISA =
1519 @OpenCL::Image2DArray::ISA =
1520 @OpenCL::Image1D::ISA =
1521 @OpenCL::Image1DArray::ISA =
1492 @OpenCL::Image3D::ISA = OpenCL::Image::; 1522 @OpenCL::Image1DBuffer::ISA = OpenCL::Image::;
1493 1523
1494 @OpenCL::UserEvent::ISA = OpenCL::Event::; 1524 @OpenCL::UserEvent::ISA = OpenCL::Event::;
1495} 1525}
1496 1526
14971; 15271;
1498 1528
1499=head1 AUTHOR 1529=head1 AUTHOR

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines