--- OpenCL/OpenCL.pm 2012/04/20 08:57:09 1.41 +++ OpenCL/OpenCL.pm 2012/04/21 17:50:27 1.45 @@ -162,7 +162,7 @@ my $prog = $ctx->program_with_source ($src); # build croaks on compile errors, so catch it and print the compile errors - eval { $prog->build ($dev); 1 } + eval { $prog->build ($dev, "-cl-fast-relaxed-math"); 1 } or die $prog->build_log; my $kernel = $prog->kernel ("squareit"); @@ -338,7 +338,9 @@ =item * When enqueuing commands, the wait list is specified by adding extra arguments to the function - anywhere a C<$wait_events...> argument -is documented this can be any number of event objects. +is documented this can be any number of event objects. As an extsnion +implemented by this module, C values will be ignored in the event +list. =item * When enqueuing commands, if the enqueue method is called in void context, no event is created. In all other contexts an event is returned @@ -750,7 +752,7 @@ Calls C with C and returns the result. -=item $uint = $device->reference_count_ext +=item $uint = $device->reference_count_ext Calls C with C and returns the result. @@ -772,6 +774,10 @@ L +Example: create an out-of-order queue. + + $queue = $ctx->queue ($device, OpenCL::QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE); + =item $ev = $ctx->user_event Creates a new OpenCL::UserEvent object. @@ -891,11 +897,17 @@ They also allow you to specify any number of other event objects that this request has to wait for before it starts executing, by simply passing the -event objects as extra parameters to the enqueue methods. +event objects as extra parameters to the enqueue methods. To simplify +program design, this module ignores any C values in the list of +events. This makes it possible to code operations such as this, without +having to put a valid event object into C<$event> first: + + $event = $queue->enqueue_xxx (..., $event); Queues execute in-order by default, without any parallelism, so in most cases (i.e. you use only one queue) it's not necessary to wait for or -create event objects. +create event objects, althoguh an our of order queue is often a bit +faster. =over 4 @@ -1476,7 +1488,7 @@ use common::sense; BEGIN { - our $VERSION = '0.95'; + our $VERSION = '0.96'; require XSLoader; XSLoader::load (__PACKAGE__, $VERSION);