Commit Graph

59 Commits

Author SHA1 Message Date
fuwa a9de0f56a3 rx-wow-fix-2: Revert "Decrease the frequency of FADD/FSUB in favor of FMUL (#77)"
This reverts commit 91cd35ff13.
2019-11-05 22:40:24 +08:00
SChernykh c6468a3816 JIT compiler for ARMv8 (#125)
JIT compiler for ARMv8
2019-09-22 21:06:22 +02:00
tevador 971f10c9c2
Changes recommended by Quarkslab (#111)
* Corrected bounds for some configuration parameters
* Clarifications in the specification
* Check validity of Argon2 parameters
2019-08-25 13:47:21 +02:00
tevador c433f6d3a8
Fix: hardcoded JIT code buffer size (#98)
* code buffer size is calculated based on RandomX parameters
* added a maximum value constraint for program size and superscalar latency
* reduced the x86 code size of memory instructions by 1 byte
* disclaimer note in configuration documentation
2019-07-09 20:27:10 +02:00
tevador 47ade5e894
Do not attempt to allocate >= 4 GiB on 32-bit systems (#99)
+ Cache size limited to 2 GiB
2019-07-09 20:26:50 +02:00
tevador 89aba80925
Refactoring (#95)
* Blake2Generator::getInt32 renamed to getUInt32 to avoid confusion
* isPowerOf2 renamed to isZeroOrPowerOf2 to avoid confusion
* added asserts to validate the input/output size of AES functions
* fixed possible overflow in JitCompilerX86::getCodeSize (unused function)
2019-07-03 18:13:20 +02:00
tevador c6b5ec12b6
Fix: possible overflow when using non-standard Dataset size (#87) 2019-06-29 18:52:22 +02:00
tevador 91cd35ff13
Decrease the frequency of FADD/FSUB in favor of FMUL (#77)
* this better matches CPU capabilities since execution ports are usually split 1:1 between fadd and fmul
* the frequency of FSWAP_R decreased from 8 to 4 (it's ASIC-friendly)
* activate IROL_R instruction
2019-06-22 16:05:22 +02:00
tevador 07293a9378
Regression tests (#73)
* instruction decode/execute separated into class BytecodeMachine
* added randomx-tests project
* removed the use of non-portable __COUNTER__ macro
* removed the use of unsupported FENV_ACCESS pragma
2019-06-22 15:54:43 +02:00
tevador e31a621d6f
Fix possible overflow in static_assert (#67) 2019-06-14 23:16:27 +02:00
tevador 0c5b666df4
Configuration guidelines (#59)
* added detailed guidelines for the selection of configuration values
* added additional compile-time checks to prevent bad configurations
* removed RANDOMX_SUPERSCALAR_MAX_SIZE parameter
2019-06-10 15:57:36 +02:00
tevador 8a5ead5ce3 Use 'dst' as the CBRANCH condition register
See issue #43
2019-05-21 08:37:36 +02:00
tevador 2706a8b753 Relicensed under the 3-clause BSD license 2019-05-18 14:21:47 +02:00
tevador 3dd21ea93d Prepare for JIT compiler support for other platforms 2019-05-12 22:31:48 +02:00
tevador b1f1e1d6ad Fixed IMUL_RCP if divisor is a power of 2 2019-05-04 18:00:17 +02:00
tevador 9e5eac8645 Fixed a chance of CBRANCH looping
Fixed CBRANCH jump probability being lower than expected
2019-05-03 14:02:40 +02:00
tevador 1a4bde36be Fixed a missing header dependency 2019-04-30 21:33:02 +02:00
tevador ca96270509 Group E exponent changed from a static value (-240) to dynamic 2019-04-30 21:14:50 +02:00
tevador 3cf6a30076 Fixed biased condition register selection 2019-04-30 10:20:28 +02:00
tevador ffebc37381 COND_R instruction reworked as CBRANCH
instruction mod field bits reallocated
2019-04-29 23:38:23 +02:00
tevador cf72ed79c7 Function typedefs without pointer 2019-04-28 18:17:29 +02:00
tevador 7f6bdd9a52 Code cleanup & refactoring 2019-04-28 16:42:45 +02:00
tevador 22a3aa8d79 randomx_cache and randomx_dataset changed to standard-layout structs 2019-04-28 12:44:28 +02:00
tevador 270a4f97fe Dataset size increased to 2080 MiB
Implemented dataset base offset
Tweaked SuperscalarHash constants to prevent register collisions
2019-04-26 16:05:30 +02:00
tevador f66da3911e Fixed some compilation issues
Code cleanup
2019-04-26 11:07:47 +02:00
tevador b4dca14f0c Added a function to access the dataset memory buffer
Number of dataset items changed from a macro to a getter function.
2019-04-23 22:15:55 +02:00
tevador 87b8253374 API documentation
'dataset block' -> 'dataset item'
customizable benchmark seed
2019-04-22 15:13:41 +02:00
tevador 41b51a4858 Cleaned up legacy code 2019-04-21 14:07:32 +02:00
tevador 296e77eebc C API - first working version 2019-04-20 11:08:01 +02:00
tevador 33a2fd021d Unique scratchpad addresses 2019-04-14 17:21:26 +02:00
tevador 9404516dd8 Refactoring 2019-04-12 14:56:20 +02:00
tevador 77dbe14658 SuperscalarHash JIT compiler
(unfinished)
2019-04-06 12:00:56 +02:00
tevador 2edf05cedc Implemented Dataset size increase per epoch 2019-03-10 23:14:03 +01:00
tevador e65d9da66c Configurable parameters separated into configuration.h 2019-03-08 15:34:34 +01:00
tevador f0d52fcf4d Fixed dependent constants 2019-02-15 11:38:20 +01:00
tevador 0b1761a846 Refactoring: mining/verification mode 2019-02-11 18:57:42 +01:00
tevador b8ce504be6 Added comments to hashAes1Rx4 and fillAes1Rx4
Fixed gcc compilation
Added performance numbers
2019-02-09 19:32:53 +01:00
tevador 32d827d0a6 Interpreter with bytecode
Fixed some undefined behavior with signed types
Fixed different results on big endian systems
Removed unused code files
Restored FNEG_R instructions
Updated documentation
2019-02-09 15:45:26 +01:00
tevador b417fd08ea 16 -> 8 chained programs
constant address loads are always from L3
2019-02-05 23:06:44 +01:00
tevador 1ee94bef2a Added ISWAP instruction
Scratchpad -> 2 MiB
New scratchpad initialization
New dataset initialization
2019-02-04 17:07:00 +01:00
tevador 8f2abd6c05 NOP instruction
register load/store from L3
2019-01-27 18:19:49 +01:00
tevador 005c67f64c Added explicit STORE instructions
JIT compiler
2019-01-27 10:52:30 +01:00
tevador d2cb086221 ASM code generator for "small" programs that fit into the uOP cache 2019-01-24 19:29:59 +01:00
tevador 16db607025 Scratchpad size increased to 1 MiB
New AES-based scratchpad hashing function
2019-01-18 23:51:18 +01:00
tevador 89bc68d093 Memory-bound dataset initialization 2019-01-18 18:44:06 +01:00
tevador 4fb168e249 Large page support for cache
Bug fixes
2019-01-18 17:57:47 +01:00
tevador 8b1102ee05 Interpreter + async mode 2019-01-15 00:01:11 +01:00
tevador 48d85643de Dataset intialization algorithm (AES) 2019-01-13 13:47:25 +01:00
tevador d1a808643d Random accesses - JIT compiler 2019-01-10 22:04:55 +01:00
tevador 2f6a599ff6 Inlined calls for memory read 2019-01-07 17:44:43 +01:00