1#[macro_export]
2macro_rules! kernel {
6 ($p:expr, $q:expr, $name:expr, $n:expr, $( ($argname:expr, $arg:expr)),*) => { {
8 let mut kernel_builder = ocl::Kernel::builder();
9 kernel_builder.program(&$p).name($name).queue($q.clone()).global_work_size($n);
10 $(
11 kernel_builder.arg_named($argname, $arg);
12 )*
13 kernel_builder.build().unwrap()
14 }
15 };
16 ($p:expr, $q:expr, $name:expr, $n:expr, $( $arg:expr),*) => { {
18 let mut kernel_builder = ocl::Kernel::builder();
19 kernel_builder.program(&$p).name($name).queue($q.clone()).global_work_size($n);
20 $(
21 kernel_builder.arg($arg);
22 )*
23 kernel_builder.build().unwrap()
24 }
25 };
26}
27
28#[macro_export]
29macro_rules! kernel_builder {
33 ($p:expr, $q:expr, $name:expr, $n:expr) => {{
34 let mut kernel_builder = ocl::Kernel::builder();
35 kernel_builder
36 .program(&$p)
37 .name($name)
38 .queue($q.clone())
39 .global_work_size($n);
40 kernel_builder
41 }};
42}
43
44#[macro_export]
45macro_rules! kernel_args {
49 ($kernel:expr, $( ($argname:expr, $arg:expr)),*) => { $(
51 $kernel.arg_named($argname, $arg);
52 )*
53 };
54 ($kernel:expr, $( $arg:expr),*) => { $(
56 $kernel.arg($arg);
57 )*
58 };
59}