… | |
… | |
160 | '; |
160 | '; |
161 | |
161 | |
162 | my $prog = $ctx->program_with_source ($src); |
162 | my $prog = $ctx->program_with_source ($src); |
163 | |
163 | |
164 | # build croaks on compile errors, so catch it and print the compile errors |
164 | # build croaks on compile errors, so catch it and print the compile errors |
165 | eval { $prog->build ($dev); 1 } |
165 | eval { $prog->build ($dev, "-cl-fast-relaxed-math"); 1 } |
166 | or die $prog->build_log; |
166 | or die $prog->build_log; |
167 | |
167 | |
168 | my $kernel = $prog->kernel ("squareit"); |
168 | my $kernel = $prog->kernel ("squareit"); |
169 | |
169 | |
170 | =head2 Create some input and output float buffers, then call the |
170 | =head2 Create some input and output float buffers, then call the |
… | |
… | |
1369 | |
1369 | |
1370 | This is a family of methods to set the kernel argument with the number C<$index> to the give C<$value>. |
1370 | This is a family of methods to set the kernel argument with the number C<$index> to the give C<$value>. |
1371 | |
1371 | |
1372 | TYPE is one of C<char>, C<uchar>, C<short>, C<ushort>, C<int>, C<uint>, |
1372 | TYPE is one of C<char>, C<uchar>, C<short>, C<ushort>, C<int>, C<uint>, |
1373 | C<long>, C<ulong>, C<half>, C<float>, C<double>, C<memory>, C<buffer>, |
1373 | C<long>, C<ulong>, C<half>, C<float>, C<double>, C<memory>, C<buffer>, |
1374 | C<image2d>, C<image3d>, C<sampler> or C<event>. |
1374 | C<image2d>, C<image3d>, C<sampler>, C<local> or C<event>. |
1375 | |
1375 | |
1376 | Chars and integers (including the half type) are specified as integers, |
1376 | Chars and integers (including the half type) are specified as integers, |
1377 | float and double as floating point values, memory/buffer/image2d/image3d |
1377 | float and double as floating point values, memory/buffer/image2d/image3d |
1378 | must be an object of that type or C<undef>, and sampler and event must be |
1378 | must be an object of that type or C<undef>, local-memory arguments are |
1379 | objects of that type. |
1379 | set by specifying the size, and sampler and event must be objects of that |
|
|
1380 | type. |
1380 | |
1381 | |
1381 | L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clSetKernelArg.html> |
1382 | L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clSetKernelArg.html> |
1382 | |
1383 | |
1383 | =back |
1384 | =back |
1384 | |
1385 | |
… | |
… | |
1473 | package OpenCL; |
1474 | package OpenCL; |
1474 | |
1475 | |
1475 | use common::sense; |
1476 | use common::sense; |
1476 | |
1477 | |
1477 | BEGIN { |
1478 | BEGIN { |
1478 | our $VERSION = '0.95'; |
1479 | our $VERSION = '0.96'; |
1479 | |
1480 | |
1480 | require XSLoader; |
1481 | require XSLoader; |
1481 | XSLoader::load (__PACKAGE__, $VERSION); |
1482 | XSLoader::load (__PACKAGE__, $VERSION); |
1482 | |
1483 | |
1483 | @OpenCL::Buffer::ISA = |
1484 | @OpenCL::Buffer::ISA = |