private IEnumerable <Algorithm> GetSupportedAlgorithms(IGpuDevice gpu)
        {
            var algorithms = new List <Algorithm>
            {
                new Algorithm(PluginUUID, AlgorithmType.DaggerHashimoto),
                // duals disabled by default
#pragma warning disable 0618
                new Algorithm(PluginUUID, AlgorithmType.DaggerHashimoto, AlgorithmType.Decred)
                {
                    Enabled = false
                },
                new Algorithm(PluginUUID, AlgorithmType.DaggerHashimoto, AlgorithmType.Blake2s)
                {
                    Enabled = false
                },
                new Algorithm(PluginUUID, AlgorithmType.DaggerHashimoto, AlgorithmType.Keccak)
                {
                    Enabled = false
                },
#pragma warning restore 0618
            };
            var filteredAlgorithms = Filters.FilterInsufficientRamAlgorithmsList(gpu.GpuRam, algorithms);

            return(filteredAlgorithms);
        }
示例#2
0
        private IEnumerable <Algorithm> GetSupportedAlgorithms(IGpuDevice gpu)
        {
            var algorithms = new List <Algorithm>
            {
                new Algorithm(PluginUUID, AlgorithmType.DaggerHashimoto),
                // duals disabled by default
#pragma warning disable 0618
                new Algorithm(PluginUUID, AlgorithmType.DaggerHashimoto, AlgorithmType.Decred)
                {
                    Enabled = false
                },
                new Algorithm(PluginUUID, AlgorithmType.DaggerHashimoto, AlgorithmType.Blake2s)
                {
                    Enabled = false
                },
                new Algorithm(PluginUUID, AlgorithmType.DaggerHashimoto, AlgorithmType.Keccak)
                {
                    Enabled = false
                },
#pragma warning restore 0618
            };
            var filteredAlgorithms = Filters.FilterInsufficientRamAlgorithmsList(gpu.GpuRam, algorithms);

            if (gpu is AMDDevice amd && (amd.Codename.ToLower().Contains("gfx10") || amd.Name.ToLower().Contains("navi")))
            {
                filteredAlgorithms = filteredAlgorithms.Where(algo => algo.IDs.Count == 1).ToList();
            }
            return(filteredAlgorithms);
        }
示例#3
0
        private IEnumerable <Algorithm> GetSupportedAlgorithms(IGpuDevice gpu)
        {
            var isAMD = gpu is AMDDevice;
            List <Algorithm> algorithms;

            if (isAMD)
            {
                algorithms = new List <Algorithm>
                {
                    new Algorithm(PluginUUID, AlgorithmType.Beam),
                    new Algorithm(PluginUUID, AlgorithmType.GrinCuckatoo31),
                    new Algorithm(PluginUUID, AlgorithmType.GrinCuckarood29),
                };
            }
            else
            {
                // NVIDIA OpenCL backend stability is questionable
                algorithms = new List <Algorithm>
                {
                    new Algorithm(PluginUUID, AlgorithmType.Beam)
                    {
                        Enabled = false
                    },
                    new Algorithm(PluginUUID, AlgorithmType.GrinCuckatoo31)
                    {
                        Enabled = false
                    },
                };
            }
            var filteredAlgorithms = Filters.FilterInsufficientRamAlgorithmsList(gpu.GpuRam, algorithms);

            return(filteredAlgorithms);
        }
示例#4
0
        private IEnumerable <Algorithm> GetSupportedAlgorithms(IGpuDevice gpu)
        {
            var algorithms = new List <Algorithm>
            {
                new Algorithm(PluginUUID, AlgorithmType.DaggerHashimoto),
            };
            var filteredAlgorithms = Filters.FilterInsufficientRamAlgorithmsList(gpu.GpuRam, algorithms);

            return(filteredAlgorithms);
        }
        private IEnumerable <Algorithm> GetSupportedAlgorithms(IGpuDevice gpu)
        {
            var filteredAlgorithms = GetSupportedAlgorithmsForDevice(gpu as BaseDevice);

            if (gpu is AMDDevice amd && (amd.Codename.ToLower().Contains("gfx10") || amd.Name.ToLower().Contains("navi")))
            {
                filteredAlgorithms = filteredAlgorithms.Where(algo => algo.IDs.Count == 1).ToList();
            }
            return(filteredAlgorithms);
        }
        List <Algorithm> GetSupportedAlgorithms(IGpuDevice gpu)
        {
            var algorithms = new List <Algorithm>
            {
                new Algorithm(PluginUUID, AlgorithmType.GrinCuckarood29),
                new Algorithm(PluginUUID, AlgorithmType.CryptoNightR),
            };
            var filteredAlgorithms = Filters.FilterInsufficientRamAlgorithmsList(gpu.GpuRam, algorithms);

            return(filteredAlgorithms);
        }
        private IEnumerable <Algorithm> GetSupportedAlgorithms(IGpuDevice gpu)
        {
            var algorithms = new List <Algorithm>
            {
                new Algorithm(PluginUUID, AlgorithmType.Beam),
                new Algorithm(PluginUUID, AlgorithmType.GrinCuckatoo31),
            };
            var filteredAlgorithms = Filters.FilterInsufficientRamAlgorithmsList(gpu.GpuRam, algorithms);

            return(filteredAlgorithms);
        }
示例#8
0
        private IEnumerable <Algorithm> GetSupportedAlgorithms(IGpuDevice gpu)
        {
            var algorithms = PluginSupportedAlgorithms.GetSupportedAlgorithmsGPU(PluginUUID);

            if (PluginSupportedAlgorithms.UnsafeLimits(PluginUUID))
            {
                return(algorithms);
            }
            var filteredAlgorithms = Filters.FilterInsufficientRamAlgorithmsList(gpu.GpuRam, algorithms);

            return(filteredAlgorithms);
        }
        private IEnumerable <Algorithm> GetSupportedAlgorithms(IGpuDevice gpu)
        {
            var algorithms = PluginSupportedAlgorithms.GetSupportedAlgorithmsGPU(PluginUUID).ToList();

            if (PluginSupportedAlgorithms.UnsafeLimits(PluginUUID))
            {
                return(algorithms);
            }
            var filteredAlgorithms = Filters.FilterInsufficientRamAlgorithmsList(gpu.GpuRam, algorithms);

            if (gpu is AMDDevice amd && (amd.Codename.ToLower().Contains("gfx10") || amd.Name.ToLower().Contains("navi")))
            {
                filteredAlgorithms = filteredAlgorithms.Where(algo => algo.IDs.Count == 1).ToList();
            }
            return(filteredAlgorithms);
        }
示例#10
0
        private IEnumerable <Algorithm> GetSupportedAlgorithms(IGpuDevice gpu)
        {
            var isAMD = gpu is AMDDevice;
            List <Algorithm> algorithms;

            if (isAMD)
            {
                algorithms = PluginSupportedAlgorithms.GetSupportedAlgorithmsAMD(PluginUUID);
            }
            else
            {
                // NVIDIA OpenCL backend stability is questionable
                algorithms = PluginSupportedAlgorithms.GetSupportedAlgorithmsNVIDIA(PluginUUID);
            }
            if (PluginSupportedAlgorithms.UnsafeLimits(PluginUUID))
            {
                return(algorithms);
            }
            var filteredAlgorithms = Filters.FilterInsufficientRamAlgorithmsList(gpu.GpuRam, algorithms);

            return(filteredAlgorithms);
        }
示例#11
0
        private static bool IsSupportedNVIDIADevice(IGpuDevice dev, bool isDriverSupported)
        {
            var isSupported = dev is CUDADevice;

            return(isSupported && isDriverSupported);
        }
示例#12
0
        private static bool IsSupportedAMDDevice(IGpuDevice dev)
        {
            var isSupported = dev is AMDDevice;

            return(isSupported);
        }
示例#13
0
        private static bool IsSupportedNVIDIADevice(IGpuDevice dev, bool isDriverSupported)
        {
            var isSupported = dev is CUDADevice gpu && gpu.SM_major >= 3;

            return(isSupported && isDriverSupported);
        }