public void Run() { var tmpWatch = DateTime.Now; if (_context == null) { var tmpDevices = PlatformHelper.Current().Devices; Log.Normal($"{tmpDevices.Count} Devices found."); _context = tmpDevices[0].CreateContext(); _program = _context.CreateProgramWithSource(multiplayKernel); } var tmpKernel = _program.GetKernel("do_foreach"); _program.GetKernel(nameof(ThreeParams.AddMul)); var tmpKernelObjects = CreateParams(256); tmpKernel.AddTaskToQueue(tmpKernelObjects); tmpKernel.ReadFromQueue(tmpKernelObjects); Log.Normal($"Time: {(DateTime.Now - tmpWatch).Milliseconds}"); for (int i = 0; i < 30; i++) { Log.Normal($"Result: {tmpKernelObjects[i].firstValue} * {tmpKernelObjects[i].secondValue} = {tmpKernelObjects[i].result}"); } }
public void RunHighLevel() { var tmpWatch = DateTime.Now; if (_context == null) { var tmpDevices = PlatformHelper.Current().Devices; Log.Normal($"{tmpDevices.Count} Devices found."); _context = tmpDevices[0].CreateContext(); _program = _context.CreateProgramWithSource(foreachKernel); } var tmpKernel = _program.GetKernel("do_foreach"); var tmpKernelObjects = new List<BasicOperationKernelObject> { new BasicOperationKernelObject { FirstValue = 3}, new BasicOperationKernelObject { FirstValue = 7}, new BasicOperationKernelObject { FirstValue = 123}, }; tmpKernel.AddTaskToQueue(tmpKernelObjects); tmpKernel.ReadFromQueue(tmpKernelObjects); Log.Normal($"Time: {(DateTime.Now - tmpWatch).Milliseconds}"); Log.Normal($"Result: {tmpKernelObjects[0].FirstValue},{tmpKernelObjects[1].FirstValue},{tmpKernelObjects[2].FirstValue}"); }