예제 #1
0
            /// <summary>
            /// Checks whether or not the Cuda features are currently supported
            /// </summary>
            public static bool IsGpuAccelerationSupported()
            {
                try
                {
                    // CUDA test
                    Alea.Gpu gpu = Alea.Gpu.Default;
                    if (gpu == null)
                    {
                        return(false);
                    }
                    if (!Alea.cuDNN.Dnn.IsAvailable)
                    {
                        return(false);                             // cuDNN
                    }
                    using (Alea.DeviceMemory <float> sample_gpu = gpu.AllocateDevice <float>(1024))
                    {
                        Alea.deviceptr <float> ptr = sample_gpu.Ptr;
                        void Kernel(int i) => ptr[i] = i;

                        Alea.Parallel.GpuExtension.For(gpu, 0, 1024, Kernel); // JIT test
                        float[] sample = Alea.Gpu.CopyToHost(sample_gpu);
                        return(Enumerable.Range(0, 1024).Select <int, float>(i => i).ToArray().ContentEquals(sample));
                    }
                }
                catch
                {
                    // Missing .dll or other errors
                    return(false);
                }
            }
예제 #2
0
파일: Reader.cs 프로젝트: y-hama/CaNNon
 public void ModelReflection(Alea.Gpu gpu, Common.ModelEdgeParameter param)
 {
     Initialize();
     Source         = new BufferItem();
     Source.Input   = new Field.BufferField(gpu, param.InputSize, param.InputChannels);
     Source.Teacher = new Field.BufferField(gpu, param.OutputSize, param.OutputChannels);
 }