Overview
| Comment: | Start of work on OpenMP GPU offloading for work generation |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
f87706a75e4f085fb46d597d810a73a6 |
| User & Date: | rkeene on 2018-08-17 20:37:44.176 |
| Other Links: | manifest | tags |
Context
|
2018-08-17
| ||
| 20:39 | More work on the networking support check-in: e79f2e1800 user: rkeene tags: trunk | |
| 20:37 | Start of work on OpenMP GPU offloading for work generation check-in: f87706a75e user: rkeene tags: trunk | |
| 19:13 | Run the same number of concurrent jobs as CPUs check-in: cc3e0b7bd2 user: rkeene tags: trunk | |
Changes
Modified configure.ac
from [fe9fed8b62]
to [d44ea11c0b].
| ︙ | |||
58 59 60 61 62 63 64 65 66 67 68 69 70 71 | 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | + + + + + + + + + + + + + + + + + + + + + + + + |
AX_CHECK_COMPILE_FLAG([-Wno-tautological-constant-out-of-range-compare], [CFLAGS="$CFLAGS -Wno-tautological-constant-out-of-range-compare"])
])
dnl Enable hardening
AX_CHECK_COMPILE_FLAG([-fstack-protector-all], [CFLAGS="$CFLAGS -fstack-protector-all"])
AX_CHECK_COMPILE_FLAG([-fno-strict-overflow], [CFLAGS="$CFLAGS -fno-strict-overflow"])
AC_DEFINE([_FORTIFY_SOURCE], [2], [Enable fortification])
dnl Enable OpenMP, if available
tcl_nano_openmp=''
AX_CHECK_COMPILE_FLAG([-fopenmp], [
tcl_nano_openmp='-fopenmp'
], [
AX_CHECK_COMPILE_FLAG([-xopenmp], [
tcl_nano_openmp='-xopenmp'
], [
AX_CHECK_COMPILE_FLAG([-openmp], [
tcl_nano_openmp='-openmp'
], [
AX_CHECK_COMPILE_FLAG([/openmp], [
tcl_nano_openmp='/openmp'
])
])
])
])
if test -n "${tcl_nano_openmp}"; then
CFLAGS="$CFLAGS ${tcl_nano_openmp}"
AC_DEFINE([NANO_TCL_HAVE_OPENMP], [1], [Define if you have support for OpenMP])
fi
dnl Random number generation mechanisms
AC_CHECK_FUNC(getrandom,, [
AC_CHECK_FUNC(getentropy,, [
AC_CHECK_FUNC(CryptGenRandom)
])
])
|
| ︙ |
Modified nano.c
from [ac5d19ee67]
to [11b3eba419].
1 2 3 4 5 6 7 8 9 10 11 12 13 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | + + + | #include <stdint.h> #include <limits.h> #include <string.h> #include <stdlib.h> #include <unistd.h> #include <tcl.h> #ifdef NANO_TCL_HAVE_OPENMP # include <omp.h> #endif #include "randombytes.h" #include "tweetnacl.h" #include "blake2.h" #define NANO_SECRET_KEY_LENGTH (crypto_sign_SECRETKEYBYTES - crypto_sign_PUBLICKEYBYTES) #define NANO_PUBLIC_KEY_LENGTH (crypto_sign_PUBLICKEYBYTES) |
| ︙ | |||
412 413 414 415 416 417 418 419 420 421 422 423 424 425 | 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 | + |
static void nano_generate_work(const unsigned char *blockhash, unsigned char *workOut, uint64_t workMin) {
unsigned char work[NANO_WORK_VALUE_LENGTH];
unsigned int offset;
int work_valid;
memcpy(work, blockhash, sizeof(work));
#pragma omp target
while (1) {
work_valid = nano_validate_work(blockhash, work, workMin);
if (work_valid) {
break;
}
offset = 0;
|
| ︙ |