public IEnumerator <T> GetEnumerator() { var e = new EEE(); e.e = set.GetEnumerator(); return(e); }
static void Main(string[] args) { const int n = 200000; var A = new int[n]; for (int i = 0; i < A.Length; i++) { A[i] = 1; } var B = new int[n]; for (int i = 0; i < B.Length; i++) { B[i] = 1; } int[] ans2 = null; { var now = DateTime.Now; ans2 = CalOnCPU(A, B); Console.WriteLine($"Time on CPU: {DateTime.Now - now}"); } int[] ans1 = null; { ////獲取平台數量 //OpenCL.GetPlatformIDs(32, new IntPtr[32], out uint num_platforms); //var devs = new List<Device>(); ////枚舉所有平台下面的設備(CPU和GPU) //for (int i = 0; i < num_platforms; i++) //{ // //這裏後面有個參數,是Enum,這裏選擇GPU,表示只枚舉GPU,在沒有GPU的電腦上可以選CPU,也可以傳ALL,會把所有設備枚舉出來供選擇 // devs.AddRange(OpenCL.GetPlatform(i).QueryDevices(DeviceType.GPU)); //} Parallel.For(0, 4, gpuIdx => { for (int i = 0; true || i < 10; i++) { Console.Write($"#{i} "); try { var now = DateTime.Now; ans1 = CalOnGPU(A, B); Console.WriteLine($"Time on GPU#{gpuIdx}: {DateTime.Now - now},\tSame? {ans1.Zip(ans2, (a, b) => a - b).All(a => a == 0)}"); } catch (Exception EEE) { Console.WriteLine(EEE.ToString()); } } }); } //Console.WriteLine(string.Join(",", ans1)); //Console.WriteLine(string.Join(",", ans2)); Console.ReadLine(); }