Refactoring Kernel argument management

Add

  • Replace Arguments<'arg> trait into ArgRef trait
  • Introduce ArgRef trait and ArgRef0 to ArgRef12 objects
    • ArgRefN has an appropriate memory format using #[repr(C)]
    #[repr(C)]
    pub struct ArgRef2<'arg, D1: DeviceSend, D2: DeviceSend> {
     arg1: &'arg D1,
     arg2: &'arg D2,
    }
    This can pass into cuLaunchKernel directory

Change

  • Argument parameter of launch changes:
    let result = assert(&ctx, 1 /* grid */, 4 /* block */, &());
    becomes
    let result = assert(&ctx, 1 /* grid */, 4 /* block */, ());
                                                      /*  ^ drop &  */
Edited by termoshtt

Merge request reports

Loading