コード例 #1
0
        public IEnumerator <T> GetEnumerator()
        {
            var e = new EEE();

            e.e = set.GetEnumerator();
            return(e);
        }
コード例 #2
0
        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();
        }