From d980e4775c82f433418f39dfb737542c76a490e3 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 2 Nov 2025 23:15:05 +0000 Subject: [PATCH 2/6] Initial exploration of CPU and SIMD miner implementations Co-authored-by: RubenCGomes <116815718+RubenCGomes@users.noreply.github.com> --- coin_miner_cpu | Bin 0 -> 25264 bytes coin_miner_simd | Bin 0 -> 33424 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100755 coin_miner_cpu create mode 100755 coin_miner_simd diff --git a/coin_miner_cpu b/coin_miner_cpu new file mode 100755 index 0000000000000000000000000000000000000000..e94c28cd469e792a8180179224272ca2b5fdf83c GIT binary patch literal 25264 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 literal 0 HcmV?d00001 diff --git a/coin_miner_simd b/coin_miner_simd new file mode 100755 index 0000000000000000000000000000000000000000..09fc7d613a6aafd700cb3662f82cd9cd36304334 GIT binary patch literal 33424 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 Date: Sun, 2 Nov 2025 23:18:04 +0000 Subject: [PATCH 3/6] Adapt SIMD miner to use CPU miner's counter logic Co-authored-by: RubenCGomes <116815718+RubenCGomes@users.noreply.github.com> --- .gitignore | 5 +++ aad_coin_miner_simd.c | 93 ++++++++++++++++++++++++++++-------------- coin_miner_cpu | Bin 25264 -> 0 bytes coin_miner_simd | Bin 33424 -> 0 bytes 4 files changed, 68 insertions(+), 30 deletions(-) delete mode 100755 coin_miner_cpu delete mode 100755 coin_miner_simd diff --git a/.gitignore b/.gitignore index f9fec50..7cf9060 100644 --- a/.gitignore +++ b/.gitignore @@ -60,3 +60,8 @@ CMakeUserPresets.json *.ptx *.cubin *.fatbin + +# Coin miner executables +coin_miner_cpu +coin_miner_simd +coin_miner_cuda diff --git a/aad_coin_miner_simd.c b/aad_coin_miner_simd.c index c05ab9a..c6aa707 100644 --- a/aad_coin_miner_simd.c +++ b/aad_coin_miner_simd.c @@ -30,39 +30,61 @@ static int is_valid_coin(u32_t *hash) return hash[0] == 0xAAD20250u; } +// +// increment coin variable part using the same logic as CPU miner +// returns 0 if overflow (all positions wrapped around), 1 otherwise +// +static int increment_coin(u32_t coin[14]) +{ + // Update the variable part (simple counter-based approach) + // Increment from the end to beginning (positions 53 down to 12) + int pos = 53; + while(pos >= 12) + { + u08_t *byte = &((u08_t *)coin)[pos ^ 3]; + if(*byte == '\n' || *byte == 0x80) + *byte = 32; // Start from space + + (*byte)++; + + // Skip newline character + if(*byte == '\n') + (*byte)++; + + // Wrap around at 127 (printable ASCII limit) + if(*byte >= 127) + { + *byte = 32; // Reset to space + pos--; // Carry to next position + } + else + { + break; // No carry needed + } + } + + // Return 0 if we carried all the way through (overflow), 1 otherwise + return (pos >= 12); +} + // // prepare interleaved data for SIMD processing // -static void prepare_coins(u32_t base_coin[14], u32_t *interleaved_data, int simd_width, u64_t base_counter) +static void prepare_coins(u32_t base_coin[14], u32_t *interleaved_data, int simd_width) { for(int lane = 0; lane < simd_width; lane++) { u32_t coin[14]; memcpy(coin, base_coin, sizeof(coin)); - // Modify the coin for this lane (encode counter in the variable part) - u64_t counter = base_counter + lane; - for(int i = 12; i < 20 && i < 54; i++) - { - int shift = (19 - i) * 8; - if(shift >= 0 && shift < 64) - { - u08_t byte = (counter >> shift) & 0xFF; - // Map to ASCII printable range (32-126, excluding newline position) - if(byte == '\n' || byte >= 0x80) - byte = 'X'; - // Ensure byte is in printable ASCII range (32-126) - // Map all values to ASCII printable characters: space (32) to tilde (126) - // byte = 32 + (byte % 95); - ((u08_t *)coin)[i ^ 3] = byte; - } - } - // Interleave the data for(int idx = 0; idx < 14; idx++) { interleaved_data[idx * simd_width + lane] = coin[idx]; } + + // Increment the base coin for the next lane + increment_coin(base_coin); } } @@ -125,19 +147,21 @@ static void mine_coins_avx(u64_t max_attempts) ((u08_t *)base_coin)[0x36 ^ 3] = '\n'; ((u08_t *)base_coin)[0x37 ^ 3] = 0x80; - // Initialize variable part + // Initialize variable part with the same pattern as CPU miner for(int i = 12; i < 54; i++) - ((u08_t *)base_coin)[i ^ 3] = 'A'; + ((u08_t *)base_coin)[i ^ 3] = 'A' + (i - 12) % 26; printf("Mining DETI coins using AVX (4-way SIMD)...\n"); printf("Press Ctrl+C to stop\n\n"); time_measurement(); + time_measurement(); + double start_time = wall_time_delta(); while(keep_running && (max_attempts == 0 || attempts < max_attempts)) { // Prepare coins for this batch - prepare_coins(base_coin, interleaved_data, SIMD_WIDTH, attempts); + prepare_coins(base_coin, interleaved_data, SIMD_WIDTH); // Compute SHA1 hashes sha1_avx((v4si *)interleaved_data, (v4si *)interleaved_hash); @@ -163,13 +187,16 @@ static void mine_coins_avx(u64_t max_attempts) // Print progress every 1M attempts if(attempts % 1000000 < SIMD_WIDTH) { - printf("Attempts: %llu, Coins: %u\n", - (unsigned long long)attempts, coins_found); + time_measurement(); + double current_time = wall_time_delta() - start_time; + double rate = attempts / current_time; + printf("Attempts: %llu, Rate: %.2f MH/s, Coins: %u\n", + (unsigned long long)attempts, rate / 1e6, coins_found); } } time_measurement(); - double total_time = wall_time_delta(); + double total_time = wall_time_delta() - start_time; printf("\n=== Mining Statistics ===\n"); printf("Total attempts: %llu\n", (unsigned long long)attempts); @@ -212,17 +239,20 @@ static void mine_coins_avx2(u64_t max_attempts) ((u08_t *)base_coin)[0x36 ^ 3] = '\n'; ((u08_t *)base_coin)[0x37 ^ 3] = 0x80; + // Initialize variable part with the same pattern as CPU miner for(int i = 12; i < 54; i++) - ((u08_t *)base_coin)[i ^ 3] = 'A'; + ((u08_t *)base_coin)[i ^ 3] = 'A' + (i - 12) % 26; printf("Mining DETI coins using AVX2 (8-way SIMD)...\n"); printf("Press Ctrl+C to stop\n\n"); time_measurement(); + time_measurement(); + double start_time = wall_time_delta(); while(keep_running && (max_attempts == 0 || attempts < max_attempts)) { - prepare_coins(base_coin, interleaved_data, SIMD_WIDTH, attempts); + prepare_coins(base_coin, interleaved_data, SIMD_WIDTH); sha1_avx2((v8si *)interleaved_data, (v8si *)interleaved_hash); attempts += SIMD_WIDTH; @@ -244,13 +274,16 @@ static void mine_coins_avx2(u64_t max_attempts) if(attempts % 1000000 < SIMD_WIDTH) { - printf("Attempts: %llu, Coins: %u\n", - (unsigned long long)attempts, coins_found); + time_measurement(); + double current_time = wall_time_delta() - start_time; + double rate = attempts / current_time; + printf("Attempts: %llu, Rate: %.2f MH/s, Coins: %u\n", + (unsigned long long)attempts, rate / 1e6, coins_found); } } time_measurement(); - double total_time = wall_time_delta(); + double total_time = wall_time_delta() - start_time; printf("\n=== Mining Statistics ===\n"); printf("Total attempts: %llu\n", (unsigned long long)attempts); diff --git a/coin_miner_cpu b/coin_miner_cpu deleted file mode 100755 index e94c28cd469e792a8180179224272ca2b5fdf83c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25264 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 diff --git a/coin_miner_simd b/coin_miner_simd deleted file mode 100755 index 09fc7d613a6aafd700cb3662f82cd9cd36304334..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33424 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 Date: Sun, 2 Nov 2025 23:20:20 +0000 Subject: [PATCH 4/6] Add makefile targets for coin miners and final testing Co-authored-by: RubenCGomes <116815718+RubenCGomes@users.noreply.github.com> --- makefile | 14 +++++++++++++- sha1_cuda_kernel.cubin | Bin 13480 -> 0 bytes sha1_tests | Bin 41176 -> 0 bytes 3 files changed, 13 insertions(+), 1 deletion(-) delete mode 100644 sha1_cuda_kernel.cubin delete mode 100755 sha1_tests diff --git a/makefile b/makefile index a295547..c3c2381 100644 --- a/makefile +++ b/makefile @@ -42,6 +42,7 @@ CUDA_ARCH = sm_75 clean: rm -f sha1_tests rm -f sha1_cuda_test sha1_cuda_kernel.cubin + rm -f coin_miner_cpu coin_miner_simd coin_miner_cuda rm -f a.out @@ -63,4 +64,15 @@ sha1_cuda_test: aad_sha1_cuda_test.c sha1_cuda_kernel.cubin aad_sha1.h aad_data_ sha1_cuda_kernel.cubin: aad_sha1_cuda_kernel.cu aad_sha1.h makefile nvcc -arch=$(CUDA_ARCH) --compiler-options -O2,-Wall -I$(CUDA_DIR)/include --cubin $< -o $@ -all: sha1_tests sha1_cuda_test sha1_cuda_kernel.cubin +# +# DETI coin miners +# + +coin_miner_cpu: aad_coin_miner_cpu.c aad_data_types.h aad_utilities.h aad_sha1.h aad_sha1_cpu.h aad_vault.h makefile + cc -march=native -Wall -Wshadow -Werror -O3 $< -o $@ + +coin_miner_simd: aad_coin_miner_simd.c aad_data_types.h aad_utilities.h aad_sha1.h aad_sha1_cpu.h aad_vault.h makefile + cc -march=native -mavx2 -Wall -Wshadow -Werror -O3 $< -o $@ + + +all: sha1_tests sha1_cuda_test sha1_cuda_kernel.cubin coin_miner_cpu coin_miner_simd diff --git a/sha1_cuda_kernel.cubin b/sha1_cuda_kernel.cubin deleted file mode 100644 index 957c529f6e10899a21ce364afd6aae08927de783..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13480 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 diff --git a/sha1_tests b/sha1_tests deleted file mode 100755 index b3ee06cb6a109fc797a84ed6ae31ea19bd42c723..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41176 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 F{{tUgJj(z8 From 7684c754696f68a8b610980a40a7ff11aafcc337 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 2 Nov 2025 23:22:21 +0000 Subject: [PATCH 5/6] Improve code comments based on review feedback Co-authored-by: RubenCGomes <116815718+RubenCGomes@users.noreply.github.com> --- _codeql_detected_source_root | 1 + aad_coin_miner_simd.c | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) create mode 120000 _codeql_detected_source_root diff --git a/_codeql_detected_source_root b/_codeql_detected_source_root new file mode 120000 index 0000000..945c9b4 --- /dev/null +++ b/_codeql_detected_source_root @@ -0,0 +1 @@ +. \ No newline at end of file diff --git a/aad_coin_miner_simd.c b/aad_coin_miner_simd.c index c6aa707..28405bd 100644 --- a/aad_coin_miner_simd.c +++ b/aad_coin_miner_simd.c @@ -36,7 +36,7 @@ static int is_valid_coin(u32_t *hash) // static int increment_coin(u32_t coin[14]) { - // Update the variable part (simple counter-based approach) + // Increment the variable part using byte-by-byte logic with carry // Increment from the end to beginning (positions 53 down to 12) int pos = 53; while(pos >= 12) @@ -147,7 +147,7 @@ static void mine_coins_avx(u64_t max_attempts) ((u08_t *)base_coin)[0x36 ^ 3] = '\n'; ((u08_t *)base_coin)[0x37 ^ 3] = 0x80; - // Initialize variable part with the same pattern as CPU miner + // Initialize variable part with A-Z cycling pattern (same as CPU miner) for(int i = 12; i < 54; i++) ((u08_t *)base_coin)[i ^ 3] = 'A' + (i - 12) % 26; @@ -239,7 +239,7 @@ static void mine_coins_avx2(u64_t max_attempts) ((u08_t *)base_coin)[0x36 ^ 3] = '\n'; ((u08_t *)base_coin)[0x37 ^ 3] = 0x80; - // Initialize variable part with the same pattern as CPU miner + // Initialize variable part with A-Z cycling pattern (same as CPU miner) for(int i = 12; i < 54; i++) ((u08_t *)base_coin)[i ^ 3] = 'A' + (i - 12) % 26; From 90f2226a8aaa6a2c65daec7e3fc07e688c6578a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=BAben=20Gomes?= <116815718+RubenCGomes@users.noreply.github.com> Date: Sun, 2 Nov 2025 23:32:57 +0000 Subject: [PATCH 6/6] Delete _codeql_detected_source_root --- _codeql_detected_source_root | 1 - 1 file changed, 1 deletion(-) delete mode 120000 _codeql_detected_source_root diff --git a/_codeql_detected_source_root b/_codeql_detected_source_root deleted file mode 120000 index 945c9b4..0000000 --- a/_codeql_detected_source_root +++ /dev/null @@ -1 +0,0 @@ -. \ No newline at end of file