Skip to content

Releases: tevador/RandomX

Benchmark v1.1.1

22 Sep 20:52
Compare
Choose a tag to compare

Usage:

Usage: ./randomx-benchmark [OPTIONS]
Supported options:
  --help        shows this message
  --mine        mining mode: 2080 MiB
  --verify      verification mode: 256 MiB
  --jit         JIT compiled mode (default: interpreter)
  --secure      W^X policy for JIT pages (default: off)
  --largePages  use large pages (default: small pages)
  --softAes     use software AES (default: hardware AES)
  --threads T   use T threads (default: 1)
  --affinity A  thread affinity bitmask (default: 0)
  --init Q      initialize dataset with Q threads (default: 1)
  --nonces N    run N nonces (default: 1000)
  --seed S      seed for cache initialization (default: 0)

Changes:

  • fix MSYS thread handle cast #121
  • Optimized loading from scratchpad #124
  • JIT compiler for ARMv8 #125

Benchmark v1.1.0

30 Aug 09:36
Compare
Choose a tag to compare

Performance may be slightly lower than v1.0.4 on some CPUs due to #118.

Using the new --secure option may decrease mining performance by up to 30%, but provides slightly more secure memory permission management.

Usage: ./randomx-benchmark [OPTIONS]
Supported options:
  --help        shows this message
  --mine        mining mode: 2080 MiB
  --verify      verification mode: 256 MiB
  --jit         x86-64 JIT compiled mode (default: interpreter)
  --secure      W^X policy for JIT pages (default: off)
  --largePages  use large pages (default: small pages)
  --softAes     use software AES (default: hardware AES)
  --threads T   use T threads (default: 1)
  --affinity A  thread affinity bitmask (default: 0)
  --init Q      initialize dataset with Q threads (default: 1)
  --nonces N    run N nonces (default: 1000)
  --seed S      seed for cache initialization (default: 0)

Changes:

  • Fix undefined behavior in rotr/rotl (#86)
  • Fix: possible overflow when using non-standard Dataset size (#87)
  • Sanity checks (#88)
  • Use cmake for building (#90)
  • Vector intrinsics for ARMv8 (#93)
  • Refactoring (#95)
  • benchmark: affinity cast for mingw (#96)
  • Do not attempt to allocate >= 4 GiB on 32-bit systems (#99)
  • Fix: hardcoded JIT code buffer size (#98)
  • Fix a compiler error on Apple OSX (#110)
  • Fix use-after-free in benchmark (debug build)
  • Changes recommended by Quarkslab (#111)
  • Optional W^X policy for JIT pages (#112)
  • Increase the frequency of CBRANCH (#118)

v1.0.4

22 Jun 21:50
Compare
Choose a tag to compare

Benchmark usage:

RandomX benchmark v1.0.4
Usage: bin/randomx-benchmark [OPTIONS]
Supported options:
  --help        shows this message
  --mine        mining mode: 2080 MiB
  --verify      verification mode: 256 MiB
  --jit         x86-64 JIT compiled mode (default: interpreter)
  --largePages  use large pages
  --softAes     use software AES (default: x86 AES-NI)
  --threads T   use T threads (default: 1)
  --affinity A  thread affinity bitmask (default: 0)
  --init Q      initialize dataset with Q threads (default: 1)
  --nonces N    run N nonces (default: 1000)
  --seed S      seed for cache initialization (default: 0)

Changes:

  • Dataset prefetch in interpreted VM #52
  • Support building a shared library #53
  • Use strongly typed enums #55
  • Fix cmake standalone build #56
  • Fix Windows detection #58
  • Configuration guidelines #59
  • Fix possible overflow in static_assert #67
  • benchmark: add thread affinity mask option #68
  • Regression tests #73
  • Large page support for FreeBSD #74
  • Different round keys for columns 0,1 and 2,3 in AesGenerator4R #76
  • Decrease the frequency of FADD/FSUB in favor of FMUL #77

Improved program generation

01 Jun 11:40
e4b2270
Compare
Choose a tag to compare
RandomX benchmark
Usage: benchmark.exe [OPTIONS]
Supported options:
  --help        shows this message
  --mine        mining mode: 2080 MiB
  --verify      verification mode: 256 MiB
  --jit         x86-64 JIT compiled mode (default: interpreter)
  --largePages  use large pages
  --softAes     use software AES (default: x86 AES-NI)
  --threads T   use T threads (default: 1)
  --init Q      initialize dataset with Q threads (default: 1)
  --nonces N    run N nonces (default: 1000)
  --seed S      seed for cache initialization (default: 0)

Changes in this release:

  • the number of AES rounds for program generation increased from 1 to 4

Minor changes

24 May 18:10
Compare
Choose a tag to compare
RandomX benchmark
Usage: benchmark.exe [OPTIONS]
Supported options:
  --help        shows this message
  --mine        mining mode: 2080 MiB
  --verify      verification mode: 256 MiB
  --jit         x86-64 JIT compiled mode (default: interpreter)
  --largePages  use large pages
  --softAes     use software AES (default: x86 AES-NI)
  --threads T   use T threads (default: 1)
  --init Q      initialize dataset with Q threads (default: 1)
  --nonces N    run N nonces (default: 1000)
  --seed S      seed for cache initialization (default: 0)

Minor changes in this release:

  • improved condition register selection for CBRANCH instruction
  • added support for building under MinGW
  • fixed a possible memory leak

Legacy 32-bit support

15 May 21:30
Compare
Choose a tag to compare
RandomX benchmark
Usage: benchmark.exe [OPTIONS]
Supported options:
  --help        shows this message
  --mine        mining mode: 2080 MiB
  --verify      verification mode: 256 MiB
  --jit         x86-64 JIT compiled mode (default: interpreter)
  --largePages  use large pages
  --softAes     use software AES (default: x86 AES-NI)
  --threads T   use T threads (default: 1)
  --init Q      initialize dataset with Q threads (default: 1)
  --nonces N    run N nonces (default: 1000)
  --seed S      seed for cache initialization (default: 0)

Changes:

  • Added support for legacy x87 floating point on 32-bit systems
  • Fixed FSCAL instruction causing group F registers to exceed their intended maximum value

Benchmark

05 May 17:47
bfc97d5
Compare
Choose a tag to compare

Benchmark to test RandomX.

RandomX benchmark
Usage: benchmark [OPTIONS]
Supported options:
  --help        shows this message
  --mine        mining mode: 2 GiB
  --verify      verification mode: 256 MiB
  --jit         x86-64 JIT compiled mode (default: interpreter)
  --largePages  use large pages
  --softAes     use software AES (default: x86 AES-NI)
  --threads T   use T threads (default: 1)
  --init Q      initialize dataset with Q threads (default: 1)
  --nonces N    run N nonces (default: 1000)
  --seed S      seed for cache initialization (default: 0)

Faster verification

22 Mar 13:34
Compare
Choose a tag to compare
Faster verification Pre-release
Pre-release

Major improvement of verification speed. Mining performance should be mostly unaffected.

Changes:

  • Dataset size decreased from 4 GiB to 2 GiB
  • Added new verification option --jit for x86 systems (2-3 times faster verification)
  • Added random branches in generated programs

Floating point portability fix

24 Feb 16:53
Compare
Choose a tag to compare
Pre-release

Reworked int -> float conversion for group E registers to avoid a small chance of denormal results.

Reworked division instructions

22 Feb 19:16
Compare
Choose a tag to compare
Pre-release

Issue #26 : Division instructions were replaced by a single multiplication by a 64-bit reciprocal. Performance is increased by 1-5% depending on the CPU.