Exemple #1
0
        public void Start(CryptoNightStratum aStratum, int aRowIntensity, int aLocalWorkSize, bool aNicehashMode = false)
        {
            var prevGlobalWorkSize = globalWorkSizeA[0];

            mStratum           = aStratum;
            globalWorkSizeA[0] = globalWorkSizeB[0] = aRowIntensity * aLocalWorkSize;
            localWorkSizeA[0]  = localWorkSizeB[0] = aLocalWorkSize;
            mNicehashMode      = aNicehashMode;

            if (prevGlobalWorkSize != 0 && prevGlobalWorkSize != globalWorkSizeA[0])
            {
                Environment.Exit(1);
            }

            try {
                if (statesBuffer == null)
                {
                    statesBuffer = new ComputeBuffer <byte>(Context, ComputeMemoryFlags.ReadWrite, 200 * globalWorkSizeA[0]);
                }
                if (scratchpadsBuffer == null)
                {
                    scratchpadsBuffer = new ComputeBuffer <byte>(Context, ComputeMemoryFlags.ReadWrite, ((long)1 << 21) * globalWorkSizeA[0]);
                }
            } catch (Exception ex) {
                throw new UnrecoverableException(ex, GatelessGateDevice);
            }

            base.Start();
        }
        public void Start(CryptoNightStratum aStratum, int aRowIntensity, int aLocalWorkSize, bool aNicehashMode = false)
        {
            Stratum            = aStratum;
            globalWorkSizeA[0] = globalWorkSizeB[0] = aRowIntensity * aLocalWorkSize;
            localWorkSizeA[0]  = localWorkSizeB[0] = aLocalWorkSize;
            mNicehashMode      = aNicehashMode;

            base.Start();
        }
Exemple #3
0
        public void Start(CryptoNightStratum aStratum, int aIntensity, int aLocalWorkSize, bool aNicehashMode = false)
        {
            mStratum           = aStratum;
            globalWorkSizeA[0] = globalWorkSizeB[0] = aIntensity * Device.MaxComputeUnits;
            localWorkSizeA[0]  = localWorkSizeB[0] = aLocalWorkSize;
            if (globalWorkSizeA[0] % aLocalWorkSize != 0)
            {
                globalWorkSizeA[0] = globalWorkSizeB[0] = aLocalWorkSize - globalWorkSizeA[0] % aLocalWorkSize;
            }
            mNicehashMode = aNicehashMode;

            if (localWorkSizeA[0] != aLocalWorkSize)
            {
                scratchpadsBuffer = null;
                statesBuffer      = null;
            }

            base.Start();
        }
 public override void SetPrimaryStratum(Stratum stratum)
 {
     Stratum = (CryptoNightStratum)stratum;
 }