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(); }
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; }