From c538316ba3179868849e58c28e946cc9594a541e Mon Sep 17 00:00:00 2001 From: Chris Duncan Date: Wed, 12 Mar 2025 14:18:25 -0700 Subject: [PATCH] Add debug logging to GPU. --- src/classes/gpu.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/classes/gpu.ts b/src/classes/gpu.ts index dc9b00f..0d98770 100644 --- a/src/classes/gpu.ts +++ b/src/classes/gpu.ts @@ -234,6 +234,7 @@ export class NanoPowGpu { ? 0x800 : options.effort * 0x100 this.#debug = !!(options?.debug) + if (this.#debug) console.log('blockhash', hash) if (this.#debug) console.log('search options', JSON.stringify(options)) // Ensure WebGPU is initialized before calculating @@ -259,6 +260,7 @@ export class NanoPowGpu { if (this.#debug) console.log(`seed: ${seed}`) const data = await this.#dispatch(this.#searchPipeline, seed, hash, threshold, effort) nonce = data.getBigUint64(0, true) + if (this.#debug) console.log('nonce', nonce, nonce.toString(16).padStart(16, '0')) this.#busy = !data.getUint32(8) times.push(performance.now() - start) } while (this.#busy) @@ -290,6 +292,7 @@ export class NanoPowGpu { ? 0xfffffff8 : options.threshold this.#debug = !!(options?.debug) + if (this.#debug) console.log('blockhash', hash) if (this.#debug) console.log('validate options', JSON.stringify(options)) // Ensure WebGPU is initialized before calculating @@ -307,11 +310,11 @@ export class NanoPowGpu { const seed = BigInt(`0x${work}`) if (this.#debug) console.log(`work: ${work}`) const data = await this.#dispatch(this.#validatePipeline, seed, hash, threshold, 1) - const nonce = data.getBigUint64(0, true).toString(16).padStart(16, '0') - if (this.#debug) console.log(`nonce: ${nonce}`) + const nonce = data.getBigUint64(0, true) + if (this.#debug) console.log('nonce', nonce, nonce.toString(16).padStart(16, '0')) const found = !!data.getUint32(8) this.#busy = false - if (found && work !== nonce) throw new Error(`Nonce (${nonce}) found but does not match work (${work})`) + if (found && work !== nonce.toString(16).padStart(16, '0')) throw new Error(`Nonce (${nonce.toString(16).padStart(16, '0')}) found but does not match work (${work})`) return found } } -- 2.34.1